assess_rate_lock
Lock-window-aware lock-vs-float-down recommendation for a deal already in the pipeline. Given a known lock-expiration date, the currently locked rate, and the float-down cost, returns a defensible hold-lock vs exercise-float-down call a loan officer can document — combining recent market movement (1w/2w/4w) with payment and break-even math on this loan. Builds on the same recent-movement signal as assess_buy_timing but framed around the lock window/expiration. Not a rate forecast.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"product_type": "<product_type>",
"state": "<state>",
"loan_amount": "<loan_amount>",
"lock_expiration_date": "<lock_expiration_date>",
"locked_rate": "<locked_rate>"
},
"name": "assess_rate_lock"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | movement window; default 4w | |
| state | Yes | 2-letter state code | |
| loan_amount | Yes | ||
| locked_rate | Yes | % already locked | |
| term_months | No | default 360 | |
| product_type | Yes | ||
| float_down_bps | No | optional improvement in bps if float_down_rate omitted | |
| float_down_cost | No | $ to exercise float-down; default 0 | |
| float_down_rate | No | optional explicit floated rate % | |
| lock_expiration_date | Yes | ISO date YYYY-MM-DD |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lock | No | The borrower's existing rate lock and how much time is left on it. | |
| note | No | A caveat about the inputs or data behind this call, not an error — e.g. the supplied lock-expiration date is already in the past, so the economics assume a fresh re-lock at current market. Present only when such a caveat applies; carry it into any answer. | |
| state | No | Two-letter US state code the result is scoped to (e.g. 'CA'). Null means the result was not filtered by state. | |
| window | No | Lookback period used for the comparison, expressed as a short duration string such as '4w', '90d', or '180d'. | |
| movement | No | How the market has moved over the comparison window, from the earlier snapshot to now. | |
| rationale | No | Plain-English explanation of why this recommendation was reached; safe to quote to the user as the reasoning. | |
| confidence | No | Qualitative confidence in the recommendation — 'high', 'medium', or 'low' — driven by how much data and how large the margin is. | |
| float_down | No | Economics of exercising a float-down to today's market rate. | |
| market_now | No | Best deal currently available in the market, for comparison against the locked rate. | |
| disclosures | No | Caveats and assumptions that must accompany any answer built from this result; surface them rather than dropping them. | |
| next_actions | No | Suggested follow-up tools that would deepen this answer; offer them as next steps, not as results. | |
| product_type | No | Loan or deposit category this result covers, e.g. 'mortgage', 'auto_loan', 'heloc', 'savings'. | |
| recommendation | No | The suggested move, e.g. 'exercise_float_down', 'hold_lock', or 'relock'. | |
| assumed_defaults | No | Inputs the caller did not supply that were filled in with defaults. State these explicitly to the user, since they drive the numbers. |