The idea
A KPI is not a number. It is a number plus the rule that produced it. Four pieces make up the rule: what is counted (the numerator), what it is divided by (the denominator), over which time window, and compared with which other period. Leave one unwritten and two honest analysts will compute two different numbers and both call it "the return rate".
Harbor & Pine's own data shows how far this goes. An October that looks 39% down because it is half over. A December return rate of 2.92% when the year is 5.96%. A November that is 66% up on October and 8% down on last November. An average order value that is $535.78 or $467.56, depending on how it is averaged. Nothing in the data is wrong in any of these.
Figure 1
The four parts of one KPI: the December return rate
- Numerator refunds on the month's orders
- Denominator net sales of booked orders
- Window orders placed in the month
- Comparison same month, last year
- A KPI starts with what is counted. For the return rate: refund dollars on orders placed in the month. The numerator answers 'what happened?'.
- Then what it is divided by. Net sales of the same month's booked orders. The denominator answers 'out of what?'. Change it and the percentage changes with no change in behaviour.
- Then the window: orders placed between the first and last day of the month. Returns arrive 4 to 40 days later, so a young window is still filling up.
- Finally the comparison. This month against last month, against the same month last year, or against a target? Each gives a different headline.
Why it exists
A dashboard is read by people who did not build it. They cannot ask which orders were counted or whether the month was complete. They see a number, maybe a colour, and act on it. The definition is the only thing that tells them what they are looking at, so the definition must travel with the number.
KPIs are also used to steer. That means choosing few of them, and choosing them carefully: one north star metric that summarises what the business wants (for Harbor & Pine, net revenue), and a few guardrails that must not get worse while you chase it (return rate, contribution margin, conversion rate). A north star on its own can be gamed. Revenue grows if you discount everything. The guardrails are what makes that visible, and the rule that any measure used as a target stops being a good measure (Goodhart's law) is the reason to keep them.
How it works under the hood
Denominators
The denominator decides what a rate is about. A return rate can be refunded dollars over net sales, returned lines over lines sold, or returns over orders. All are legitimate; none are interchangeable. Pick one, name it, and keep it. Count orders with COUNT(DISTINCT order_id), never rows, or an order with several lines counts several times.
Windows
A window is the stretch of time the numerator and denominator are taken from. Month-to-date compared with a full month is the classic broken window: 15 days against 30 days. Trailing windows keep the length fixed. Use 7 or 28 days, never 30: sales differ by weekday (about $7,500 on a Saturday and $5,900 on a Wednesday in 2025), and a 28-day window always holds exactly four of each weekday.
Figure 2
October 15th: net sales over four windows
- On October 15th the dashboard compares a whole September, $145,543.20, with October so far, $89,128.58.
- That reads as a 39% collapse. But one bar covers 30 days and the other 15. October ended at $184,242.
- Trailing windows fix the length. The last 28 days brought in $154,204.39 and the 28 days before $141,267.38.
- Same moment, honest comparison: sales are up 9.2%, not down 39%. No meeting needed.
Data maturity
Some events happen long after the thing they belong to. A return lands 4 to 40 days after its order, so the most recent months look better than they will end up being. This is the same right-censoring you met with cohorts. Handle it with a maturity rule (show a month as final only 40 days after it ends, mark it 'not final' before that) or compare like with like, such as 'returns within 14 days of the order', which can be computed for every month older than 14 days.
Figure 3
Return rate by month of order, as of 2025-12-31
- October and November sit near 6.6% and 7.0%, around the 5.96% of the full year.
- December shows 2.92%, as if returns had halved. Operations want to celebrate.
- But returns arrive 4 to 40 days after the order and the data stops on December 31st. Most December orders have not had time to come back.
- The definition needs a maturity rule: a month is final 40 days after it ends. For December that is 2026-02-09. Until then the tile says 'not final'.
Seasonality and the comparison period
Harbor & Pine has strong seasons: November and December carry Black Friday and Cyber Monday. November net sales of $305,172.51 are 65.6% up on October and 8.0% down on November 2024. Both are true. Only the second says anything about the business, because every November beats its October. Month over month answers 'what changed since last month?'; year over year answers 'are we doing better than the same season last year?'. For a seasonal store the second is the one that belongs on the sheet.
Averages of ratios
When a metric is a ratio, aggregate the top and the bottom first, then divide. The dashboard that averaged each customer's own AOV got $467.56. Dividing net sales by orders got $535.78: 1,466 customers placed 4,409 booked orders worth $2,362,232. Averaging per customer counts a customer who placed one order the same as a business account that placed many large ones. AOV multiplied by orders must give net sales back, and only the ratio of totals does.
Writing it down
For every KPI on the monthly sheet keep one line with the four parts, the owner, and the date the definition last changed. When a number jumps, the first question is whether the data moved or the definition did. Without that line nobody can tell, and the team argues about performance when the real change was a filter. Treat a definition change like a schema change: announce it, restate the history with the new rule, and never mix old and new in one trend line.
Common misconceptions
"A KPI is the number on the tile"
The tile is the output. The KPI is the definition behind it. Put a short definition in a tooltip or a footnote on every tile: numerator, denominator, window, comparison. When two people disagree about a number, compare definitions before you compare data.
"The latest month is the most informative one"
The latest month is the least finished. It may be partial, as in October to date, or young, as in December's returns. Look at the last complete or mature period, and mark anything newer as provisional.
"Month over month is the standard way to show growth"
It is the standard way to show a seasonal pattern. If your business has a season, the same month last year is the comparison that removes it. Show both, label them, and lead with the one that answers your question.
Check yourself
One question. Answering it ticks this lesson off on the map; it never locks a level.
Right. Equal-length windows end at the same moment. On October 15th that shows +9.2%, and the tile can be refreshed daily.
Not quite. Waiting works but leaves the dashboard blind for most of every month. A trailing window can be read any day.Try another answer.
Not quite. Last October's full total is still a longer period than 15 days, and a year-over-year comparison has to match the days too.Try another answer.
Not quite. Months have different numbers of days and sales differ by weekday, so halving September is not a valid like-for-like base.Try another answer.
Lesson done: it is ticked on the map.