Skip to content
Trust and methodology

What happens to a deal you put into Underwrite.

Ceilings come from this deployment. Limitations come from the engine's register. If something does not exist yet, the page says so.

13 questions, short answers first
What leaves my browser?

Only when you start one of the sends named below.

Details

Nothing about your deal, unless you click one of four AI actions, or open the IC memo, or share a link, or, with Underwrite Core, save a deal to your account. With Underwrite Core, saving a deal to your account sends it to Underwrite's server, which keeps it privately under the account, and making a share link sends the deal to Underwrite's server, which signs the link and keeps no copy of the deal. Memo and share links carry the whole deal in the URL, so opening one sends it to Underwrite's server in the request line, and that includes the memo button on the desk. The server reads the deal to title the memo page and runs it through the engine to draw the link's preview card, which shows its name, IRR, multiple, NOI, grade and verdict and is cached by the hosting platform. It keeps no copy of the deal; the request line is in the hosting platform's access log. Where this site has Public rent context set up, it sends the five-digit ZIP when you press its Look up control; then, while its figures are on the desk and where this site lets them travel on a link, the desk sends them back with the server's token for them and a one-way digest of the deal's memo or share link, which does not contain the deal, after each pause in editing and when you copy a link, so the server can sign the figures to that one deal. Nothing else about the deal goes with either. With Underwrite Core, making a share link sends the figures and the server's token for them with the deal itself, as making a share link already sends the deal. Usage events are the other path that carries no deal figure: which step happened and a few fixed facts about it, such as the deal's property type, which input was edited or whether an edit moved the verdict, never a figure, a name, a quote or a file. Confidential Mode stops all of them.

What is read, and what is calculated?

Reading fills assumptions. Calculation produces the return.

Details

Underwrite reads your materials into assumptions and marks a figure it cannot tie to a sentence. Every return, from NOI to the verdict, is calculated from those assumptions. The same assumptions always give the same result.

Where is my document stored, and for how long?

Only for the life of the parse.

Details

A parsed document exists server-side only for the life of the parse. Staged PDFs sit in private storage and are deleted the moment the parse settles, on success and on every failure path. A staged PDF whose parse never started, because the tab closed between upload and parse, is removed by the founder's retention pass.

Who can access my deal?

You, and anyone who can open a link you shared.

Details

Whoever can open your browser profile, your account or a link you shared. Without sign-in, Underwrite keeps no copy of your deal. With Underwrite Core, a deal you save to your account is kept privately under it, and you can download or delete it at any time. A memo or share link that is opened leaves its request line, deal included, in the hosting platform's access log, which the founder can read.

Does it train anything?

No.

Details

No. The AI calls run on the processing service's commercial API terms, which do not use the input for training. Underwrite itself trains nothing.

What happens in Confidential Mode?

Those sends stop, and the model keeps working.

Details

AI parsing, comp reading, the AI review, the memo's AI summary, the two link flows that carry deal data in the URL, and Public rent context's ZIP lookup, where it is set up, are off. The model keeps working.

Can I delete the deal?

Yes.

Details

Yes. A deal saved in your browser deletes from the library. With Underwrite Core, a deal saved to your account deletes from the account's list, and you can download it first. The request line of an opened memo or share link stays in the hosting platform's access log, which this product does not control and does not promise to delete.

Where does Live Data come from?

From the published series, through this server, with the date on each figure.

Details

FRED, through Underwrite's server, with a per-series observation date, cadence, and freshness flag. A seeded fallback says it is one.

What happens when a value departs from its source?

It becomes your assumption.

Details

The moment you edit an extracted field it is relabeled your assumption, the source quote stops vouching for it, and the delta from the loaded value stays visible with one-click restore.

Does a saved or shared deal keep its source quotes?

No.

Details

No. Quotes live in the tab that ran the parse. A saved deal and a share link carry the deal's values, not its evidence, and tenant rows from a rent roll carry no quote even during the session.

What assumptions did I change?

Every edit is marked, with its measured impact.

Details

The desk diffs the live model against the deal as it arrived and marks every edited field, with the measured impact of the edit.

What is not modeled?

Only the registered limitations, with no invented impact numbers.

