Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.macrobymark.com/llms.txt

Use this file to discover all available pages before exploring further.

Data Vintages

Macroeconomic data gets revised. GDP numbers published today will be revised next month and again the month after. If you’re backtesting a trading strategy or validating a model, you need the data as it existed at a specific point in time, not the latest revised version.

Vintage capability by provider

ProviderCapabilityHow it works
FREDNativeFRED’s ALFRED service provides exact point-in-time snapshots going back to 1990.
BLSSimulatedBuilt from BLS revision history. Reconstructs what was published as of a given date.
BEASimulatedBuilt from BEA revision history. Same reconstruction approach as BLS.
All othersUnavailableReturns the current snapshot with a fallbackReason explaining the limitation.

Using vintages in API calls

Pass a vintage object when fetching observations or running forecasts:
{
  "vintage": {
    "mode": "specific",
    "date": "2024-06-15"
  }
}
If the provider doesn’t support vintages, you still get data back, but the response’s vintage audit object will have vintageCapability: "unavailable" and a fallbackReason explaining what happened.

Audit metadata

Every response that touches vintage data includes a vintage audit block:
{
  "vintage": {
    "mode": "specific",
    "date": "2024-06-15",
    "provider": "fred",
    "source": "fred/series/observations",
    "vintageCapability": "native",
    "fallbackReason": null
  }
}
Use vintageCapability to decide how much to trust the data for backtesting:
  • "native" - exact point-in-time data from the provider
  • "simulated" - reconstructed from revision history
  • "unavailable" - current snapshot, not a true vintage