Source catalog

Treasury Forecast

Department of the Treasury and bureau acquisition forecasts.

← Source catalog

Source, grain and coverage

Treasury Forecast ↗

Current and historical official forecast publications. A historical fiscal-year entry is not a current open opportunity.

Historical forecast documents can be retained alongside newer publications. Agency codes, fiscal years and exact solicitation dates can be unavailable. An unchanged document can produce a successful zero-change check without making its plans current.

Collection schedule: Daily; unchanged documents may produce no new records.

Records describe public source observations. Missing values remain unknown; historical observations do not establish current status.

Definitions audited . Use source status and the returned watermarks to inspect current collection health.

REST and MCP access

Use a credential with intelligence scope and enable that data domain in your workspace.

curl 'https://www.govbiz.ai/api/v2/catalogue/sources/treasury-forecast-refresh/records?limit=2' \
  -H "Authorization: Bearer $GOVBIZ_API_KEY"

The primary dataset is acquisition_forecasts. Select another dataset from this source with dataset_id. Supported field names can be used as exact filters; the versioned query endpoint also supports declared ranges and list operators.

Through canonical /mcp, use govbiz_discover_datasets, govbiz_describe_dataset, govbiz_search_records, and govbiz_get_evidence. Cross-source relationships use govbiz_get_related_records and require access to every involved domain.

API contracts · MCP setup · Workspace data domains

Query this source →

Acquisition Forecasts

acquisition_forecasts · Schema 1

One current retained version of a source-qualified forecast record per forecast_id; source_key identifies the publishing feed rather than necessarily the buying agency.

Search modes: structured, lexical. History: Current retained projection; exact historical reconstruction is unsupported.

Measures: record_count. Monetary values use decimal strings with declared units. Unknown amounts do not become zero.

Field definitions and supported filters · 54 fields
FieldType / unitMeaningAvailability and filters
forecast_idstringSource-record UUID in the forecast current view.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
canonical_requirement_idstringGovBiz resolved requirement identity shared by confirmed memberships.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
source_idstringGovBiz source-registry UUID in these SQL relations; not the collector job ID or publisher record ID.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
source_keystringStable registry source key; separate from UUID and collector job aliases.Storage and value limits: Maximum 120 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
source_namestringHuman source/publisher label.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
source_record_idstringPublisher-native record identifier, or explicitly marked fallback identity, within a source.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
source_record_urlstringPublic publisher URL for a particular record when available.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
source_document_urlstringPublic publisher URL for the source file/document.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
record_typestringSource record kind; grants synopsis/forecast and acquisition forecast/expiring/bid-board differ.Storage and value limits: Maximum 48 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
first_observed_atdatetimeEarliest retained observation of this record/source identity.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte
last_observed_atdatetimeMost recent retained observation of this record/source identity, including unchanged observations.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte
is_activebooleanStored source record lifecycle flag; not an award or procurement approval.Storage and value limits: Boolean physical type; defaults/omitted source fields can still mean unverified or not collected.Values can be missingeq, in, is_null
forecast_version_idstringIdentifier of the particular normalized forecast version.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
retrieval_idstringImmutable public source retrieval reference used for evidence.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
parser_versionstringParser/normalization implementation version used for a stored parse.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
agency_codestringStored source agency identifier; namespace can be CGAC, FPDS, top-tier or publisher-specific and must be declared.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Every current forecast view agency code is null; organization resolution must be explicit.Not collected; returned as unknowneq, in, is_null, contains
agency_namestringSource agency name; a label whose scope can be department, bureau or office.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
subagency_codestringSource bureau/subagency identifier, not automatically the same namespace as agency_code.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
subagency_namestringSource bureau/subagency label.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contracting_office_codestringSource contracting-office identifier; requires an issuer/office namespace.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contracting_office_namestringSource contracting-office label.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
fiscal_yearintegerSource/derived US federal fiscal year; October 1 starts the following numbered year, with source-specific precision.Storage and value limits: Signed 32-bit integer; logical domain constraints can be narrower.Values can be missingeq, in, is_null, gte, lte
requirement_titlestringPublished planned acquisition requirement title.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
requirement_descriptionstringPublisher description of a planned requirement.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
naics_codestringSource industry classification code; link with the NAICS edition and declared precision.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Require a classification edition; do not join broad prefixes as exact identities.Values can be missingeq, in, is_null, contains
psc_codestringProduct and Service Code classification; it is not a NAICS industry code.Storage and value limits: Maximum 16 characters; identifier rules can be narrower.Classification overlap is contextual, not record identity.Values can be missingeq, in, is_null, contains
estimated_value_mindecimal / USDNormalized lower endpoint of a publisher acquisition estimate; preserve the original range and open-bound wording.Storage and value limits: Precision 20, scale 2; absolute value below 10^18; rounding on assignment; checks can narrow the range.Current parser converts numeric tokens to min/max and may lose open-bound wording or partial suffixes; retain estimated_value_text.Values can be missingeq, in, is_null, gte, lte
estimated_value_maxdecimal / USDNormalized upper endpoint of a publisher acquisition estimate; a range parser can lose open-bound meaning.Storage and value limits: Precision 20, scale 2; absolute value below 10^18; rounding on assignment; checks can narrow the range.Current parser converts numeric tokens to min/max and may lose open-bound wording or partial suffixes; retain estimated_value_text.Values can be missingeq, in, is_null, gte, lte
estimated_value_textstringOriginal publisher estimate/range text retained for interpretation and provenance.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
estimated_solicitation_datedatePlanned solicitation date; HHS month/year values are currently converted to the first day.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
estimated_solicitation_quarterstringPublisher anticipated solicitation quarter label; do not synthesize an exact day.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
estimated_award_datedatePlanned award date; month/quarter precision must remain explicit.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
estimated_award_quarterstringPublisher anticipated award quarter label; do not synthesize an exact day.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
period_of_performance_startdatePublished forecast planned performance start date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
period_of_performance_enddatePublished forecast planned performance end date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
place_of_performance_citystringSource city of the place of performance; distinct from recipient legal address.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
place_of_performance_statestringSource state/territory of the place of performance; distinct from recipient legal address.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
place_of_performance_countrystringSource country of the place of performance; distinct from recipient legal address.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
competition_typestringPublisher planned competition category; not an observed competition outcome.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
set_aside_typestringSource set-aside label/category; categories and aliases must not be guessed.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
small_business_programstringPublished small-business program label on an acquisition plan.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
acquisition_strategystringPublisher acquisition-plan strategy text.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contract_vehiclestringPublisher vehicle plan label; not proof of a task-order/parent relationship.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contract_typestringPublisher intended contract instrument/pricing category.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
new_or_follow_onstringPublisher new/follow-on planning label; distinguish from a confirmed predecessor link.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
incumbent_namestringPublisher named incumbent; a label needing identity resolution.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
incumbent_award_idstringPublisher incumbent contract reference; qualify by agency/issuer before joining.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
forecast_statusstringPublisher forecast status label; not the GovBiz collection health status.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_namestringSource primary notice point of contact name label; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_titlestringSource primary notice point of contact published role/title; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_emailstringSource primary notice point of contact email address; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_phonestringSource primary notice point of contact telephone text; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
published_atdatetimePublisher publication timestamp when supplied.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte
source_updated_atdatetimePublisher update timestamp when supplied; separate from collection time.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte

Forecast Versions

forecast_versions · Schema 1

One immutable retained forecast version per id, linked by record_id and version_number.

Search modes: structured, lexical. History: Retained observation/version queries.

Measures: record_count. Monetary values use decimal strings with declared units. Unknown amounts do not become zero.

Field definitions and supported filters · 48 fields
FieldType / unitMeaningAvailability and filters
idstringGovBiz surrogate row identifier; interpret together with its relation, not as a source-native key.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
record_idstringGovBiz source-record row ID connecting immutable versions and observations.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
version_numberintegerPositive sequence number within a source record/version family.Storage and value limits: Signed 32-bit integer; logical domain constraints can be narrower.Values can be missingeq, in, is_null, gte, lte
retrieval_idstringImmutable public source retrieval reference used for evidence.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
parser_versionstringParser/normalization implementation version used for a stored parse.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
normalized_hashstringSHA-256 of normalized record content; parser-dependent and distinct from raw bytes.Storage and value limits: Fixed width 64 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
version_originstringWhether a version came from observation, parser reprocessing or manual correction.Storage and value limits: Maximum 24 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
source_locatorjsonStructured evidence locator such as file, sheet, row, page or source field mapping.Storage and value limits: Nested producer-specific structure; no fixed public field contract; redact and project known subfields.File/sheet/row/cell/page location and raw field mapping are evidence; do not use row number as persistent identity.Values can be missingis_null
agency_codestringStored source agency identifier; namespace can be CGAC, FPDS, top-tier or publisher-specific and must be declared.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Every current forecast view agency code is null; organization resolution must be explicit.Values can be missingeq, in, is_null, contains
agency_namestringSource agency name; a label whose scope can be department, bureau or office.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
subagency_codestringSource bureau/subagency identifier, not automatically the same namespace as agency_code.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
subagency_namestringSource bureau/subagency label.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contracting_office_codestringSource contracting-office identifier; requires an issuer/office namespace.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contracting_office_namestringSource contracting-office label.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
fiscal_yearintegerSource/derived US federal fiscal year; October 1 starts the following numbered year, with source-specific precision.Storage and value limits: Signed 32-bit integer; logical domain constraints can be narrower.Values can be missingeq, in, is_null, gte, lte
requirement_titlestringPublished planned acquisition requirement title.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
requirement_descriptionstringPublisher description of a planned requirement.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
naics_codestringSource industry classification code; link with the NAICS edition and declared precision.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Require a classification edition; do not join broad prefixes as exact identities.Values can be missingeq, in, is_null, contains
psc_codestringProduct and Service Code classification; it is not a NAICS industry code.Storage and value limits: Maximum 16 characters; identifier rules can be narrower.Classification overlap is contextual, not record identity.Values can be missingeq, in, is_null, contains
estimated_value_mindecimal / USDNormalized lower endpoint of a publisher acquisition estimate; preserve the original range and open-bound wording.Storage and value limits: Precision 20, scale 2; absolute value below 10^18; rounding on assignment; checks can narrow the range.Current parser converts numeric tokens to min/max and may lose open-bound wording or partial suffixes; retain estimated_value_text.Values can be missingeq, in, is_null, gte, lte
estimated_value_maxdecimal / USDNormalized upper endpoint of a publisher acquisition estimate; a range parser can lose open-bound meaning.Storage and value limits: Precision 20, scale 2; absolute value below 10^18; rounding on assignment; checks can narrow the range.Current parser converts numeric tokens to min/max and may lose open-bound wording or partial suffixes; retain estimated_value_text.Values can be missingeq, in, is_null, gte, lte
estimated_value_textstringOriginal publisher estimate/range text retained for interpretation and provenance.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
estimated_solicitation_datedatePlanned solicitation date; HHS month/year values are currently converted to the first day.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
estimated_solicitation_quarterstringPublisher anticipated solicitation quarter label; do not synthesize an exact day.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
estimated_award_datedatePlanned award date; month/quarter precision must remain explicit.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
estimated_award_quarterstringPublisher anticipated award quarter label; do not synthesize an exact day.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
period_of_performance_startdatePublished forecast planned performance start date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
period_of_performance_enddatePublished forecast planned performance end date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
place_of_performance_citystringSource city of the place of performance; distinct from recipient legal address.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
place_of_performance_statestringSource state/territory of the place of performance; distinct from recipient legal address.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
place_of_performance_countrystringSource country of the place of performance; distinct from recipient legal address.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
competition_typestringPublisher planned competition category; not an observed competition outcome.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
set_aside_typestringSource set-aside label/category; categories and aliases must not be guessed.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
small_business_programstringPublished small-business program label on an acquisition plan.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
acquisition_strategystringPublisher acquisition-plan strategy text.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contract_vehiclestringPublisher vehicle plan label; not proof of a task-order/parent relationship.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
contract_typestringPublisher intended contract instrument/pricing category.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
new_or_follow_onstringPublisher new/follow-on planning label; distinguish from a confirmed predecessor link.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
incumbent_namestringPublisher named incumbent; a label needing identity resolution.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
incumbent_award_idstringPublisher incumbent contract reference; qualify by agency/issuer before joining.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
forecast_statusstringPublisher forecast status label; not the GovBiz collection health status.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_namestringSource primary notice point of contact name label; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_titlestringSource primary notice point of contact published role/title; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_emailstringSource primary notice point of contact email address; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
poc_phonestringSource primary notice point of contact telephone text; scope is the associated public record, not every procurement at the agency.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
published_atdatetimePublisher publication timestamp when supplied.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte
source_updated_atdatetimePublisher update timestamp when supplied; separate from collection time.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte
created_atdatetimeGovBiz row/version creation time.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte

Forecast Changes

forecast_changes · Schema 1

One retained detected forecast field/event change per id, linked by record_id and detected_at; parser-reprocess classification can be incomplete.

Search modes: structured. History: Retained observation/version queries.

Measures: record_count. Monetary values use decimal strings with declared units. Unknown amounts do not become zero.

Field definitions and supported filters · 12 fields
FieldType / unitMeaningAvailability and filters
idstringGovBiz surrogate row identifier; interpret together with its relation, not as a source-native key.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
record_idstringGovBiz source-record row ID connecting immutable versions and observations.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
from_version_idstringPrevious immutable version involved in a change event.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
to_version_idstringNew immutable version involved in a change event.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
field_namestringNormalized field whose value changed between immutable versions.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
event_typestringRelation-specific event category defined by its producer/constraint.Storage and value limits: Maximum 40 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
old_valuejsonPrevious normalized field value in its original JSON type.Storage and value limits: Nested producer-specific structure; no fixed public field contract; redact and project known subfields.Values can be missingis_null
new_valuejsonNew normalized field value in its original JSON type.Storage and value limits: Nested producer-specific structure; no fixed public field contract; redact and project known subfields.Values can be missingis_null
detected_atdatetimeTime a collector detected a difference between stored observations.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte
effective_datedateIntended publisher-effective calendar date of a forecast change; the current change-event insertion does not supply it. detected_at is the observation time, not an inferred effective date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
source_retrieval_idstringPublic retrieval supporting a change event.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
materialitystringCollector classification of a field change; not monetary materiality by default.Storage and value limits: Maximum 16 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains