The Open Rate Sheet Format
An open standard for wholesale mortgage pricing.
ORSF describes a rate sheet as data instead of a PDF, and defines a simple, signed feed lenders host so approved brokers always price from the current sheet. The specification is CC BY 4.0; the reference code is Apache-2.0. Anyone may implement it, in any product, open or closed.
The rate sheet
- Products with loan type, program (agency, high-balance, jumbo, non-QM), term, and eligibility.
- Base prices by note rate and lock period.
- Adjustment grids (like credit score × LTV) and rules, applied by conditions.
- Risky-feature flags for the anti-steering safe harbor, and price caps.
- Decimals as strings, exact to four places. Implementations must not use floating point for prices.
{
"format": "orsf/0.2",
"lender": { "name": "Example Wholesale" },
"effectiveAt": "2026-10-15T09:00:00-04:00",
"products": [{
"id": "conv30", "name": "Conventional 30 Year Fixed",
"loanType": "Conventional", "program": "Agency",
"amortization": "Fixed", "termMonths": 360,
"lockDays": [15, 30, 45, 60],
"rates": [{ "rate": "6.500",
"prices": ["99.750", "99.625", "99.500", "99.375"] }]
}],
"adjustments": [{ "kind": "rule", "id": "condo",
"name": "Condo (LTV over 75)",
"when": [{ "var": "propertyType", "in": ["Condo"] },
{ "var": "ltv", "min": "75.01" }],
"value": "-0.750" }]
}
The feed
- A discovery document at
/.well-known/orsfon the lender's own domain. - Per-broker bearer keys issued by the lender.
- Ed25519 signatures over the exact bytes served, with published, rotatable keys.
- Conditional requests (ETag / 304) so polling is cheap.
- No central server: confidential pricing goes straight from lender to broker.
GET /.well-known/orsf
→ { "spec": "orsf-feed/0.1",
"lender": { "name": "Example Wholesale" },
"feeds": [{ "id": "main",
"url": "https://pricing.example.com/feeds/main" }],
"keys": [{ "kid": "2026-10", "kty": "OKP",
"crv": "Ed25519", "x": "…" }] }
GET /feeds/main
Authorization: Bearer <broker key>
→ 200, ORSF-Signature: keyid="2026-10", sig="…"
Tools
ORSF Publisher
A lender's own server: upload a sheet, approve brokers, signing handled. For lenders →
Two implementations
The TypeScript reference (validator, exact pricing engine, publisher, conformance checker) and an independent Python implementation that matches it on 300 shared test vectors. JSON Schemas for any other language.
Spreadsheet import
Layout-only templates turn a lender's Excel or CSV into ORSF exactly. Templates and examples →
ORSF is a draft. Proposals and implementations are welcome: open an issue or see how to contribute.