A live sizing document: assumptions, recalculation and a version you can present
How to keep market sizing inside the product as a set of sourced assumptions with cascading recalculation and dated versions, instead of a file that goes quietly stale.
- Who it is for
- Product managers and product marketers who size a market, the economics of a feature or a unit-economics model, and then have to defend those numbers in front of sales, an investor or a client.
- What you get
- A sizing document where every number traces back to a sourced assumption, a change to one assumption recalculates the dependent figures, and a dated version with the full assumption list is ready to present.
Step by step
1. Decide which decision the calculation supports
A live sizing document is a subsystem, not a file. Ordinary sizing works as a function from input to number: you enter assumptions, you get a market size, you export a PDF. It dies together with the file, and its staleness stays invisible, because the number on the slide looks as fresh as it did yesterday. Here the calculation is a node in the graph: the number is not a result but the current value of an expression over the assumption registry. The property that matters is a single one — every number has an assumption, every assumption has a source, every source has a date. Before you enter anything, write down one sentence: which decision this calculation supports, for example a price change, a scope decision or a market entry conversation. The rest of the registry follows from that sentence. What sizing does not do: it does not draw conclusions about the market on its own, and it does not hand out a true size of the market. It gives you a calculation under these assumptions, and that wording is obligatory — it is also what keeps the calculation out of the legal trouble described in §17 of the PRD. Expected result: you have one sentence naming the decision, and a registry waiting to be filled.
2. Build the assumption registry before the formula
The registry is what makes the calculation reproducible. Each entry is typed: value, unit, range, type, source (manual entry, AI proposal or import), date, author, status (current, expired or disputed), and the link to the hypotheses and features the assumption belongs to. The base set for v1 is price, market share, number of customers and conversion, plus any product metric you want to bring in: the registry is open in composition, so a metric of your own becomes available to every formula that references it without any change in the product. There is no separate calculator with empty fields here — the assumptions are the same objects the rest of the product works with. The effort goes into the registry, and that is expected. Expected result: you can list every assumption the calculation depends on and, for each of them, name the person who entered it and the date.
3. Enter assumptions by hand or confirm the proposed ones
Two input paths, one object. You can type a value yourself, or the assistant can propose it together with a unit, a range, a justification and a source when it has one. A proposed number without a source is marked as an AI estimate, and it is applied to no calculation until you confirm it: the status stays at proposed, not confirmed, and the source stays visible next to it. The rule behind this is short: the AI proposes, the person confirms, the code counts. The reason is not caution for its own sake — a calculation computed by a language model cannot be presented, because it cannot be reproduced, checked or justified in front of an investor or a client. Expected result: every assumption carries a status you can read at a glance, and you know which values in the calculation are yours and which arrived as a proposal.
4. Write the formula where the user can see it
Four families of calculation are available: top-down from TAM to SAM to SOM, bottom-up from units times price, the ROI of a feature as benefit over cost, and unit economics with CAC, LTV and payback period. The unit economics here is product unit economics, not financial reporting, and it is computed on the same assumptions as the rest of the document. Each formula is visible to you, and the result is reproducible from the snapshot of a version: the same assumptions and the same expressions give the same number. That is what turns the document into a document rather than a claim. The formulas are executed by deterministic code, and the assistant takes no part in the arithmetic. It can propose a link between an assumption and a hypothesis or a feature, and it can phrase the text around the result — but only from numbers that have already been computed and with a link to the calculation. Expected result: you can read the formula of any figure in the document and reproduce the number yourself.
5. Change one assumption and let the cascade run
The reason to keep sizing live is the cascade. When you change the price in the base assumption, everything that depends on it is marked as requiring a recalculation, and the recalculation runs automatically: the top-down result, the ROI of the feature and the unit economics all move. The dependencies are not only the ones where the price is named explicitly — a formula that uses a converted value is recalculated too. The result is accepted by a person, not by the system: the new version appears in the list of versions with its date and the delta to the previous one, and the versions are comparable with each other. A recalculation is not silent editing: the old version stays, together with the set of assumptions, formulas and result it was computed from. Expected result: you changed one value, and you can see which figures moved, by how much, and from which assumption the change came.
6. Fix the version for the conversation
A version is a snapshot: the assumptions, the formulas and the result at a point in time, with a date. It is not version three of a document but a reproducible calculation — here are these assumptions, here are these formulas, here is this result as of this date. That slice is what you present. It can be opened on a later date and still shows the full list of assumptions used for the calculation, so the number you show today can be checked by somebody else tomorrow. There is also a mode for the version for the investor: a fixed slice with a date and the assumptions behind it, so that the calculation is presented rather than the bare number. The document can be exported to CSV and Markdown with the assumption list attached. Whether that mode ends up being a separate document or a mode is still an open decision in the PRD; the slice with a date and the assumptions is what the product provides. Expected result: you hold a dated slice that can be shown and reproduced.
7. Check the expired and disputed assumptions before you use the result
A recalculated figure can rest on an assumption whose date has gone stale, and the risk is that the result looks precise while the assumption underneath has expired. So the result shows expired and disputed assumptions explicitly, and using such a calculation in an artifact requires a confirmation from a person. This applies to the numbers as well: a figure proposed by the assistant and not confirmed is used in no artifact and stays marked as an AI estimate whose source is not confirmed. Partial completeness is a legitimate state too: a calculation with an explicit note that certain assumptions are missing is more useful than a complete one built on guesses, and the product does not close those gaps for you. Expected result: before you share the calculation you can name the assumptions that expired, the ones that are disputed, and the ones that are still missing.
8. Keep the boundaries and the risks in view
Sizing in this product does not draw market conclusions on its own: data arrives from a source — an import, a document, an AI proposal with a citation — and is always marked with that source. It does not replace a financial model, and it does not require completeness. It does not produce ready-made market reports, it does not export itself to a CRM or a BI tool, and it does not provide built-in product analytics. The risks are named, and each one has a counter-measure: a neat recalculation on stale data, countered by showing expired assumptions and requiring a confirmation to use such a calculation; volume inflation, countered by keeping one engine, where the other families of calculation are the same engine with different expressions; invented market numbers, countered by the rule that an AI proposal is applied only after a confirmation and always carries a source; legal exposure, countered by showing the assumptions next to the result so that the calculation is presented instead of the number. The product requirement lists all four families of calculation for v1, while the sequencing recommendation is to implement the registry and one family on the full engine first. Expected result: you can state what sizing does not do and what is left to a person.
If it does not work
- The number looks right, and nobody can explain where it came from.
- Open the provenance chain of the assumption the number rests on. Every assumption records who entered it, when, and on what basis: manual entry, an AI proposal or an import. When there is no source, the value is marked as an AI estimate and has to be confirmed before it is applied. A number without an explanation is not a defect of the calculation but a missing entry in the registry, and the fix is to add the source rather than to round the figure.
- The assistant suggested a market figure, and it is already in the slide.
- A proposal is not a value. It stays in the status of proposed, not confirmed, and it is applied to no calculation until you confirm it. If such a value reached an artifact, the system requires a confirmation and marks the figure as an AI estimate whose source is not confirmed. Open the assumption and either attach the source the proposal refers to or reject the value, then check every artifact that was built from it.
- I changed the price, and only one figure moved.
- The cascade marks the dependent calculations as requiring a recalculation and recomputes them: the top-down result, the ROI of the feature and the unit economics, including the formulas where the price is used through a conversion. If a figure did not move, check whether the formula references the assumption directly, or whether the recalculation is still waiting for the result to be accepted: the recalculation is automatic, and the acceptance of a new version is done by a person.
- The calculation rests on an assumption that is out of date.
- The result shows expired and disputed assumptions explicitly next to the number. Such a calculation can still be used, but only with the confirmation of a person, and the flag travels with it. Either update the assumption with a new date and a source, or fix the version for the presentation with the expired assumption marked — presenting a calculation is preferable to presenting a bare number. An empty or partial calculation with a list of missing assumptions is also a legitimate state.
- There is not enough data to close the whole model.
- Do not close the gaps with estimates to make the model look complete. The registry is open in composition: you can add your own product metric, link a formula to it, and the metric becomes available to every calculation that references it. A partial calculation with an explicit note that certain assumptions are missing is more useful than a complete one built on guesses. Export the calculation to CSV or Markdown with the assumption list attached and mark the gaps in the accompanying text.