Details

Eleven registered limitations, one wording everywhere they appear, each with its applicability and impact area. No invented impact numbers.

What is recommended, and what is calculated?

The verdict is calculated. Advice is labeled as advice.

Details

The verdict is calculated by two published rules. Advisory tests, solver suggestions, and AI review never gate it and are labeled as what they are.

Data flow

Manual underwriting stays in your browser: inputs, the engine, results, exports. Without sign-in, your deal leaves it on four occasions, each started by you: three of the four AI actions, and a URL that carries the deal (the fourth, reading a comp file, sends that file, not the deal). That covers a share link you send and the IC memo button on the desk, because the memo is a page and opening it is a request with the whole deal in the request line. With Underwrite Core there are two more, also started by you: saving a deal to your account sends it to Underwrite's server, which keeps it privately under the account, and making a share link sends the deal to Underwrite's server, which signs the link and keeps no copy of the deal. Market data flows the other way and never carries deal data out.

One more path carries the deal's ZIP and, after a lookup, a digest of the deal's link, and nothing else about the deal. Where this site has it set up, Public rent context, a folded panel beside the rent on the desk, sends the five-digit ZIP to Underwrite's server when you press Look up, and the server asks the Census Bureau's public data API for that area's rent figures. The Census Bureau sees that request from Underwrite's server, not from your browser. The panel's source link is different: if you open it, your browser goes to the Census Bureau's data site with the ZIP in its address. The server may keep the public figures for that ZIP in memory for up to 30 days, so a later lookup may not need to ask again. While its figures are on the desk, and where this site lets them travel on a link, the desk also sends them back to Underwrite's server with the server's token for them and a one-way digest of the deal's memo or share link, a SHA-256 fingerprint that does not contain the deal, right after the lookup, after each pause in editing and when you copy a link, so the server can sign the figures to that one deal. With Underwrite Core, making a share link sends the figures and the server's token for them with the deal itself, as making a share link already sends the deal. Where the lookup is not set up, the panel says so and sends nothing. In Confidential Mode the panel sends nothing.

Underwrite the deal
always, and entirely local
  1. Your browser

    assumptions, the model, results, source trail, workbook, print

Parse a document or read a comp file
only when you click Parse, or Read comps with AI
  1. Your browser

    document or comp file staged; workbooks and CSV files reduced to bounded cell text locally

  2. Underwrite server

    size and reference checks, rate limit; staged PDFs read back from private storage and deleted when the read settles

  3. the processing service APIExternal AI

    reads the document, returns structured values and the sentences it quotes for them; for a comp file, the rows and the line each came from

AI review / executive summary
only when you click Run Review or Generate
  1. Your browser

    current inputs and computed results, serialized

  2. Underwrite server

    validation and rate limit; keeps no copy

  3. the processing service APIExternal AI

    returns prose for review; cannot change a number

Live market data
automatic; carries no deal data
  1. FREDExternal provider

    Treasury curve, SOFR, CPI, inflation expectations

  2. Underwrite server

    holds the provider key; stamps observation date, cadence, freshness

  3. Your browser

    renders the series with their own as-of dates

Public rent context
only where it is set up, when you press Look up; off in Confidential Mode
  1. Your browser

    the deal's five-digit ZIP. After a lookup, while its figures are on the desk and can travel on a link here, the figures with the server's token for them and a one-way digest of the memo or share link, never the deal; with Underwrite Core, a share link sends them with the deal itself

  2. Underwrite server

    rate limit; asks the Census Bureau for the ZIP's area, keeps the public figures in memory for up to 30 days, and signs them to that one deal's link

  3. Census BureauExternal provider

    its public data API receives the ZIP in a request from Underwrite's server, not from your browser, and returns the area's rent figures

