The spreadsheet is an architecture problem
Between your CRM, your ERP, your board deck, your renewal forecast, and your ARR reporting sits a spreadsheet. It exists because no system upstream of it holds the whole picture, so someone exports from each, reconciles the differences, and publishes the result. Every reporting cycle, that reconciliation runs again. The spreadsheet is not a tooling gap you can close by buying a better reporting tool. It is an architecture problem: the systems you already own model the wrong thing.- CRM tracks intent. A deal is a forecast of what sales believes will close. It is not a record of what was agreed.
- ERP tracks history. It records what has been invoiced and collected. It does not model the contract lifecycle — renewals, expansions, and the term boundaries that decide what counts as ARR today.
- HarborOS tracks truth. It models the contract itself, on its own lifecycle, as the thing every number derives from.
One record, many views
The contract is the canonical primitive. There is one contract record, and every downstream number is a lens on contracts — not a separate dataset that has to be reconciled back to them. ARR is contracts, classified and summed as of a date. A renewal is a contract approaching its term boundary. Churn, expansion, and contraction are differences between contract positions across two dates. The forecast is the same contracts projected forward. None of these is a parallel system of record; each is a query over the one record. This is what removes the reconciliation. When ARR and the renewal forecast and the board waterfall all read from the same contracts, there is no second source to disagree with — and nothing to stitch together by hand.What the numbers mean
Because every figure derives from contracts, every figure is traceable to the specific contracts behind it. A contract resolves to exactly one recognition bucket on any given date — active, assumed renewal, grace-expired, churned, or not-yet-active — and a contract that contributes to an ARR total always carries the label explaining why it counts. A number is never a figure without a derivation; it is a set of contracts you can open and inspect.A contract counts only after it’s confirmed
A newly extracted contract does not contribute to ARR on arrival. It contributes only after it passes the confirmation gate: an operator has reviewed and confirmed the extraction (or the deal is a won-but-not-yet-papered contract that already counts today). Until then it is held out of every total. A contract flagged as churn is always excluded — no grace window rescues it. This is the seam between AI-assisted ingestion and deterministic truth: extraction is assisted, but nothing reaches an ARR number until a human confirms it. For how a contract moves through its lifecycle — and the states that decide when it counts — see Lifecycle model.Related
Lifecycle model
The states a contract moves through, and how each one affects what counts.
Lenses
How ARR, renewals, and waterfalls are each a view over the same contracts.
Glossary
Definitions for ARR, GRR/NRR, expansion, contraction, and churn.
.png?fit=max&auto=format&n=sYABzIeZz0-gFBul&q=85&s=9dde2a9c58583251fbef55f7a893d7e2)