Why does last month's cost per booked job keep changing after the month closed?
Because spend finishes at month end and revenue does not. Leads generated in the last weeks are still converting, quotes are still open, and jobs are still being completed and invoiced. A fresh month is always measured at low maturity and always looks worse than it will settle. The fix is a maturity curve: know what share of a cohort's eventual jobs have landed by day seven, fourteen and thirty, and judge fresh periods at the same maturity point.
Two clocks running at different speeds
Marketing spend is recognized the day it happens. The job it produces might book the same day, or after three follow-up calls, or when the estimate finally gets approved six weeks later. Any report that divides a finished number by an unfinished one will move as the second one finishes.
This is not a bug in your reporting. It is the shape of the business. The bug is presenting an immature number next to a mature one and treating the difference as performance.
Building a maturity curve
Take several closed cohorts, grouped by the week the lead arrived. For each, record what share of that cohort's eventual booked jobs and eventual revenue had landed by day 7, 14, 30, 60 and 90. Average across cohorts. That is your maturity curve, and it is specific to your job mix.
Now a period that is 21 days old can be evaluated honestly: multiply the observed result by the inverse of the expected maturity at day 21, or better, compare it only against other periods observed at day 21. The second approach adds no modeling assumptions and is the one to prefer when you can.
What the curve tells you beyond forecasting
- Sources mature at different speeds. Emergency repair demand converts within hours. Replacement and estimate-driven demand converts over weeks. Comparing them at day 14 systematically favors the fast one.
- A slowing curve is a real signal. If a source that used to reach most of its jobs by day 10 now takes a month, something changed in follow-up, pricing or demand, and nothing in a monthly total would have shown it.
- It sizes your open pipeline. The difference between current and expected mature results is roughly what is still sitting in unsold estimates, which is usually the largest recoverable revenue in the business.
How to present it without confusing anyone
Show a maturity indicator on every fresh period: the age of the cohort and the share of expected outcome already observed. A single label like partial does more for decision quality than three more charts.
And resist the pressure to publish final-looking numbers early. Our daily briefs state explicitly when a period is immature rather than reporting a number that will be wrong tomorrow, and the same rule applies to any marketing dashboard that leadership acts on.
Topics: reporting lag · cohort analysis · measurement · dashboards
Have a version of this question about your own business?
The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.