Share or memo link
whenever you open the IC memo or a shared link, and whenever anyone else opens one
  1. Your browser

    the whole deal, encoded into the URL itself; there is no link database. Without sign-in the link is made here. With Underwrite Core, making a share link sends the deal to Underwrite's server, which signs the link and keeps no copy of the deal. The desk's own IC memo button builds one of these URLs

  2. Wherever you send itOut of Underwrite's hands

    the link is the deal; anyone holding it can open it

  3. Underwrite server

    opening the link sends the whole URL, deal included, to the server in the request line; the server reads the deal name for the memo's title, runs the deal through the engine to draw the link's preview card (IRR, multiple, NOI, grade and verdict, an image the hosting platform's CDN caches), serves the page, and keeps no copy of the deal. The request line exists in the hosting platform's access log, which this product does not control and therefore does not promise to delete

Usage events
as you use the product; off in Confidential Mode
  1. Your browser

    an event name, a random id this browser made for itself, and coarse facts: which assumption field was edited, which limitation appeared, which export ran. Never a value, a quote, a name, an address or a file

  2. Underwrite server

    an allowlist of event names and properties; unknown events and free text are refused; no IP address or user agent is kept

  3. Private store

    read only by the founder's own report; deleted by a retention pass he runs, window 90 days, which leaves a receipt; no third-party analytics, no session replay, no keystrokes

Save a deal to your account
only with Underwrite Core, when you save; never with Confidential Mode on
  1. Your browser

    the deal's name and inputs; no source quote and no document

  2. Underwrite server

    checks the sign-in and that the deal looks like one, then writes it

  3. Private store

    kept under your account, in a folder with a random name that holds no email address; you can download or delete it at any time

Start a subscription
only when you check out
  1. StripeExternal provider

    the card is entered on Stripe's hosted page; card numbers never touch Underwrite

  2. Underwrite server

    a signed webhook records customer id, email, plan and status in a private ledger; the signature is verified before anything is read

Ask Ali, or answer the one question
only when you submit a form
  1. Form serviceExternal provider

    your email and what you typed go to a form service and land in the founder's inbox; type nothing there you would not email

external AI infrastructure external provider, no deal data sent, except the ZIP Public rent context looks up stays on your machine

The diagram also shows three paths that carry no deal data: usage events, off in Confidential Mode and deleted by a retention pass the founder runs (window 90 days, not a timer); a subscription, where the card is entered on Stripe's page and Underwrite keeps a customer id, email, plan and status; and the two forms, which reach the founder through a form service. A subscriber's saved deals are kept privately under their account, in a folder with a random name, never with Confidential Mode on, and nothing reads their contents. A visitor who does not sign in keeps nothing on the server.

The AI boundary

Four features send data to the processing service's API, each only when you click it, each through Underwrite's server, and each returns material a human reviews: the parser, the comp reader, the deal review and the memo's executive summary. Two of them change no number: the deal review and the memo's executive summary are written about figures the engine has already produced, and what they return is prose, checked against the engine before it is shown and refused if it disagrees.

The parser is different. It returns field values, those values are written into the inputs panel, and the engine recomputes from them: exactly what happens when you type a value yourself. What it cannot do is produce a result. It fills inputs; it never returns an IRR, a multiple, a verdict or a grade, and no figure it returns is used as an output. On a hotel deal it reports the ADR, occupancy and RevPAR the document states, and the server, not the model, turns them into a monthly revenue per key in code. That row is labeled as computed by the server, it lands in an input you can see and change, and /methodology/hotel states the conversion. The model has one commercial line: office or other space a document describes beside the retail is named beside the result and its income left out, not folded into the retail line.

The comp reader is the parser reading a comp file you choose on the desk: a rent or sale comp report you exported from a service you use. It goes the way a deal document goes, and comes back as rows, each with the line it came from. Code computes their counts, ranges and medians beside your assumptions, and no comp changes an input unless you click to use its median. Underwrite has no comp data of its own and does not verify yours.

What each assistant can send, return, and never do
FeatureSends, on clickReturnsWhat it can never do
AI parserThe document or pasted text you hand itThe assumptions, each with the sentence it came from or a mark to check. The server says how it worked out a hotel's revenue per keyProduce the return: the assumptions go to the inputs for your review, the same as typed ones
AI comp readerA comp file you choose: a PDF itself, an Excel or CSV file's cell text and name, or pasted rowsComp rows, each with the line it came from. Each figure is confirmed against the cell text or pasted rows (a PDF's rows are shown as read and not confirmed), and the counts, ranges and medians are calculated from thoseChange an input, a figure or the verdict: a comp median enters an input only when you click to use it
AI deal reviewThe assumptions on screen and the calculated resultsNotes, diligence questions, and a one-line readChange any output, verdict, grade, or exported number
Executive summaryThe assumptions on screen and the calculated resultsTwo to four sentences restating the figures already on the dealRecompute anything; it restates, and you review before it is kept

