A deal can be scored and still have no IRR, such as one that never pays any cash back. The desk's Run Review and the memo's summary answered with a developer's error about missing results, because the engine's missing IRR travels as an empty value. Both routes now read it as the engine's no return, the model is told to say so in words and never to supply a figure, and a figure put in its place is still refused.
What shipped, and when.
A day-by-day record of what landed in Underwrite, kept by hand. Page 3 of 23.
Want to verify? The six files the decision depends on are rendered from the live source at /methodology/engine.
Filter by engine, UI, AI, ops, marketing or fixes.
The fix pass on 29 September's release ships, with what followed it: a deal with no income, or with part of its income missing, reads Not scored instead of PASS, a deal with no computable return says why in plain English, apartment rents are read as a rent roll states them and averaged in code, the AI guard tells advice from a described case, the parser names office space instead of blending it into retail, a hotel keeps its operating overlay wherever the deal goes, and every AI feature runs on Claude Opus 5.5. The canonical figures do not move: 15.34% IRR, 2.44x and PURSUE at a 6.50% exit cap, 13.51% IRR, 2.19x and PASS at 7.00%.
A deal's property type could be changed only through a preset, which replaces the deal's figures. The desk now has a Property type field that changes the type and no figure, and the mixed-use hold points to it. A money field with cents dropped a trailing zero or showed a third place, such as 22.4; it now shows cents to two places, such as 22.40, and the engine keeps the stored figure.
On a deal with a mezzanine tranche the Sensitivities tab named a current case without the tranche: 15.34% on the worked example with a tranche added, while the plate read 16.67%. The grid, its hold table and its leverage row now run on the deal's whole capital stack, as every other sweep does, and the worked example's grid is unchanged. A current case beyond the grid's axes is said to lie outside it, with the grid's span.
The memo's summary paragraph ended on every deal by saying the composite grade reflects the exit cap assumption, so a parse whose one full-marks component was the cap risk test named that test as the cause of an F. The exit cap and the grade are now two sentences: one says whether the exit assumes cap rate compression, and the other says the grade is weakest on the component with the lowest share of its maximum, named with its points, as the verdict basis below it says. A grade with every component at full marks says so. No figure changes.
From the homepage's Underwrite a deal button, a parse said the form was populated and the engine had rerun while the desk stayed folded away, and Open the inputs landed on the footer. A parse on a first visit, or a link to a folded part of the desk, now completes the first run: the parsed model scrolls into view, and a link to the inputs lands on them. The launcher's own path is unchanged.
Share links, memo links, saved deals and the link preview image dropped the Hotel Operating Overlay, so the gallery's hotel example read PASS at 3.50% on its card and PURSUE at 17.69% on its desk, its memo, a share link, a saved copy and its preview image. The overlay now travels with the deal through each of them, and all of them give the card's verdict and IRR.
A mixed-use document with 6,200 SF of retail at $32.00 NNN and 4,800 SF of office at $24.50 full service gross came back as 11,000 SF of retail at $28.73, a sum and a blend the document states nowhere. The parser no longer asks for a sum, an average or a blend of two kinds of space. A retail figure applies only when the sentence the model quotes for it states it, and a rent roll's retail line is computed in code from the rows applied. Office and other space the model does not carry is named beside the verdict with its figures, and the result leaves its income out.
The parser asked the model to multiply a hotel's ADR by its occupancy, so the figure that drives a hotel's NOI was model arithmetic no document states. The model now reports ADR, occupancy and RevPAR exactly as the document states them, and the server computes monthly revenue per key in code: stated ADR times stated occupancy times 30 days, or stated RevPAR times 30 days. The row says the server computed it, and from what.
On every PDF the retail area and retail rent rows lost the sentence the model returned for them. They now carry it, checked against the value beside it, under the PDF label. A quote that differs from the document only in spaces, tabs or line breaks is found. A tenant row says it is not quoted by this parser instead of reading as if its sentence were missing, and the desk's audit panel counts the quotes the server checked rather than every parsed field.
A read of the pages a first visit reaches found sentences that claimed more than the code does, and each now says what holds. The desk no longer calls a deal hand-entered when nobody typed it, and the home page and /experience no longer present the worked example as parsed. Pricing and Trust say what the server keeps about a deal, and Methodology counts the four ways a deal leaves the browser, as Trust does. Where pages said AI computes none of the math, they now claim what holds: tested code computes the return, with no language model in it. The rate dashboard's lending card says it is a score built from four rates, the engine page says the repository is private, the pricing page says Underwrite is free to use today, and a question for Ali is filed as a question.
The broker-memo parser, the AI Deal Review and the IC executive summary now call Claude Opus 5.5, and the model label in the parser and review panels reads claude-opus-5-5. This model does not take a forced tool call, so each feature's instructions ask for its one structured answer, and the server checks that the answer arrived as that call: an answer without it, or one cut short, is asked for once more and then reported as a failure, never filled in. When the model declines a request, the feature says it is not available and shows nothing from the declined answer. The move to Opus 5.5 leaves the restatement check on the two prose panels and the parser's quote checks as they were, and the return, the coverage ratios and the verdict are still computed by tested code with no language model in it.
The grid's exit cap axis is fixed, and the tab called its nearest cell the current case: at a 7.25% exit cap the desk read 12.63% while the tab named 13.51%. The readout now states the model's own exit cap, rent growth and IRR, a cell is marked current only when the model sits on it, and applying a cell reports the move the desk made.
On a deal whose loan matures before the exit, the default Executive memo rated the refinance without the engine's warning, because its risk flags section is not in that cut. The lender rating section, which is in that cut, now lists the maturity flags the engine raised, in the engine's words, and the refinance row says it is read at the exit, after the loan matures. A deal whose loan term covers its hold reads as before.
The deployment check that confirms the site's security headers failed against production over HTTP/2, which prints header names in lowercase, with the headers present. It now matches each header name in any case at the start of a line and then reads its value.
Underwrite moves to black, and the release carries September's honesty work: the AI prose is checked against the engine before a reader sees it, a quote counts as evidence only when it states the value beside it, the memo carries one verdict, and a parse applies only what the document gave it. The canonical figures do not move: 15.34% IRR, 2.44x and PURSUE at a 6.50% exit cap, 13.51% IRR, 2.19x and PASS at 7.00%.
The site and the product now sit on a black ground with light type, and white takes the accent role gold held, so emphasis comes from weight and contrast rather than hue. IBM Plex Sans and IBM Plex Mono replace Fraunces, Instrument Serif and JetBrains Mono. Status words keep their colours on black: PURSUE green, PASS red, WATCH yellow. The four marks the copy calls gold keep a gold: the provenance dot, the capital stack's drag boundary, the sensitivity heat ramp, which runs light gold to dark gold as its caption says, and one memo figure. Charts and the motion canvases draw on black. Print keeps the paper document it printed before.