Rate sheet import
Turn a lender's Excel rate sheet into live, exact pricing
Most wholesale lenders still send rate sheets as Excel or CSV. A layout template tells OpenLOS, ORSF Publisher, or the ORSF command line where everything is on a lender's sheet, so importing today's sheet takes seconds and every price is read exactly. Templates hold layout only, never prices, so they're safe to share.
The example is fictional: a made-up lender, made-up prices.
How it works
Map the layout once
Point the template at the cells: where the rates are, the price block (one column per lock period), each adjustment grid and rule, the effective time and the lender's time zone. Start from the example.
Preview before importing
OpenLOS shows what it read: products, rates, lock periods, adjustments, and anything it had to warn about. It refuses mismatched layouts instead of guessing.
Import each day in seconds
Choose the lender's new file and import. Accounting negatives, N/A cells, percent-formatted rates, points conventions, and daylight saving are handled.
Share the template
Every broker who gets the same lender's sheet can use your template. Contribute it to the shared directory so nobody maps that layout again.
A template, in brief
Values are always cell references, never numbers; the format rejects anything else. Full reference: orsf-import/0.1.
Lenders: the better path is to publish the sheet directly as a live feed with ORSF Publisher, which reads the same templates.
{
"template": "orsf-import/0.1",
"name": "Example Wholesale daily sheet",
"effectiveAt": { "cell": "B2", "timezone": "America/New_York" },
"products": [{
"id": "conv30", "name": "Conventional 30 Year Fixed",
"loanType": "Conventional", "amortization": "Fixed",
"termMonths": 360, "lockDays": [15, 30, 45, 60],
"rates": { "range": "A6:A12" },
"prices": { "range": "B6:E12" }
}],
"grids": [{
"id": "fico_ltv", "name": "Credit score × LTV",
"rowVar": "fico", "colVar": "ltv",
"rows": [{ "min": "780" }, { "min": "760", "max": "779" }],
"cols": [{ "max": "60" }, { "min": "60.01", "max": "75" }],
"values": { "range": "H6:I7" }
}]
}