9 Feb 2026 · Features · Lab worksheet commentary

Feature windows that respect billing cycles, not calendar months

Monday-aligned recency is a convenience for the notebook, not a fact about the customer. Finance already knows this. Data science sometimes pretends otherwise.

Two people reviewing notes and a tablet together

If your invoice closes on the 12th, a feature that counts “usage in the last 30 days as of month-end” is mixing two different economic periods. It will look stable in aggregate and lie about individuals whose anniversary sits near the cut. The Cohort Retention Lab spends almost a full week on this because it is the most common self-inflicted wound we see.

Draw the window on paper first

Before SQL, students sketch: label timestamp, last invoice date, next invoice date, and the last moment a feature may look. If a field can only exist after the label, it is out. If a field straddles two invoices without a reason, it is out until someone from revenue operations initials the sketch.

This feels slow. It is slower than copying a 28-day recency snippet from a blog. It is faster than explaining to a CRO why the score panicked every 1 January.

Prepaid is not “just a shorter month”

Top-up cycles are irregular. A 7-day window on a customer who tops up every 11 days is a random coin. We prefer drought states and gap-versus-own-median, as argued in the March journal piece. Forcing prepaid into a postpaid-shaped 30-day recency is how you manufacture noise.

Grace days and pauses

Streaming and education subscriptions in our teaching extract include pause products. If you freeze the clock incorrectly, pause looks like death. If you keep the clock running, pause looks like healthy low usage. The window diagram must say which. Survival Curves for Product Teams exists because PMs and DS leads routinely disagree here without noticing.

A test you can run this afternoon

Compute your current recency feature twice: once aligned to calendar month-end, once aligned to each account’s billing anniversary. Rank disagreement. The accounts that jump are not “outliers to winsorize.” They are the ones whose economic time was never Monday.

Bring that disagreement list to a clinic if you sit Cohort Bench. It is a better artefact than another ROC overlay.

Back to the journal · The Grid method