The 12 KPIs a growing business should watch, and a dashboard people actually use
Twelve KPIs across sales, operations and finance, each with a formula, an owner and a cadence. A full month of worked arithmetic, dashboard design rules, and what to do the day a number turns red.
Author
Anichur Rahaman
2 days ago9 min read2 views
It is Monday, 8:40. The owner of a small retailer with one online store and one shop opens three spreadsheets and a banking app. The shop export says September revenue was 52,000. Accounting says 51,300. The courier portal has its own idea of how many parcels arrived late. She spends the first hour of the week reconciling numbers instead of deciding anything.
By 9:45 she has a figure she half trusts, and no clear sense of what to change. The scene is illustrative, but the pattern is real: the business has plenty of data and no shared definition of what its numbers mean.
This article makes the case for twelve KPIs, each with one formula, one owner and one source, shown on a single page. It walks through the definitions, a full month of worked arithmetic, the design rules that keep a dashboard in daily use, and what to do the day a number turns red.
Why dashboards go unread
Most dashboards die in the same way. Someone builds forty charts in a burst of enthusiasm. A month later two charts show different revenue, because one counts orders when they are placed and the other when they are paid. Nobody can say which is right, so people go back to their own spreadsheets.
The cause is not the charting tool. It is that a KPI was never defined as a piece of code or a query: what counts, over which period, from which table, with which exclusions. When the definition lives in someone's head, every export produces a slightly different number.
What one source of truth looks like
The fix is boring and effective. Each KPI is computed by one named query against the system that records the events: orders, stock movements, deliveries and journal entries. A nightly (or hourly) job writes the result into a snapshot table, one row per KPI per period, for example kpi_id = fill_rate, period = 2026-09, value = 94.0, definition_version = 2. The dashboard reads only that table.
The definition_version column matters more than it looks. When you change how return rate is counted, the old months keep their old version and the chart shows the break. Without it, a redefinition quietly rewrites history, and nobody trusts the trend again. Software that writes orders, stock movements and accounting journals into one database makes this much easier, because the KPI query joins tables instead of reconciling files; the inventory side of StoreConsole is built that way.
Leading, lagging, and the tree that links them
A lagging indicator tells you what already happened: revenue, gross margin, cash. A leading indicator moves first and predicts them: conversion, stock accuracy, fill rate. A dashboard of lagging numbers is a rear-view mirror. A dashboard of leading numbers alone is a guess. You need both, connected.
The connection is a tree. Profit sits at the top. It splits into gross margin and sales volume, and each of those splits again until you reach drivers a person can change this week: the conversion of one landing page, the share of orders shipped complete, the days a pallet of stock sits unsold.
From profit down to the numbers someone can move before lunch.
The tree also stops a common mistake: tracking a number nobody can influence. If a KPI has no path to profit or cash on the tree, it is decoration.
The twelve KPIs, with formulas
Twelve is a ceiling, not a target. These cover sales, operations and finance, which is enough for a business with one to a few dozen outlets.
KPI
Formula
Cadence
Owner
Net revenue
Sales minus discounts and returns
Daily
Head of sales
Conversion rate
Orders ÷ sessions
Daily
E-commerce lead
Average order value
Net revenue ÷ orders
Daily
E-commerce lead
Repeat rate
Buying customers who bought before ÷ all buying customers
Weekly
Marketing
Stock accuracy
Counted items matching the system ÷ items counted
Weekly
Inventory manager
Fill rate
Orders shipped complete the first time ÷ orders received
Daily
Operations lead
On-time delivery
Orders delivered by the promised date ÷ orders delivered
Daily
Operations lead
Return rate
Units returned ÷ units sold
Weekly
Operations lead
Gross margin
(Net revenue − cost of goods sold) ÷ net revenue
Weekly
Finance
Cash conversion cycle
DIO + DSO − DPO
Monthly
Finance
Days sales outstanding
Receivables ÷ credit sales × days in period
Monthly
Finance
Cash runway
Cash balance ÷ monthly net cash burn
Monthly
Owner
Fill rate and stock accuracy are the two most often skipped and the two that explain the most trouble downstream. A shop that cannot ship what it sold has a stock-accuracy problem long before it has a customer-service problem.
One month, worked through
An illustrative example: a small retailer's September, in US dollars. The inputs are invented but internally consistent, so every figure below can be checked by hand.
40,000 sessions, 1,000 orders, 780 buying customers, 312 of whom had bought before.
Net revenue 52,000; cost of goods sold 33,800; 2,400 units sold, 168 returned.
940 orders shipped complete the first time; 960 delivered, 864 of them by the promised date.
A stock count of 400 items found 368 matching the system.
Average inventory 67,600; receivables 6,000 on credit sales of 12,000; payables 25,350.
Cash 54,000 against an average net burn of 6,000 a month.
KPI
Arithmetic
Result
Target
Conversion
1,000 ÷ 40,000
2.5%
2.4%
Average order value
52,000 ÷ 1,000
52.00
52.00
Repeat rate
312 ÷ 780
40.0%
38%
Stock accuracy
368 ÷ 400
92.0%
97%
Fill rate
940 ÷ 1,000
94.0%
96%
On-time delivery
864 ÷ 960
90.0%
92%
Return rate
168 ÷ 2,400
7.0%
6%
Gross margin
(52,000 − 33,800) ÷ 52,000 = 18,200 ÷ 52,000
35.0%
36%
Days inventory (DIO)
67,600 ÷ 33,800 × 30
60 days
55 days
Days sales outstanding (DSO)
6,000 ÷ 12,000 × 30
15 days
15 days
Days payable (DPO)
25,350 ÷ 33,800 × 30
22.5 days
25 days
Cash conversion cycle
60 + 15 − 22.5
52.5 days
45 days
Cash runway
54,000 ÷ 6,000
9.0 months
9 months
Read the table the way an owner would. Conversion and repeat rate beat target, so demand is fine. Six numbers miss. Four of them are one chain: stock accuracy, fill rate, return rate and the cash cycle. A stock count that is 8% wrong means some orders are accepted for items that are not on the shelf, which drags fill rate to 94%. Those sales are shipped late, partly or not at all, and returns follow. Meanwhile 67,600 of inventory sits for 60 days, so the cash conversion cycle lands at 52.5 days instead of 45. Fixing one input moves several outputs, and the tree shows which one to fix first.
A note on the cash cycle: DIO and DPO use cost of goods sold as the base, DSO uses credit sales, and all three use the same 30-day period. Mixing periods or bases is the commonest way to get a wrong answer that looks plausible.
Dashboard design rules
Twelve numbers fit on one screen. The rest is discipline about what each tile shows.
Value, trend and target on every tile. A bare number says nothing. 94.0% beside a 96% target and a six-week line says plenty.
Cadence follows the decision. Fill rate decides what operations does today, so it is daily. Cash runway decides next quarter, so a daily refresh only adds noise.
Drill down in one click. A red fill-rate tile should open the list of orders that shipped incomplete, with the missing SKU on each row.
Same definition everywhere. The tile, the weekly email and the board pack call one query.
One owner per tile. A tile with two owners has none.
One screen, three rows, twelve tiles. Each one answers: how much, which way, against what.
When a KPI turns red
The dashboard is only useful if red means something. Before anyone acts, ask whether the number is wrong or the business is.
Check the pipeline first. Did the nightly job run, is a channel missing from the feed, did a definition change? A fill rate that falls from 94% to 61% overnight is usually a broken feed, not a warehouse disaster. If the data is sound, the change is real, and it needs four things written down: an owner, a cause, an action and a review date. A red tile without a review date turns amber on its own after two weeks of nobody looking.
Fix the data or fix the business, never both at once, and never without a date.
Vanity metrics and other traps
Traffic and followers. Sessions only matter through conversion. A 30% traffic spike at 1.2% conversion is a cost, not a win.
Revenue without margin. A discount campaign can lift revenue 20% and cut gross profit.
Averages that hide the tail. A 90% on-time rate can hide one courier at 60%. Allow a split by courier, outlet or channel.
Too many KPIs. At twenty, people stop looking. Retire a tile each time you add one.
Targets set once. A target from last January is a story about last January.
Four weeks to a dashboard people open
Week 1: write the twelve definitions in one page, including exclusions (test orders, cancelled orders, internal transfers).
Week 1: name one owner per KPI and agree its cadence.
Week 2: build each KPI as one query against the system of record, and compare it to your current spreadsheet number. Explain every difference.
Week 3: create the snapshot table and the single dashboard page, with value, trend and target on each tile.
Week 3: add the drill-down lists for the four tiles that will most often turn red.
Week 4: run the Monday review from the dashboard only, with the red-tile routine, and retire the old spreadsheets.
Monday morning, again
Return to the owner at 8:40. With the snapshot table in place, she opens one page. Revenue says 52,000, the same figure accounting sees, because both read the same orders. Six tiles are red. Fill rate is 94% against 96%, the drill-down lists 60 incomplete orders, and 41 of them name the same six SKUs.
The cause is stock accuracy, so the inventory manager owns the action: recount those six SKUs, with a review on Friday. The meeting takes fifteen minutes. The hour that used to go on reconciling now goes on the six SKUs.
Key takeaways
Define each KPI once, as a query, with a version; a dashboard is only as trustworthy as its definitions.
Pair lagging numbers (revenue, margin, cash) with leading ones (conversion, stock accuracy, fill rate) and link them in a tree.
Twelve KPIs cover sales, operations and finance. Each needs a formula, an owner and a cadence.
Show value, trend and target on every tile, and make every red tile drill down to rows.
When a KPI turns red, check the data first; if the change is real, record an owner, cause, action and review date.
In the worked example, one weak input, stock accuracy at 92%, sat behind a missed fill rate, higher returns and 7.5 extra days in the cash cycle.
Anichur Rahaman is a software architect and the creator of StoreConsole. He designs commerce and ERP systems for growing businesses, with a focus on event-driven architecture, data integrity and self-hosted operations.