The calls run under the processing service's commercial API terms, which do not use the input for training. Underwrite trains nothing.

On the desk, each figure is labeled: extracted values read Extracted from source with the sentence behind them where there is one, calculated results read Calculated by model, and anything you override reads User assumption. A figure the server computed from values your document states, such as a vacancy from a stated occupancy, reads Computed by the server, with its formula. On a deal of your own, an input no document and no edit set, which still holds the worked example's value, reads Sample assumption. Judgment calls the engine cannot make are routed to analyst review and say so.

What is read

Source quotes

A quote appears only when the server found the sentence in your pasted or spreadsheet text and it states the value. It stays at that field for the session that parsed it. Every other value is flagged with the reason, or says how the server computed it. The server passes a PDF to the model without reading its text, so every PDF row is flagged and its sentence is the model’s account of the document, not a checked quote. Quotes are not carried into a saved deal or a share link, and tenant rows have none.

Confidential Mode

It turns off the parser, comp reading, the AI review, the memo's AI summary, share links and memo links, and the public rent lookup where it is set up. Everything else keeps computing in your browser.

Source trail

Source trail walks the IRR back through the cash flows and revenue assumptions to the seller’s sentence on rent. It shows a calculation and its inputs. It does not cite a source for every figure. The desk uses the same tool.

The engine, and what is advisory

Every financial figure is calculated from the assumptions on the deal. The same assumptions always give the same result. The verdict follows two published rules, shown on every surface: project IRR at or above 15.00% and minimum DSCR at or above 1.00x (all-equity deals skip the coverage test because there is no debt service).

Anything else that reads like advice is labeled advisory and never decides the deal: lender-standard tests shape the grade, solvers propose values you apply yourself, and a written review cannot change a figure. The files behind the verdict are at /methodology/engine; the full method is at /methodology.

Document handling

The figures below are the capability report of the deployment serving this page, the same report the upload panel reads.

What this deployment accepts, reported by the deployment itself
PDF size ceiling
asking the deployment...
PDF page ceiling
asking the deployment...
the parser service's own limit; the product tells you before you hit it
Excel workbook ceiling
asking the deployment...
workbooks are opened in your browser; only bounded cell text is sent
Parse rate limit
asking the deployment...
enforced server-side; the limiter and this number share one constant

The mechanics behind those numbers: a PDF at or under the direct ceiling travels inside your parse request. A larger PDF is staged, from your browser, into private blob storage under a server-issued token scoped to PDFs, to one folder, to the size ceiling, and to a few minutes. The store is private: the document never sits at a public address, the parser service cannot fetch it by URL, and only Underwrite's server token can read it back. The server verifies the staged reference is its own, refuses foreign hosts and malformed paths, and deletes the blob the moment the parse settles, on success and on every failure path. Excel workbooks never travel as binary: they are opened in your browser and only their cell text, normalized and capped in size, is sent, with formulas and macros never executed.

Underwrite's operator log records sizes, timings and errors. When the server withholds the parser's note, or refuses an AI review or summary, the log line quotes the figure or word that caused it, and on a PDF that figure can come from your document. Rate limiting is per IP and applied on the server, with the ceiling above read from the limiter's own constant. The count is held in memory per server instance, so it is a service protection, not a hard guarantee: several instances, or a restart, can let more through.

Confidential Mode

Confidential Mode is one switch on the desk. With it on, these are off:

  • AI parsing is disabled: text, PDFs, and workbooks cannot be sent from the parser panel.
  • Comp files cannot be read: the comp reader beside the parser sends nothing.
  • AI deal review is disabled, and the Review tab steps aside so you are never parked on a dead panel.
  • The memo's AI executive summary is disabled on the memo page, and the request is refused at the call as well as at the button.
  • Share links are disabled, because they encode the deal in the URL.
  • The memo link is disabled for the same reason; the printable memo remains available from the desk itself.
  • Usage events stop: with Confidential Mode on, no page sends a beacon at all, not even the fact of an edit.
  • The one feedback question that follows an export is not offered, because what you type into it goes to a form service.
  • Public rent context sends nothing, not even the ZIP, and says why in its panel.

