Skip to content
InsightCharts

Search

Search guides and components

Scorecard

A recurring report. It has a masthead with the report name and period, a headline that states the main change, a KPI grid with changes and sparklines, a ranked list beside one or two trend charts, an optional comparison table, short notes and a source note.

Use when
Use it for weekly or monthly numbers. Keep the layout the same in every edition so readers know where each number is. Change the headline each edition to state the main change with its number. The headline and the KPI row should be enough for a reader who stops there. The ranking, trends and notes add detail. Highlight the one row or series the headline is about and leave the rest grey.
Avoid when
A one-off finding (use executive brief). Readers who need to filter the data themselves (use data explorer). More than six KPIs.

Preview

A template is a whole page, so the preview scrolls inside its frame. Expand it to read it in place, or open it full screen.

Full screen
Online store scorecardOctober 2024

Orders rose 12% in October to 24,900

The return rate was 11.4%. It was 8.4% in July, the month before free returns launched. Outerwear had the highest return rate at 19.2%.

Orders
24.9K
+12.2%vs September
Conversion rate
3.1%
+0.13 ptsvs September
Average order value
€61
+0.3%vs September
Return rate
11.4%
+0.9 ptsvs September

Outerwear revenue rose 31% to €412k in October

Revenue by category, October, with change on September

  1. Rank 1Outerwear€412kUp +31%
  2. Rank 2Footwear€371kUp +8%
  3. Rank 3Knitwear€298kUp +22%
  4. Rank 4Accessories€164kDown −4%
  5. Rank 5Denim€152kDown −11%
  6. Rank 6Home€88kUp +2%

The return rate rose from 8.4% in July to 11.4% in October

Share of orders returned, by month of order

19.2% of outerwear orders were returned in October

Return rate by category, October

Notes

  • Returns cost about €62k in October

    About 2,840 parcels came back. Carriage and handling cost €22 a parcel. At September's return rate of 10.5% the cost would have been about €58k.

  • 62% of outerwear returns give “too small” as the reason

    A size guide goes into test on 4 November.

  • Orders were highest in December 2023 at 26,900

    October 2024 was the second-highest month of the 12.

Sources
Store order database; Returns portal
Data
November 2023 to October 2024
Method
Return rate is by month of order and is revised for 30 days as parcels arrive.
Note
Illustrative data

Composition

Built from

The scorecard template is assembled from 3 molecules and 7 atoms, 2 of which it reaches only through a molecule. Any slot also takes any other component.

Molecules

3

A responsive grid of trend cards drawn from one dataset: each metric shows its latest value, its change and a sparkline.

A ranking as a list: position, name, value and a thin in-row bar, with an optional change indicator and highlighted rows.

UsesDelta

A table whose rows carry inline sparklines, deltas and in-cell bars beside their exact values, from rows and a column config.

Atoms

7

Compares a value across categories with bars from a zero baseline.

The opening block of a piece or section: kicker, title, one-sentence deck and a byline/date line.

Shows how one or more values change over time or another ordered dimension.

A readable block of narration at a 45-75 character measure, for the text between charts.

A sourcing footer for a whole piece: sources with optional links, the period covered, method, caveats and credit.

Installation

$ pnpm dlx shadcn@latest add @insightcharts/scorecard

The CLI copies the source into your project and needs the @insightcharts registry in components.json; see installation. With the package, import it by name:

import { Scorecard } from "insightcharts";

Examples

Sport: a table instead of a ranking

Harbour City FC · first-team reportAfter 19 of 38 matches

Harbour City are second with 36 points after 19 matches

That is 10 points more than at the same stage last season. Goals conceded fell from 1.67 a match in August to 0.60 in December.

Points per match
2.40
+1.07vs August
Goals scored per match
2.20
+1.20vs August
Goals conceded per match
0.60
−1.07vs August
Expected goal difference per match
+0.88
+1.09vs August

Harbour City have 36 points after 19 matches, against 26 last season

Cumulative league points by match played

Harbour City are 5 points behind NorthfieldLeague table, top six, with points from each of the last five matches
Last five
Northfield19+21
41
Harbour City19+14
36
Easton Vale19+12
35
Calder Rovers19+9
33
Westmoor19+3
31
St Olave's19+1
29

Notes

  • Harbour City took 13 points from the last five matches. Northfield took 10.
  • Expected goal difference rose from −0.21 a match in August to +0.88 in December.
Source
Club performance analysis
Note
Illustrative data. The clubs are fictional.

Props

PropTypeDefaultDescription
titlerequiredstringThe main change this period, as one plain sentence with the number in it.
kickerstringThe name of the report, e.g. "Store scorecard". Shown in the masthead.
reportPeriodstringThe period reported, e.g. "October 2024". Shown opposite the report name.
deckstringOne-sentence standfirst.
bylinestringAuthor line.
datestringPublication date.
kpis{ data, x, metrics, compare?, change?, columns? }The headline metrics: the props of kpi-grid. One time-ordered dataset, one card per metric.
ranking{ data, name, value, change?, highlight?, title?, ... } | SlotA ranking: the props of ranked-list, or any spec or element.
trendsSlot[]One or two trend exhibits, shown beside the ranking in wide containers.
table{ data, columns, highlight?, sort?, title?, ... } | SlotA comparison across entities: the props of comparison-table, or any spec or element.
notes(string | { title, text? })[]Short notes on what changed in the period. Each states one fact with its number.
notesTitlestring"Notes"Heading of the notes.
sourcesstring | { name, url? } | (string | { name, url? })[]Where the data comes from, shown in the closing source note. Entries with a url are linked.
periodstringThe period the data covers.
methodstringHow the numbers were produced: definitions, adjustments, exclusions.
notestringCaveats the reader should know, e.g. "Illustrative data".
creditstringWho made the piece.
level1 | 2 | 3 | 4 | 5 | 61Heading level of the title; section headings follow one level down.
maxWidthnumber | stringWidest the piece may get. It is centred in wider containers.
themeThemeInputTheme override, passed on to everything inside.
mode"auto" | "system" | "light" | "dark""auto"Colour mode, passed on to everything inside.