| 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. | |