What keeps working: the assumptions you enter, the model, scenarios and sensitivities, print, the workbook, and deals saved in this browser. Two limits: Confidential Mode is a setting kept in this browser's storage, not an account setting. It stays on across reloads and across the desk and the memo page in this browser until you turn it off or clear the site's data, and it does not follow you to another browser or device. In a browser that blocks site storage it holds only until the page reloads. And the page itself still fetches market rates from Underwrite's server; those requests carry no deal data in either direction. Your organization's document-handling policy still governs what you are authorized to paste anywhere, including here.

Source provenance and your changes

An AI-extracted value arrives either with a source sentence or with a flag that says why it has none: the sentence was not found in your document, it does not state the value, it came from a PDF the server cannot read, the row is a tenant row this parser does not quote, or no sentence came back at all. A value the server computed from figures the document states is not flagged; it says it was computed, and from what. For pasted text and workbooks the server holds your source, so it asks two questions of every quote the model returns: is this sentence literally in the source, and does it state the value being claimed. A quote that fails either is not provenance. It is still shown, beside the hand-verify flag, and labeled as reported rather than attested. The server passes a PDF to the model without reading its text, so only the second question can be asked of a PDF quote: the server checks that the sentence the model reports states the value beside it, and cannot check that the sentence is in your document. Every row read from a PDF carries the hand-verify flag, and the sentence it reports is the model's account of the document rather than a verified quotation from it. Tenant rows extracted from a rent roll carry no quote at all: they arrive as an audit row with the term the document stated, and the per-tenant sentence is not tracked yet.

The desk states each input's standing in two places. In the parser's list of what it extracted, a value shows its quote, or an amber flag to verify it by hand when no quote survived; every tenant row from a rent roll is in that list with the amber flag. In the inputs panel, each parsed field carries a gold dot whose tip shows the sentence or says no sentence came back. Tenant cards carry no dot, so a tenant row's standing is shown only in the parser's list, and hand-entered fields claim no source at all. The moment you edit an extracted field, the dot gives way to a User assumption ring: the quote attests what the source said, not what you chose, so a value that departs from its evidence is visibly yours.

Source quotes are state in the tab that parsed the document. They are not written into a saved deal, they are not encoded into a share link or a memo link, and loading a deal from the library clears them. A colleague who opens your link gets the deal's values and no evidence behind them, and so do you when you reopen your own saved deal: the desk shows those fields with no provenance rather than with provenance it cannot stand behind. The workbook and the printed memo do not carry the quotes either. Nothing Underwrite produces is a substitute for keeping the source document beside the deal.

The change record works the same way: the desk keeps the deal as it arrived (from a parse, a link, the library, or the defaults) and diffs the live model against it, so every edited assumption is listed with its loaded value, its current value, and the measured impact of that one edit, with one-click restore. This record is derived from the live session, not stored: Underwrite keeps no server-side history of your edits, and a saved deal is a snapshot, not a log. There is no edit history across sessions: a deal saved in this browser, or to your account with Underwrite Core, holds the deal as it was saved and nothing of how it got there.

Model limitations

These are the deals the model covers. The desk shows the first line and links here.

  • Multifamily is the strong path.
  • Mixed-use is supported when its rent roll uses whole-year lease terms of 1 to 100 years.
  • A lease term the model cannot represent, such as a part year, keeps the deal unscored. Nothing is rounded, and no IRR, multiple or verdict is shown.
  • Expense recoveries are not modeled until you include them. Included, expense recoveries are modeled without gross-up or reconciliation.
  • Office, retail, industrial, net lease and hotel cover only part of the deal.
  • Development and portfolio deals are not supported.

Each limitation below uses one wording on the desk, the memo and this page. A limitation carries no invented impact number. Where a deal gives a limitation measurable scope, the desk and memo state the share of gross potential revenue it sits behind.

