Add forecast to a monthly market time series and the API appends a projection from Amazon’s Chronos-2 model, conditioned on a path for the 30-year fixed rate. You pick the horizon and the rate scenario. The model returns a median and a p10 to p90 band for each month.
Flip the scenario to see how much the rate path moves the projection. The three runs are real responses to the request below, one per rate30y preset.
The request
curl -X POST https://api.modelmatch.com/v1/market/analytics/time-series \
-H "x-api-key: mm_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"flatFilters": { "metro": "12420" },
"period": "last12Months",
"interval": "monthly",
"measure": "originatedUnits",
"forecast": { "horizon": 6, "scenario": { "rate30y": "fall" } }
}'With the MCP server connected, ask:
Forecast monthly originations in the Austin metro for the next 6 months if mortgage rates fall by a point. Show the range, not just the midpoint.
rate30y takes hold (today’s rate stays flat), fall (down one point over the horizon), rise (up one point), or an explicit array with one rate per month. The rate is an input the model conditions on, never something it predicts.
What comes back
{
"measure": "originatedUnits",
"current": [
{ "date": "2026-01-20", "measureValue": 2340, "complete": true },
{ "date": "2026-02-20", "measureValue": 2228, "complete": true },
{ "date": "2026-03-20", "measureValue": 2054, "complete": true },
{ "date": "2026-04-20", "measureValue": 2156, "complete": true },
{ "date": "2026-05-20", "measureValue": 1887, "complete": true },
{ "date": "2026-06-20", "measureValue": 1666, "complete": true }
],
"forecast": {
"model": "amazon/chronos-2",
"asOf": "2026-06-01",
"horizon": 6,
"scenario": { "rate30y": [7.23, 7.07, 6.9, 6.73, 6.57, 6.4] },
"support": 1928.17,
"confidence": "high",
"points": [
{ "date": "2026-07-01", "p10": 1694, "p50": 1865, "p90": 2034 },
{ "date": "2026-08-01", "p10": 1534, "p50": 1705, "p90": 1886 },
{ "date": "2026-09-01", "p10": 1546, "p50": 1722, "p90": 1905 },
{ "date": "2026-10-01", "p10": 1550, "p50": 1738, "p90": 1928 },
{ "date": "2026-11-01", "p10": 1370, "p50": 1560, "p90": 1756 },
{ "date": "2026-12-01", "p10": 1264, "p50": 1468, "p90": 1674 }
]
}
}
asOfis the last complete month the model saw. Incomplete recent months are trimmed from the history before forecasting, so the projection doesn’t start from a partial month.confidencereflects how much data backs the series:highis 100 or more per month,medium20 or more,lowbelow that. Treat alowforecast as a shape, not a number.p50is the median.p10andp90bound the likely range.
Make it yours
- Compare scenarios: run
hold,fall, andriseand chart the three medians together. - Volume instead of units: set
"measure": "originatedVolume". Any sentinel-guarded measure works. - Per-segment forecasts: add
"segment": "loanType"to get an independent projection for each product. - Smaller markets: a county or ZIP works too, but watch
confidence. Thin series produce wide bands.