Module unit
One engine serving human and agent identically, every standard assumption routed through an overridable, labeled template.
Overview · Modules · Underwriting Calculator
What it is
The underwriting calculator is where a deal's numbers get decided. One shared engine serves both the human working the calculator on screen and the agent working the same deal over its connection; there is no second math path, so a number the agent quotes and a number the operator sees can never disagree by construction. Strategies are data, not code: multiple financing strategies, configured per tenant as data, shape what the calculator asks for and what it computes.
Every standard assumption routes through an overridable per-deal template. We label defaults as defaults, always, because markets differ and a silently trusted default is how an underwrite goes quietly wrong. Under every number sit plain words saying where that number came from, and cash-to-close is itemized to zero, so nothing rides in an unexplained remainder.
The calculator sits at the end of the evidence chain. It consumes the findings snapshot that reports project into system fields; it never reaches into report internals. When a human has confirmed a value, the write law holds here as everywhere: no machine write lands over it; the machine's better idea arrives as a proposal instead.
The questions it answers
Scope and boundaries
The unit owns underwriting computation and the per-deal assumption state: strategy selection, the assumption template and its overrides, the computed statement, and the provenance trail under each value. It reads the deal's findings snapshot through the composed contract, never another module's tables. It writes only through its own door. It serves the human surface and the agent identically through the same engine and the same door.
It does not own the findings it consumes (reports do), the fields it seeds from (the deal workspace's findings-to-fields ladder does), or the pipeline consequences of a good or bad result (the pipeline and buy-box units do; a favorable underwrite never moves a deal on its own).
It is not a spreadsheet dressed up as software: the engine is shared code, not per-deal formulas an operator maintains. It is not a black-box verdict: every number explains itself in plain words. It is not a deal mover: it informs the human decision at the gate and never advances a stage itself.
Withheld by design Tier 3
Formulas, rates, constants, the template's default values, and the strategy selection math are held at Tier 3.The contract
What it is responsible for, how it is written to, what it announces, what it guarantees, and what it refuses. No fields, no schemas, no payloads; that detail is held at Tier 2.
One door, a small set of commands named by the business action, covering the start of an underwrite, the working of strategies and assumptions, the acceptance of proposals, and re-runs. Human and agent callers use the same door. The door applies the write law before anything lands, and agent output passes the mechanical house-style gate at this door like every other.
Withheld by design Tier 2
The command roster is held at Tier 2, along with all interface detail.Events announce business facts and carry identity plus the fact, never a data dump. The concrete event list is held at Tier 2; the facts below are illustrative of the kind this unit announces: an underwrite was computed for a deal, an assumption was overridden by a human, a proposed value was accepted and stamped human-confirmed, a strategy was selected. Downstream units (the deal workspace, the buy box) react to the fact; they never read this unit's tables.
What done means
Done is not "the math runs". Done is the live workbench holding up against the real backend in every state it can be in: loading, empty, error, and content. Done is every load-bearing rule expressed as a validator, a typed contract, a server-side check, or a failing test, because a rule that lives only in prose is a rule that will be broken politely. And done is the spec settled before the code: the outcome and the logic that keeps each promise in the cases that would break it, agreed first, with the code mostly transcription.
Withheld by design Tier 2
The gate implementation detail is held at Tier 2.The calculator prefers a smaller true answer to a larger confident one.
Where it connects