Expense recoveries are not modeled
EGI and NOI

Operating expenses are carried gross. CAM, tax and insurance reimbursements from commercial tenants are not credited back to EGI, so NOI is conservative by the amount of any recovery this asset actually collects.

Applies: Commercial deals, until you include expense recoveries. Workaround: Include expense recoveries to credit net, modified gross and fixed CAM reimbursements to income, on occupied space only.

Expense recoveries are modeled without gross-up or reconciliation
EGI and NOI

Recoveries are credited to EGI from the terms entered: each payer's pro rata share of the recoverable lines, on occupied space only, with any admin fee and CAM cap as stated. Variable expenses are not grossed up for occupancy, there is no year-end reconciliation or audit, and reserves, leasing costs and any line not ticked are not recovered.

Applies: When expense recoveries are on. No workaround inside the model.

Re-tenanting cost is not modeled
Leasing capex and cash flow

Commercial space on an aggregate rent assumption carries no rent roll, so tenant improvements, leasing commissions, rollover downtime and free rent sit outside the cash flow. On a rent roll, market leasing assumptions are off unless turned on.

Applies: Commercial space entered as aggregate SF and rent, with no tenant rent roll. On a rent roll, renewal probability is off unless market leasing assumptions are turned on. Workaround: Add a tenant rent roll: tenant improvements, leasing commissions, rollover downtime and free rent are modeled per tenant, and expired leases re-lease at market. Turn on market leasing assumptions to blend a renewal (no downtime, renewal TI/LC, free rent and rent) with a new lease, and to count downtime by month. Or include the re-tenanting reserve, which applies them to a stated share of the space each year.

Co-tenancy effects are not modeled
Revenue risk

Anchor-loss rent reductions and termination rights on inline tenants are not read from leases and never enter the cash flow, with or without a rent roll.

Applies: Multi-tenant retail and office. Workaround: Include the co-tenancy case: the anchor goes dark in a stated year, and inline rent is cut by a stated percent or a share of it ends after a cure period.

Returns are pre-tax and pre-fee
Every return figure

Taxes, depreciation and partner-level management fees are not modeled. Every IRR and multiple on this desk is a pre-tax, pre-fee project-level figure.

Applies: Until you include the after-tax view. Workaround: Enable the after-tax overlay: straight-line depreciation, optional cost segregation with bonus depreciation, optional NOL carry-forward, and optional flat state rates are modeled.

The after-tax overlay is deal-level, not a partnership tax model
After-tax returns

A pass-through entity is assumed. State rates are added flat to federal; SALT-cap and deductibility interactions, Section 1031 exchanges, and entity-versus-partner distinctions are not modeled.

Applies: When the after-tax overlay is on. No workaround inside the model.

Prepayment penalties, defeasance and yield maintenance are not modeled
Exit proceeds and debt cost

The balloon is assumed paid off at sale with no exit-debt cost. Interest-only periods and floating rates are also not modeled.

Applies: Every levered deal. No workaround inside the model.

Loan structure is modeled on the senior acquisition loan only
Exit proceeds and debt cost

A step-down, yield maintenance or defeasance cost is charged on the senior acquisition loan when the sale pays it off before maturity, as its own exit-debt line. An interest-only period runs from closing, then the loan amortizes over its full amortization. A floating rate resets once a year to the entered index path, or the current index held flat, capped at any strike, plus the spread; the cap's cost is a use at closing. Not modeled: prepayment cost on mezzanine debt or a refinance loan, lockouts, monthly rate resets, rate floors, cap expiry, extension options, and rate sensitivities on a floating loan, which move only the fixed rate.

Applies: When a prepayment structure, an interest-only period or a floating rate is entered on a levered deal. No workaround inside the model.

The waterfall distributes once, at exit
LP and GP split timing

Tier amounts are computed against the LP's compounded hurdle over the full hold. Annual interim distributions feed the IRR cash flows but do not step LPs through hurdles year by year.

Applies: Every deal with a waterfall. No workaround inside the model.

Specialized asset economics are only partially modeled
Revenue and NOI

Hotel operating revenue can be entered as room nights and daily rates. Seasonal demand, departmental margins, development and portfolio economics remain outside the model.

