Skip to content
ICM Holdings International
Search⌘ K
Index
Capital with a long horizon

21 · Practical appendices

Appendix: reproducible calculation dictionary

Document canonical inputs, formulas, rounding, units and output bindings

167 pages · Edition 2026-10-10

Practical appendices

A replication procedure another analyst can run

Exact inputs, exact method and bounded readings

Reproduction begins with the exact input object, the canonical implementation and the frozen complete result. The paper's numerical examples are authored fixtures. They do not represent an observed client, asset or financing transaction. Another analyst should be able to inspect the supplied cash paths, execute the same public module and compare the result before judging its interpretation. The purpose of the calculation dictionary is to make the arithmetic perimeter inspectable. A successful reproduction confirms consistency with the specified computation; it does not validate the assumptions or establish that the financing is appropriate.

The unit of time is an equally spaced annual period in these fixtures. The initial investment is supplied at the start, followed by operating cash values. The engine discounts each supplied cash flow using its position in that sequence. It does not read calendar dates, calculate day counts or simulate cash within a period. Labels help the reader identify the row but do not change the calculation interval. A transaction that depends on monthly collection, irregular construction draws or dated service requires a model that explicitly represents those events. The annual examples should not be stretched into a liquidity calendar by interpretation.

The monetary unit is illustrative USD millions across cash flow, cash available for debt service and supplied service obligations. The fixture uses the same scale for each amount. No actual currency conversion, tax treatment or inflation convention is embedded in these examples. An analyst can describe the unit as an illustrative monetary scale, but cannot infer a real project's pricing basis. The discount-rate input is expressed in percent in the app schema and is converted by the canonical implementation. This distinction matters because an input percentage and an output fractional return require different display conventions.

The cash-flow series provides the unlevered valuation perimeter in this paper. The supplied debt-service series is evaluated separately for coverage; the app does not subtract it from the cash-flow series to derive an equity cash path. The analyst should not describe the resulting present value as equity value or the return as an equity return. Those interpretations would require a defined financing, tax and distribution model. The illustrations deliberately let the reader compare cash valuation and supplied service coverage without asserting that the service schedule has been optimally sized or contractually agreed.

Cash available for debt service is supplied independently in each row. The app does not derive it from revenue, operating cost, tax, working capital or reserve movements. The fixture author therefore owns the definition and evidence boundary of that input. In these examples it is an illustrative operating cash amount, with terminal residual cash kept outside the final period's cash-available figure. This prevents an assumed terminal receipt from silently increasing service coverage in a period without service. A transaction analysis should reconcile its actual cash-available definition before importing the value into a coverage calculation.

Supplied debt service is an obligation series, not a generated repayment plan. The module computes coverage for rows with positive service. It returns an undefined coverage value when no positive obligation is supplied. That state should not be displayed as a zero ratio or interpreted as unlimited capacity. It means the specific comparison is not defined for that row. The engine does not infer principal, interest, balance, tenor or covenant definitions from the service values. A reader seeking those properties needs an accepted financing model and terms, not a reinterpretation of the illustrative schedule.

Net present value uses the supplied cash-flow series and discount rate. The initial value is included at the beginning; later values are discounted according to their period. The rate sensitivity keeps those values constant and changes the discount rate. It therefore shows how a valuation responds to that arithmetic assumption. It does not establish the appropriate cost of capital or forecast a change in operating performance. The committee should preserve the distinction between sensitivity to an evaluation rate and sensitivity to the causal cash drivers. Either can be informative, but they answer different questions.

The return calculation uses the distinct positive roots of the cash-flow polynomial in the reciprocal discount factor, interpreting each supplied JSON number as its canonical decimal. Version 1.1.2 removes repeated factors by exact polynomial division and counts roots with an integer Sturm chain. Rational intervals then isolate the roots; conversion of one minus the discount factor, divided by that factor to a fractional Number rate occurs only after isolation. A small floating residual does not admit a root. The export retains the certified count and intervals, including roots whose distinct rates cannot be represented or whose isolation budget is exhausted. Such rates are explicitly unavailable rather than described as absent. Readers should inspect that record, the cash-flow signs and warnings before selecting a headline. Percentage presentation occurs after computation; residuals describe only the rounded rate's floating diagnostic. The conventional investment fixtures below do not establish a single-return promise for other schedules.

The annual app discounts project cash at the supplied annual period boundaries and compares same-period CFADS with service. It supplies no invoice date, receipt timestamp, payment cut-off, account-access event or within-year cash balance. The auxiliary bridge adds only an explicit annual retained-cash balance under the assumption that each period's entire CFADS is available before its service payment. A separate dated register must replace that ordering assumption before payment availability is accepted. This is the canonical time-resolution boundary for the study; the financing, coverage and monitoring chapters cross-refer here while testing their distinct rights, denominator, access and authority questions.

Payback is a separate reading of the supplied cumulative cash path. The first crossing uses canonical decimal cumulative cash amounts. A within-period fraction is interpolated from the amount still unrecovered before the supplied flow. Displayed cumulative amounts and recovery times remain rounded numeric readings; later losses do not erase the first observed recovery. It should not be treated as a substitute for discounted value, coverage or terminal reliance. The module implements its stated arithmetic reading, while the investment decision needs a broader account of obligations and evidence. A short payback can coexist with weak early coverage because the calculations compare different things. The dictionary keeps each output connected to its question. Combining distinct metrics into an unqualified assessment can obscure the specific mechanism that requires attention.

