Skip to content
InsightCharts

Search

Search guides and components

Report page

A section of an analytical report laid out as a document. It has a title block, a summary, numbered findings, then method, limitations and sources. Each finding has one exhibit, an observation and a separately labelled interpretation with a confidence rating and a caveat.

Use when
Use it for readers who will check the reasoning, as in evaluations, research notes, audits and experiment write-ups. State the main finding with its number in the title. Put all the main findings and the recommendation in the summary. Write each finding title as one fact with its number, and give it an exhibit that shows that fact. Put what the data shows in observation and what you infer from it in interpretation. End with method, limitations and sources.
Avoid when
A decision-maker who wants only the result (use executive brief). A general audience (use explainer or visual essay). Findings without an exhibit. Put those in the summary.

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

Small-group tutoring programme · Year 1 evaluation

Tutored pupils gained 2.9 more scaled-score points in maths than matched pupils

The difference in reading was 0.5 points. 31% of tutored pupils were eligible for free school meals against a funding target of 50%.

Evaluation team

Summary

Pupils offered tutoring gained 2.9 more scaled-score points in maths over the year than matched pupils who were not. That is about three months of additional learning. The difference in reading was 0.5 points and could be chance. Pupils who attended fewer than 12 sessions gained less than 1 point over their matches. 58% of pupils attended 12 or more. We recommend continuing the maths strand. Attendance should be the main delivery target. The way pupils are selected should change.

Finding 1

Tutored pupils gained 8.1 points in maths against 5.2 for comparison pupils

Mean gain in scaled score, autumn 2023 to summer 2024

Source: Standardised assessments, 42 schools

What the data shows

The difference in maths was 2.9 points (95% interval 1.6 to 4.2). In reading tutored pupils gained 5.9 points and comparison pupils 5.4. That difference was 0.5 points (−0.7 to 1.7).

What we think it means

Medium confidence

The maths difference is unlikely to be chance. Trials of similar programmes found effects of about the same size. We do not conclude that reading tutoring failed, because half the reading tutors were recruited after January.

Caveat. Pupils were matched on prior attainment and background. They were not randomised. Unmeasured differences, such as parental engagement, could account for part of the difference.

Finding 2

Pupils who attended 18 or more sessions gained 4.4 points over their matches

Maths gain over comparison pupils, scaled-score points, by sessions attended (of 20 offered)

What the data shows

Pupils who attended fewer than 6 sessions gained 0.2 points more than their matches. Those who attended 6 to 11 gained 0.9 points more. 42% of tutored pupils attended fewer than 12 sessions.

What we think it means

Low confidence

A gain that rises with attendance is consistent with a real effect. Pupils who attend more may also differ in ways that raise attainment. The effect of extra sessions is therefore probably smaller than the bars show.

Finding 3

31% of tutored pupils were eligible for free school meals against a target of 50%

Tutored pupils eligible for free school meals31%
Funding target 50%
984 of 3,180 pupils. In the same schools, 38% of all pupils are eligible.

What the data shows

984 of the 3,180 tutored pupils were eligible for free school meals. The funding agreement specifies 50%. 38% of all pupils in the participating schools are eligible.

What we think it means

High confidence

Schools selected pupils by teacher nomination. Nomination appears to favour pupils just below the expected standard over the most disadvantaged. The schools have enough eligible pupils to meet the target, so we think the selection rules cause the shortfall.

Method

We compared 3,180 tutored pupils in 42 schools with 3,180 pupils in the same schools and year groups, matched one to one on prior attainment, free-school-meal eligibility, special educational needs and attendance in the previous year. Outcomes are scaled scores on the standardised assessments schools already use. Intervals are 95% and account for clustering by school.

Limitations

  • Matching cannot rule out differences we did not measure. A randomised design is planned for year two.

  • Attendance was recorded by tutors and may be overstated.

  • One year of outcomes does not show whether the gain lasts.

Sources
School assessment returns; Tutor session logs; National pupil database extract
Data
September 2023 to July 2024
Note
Illustrative data

Composition

Built from

The report page template is assembled from 6 atoms. Any slot also takes any other component.

Atoms

6

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 labelled horizontal meter of one value against a maximum or target, with the target marked and the value printed.

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/report-page

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 { ReportPage } from "insightcharts";

Examples

Product analytics: an experiment write-up

Experiment PRC-114 · pricing page

The annual-first pricing page converted 3.4% of visitors against 3.1% for the control

Growth analytics

Summary

Over six weeks the annual-first pricing page converted 3.4% of visitors. The control converted 3.1%. 52% of new customers on the annual-first page chose annual billing, against 29% in the control. We recommend shipping the annual-first page. Track refund requests for two more months before counting the revenue.

Finding 1

The annual-first page converted more visitors than the control in weeks 2 to 6

Share of pricing-page visitors starting a paid plan, by week of first visit

What the data shows

The six-week mean was 3.38% for the annual-first page and 3.12% for the control. That is a relative lift of 8.5%. Each arm had 61,000 visitors.

What we think it means

High confidence

The difference did not shrink after week 2, so we do not think it is a novelty effect. We are confident the annual-first page converts better. We are less sure of the size of the lift.

Finding 2

52% of new customers on the annual-first page chose annual billing

Billing period chosen by new paying customers

What the data shows

52% of new customers in the annual-first arm chose annual billing. In the control 29% did.

What we think it means

Medium confidence

More cash is collected up front. Annual customers who would have cancelled a monthly plan may ask for a refund instead. The effect on revenue will not be known until the 60-day refund window closes.

Caveat. Refunds within 60 days are not yet observable for weeks four to six.

Method

Visitors were assigned at random by account cookie, 50/50, from 17 March to 27 April 2025. The primary metric, paid conversion within seven days, was registered before launch.

Limitations

  • Enterprise leads, who do not use the pricing page, are excluded.

  • The test ran outside the January budget season, when annual plans usually sell better.

Sources
Experiment platform; Billing system
Note
Illustrative data

Props

PropTypeDefaultDescription
titlerequiredstringThe report's main finding, as one plain sentence with the number in it.
kickerstringThe report series or section, e.g. "Evaluation report · Section 3".
deckstringOne-sentence standfirst.
bylinestringAuthor line.
datestringPublication date.
summarystring | string[]One paragraph with the main findings, their numbers and the recommendation. Supports **bold**.
summaryTitlestring"Summary"Heading of the summary.
findings{ title, exhibit?, observation?, interpretation?, confidence?: "high" | "medium" | "low", caveat?, id? }[]Numbered findings. observation is what the data shows; interpretation is what the authors infer, with an optional confidence rating and caveat.
observationLabelstring"What the data shows"Label over each observation.
interpretationLabelstring"What we think it means"Label over each interpretation.
methodstring | string[]How the analysis was done, as its own section.
limitationsstring[]What the analysis cannot show.
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.
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.