Applies: Hotel revenue scenarios when explicitly enabled. Workaround: Include hotel revenue and enter rooms, daily rate and physical occupancy.

Project returns omit additional sponsor fees
Fee-adjusted returns

The base project return excludes additional acquisition, asset management and disposition fees. Partner-level fee allocations are not modeled.

Applies: Additional fee scenarios when explicitly enabled. Workaround: Include the fee view for a separate pre-tax result after the additional sponsor fees you enter.

The wider institutional gap map, including what stays with counsel, appraisers, and lease abstracts, is at /methodology/beyond-phase-1.

Live data

Macro series (Treasury curve, SOFR, CPI, inflation expectations) come from FRED, fetched by Underwrite's server; provider keys never reach your browser, and the requests carry no deal data. Every figure keeps three facts separate: the observation date it describes, the cadence it can possibly move at, and the moment Underwrite last called the provider. A monthly CPI print is labeled as the month it describes and never dressed up as an intraday read. When the provider is unreachable or unconfigured, the product serves labeled fallback figures and never presents them as a market observation.

This page's own read of the feed, right now

Reading the feed...

Beyond the FRED series, many Phase 3 market overlays run on seeded calibrations until direct data licenses exist; each is tagged live, hybrid, seeded, or derived in the module inventory, and the memo's module notes say which is which.

Exports and sharing

The Excel workbook is written in your browser by the export code, from the live model; it does not round-trip a server. Print produces the IC memo from the same state. Share links and memo links encode the deal's inputs into the URL itself: there is no link database, and the link is the deal. Without sign-in the link is made in your browser. With Underwrite Core, making a share link sends the deal to Underwrite's server, which signs the link and keeps no copy of the deal; the signature is what lets the link open for whoever receives it while you have Underwrite Core. Opening one is a request to Underwrite's server with the whole deal in the URL: the server reads the deal name for the memo page's title, runs the deal through the engine to draw the link's preview card (its name, IRR, multiple, Year 1 NOI, grade and verdict, an image the hosting platform's CDN caches), serves the page, and keeps no copy of the deal, and the request line exists in the hosting platform's access log, which this product does not control and therefore does not promise to delete. The URL does not carry the parse: source quotes stay in the session that made them. Treat a share link like the document it carries, because anyone holding it can open that deal; that is why Confidential Mode disables both link flows.

Deletion and access

A deal saved to this browser's library exists in its local storage, on your machine. Delete any deal from the library, or clear the site's browser data to remove everything at once. Without sign-in there is no copy on Underwrite's server to request, and no one at Underwrite can pull up a deal from a database. With Underwrite Core, saving a deal to your account sends it to Underwrite's server, which keeps it privately under the account, in a folder with a random name; you can download or delete it from the account at any time, and a deal with Confidential Mode on is never saved there. Access is whoever can use your browser profile or your account, plus anyone you hand a share link, plus whatever the hosting platform's access log retains of the request lines of the memo and share links that were opened. Those request lines carry the encoded deal, the founder can read that log, and this product neither controls its retention nor promises to delete it. Confidential Mode turns both link flows off, which is the way to keep a deal out of it.

The transient exceptions are the AI requests themselves: for the seconds a parse, review, or summary is in flight, the material you sent exists in the request path (and for a staged PDF, in private blob storage that is deleted when the parse settles). Those requests are handled by the processing service under its commercial API terms, which do not use the input for training.

Two other records persist. Usage events carry an event name and three random ids this browser made for itself: one for the browser, one for the tab's session, and one for the deal being worked on, which a share link also carries so a forwarded copy is not counted as somebody else's second deal. None of the three is derived from your property, your document, your numbers, or a hash of any of them. Clearing site data severs them from anything recorded before. An event can also carry a few fixed-choice facts about the step: the deal's property type, which input was edited and whether the edit moved the verdict, how many fields a parse returned and how many it quoted, and whether the source was text, a PDF or a spreadsheet. Never a value, a name, a quote or a file.