The operating stress is a mechanical scenario defined in the canonical output. It reduces future cash-flow and cash-available values while leaving the initial value and supplied service unchanged. That rule can be reproduced and interpreted as an illustrative pressure test. It is not a probability distribution, empirical downside calibration or a causal simulation of price, demand, maintenance and collection. Those mechanisms could affect inputs differently. The paper's separate authored fixtures explore distinct cash-path changes without asserting likelihood. A reader should use the mechanical stress as a transparent comparison, then test the relevant real mechanism with appropriate evidence.

A published token selects a scalar from a frozen input or output through an exact pointer. Its claim entry states the illustrative status, unit, basis, model and sensitivity. The block that publishes it lists the reciprocal claim identifier, and the claim lists the block. The audit checks that the live computation reproduces the frozen result and that the selected scalar agrees with the ledger. This removes a common source of drift between a chart, table and narrative. It cannot prove that the sentence interpreting the scalar is sound; that remains an independent analytical review.

The replication procedure should preserve raw values and separate formatting. A display may round an amount or ratio for readability while the frozen output retains full precision. The ledger defines that display convention. An analyst comparing results should use the complete output and the documented computational tolerance where the app itself applies one. Copying rounded values back into a new calculation creates a different model. The same caution applies to units: a fractional return shown as a percentage, a common monetary scale and an undefined ratio should keep their meaning in every exported form.

Reproduction also requires coherent software and source editions. The audit hashes the canonical module and its imported implementation files, the fixture, output and bindings. It reopens source receipts and canonical manuscript inputs. A changed implementation requires an explicit freeze refresh and a review of the affected claims; the audit never silently accepts a new result by replacing the expected output. This preserves a meaningful failure signal. A result mismatch can then lead to a deliberate decision about the model, rather than a build process that rewrites evidence until it appears consistent.

The calculation dictionary finishes with a boundary test. If a proposed claim requires debt sizing, cash-waterfall allocation, tax, currency conversion, contractual remedies, reserve mechanics, irregular dates or operating causality, the current app does not establish it. The paper can explain why the issue matters and specify what a transaction analysis should resolve. It cannot publish a derived numerical result that the engine never calculated. That discipline allows a simple transparent tool to contribute to an institutional decision without acquiring an unsupported claim to comprehensiveness.

Illustrative calculation. Assumptions and sensitivity are published with the model.

Discounted cash-flow valuation

NPV = sum of cash flow at t divided by (1 + r)^t, with initial cash at t = 0.
Illustrative calculation. Assumptions and sensitivity are published with the model.

Exact NPV sign certificate

NPV sign is evaluated as an exact rational from the canonical decimal representation of the validated JSON numbers. The JSON export retains the exact fraction and a rounded forty-significant-digit decimal; charts use its Number approximation.
Illustrative calculation. Assumptions and sensitivity are published with the model.

Certified IRR root isolation

IRRs are the distinct positive roots of the exact canonical-decimal cash-flow polynomial in x = 1 / (1 + r). Square-free reduction and a BigInt Sturm chain certify the count; rational intervals isolate each root before nearest-even Number rate conversion.

Input and output meanings

This dictionary describes the actual canonical capital module used for the illustrative fixtures. It does not add calculations.

Scroll for all columns. With the table focused, use the left and right arrow keys.

Input and output meanings
FieldMeaning in this paperBoundary
cashflowSupplied unlevered cash in each equally spaced periodNo generated operating or equity cash model
cfadsSupplied cash available for debt serviceNo automatic tax, working-capital or reserve bridge
debtServiceSupplied positive service obligationNo repayment balance, sizing or covenant engine
discountRateInput rate expressed in percentNo estimate of an actual cost of capital
irrsList of fractional roots under the stated methodNo guaranteed unique return; use explicit display format
dscrCash available divided by positive supplied serviceUndefined where no positive service is supplied

Replicate before interpreting

Use the exact fixture and canonical module; compare complete frozen outputs and scalar bindings before assessing the narrative. Preserve a mismatch as a failure until an explicit reviewed change resolves it.

  1. Read the input units, annual interval and cash perimeter.
  2. Execute the canonical compute function on the frozen fixture.
  3. Compare complete output, software receipts and scalar pointers.
  4. Review the interpretation separately from arithmetic parity.

A simple app can underrepresent a financing decision

The objection is valid if the app is presented as a transaction model. The paper uses it for transparent supplied-cash comparisons and identifies questions it cannot answer. A richer accepted model is necessary when dates, contractual definitions or financing mechanics govern the recommendation. Simplicity is useful only while its perimeter remains explicit.

Reproduction does not establish truth

Exact arithmetic parity establishes consistency with the supplied inputs and canonical method. It establishes no observed project outcome, likelihood, lender acceptance or optimal structure. Semantic support, visual legibility and the appropriateness of the decision framework require independent review.

Evidence at the point of use

Open a citation in the chapter to inspect its source, stated support and limits.

Find the next connection

Open the full search desk