Executive dashboard
A working reporting layer, built for a company that does not exist. Every figure is synthetic. The point is not the numbers - it is the layout decisions, the chart choices, and what the surface refuses to do.
ARR movement by quarter
New and expansion above the line, contraction and churn below it, on one shared axis. Storing the losses as negative values rather than as positive bars in a different colour is the whole point of this chart: a movement chart that hides the sign is the most common way this form lies, because it lets a quarter with heavy churn look like a growth quarter.
| Quarter | New | Expansion | Contraction | Churn |
|---|---|---|---|---|
| Q1 24 | $437k | $355k | -$117k | -$158k |
| Q2 24 | $550k | $353k | -$171k | -$217k |
| Q3 24 | $672k | $350k | -$129k | -$172k |
| Q4 24 | $608k | $433k | -$191k | -$196k |
| Q1 25 | $642k | $433k | -$133k | -$164k |
| Q2 25 | $717k | $421k | -$172k | -$200k |
| Q3 25 | $637k | $454k | -$209k | -$270k |
| Q4 25 | $725k | $414k | -$190k | -$198k |
| Q1 26 | $888k | $517k | -$212k | -$245k |
| Q2 26 | $831k | $458k | -$240k | -$257k |
ARR by segment
Four series, each direct-labelled at its line end as well as in the legend, so identity never depends on distinguishing two colours. The hues are assigned in a fixed order and are never recycled - if a filter removed a segment, the survivors would keep their colours, because colour follows the entity rather than its rank.
| Quarter | Enterprise | Mid-market | SMB | Public sector |
|---|---|---|---|---|
| Q1 24 | $4.41M | $2.70M | $1.47M | $0.97M |
| Q2 24 | $4.68M | $2.85M | $1.53M | $1.04M |
| Q3 24 | $5.02M | $2.99M | $1.55M | $1.12M |
| Q4 24 | $5.38M | $3.15M | $1.59M | $1.19M |
| Q1 25 | $5.72M | $3.23M | $1.64M | $1.28M |
| Q2 25 | $6.07M | $3.39M | $1.69M | $1.35M |
| Q3 25 | $6.47M | $3.48M | $1.70M | $1.44M |
| Q4 25 | $6.78M | $3.67M | $1.72M | $1.56M |
| Q1 26 | $7.10M | $3.81M | $1.75M | $1.67M |
| Q2 26 | $7.57M | $3.94M | $1.80M | $1.77M |
Open pipeline by stage
Horizontal bars, because stage names are long and rotated labels are a tax on the reader. The stage-to-stage drop is shown because that, not the absolute value, is what a reader is actually looking for.
| Stage | Value | Deals |
|---|---|---|
| Discovery | $18.40M | 214 |
| Qualification | $11.25M | 128 |
| Technical validation | $7.32M | 74 |
| Business case | $4.98M | 41 |
| Negotiation | $3.14M | 23 |
| Committed | $1.86M | 12 |
Net revenue retention by cohort
Magnitude, so a single hue from light to dark rather than a rainbow. Later cohorts have fewer observed periods and those cells are left empty rather than filled with a projection, which is the honest shape for a cohort table.
| Cohort | M0 | M3 | M6 | M9 | M12 | M15 | M18 |
|---|---|---|---|---|---|---|---|
| 2024 H1 | 100.1% | 94.7% | 92.2% | 86.7% | 83.1% | 78% | 74.2% |
| 2024 H2 | 99.7% | 95% | 91.4% | 87.7% | 83.8% | 79.5% | - |
| 2025 H1 | 101.5% | 95.2% | 92.2% | 88.5% | 82.6% | - | - |
| 2025 H2 | 100.4% | 94.6% | 90.8% | 86.9% | - | - | - |
| 2026 H1 | 98.9% | 95% | 90.8% | - | - | - | - |
What this demonstrates, and what it deliberately avoids
The charts are hand-built SVG with no charting dependency, and every choice on this page follows a rule rather than a preference. Worth stating the ones a reader might otherwise read as omissions:
- No dual-axis chart anywhere. Two measures on two scales in one frame is the most common serious charting mistake, because the crossover point is an artifact of the axis choice and readers interpret it as a real event.
- The palette was validated, not chosen. It passes lightness-band, chroma, colour-blind separation, normal-vision separation and contrast checks against this exact dark surface. The site accent is not the lead series colour, because it measures too light for the dark band - brand identity comes from the chrome, series identity from a palette that survives measurement.
- Every chart has a hidden data table. The figures are reachable by screen reader and by anyone who cannot read the picture, which no amount of colour care would achieve on its own.
- No projections, no targets, no benchmark lines. There is no real business here to forecast, and inventing a target line would make an invented number look like a commitment.
Why the data is fake, and why it says so everywhere
A dashboard demo has exactly two honest options: real data with the client's permission, or synthetic data that is clearly labelled. The dishonest third option - plausible invented figures presented without qualification - is common in portfolios and is the reason a lot of dashboard screenshots cannot be trusted.
So the numbers here come from a seeded random function, the company is the canonical sample-database name, and the demo label is in the page title, the header banner, the status bar and this paragraph. It is deliberately hard to screenshot this page in a way that makes it look real.