Deleting those events is a pass the founder runs, not a background timer. The window is 90 days: a day older than that is deleted when the pass runs, and each pass writes a receipt saying what it deleted and when. Until a pass has run, the events are still there. If the store is unavailable the event is not recorded at all, and the diagnostic line left behind names the event and nothing else: no ids, in a platform log this product does not control and does not promise to delete.

A subscription record (customer id, email, plan, status) is a business record, kept for as long as the business needs it and deliberately not covered by the usage-event window above: email ali@getunderwrite.com to have it removed.

Security status

What exists and is checked by automated gates against the shipped product:

  • Provider API keys are server-side only; a gate scans the built client bundle for key material and provider endpoints on every run.
  • Staged documents go to private storage, single-use, deleted when the parse settles; a gate regression-tests the refusal of foreign hosts, wrong folders, path traversal, and lookalike references.
  • Upload tokens are scoped to PDFs, one folder, the size ceiling, and minutes of validity.
  • AI endpoints are rate limited per IP, with the enforced number published by the capability endpoint.
  • Usage events are allowlisted by name and by property: the schema has no free-text field, so a document, a value or a quote cannot be recorded even by mistake. An unexpected field is refused outright rather than quietly dropped, and a gate proves both on every run.
  • Checkout is Stripe's hosted page, and live checkout stays closed while any commercial fact is pending; the webhook that records a subscription verifies Stripe's signature before it reads a byte, and the ledger holds no deal data.
  • Sign-in is an emailed link that works once and expires in 15 minutes. There is no password, so there is no password database to breach. Sessions are stored on the server, revocable at sign-out, in a cookie scripts cannot read.
  • Where the paid line is on, Underwrite Core is checked on the server for every paid action that touches the server: reading a document, saving and opening deals, making a share link. Share links are then signed on the server, so a link to a deal cannot be made by hand.

What Underwrite does not have:

  • No SOC 2 or ISO 27001 certification, and no third-party penetration test report.
  • No signed data processing agreements. An institution that requires one should run sensitive deals in Confidential Mode or manually until that paperwork exists.
  • No SSO, no team permissioning, no field-level audit log: single-analyst workflow today.
  • No encryption-at-rest claim of Underwrite's own. Without sign-in, no deal data rests on Underwrite servers. With Underwrite Core, the deals you save to your account rest in the hosting platform's private storage, and how that storage is encrypted is the platform's to state, not this page's.

The ceilings, the rate limit, the feed rows and the limitations above are read from the running system. A trust gate refuses a build whose prose and running system disagree. It is run by hand against a candidate before a release, not by the continuous integration that runs on a push: that job checks types and lint, then asserts the canonical figures against production after the deploy.

Public address records

Records change nothing until you choose Use in model. Accepting a sourced input writes that figure into the deal with its source, dataset and retrieval date. Missing records are not evidence that a property is clear.

Lookup sends the address to Underwrite and the Census Geocoder. The matched point is sent to FEMA, the U.S. Geological Survey, the U.S. Fish and Wildlife Service, the Forest Service image service, EPA ECHO, and OpenStreetMap through a public Overpass instance. Census geography codes go to Census for area statistics where configured, and county codes go to the Bureau of Labor Statistics for labor figures. Reference rates are read from the New York Fed, and the Treasury par yield curve from the Treasury. New York City addresses also go to NYC GeoSearch, and matched lot and building identifiers go to NYC Open Data. Other New York State addresses send the county, house number and street name to NYS Open Data for the local assessment roll. Cook County, Philadelphia, San Francisco and Los Angeles County addresses send the house number, street and ZIP (San Francisco also the matched point) to the open assessor data for that county or city. The LL97 covered buildings list is read from a dated copy held by Underwrite, so no request is sent for it. A HUD rent benchmark, when a token is configured, sends the county code to HUD. No deal document or financial assumption is sent. The lookup is cached briefly in server memory. Choosing Use in model or saving the intel snapshot stores the address and those public-record facts with the deal, in the deal link and in deals saved in this browser. The lookup is not written to a server-side deal database.

Only an explicit lookup sends the address. Confidential Mode disables lookup. A Census match is an address-range interpolation, and public maps do not certify title, legal use, environmental condition or insurance requirements. Review the source and coverage for every fact.

Look up public address records