The revenue number that keeps going up after you stop looking
I spent a long time thinking recent weeks were bad.
Every time I pulled a report, the last two or three weeks looked soft. Not catastrophic, just consistently worse than the weeks before them. I had a story for it. Seasonality, competition, spend drifting into weaker inventory. The story was wrong, and the way I found out was accidental.
I re-ran the same query three days apart.
Same window, different answer
The first pull, for a stretch of eleven days, reported roughly $203,000 in revenue.
The second pull, three days later, for the exact same eleven days, reported roughly $355,000.
Nothing had been changed. No new spend landed in that window, because the window was in the past. The days had not moved. The revenue had gone up 75 percent while I was not looking at it.
One single day inside that range went from $724 to $45,138.
What is actually happening
The revenue is attributed back to the date of the click, not the date the money came in.
That sounds obvious when you write it down. It is not obvious when you are reading a chart. In a business where somebody clicks an ad on the 3rd, books an appointment on the 5th, and the job gets completed and invoiced on the 19th, that final number gets written back onto the 3rd. So the 3rd is incomplete until every job it produced has finished.
Which means every recent week is structurally incomplete, always, by design. Not because the tracking is broken. Because the work has not happened yet.
I measured how long the fill actually takes. Across 560 attributed jobs the median gap between booking and completion was one day, but the 90th percentile was nine days. The tail is long, and the tail is where the expensive jobs live, because big installations get scheduled out further than small repairs.
So the shape is: most of the volume lands fast, and a large share of the dollars lands late.
Why this is worse than a reporting quirk
Three ways this costs real money.
You cut the wrong things. A campaign looks weak for two weeks, so you reduce its budget. It was not weak. It was young. You just cut the thing that was working, and now it never gets the chance to prove it.
You credit the wrong things. You make a change, results improve over the following weeks, and you conclude the change worked. Some of that improvement is just older data finishing filling in. You have now learned a false lesson and you will apply it again.
You panic on launch weeks. Any time something new goes live, the first read will look like a collapse, because the new period is immature and the comparison period is complete. I have watched a room decide a website launch destroyed conversion volume when the actual change, measured properly against matched days, was down four percent.
The rule I adopted
I do not quote revenue-based return for any window younger than about 21 days.
Not “I caveat it.” I do not quote it. If someone asks how last week went, the honest answer is that last week is not finished yet, and here is a leading indicator instead: bookings, leads, cost per booked job. Those settle fast. Revenue does not.
That rule cost me something. It means I can never show a client an impressive fresh number, and fresh numbers are what people want on a Monday. It also means I have never had to walk one back.
How to check your own
You do not need to trust any of this. Test it in about ten minutes.
- Pull revenue by day for a window that ended three weeks ago. Save it.
- Pull the same window again next week.
- Compare.
If the two match, your business completes and invoices fast, and you can report on short windows safely. If the second pull is higher, you now know your fill curve, and you know how long to wait.
Either way you have replaced an assumption with a measurement, which is the whole job.
The lag is not a flaw in the data. It is a fact about how the business works, showing up in the data. The mistake is reading a number before it is finished and deciding what it means.