Renewal Forecast API
The Renewal Forecast API computes per-renewal probabilities and org-level GRR/NRR projections. GET returns cached or on-the-fly computed forecasts; POST triggers a fresh computation and persists results.GET /api/forecasting/renewals
Returns the org-level forecast and per-renewal probabilities for a given period.
Auth: Requires authenticated session. Scoped to organization.
Query Parameters
Response
The response includes:- forecast — Org-level metrics: total renewable ARR, weighted renewal ARR, projected GRR, projected NRR, high confidence ARR, at-risk ARR, renewal count, average probability
- probabilities — Per-renewal array with account details, probability, confidence tier, risk factors, positive signals, ARR, renewal date, health score, risk score
- cached — Boolean indicating whether results were served from cache
Response Fields: forecast
Response Fields: probabilities[]
Caching Behavior
GET first checks for a cached forecast matching the org, period, and model version. If found, it returns cached data withcached: true. If not, it computes on-the-fly without persisting.
POST /api/forecasting/renewals
Triggers a fresh forecast computation and persists results.
Auth: Requires authenticated session. Scoped to organization.
Request Body
Response
Same structure as GET, withcached: false.
Side Effects
- Persists org-level forecast data (keyed on organization + period + model version)
- Persists per-renewal probability data (keyed on renewal + model version)
Computation Flow
- Load all renewals in the period with associated account data
- Load active signals to detect critical signal accounts
- Load active plays to detect accounts with open playbooks
- Compute probability for each renewal using the scoring model
- Aggregate into org-level GRR/NRR projections
- Persist forecast and probability records
See the Renewal Forecasting data model page for full details on the probability model inputs and weights.