Estimated and forecast months
How months are written
Section titled “How months are written”A month is written YYYY-MM, for example 2026-07 for July 2026. AI4M works in whole months; there are no weekly or daily figures.
The data starts at 2018-01.
Two kinds of month
Section titled “Two kinds of month”Every response says which kind it is in its kind field.
kind |
What it is |
|---|---|
estimated |
A month that has already happened. The model used the rainfall that was actually recorded for that month |
forecast |
A month still to come. The model used the rainfall that is typical for that calendar month in that place |
Both are produced by the same model. Neither is a record of reported cases.
Because a forecast assumes typical rainfall, it will not anticipate an unusually wet or dry season. When the month arrives and its rainfall is recorded, the forecast is replaced by an estimate, and the score may change.
Which months are available
Section titled “Which months are available”Periods returns:
| Field | Meaning |
|---|---|
last_estimated |
The most recent month with recorded rainfall |
last_forecast |
The furthest month ahead that has a forecast |
updated_at |
When the data was last loaded |
Forecasts cover up to four months after last_estimated.
Estimates lag the calendar
Section titled “Estimates lag the calendar”Rainfall data is published some weeks after a month ends, and the model is run about once a month, so last_estimated can be a few months behind today. The months between last_estimated and today are forecasts, even though they are in the past.
Which endpoint to use
Section titled “Which endpoint to use”| You want | Use |
|---|---|
| The latest estimate | A risk endpoint with no period |
| An earlier month | A risk endpoint with period=YYYY-MM |
Months after last_estimated |
A forecast endpoint |
Passing a forecast month to a risk endpoint returns 400 with the code FORECAST_PERIOD.
How often the data changes
Section titled “How often the data changes”About once a month, when new rainfall data arrives and the model is run again. Compare updated_at with the value you last saw to know whether anything has changed.