
Planning an Infectious Disease Forecast
Source:vignettes/forecast_planning.Rmd
forecast_planning.RmdDefine the decision
Start with the decision the forecast will support:
- What question must it answer?
- Who will use the result?
- What action could change because of it?
- How far ahead must the forecast remain useful?
A forecast needs a clear user and time horizon. If the result would not change a decision, an analysis of past data may be more useful.
Choose a forecast or scenario
| Approach | Question | Example |
|---|---|---|
| Forecast | What is likely under current conditions? | How many influenza hospital admissions are likely over the next four weeks? |
| Scenario | What could happen under a stated assumption? | How would admissions differ under 30% and 50% vaccine coverage? |
Use a forecast for short-term operational planning. Use a scenario when the result depends on an intervention, policy or other explicit assumption. The Scenario Modeling Hub provides examples of longer-term scenario projections.
Define the target
Specify three elements:
- Pathogen: for example, influenza, COVID-19 or RSV.
- Target: the quantity to predict, such as hospital admissions, deaths or emergency department visits.
- Spatial unit: for example, country, state, county or hospital system.
Use the finest spatial unit that has stable, timely data. Forecast locations together when they share one target and cadence. Run separate workflows for different pathogens or targets.
Check existing forecasts
An existing forecast hub may already answer the question. These hubs publish standardised forecasts and observed target data:
- RSV Forecast Hub
- COVID-19 Forecast Hub
- FluSight Forecast Hub
- Flu MetroCast for sub-state influenza forecasts
See the hubverse hub list for other projects. Use RespiLens to view respiratory forecasts.
Check the data
The observed data must match the pathogen, target, spatial unit and cadence of the forecast. Before modelling, check that:
- reporting dates follow a regular cadence;
- each series uses the same reporting calendar and end date;
- enough history is available before the first evaluation date;
- historical snapshots or revisions are retained; and
- recent observations are complete enough to use directly.
Use get_data() for supported US respiratory hospital
data. For other sources, use check_data() and follow
vignette("external_data").
If recent observations are revised as reports arrive, retain the full
revision history and use get_ncast() before
forecasting.
Start the workflow
Once the question and data are suitable:
- Fetch or validate the data with
get_data()orcheck_data(). - Correct reporting delays with
get_ncast()when revision history is available. - Compare models with
get_cv(). - Produce the forecast with
get_fcast().
See vignette("insight.cast") for a complete example.