Skip to content

Model manifest

Each published model directory contains manifest.json. It is the small discovery document paired with the larger site profiles.

Field Meaning
schemaVersion Manifest contract version
model Catalogue slug and directory identity
referenceTime Provider model initialization time
generatedAt Time this publication was generated
firstForecastHour, lastForecastHour, forecastHours Published step extent and count
memberCount Ensemble membership; absent on deterministic manifests
sites Published site name/slug pairs for this model run
stats Stable accounting core plus optional transport-specific numbers

The stable stats core is downloads, downloadBytes, retries, and durationMs. Other numeric keys can change; use them for diagnostics, not application logic.

Treat (referenceTime, generatedAt) as the publication identity. A new generatedAt with the same referenceTime is a corrected republication and should be re-ingested. It is not a schema release.

The manifest and a selected profile must describe the same model and referenceTime. Independently cached static files can briefly disagree during deployment, so TypeScript consumers use loadProfile() from windgram/transport rather than composing two unguarded fetches.

Use parseWindgramManifestJson from windgram/contract. A 404 means the model is not published at that root; an invalid document is also unavailable, not an invitation for view code to guess missing fields.

runs.json at the data root indexes each current manifest’s publication identity across models in one document. It does not replace the manifest’s site inventory or forecast extent.