Practical appendices
How does the canonical calculation map a complete typed input to cohort, contribution and cash outputs?
Read the typed input before reading the output
This dictionary describes the exact canonical Growth engine used by the paper. It is a reproducible methodological guide, not a separate implementation. The input objects are stored in the named study files, and the canonical JavaScript compute function validates and calculates them. Python author helpers select existing scalar bindings and assemble the manuscript. They do not calculate another version of the commercial economics. The distinction matters because two plausible implementations can silently use different acquisition or discount timing.
Every input field is required. Missing cost, price or payment information is not treated as zero. CAC must be positive, opening cash is nonnegative and the horizon is a bounded whole number of months. The retained-price expansion field permits supplied contraction as well as expansion. The exact limits and numerical magnitude rule are retained in the canonical schema. A syntactically valid input still needs a commercial interpretation: validation establishes its type and range, not the truth of the assumption.
The foundation values below are illustrative. They represent a homogeneous recurring-service account with immediate service in the acquisition month. All prices and costs are denominated in the same supplied currency. The paper uses the engine’s currency label for consistency; it performs no exchange-rate conversion. Input percentages are entered as percentage points on the indicated monthly basis. In particular, the contribution discount field is monthly and must not receive an annual rate without an explicit separate conversion and justification.
Payment-day inputs feed a level proxy rather than an invoice simulation. The receivable component uses revenue, while inventory and payables use total recurring variable cost. This distinction can be unsuitable when only some costs qualify for stock or supplier terms. The appropriate response is to scope the proxy or escalate the model, not to claim that one set of days describes every working asset and liability. The dictionary preserves the exact implemented basis so that such a mismatch can be identified.
Foundation input dictionary
These are the literal published reference inputs. The files contain the same complete typed object.
Scroll for all columns. With the table focused, use the left and right arrow keys.
| Foundation input dictionary | ||
|---|---|---|
| Input | Illustrative reference value | Unit and exact meaning |
| months | 24 | Whole calendar-month and customer-age horizon |
| acquisitionBudget | 18,000.00 | USD spent on acquisition each month |
| cac | 240.00 | USD per expected acquired customer |
| price | 85.00 | USD starting monthly amount per active customer |
| variableCost | 24.00 | USD recurring monthly cost per active customer |
| churn | 3.50 | Monthly logo churn percentage after acquisition age |
| expansion | 0.50 | Monthly retained-customer price change percentage |
| fixedCosts | 22,000.00 | USD fixed operating envelope each month |
| receivableDays | 30.00 | Days applied to monthly revenue in level proxy |
| inventoryDays | 12.00 | Days applied to recurring variable-cost total |
| payableDays | 25.00 | Days applied to recurring variable-cost total |
| startingCash | 160,000.00 | USD supplied opening cash; no availability evidence implied |
| monthlyDiscount | 1.00 | Monthly contribution discount percentage |
Follow the two clocks and the cash bridge
Acquisition and cohort state
The retention factor is one less the supplied churn percentage expressed as a fraction. The price-change factor is one plus supplied expansion expressed as a fraction. The exponent counts completed months since acquisition, beginning at zero; displayed unit-curve age labels count service months beginning with acquisition. The new cohort is active and receives the starting price in that month. Each calendar month sums all cohorts that have begun by then. Pre-acquisition entries are zero because the cohort does not yet exist inside the business path, rather than because missing data were silently filled.
This structure gives the output three useful views. Cohort arrays preserve acquisition month and age exposure. Monthly rows sum active customers, revenue and contribution across the operating base. The one-customer curve follows a hypothetical newly acquired relationship over the full age horizon. A late-acquired business cohort has less calendar exposure than that complete unit curve. The dictionary therefore keeps calendar totals and customer-age values separate even when their underlying assumptions are identical.
Recurring contribution subtracts active customers multiplied by the constant variable-cost input from revenue. Monthly operating profit then subtracts supplied acquisition spending and fixed operating cost. These subtractions define the canonical management perimeter. They do not create a financial-statement subtotal, assign overhead to individual accounts or calculate a custom installation cost. The monthly ledger retains each component so that the bridge can be inspected without trusting an unexplained headline.
Working-capital and cash reconciliation
The month convention is the fixed day basis stated in the canonical methods, and opening working capital is zero. The first change therefore equals the first level. Subsequent changes compare the current level with the previous month. The final level is not released when the horizon ends. This implementation permits a negative inventory/payable component when supplier days exceed inventory days and issues a warning about the supported terms. No borrowing-base calculation or finance fee is performed.
The one-customer curve computes survival-weighted recurring contribution, then discounts it by customer age using the supplied monthly factor. The acquisition-age contribution is undiscounted. Finite contribution value is the sum of those discounted rows, excluding CAC, fixed costs and working-capital timing. The value-to-CAC ratio divides that sum by the supplied positive CAC. These are deterministic model expectations under homogeneous assumptions. Survival, discounting and summation use finite numerical precision; reproducibility does not establish arithmetic exactness or an estimated population expectation. The tool fits no survival or price process from records.
Contribution payback uses the undiscounted cumulative one-customer contribution and returns its first crossing of CAC. If the crossing does not occur inside the supplied window, it returns null. The minimum business cash includes supplied opening cash as well as each monthly closing cash. Additional opening cash is the nonnegative amount required to lift that minimum to nonnegative. Starting-price break-even returns null unless starting price exceeds recurring variable cost. Each null means unavailable under a specific calculation, not zero economic burden.
Select a scalar without changing its meaning
Exact working-capital method retained in the canonical output
Decision-relevant output dictionary
The selected values below are illustrative canonical outputs. Output files retain the complete cohort and table arrays for reproduction.
Scroll for all columns. With the table focused, use the left and right arrow keys.
| Decision-relevant output dictionary | ||
|---|---|---|
| Output | Reference scalar | Interpretation and limit |
| horizonLtv | 971.94 | USD finite discounted recurring contribution per expected new customer |
| ltvCac | 4.05 | Contribution value divided by supplied CAC; no funding permission |
| paybackMonths | 5 | First age of undiscounted contribution recovery; excludes business obligations |
| minCash | -58,025.46 | USD minimum of opening and monthly closing cash |
| fundingGap | 58,025.46 | USD additional opening amount for nonnegative declared path |
| endingCash | 218,526.01 | USD final modelled balance; no terminal working-capital release |
| breakEvenCustomers | 655.74 | Expected starting-price customer equivalents covering supplied monthly envelope |
The claim ledger attaches each printed scalar to one input or output pointer in a named study. Its reciprocal block binding identifies where the value is used. The canonical runner recomputes the full output from the typed input; audit compares stored values and current output rather than trusting a frozen headline. Model-linked figures also select exact scalar pointers and are redrawn from their specifications. This lineage makes a result inspectable while preserving its illustrative status.
The independent numerical packet uses literal hand expectations for simple cohort, complete-churn and no-acquisition cases. It also checks contribution, operating and cash reconciliations, invalid fields, unavailable break-even states and unchanged paths under isolated interventions. These checks can detect an implementation or interpretation error. They do not establish empirical parameter values or validate the original policy for every business. The policy branches are tested separately using declared evidence states and exact output fields.
A reader reproducing the study should begin with a complete input file, validate it against the retained schema and invoke the canonical compute source. The reader should then compare the relevant monthly and customer-age rows, not only the final metrics. If an input is changed, the result belongs to a new scenario and must be recomputed before being quoted. A stored favourable output cannot establish that its offer, cost, customer or terms assumptions remain applicable to a later decision.
The dictionary’s main acceptance test is whether another analyst can explain the time and resource boundaries before using a scalar. A clear field name is helpful, but the interpretation requires the horizon, first-service convention, cost perimeter and independent evidence gates. If those boundaries do not fit the commercial obligation, the correct next step is a more appropriate representation. Numerical completeness should never conceal structural mismatch.
Decision and consequence
Reproduce published quantities only from the complete typed fixture and canonical Growth engine. Preserve the two clocks, monthly discount basis, zero opening working capital, unreleased final level and null states. Use the scalar ledger to inspect each printed value. Escalate the representation when the actual commitment needs dated events, heterogeneous states or obligations outside this dictionary.
A serious alternative
A simpler spreadsheet can sometimes make a small commercial question easier to inspect than the canonical cohort module. That alternative is reasonable if it preserves the relevant timing and perimeter and has its own independent verification. It cannot be substituted silently for the paper’s calculation source. The published findings depend on the exact retained engine, and another implementation must be identified as another model. The dictionary enables comparison of conventions so that a convenient tool does not change the economic question unnoticed.
Where this argument stops
This guide describes implemented deterministic computation and published illustrative inputs. It does not estimate customer response, prepare accounts, model dated liquidity or grant financial authority. Schema validity establishes numerical type and range, while source and evidence review establish meaning. Any extension must state its changed method and cannot claim canonical parity from a similar-looking result.