{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/fxmacrodata/main/json-schema/fxmacrodata-announcement-response-schema.json", "title": "AnnouncementResponse", "x-generated": "2026-10-18", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/fxmacrodata-openapi.json#/components/schemas/AnnouncementResponse", "properties": { "currency": { "type": "string", "title": "Currency" }, "indicator": { "type": "string", "title": "Indicator" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Unit", "description": "Unit of `data[].val` in this response, from the series catalogue: the normalized unit by default, the percent unit of a derived `frequency` view (`%YoY`, `%QoQ`, `%MoM`), or `value_metadata.source_unit` when `value_mode=source`. Omitted when the catalogue declares no unit." }, "value_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Name" }, "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "source_series_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Series Id" }, "source_series_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Series Name" }, "source_local_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Local Name" }, "seasonal_adjustment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Seasonal Adjustment" }, "price_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Price Basis" }, "is_proxy": { "type": "boolean", "title": "Is Proxy", "default": false }, "proxy_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Proxy Note" }, "provenance": { "properties": { "publisher": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publisher" }, "publisher_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publisher Url" }, "source_series_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Series Id" }, "source_series_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Series Name" }, "source_local_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Local Name" }, "seasonal_adjustment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Seasonal Adjustment" }, "price_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Price Basis" }, "storage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Storage", "description": "Data provider label for the served series. Always `FXMacroData`." }, "served_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Served By", "description": "FXMacroData endpoint that serves this series." }, "timestamp_field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timestamp Field" }, "value_field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value Field" }, "is_proxy": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Proxy" }, "proxy_note": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Proxy Note" } }, "type": "object", "title": "AnnouncementProvenance", "description": "Publisher and source lineage for the served series." }, "policy_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Role" }, "policy_structure": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Structure" }, "comparison_compatible": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Comparison Compatible" }, "policy_family": { "anyOf": [ { "items": { "$ref": "#/$defs/PolicyFamilyEntry" }, "type": "array" }, { "type": "null" } ], "title": "Policy Family" }, "has_official_forecast": { "type": "boolean", "title": "Has Official Forecast" }, "requested_start_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested Start Date" }, "requested_end_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested End Date" }, "requested_window_has_data": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requested Window Has Data" }, "page_includes_latest_available": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Page Includes Latest Available" }, "start_date": { "type": "string", "title": "Start Date" }, "end_date": { "type": "string", "title": "End Date" }, "earliest_available_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Earliest Available Date" }, "latest_available_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Latest Available Date" }, "cb_target": { "anyOf": [ { "$ref": "#/$defs/CBTargetInfo" }, { "type": "null" } ] }, "remap": { "properties": { "applied": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Applied" }, "canonical_indicator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Canonical Indicator" }, "rule_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rule Id" }, "transform": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Transform" } }, "type": "object", "title": "AnnouncementRemap", "description": "Set when the requested indicator resolved to a canonical series." }, "filters": { "properties": { "seasonality": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Seasonality" }, "basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Basis" }, "annualization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Annualization" }, "period_aggregation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Period Aggregation" }, "frequency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Frequency" }, "revisions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Revisions" } }, "type": "object", "title": "SeriesFilters", "description": "The series-variant filters this request was resolved with.\n\nA null means the caller did not constrain that dimension." }, "selected_series_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selected Series Id" }, "selected_series": { "properties": { "series_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Series Id" }, "label": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Label" }, "source_series_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Series Id" }, "seasonality": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Seasonality" }, "basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Basis" }, "annualization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Annualization" }, "period_aggregation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Period Aggregation" }, "frequency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Frequency" }, "revisions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Revisions" } }, "type": "object", "title": "SelectedSeries", "description": "The concrete series variant chosen for this response." }, "supported_options": { "anyOf": [ { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, { "type": "null" } ], "title": "Supported Options" }, "data_quality": { "$ref": "#/$defs/DataQuality" }, "replay": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Replay" }, "dataset_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dataset Version" }, "value_mode": { "type": "string", "enum": [ "normalized", "source" ], "title": "Value Mode", "default": "normalized" }, "value_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Value Metadata" }, "pagination": { "$ref": "#/$defs/PaginationInfo" }, "freemium_window": { "anyOf": [ { "$ref": "#/$defs/FreemiumWindow" }, { "type": "null" } ] }, "freemium_delay": { "anyOf": [ { "$ref": "#/$defs/FreemiumDelayNotice" }, { "type": "null" } ] }, "no_data": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "No Data" }, "data": { "items": { "$ref": "#/$defs/AnnouncementDataPoint" }, "type": "array", "title": "Data" } }, "type": "object", "required": [ "currency", "indicator", "has_official_forecast", "start_date", "end_date", "data_quality", "pagination", "data" ], "$defs": { "AnnouncementDataPoint": { "properties": { "source_validity_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Validity Status", "description": "`invalid_source_capture` marks a proven source/parser mistake retained only in the raw source/all audit view. It is excluded from economic revision selection and point-in-time replay. Absence is not source verification." }, "source_correction": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Source Correction", "description": "Audit evidence for an incorrect source capture, including the observed and expected series identities and any official correction citation. Original values and capture clocks remain unchanged." }, "announcement_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Announcement Id" }, "date": { "type": "string", "title": "Date" }, "val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Val" }, "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "source_url_scope": { "anyOf": [ { "type": "string", "enum": [ "release", "dataset", "series" ] }, { "type": "null" } ], "title": "Source Url Scope" }, "previous_value": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Previous Value" }, "previous_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Previous Date" }, "previous_announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Previous Announcement Datetime" }, "change": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Change" }, "change_from_previous": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Change From Previous" }, "pct_change_from_previous": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Change From Previous" }, "original_val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Original Val" }, "original_unit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Original Unit" }, "val_mom": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Val Mom" }, "observation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Observation Id" }, "announcement_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Announcement Datetime" }, "announcement_datetime_local": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Announcement Datetime Local" }, "release_time_assumed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Release Time Assumed", "description": "Present and true when announcement_datetime was derived from the publication lag measured on this series' confirmed releases, because no official release calendar reaches the period. Omitted on rows whose publication time was captured from the release." }, "release_time_upper_bound": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Release Time Upper Bound", "description": "Legacy estimate flag; does not establish point-in-time safety." }, "publication_time_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Time Status", "description": "What `announcement_datetime` on this row actually is. Present on every row that carries a value.\n\n- `confirmed`: read from the publisher's own release - an embargo instant printed on the document, or a publication timestamp the source served with the data.\n- `unverified`: a real timestamp that this row does not evidence the origin of. Most historical rows are in this state. It is not an estimate, and it is not proof.\n- `assumed_historical`: derived by this service from the lag its own confirmed releases show. Only permitted where both the period and the estimated publication precede 2025-11-06; see `release_time_assumed`.\n- `unknown`: no publication time. `announcement_datetime` is null and the observation is served on its period date alone.\n\nOnly `confirmed` is evidence of when the value became public. Gate point-in-time work on this field per row, never on a series-level claim." }, "publication_time_precision": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Time Precision", "description": "Resolution of `announcement_datetime`: `minute` when the publisher gave a clock time, `day` when only the release date was sourced, `unknown` otherwise." }, "publication_time_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Time Basis", "description": "Where an `unverified` time came from: `official_schedule` means the publisher's own release calendar listed this release at this time (a planned time, equal to `official_planned_release_datetime`). Absent for `confirmed` rows, which carry the publisher's own timestamp for the release." }, "vintage_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vintage Status" }, "is_first_release": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is First Release" }, "observed_at_ns": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Observed At Ns" }, "observed_at_ns_string": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Observed At Ns String" }, "collected_at_ns_string": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Collected At Ns String" }, "publication_at_ns": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Publication At Ns", "description": "Publisher-sourced publication instant, Unix epoch nanoseconds (UTC). Present only when the source states one; omitted otherwise." }, "publication_at_ns_string": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication At Ns String", "description": "`publication_at_ns` as a decimal string; present only alongside it." }, "announcement_source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Announcement Source Url", "description": "The specific release this value was read from - for USD CPI, the BLS archive page for that month's news release. Present only when a release-scoped citation is available; a dataset or landing-page URL is reported as `source_url` instead and is never promoted to this field." }, "source_artifact_sha256": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Artifact Sha256" }, "capture_time_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Capture Time Basis" }, "geography": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Geography" }, "period_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Period Basis" }, "methodology_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Methodology Id" }, "source_period_label_conflict": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Source Period Label Conflict" }, "source_methodology_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Methodology Status" }, "selected_vintage_known_at_ns": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selected Vintage Known At Ns" }, "replay_vintage_verified": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Replay Vintage Verified" }, "official_planned_release_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Official Planned Release Datetime" }, "official_planned_release_datetime_local": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Official Planned Release Datetime Local" }, "official_actual_release_datetime": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Official Actual Release Datetime" }, "official_actual_release_datetime_local": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Official Actual Release Datetime Local" }, "collected_at_ns": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Collected At Ns" }, "collected_at_iso": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Collected At Iso" }, "ingestion_latency_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Ingestion Latency Ms", "description": "Legacy stored nonnegative collection-minus-reference diagnostic in milliseconds, rounded to three decimals. Interpret only with `ingestion_latency_reference`; a planned reference measures from the schedule, not actual publication. Early captures clamp to zero. Use `release_timing` for separately evidenced publication/pickup bounds. Missing historical measurements are not synthesized.", "deprecated": true }, "ingestion_latency_reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Ingestion Latency Reference", "description": "Original clock for `ingestion_latency_ms`: `official_planned_release_datetime`, or `official_actual_release_datetime` when confirmed. Retained with the stored diagnostic; not reinterpreted as source-pickup or customer-delivery latency.", "deprecated": true }, "release_timing": { "properties": { "scheduled_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scheduled At", "description": "Official scheduled release time (ISO 8601, UTC), or null when no exact time was scheduled. Latency is never measured from this time." }, "published_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Published At", "description": "The first observed read showing this period (ISO 8601, UTC, microsecond precision). This is an upper bound on publication, not an exact publisher timestamp. Same instant as `published_by`. Null when the capture did not record it." }, "available_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Available At", "description": "When this value was committed to the FXMacroData API data store (ISO 8601, UTC, microsecond precision). This clock does not measure client receipt. Null when the commit time was not recorded." }, "latency_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latency Ms", "description": "Milliseconds from publication to `available_at`, measured from `published_after` (the last read still showing the previous period), so it is the longest the gap can have been. Never measured from the scheduled time. Null when publication was not bounded or `available_at` is missing." }, "latency_reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Latency Reference", "description": "Reference for `latency_ms`: `publication_to_store_commit_upper_bound`. This legacy metric ends at the store commit; source capture is measured separately by `source_pickup_latency_min_ms` and `source_pickup_latency_max_ms`." }, "publication_delay_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Publication Delay Ms", "description": "Milliseconds from `scheduled_at` to the observed upper publication bound `published_by`. This is a schedule diagnostic, not the actual publisher delay or pickup latency. Null when either timestamp is missing." }, "published_after": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Published After", "description": "The official source still showed the previous period after this instant (ISO 8601, UTC), or its `Last-Modified` header placed the update after it. Null when no such read was made." }, "published_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Published By", "description": "The first read of the official source that showed this period completed at this instant (ISO 8601, UTC), so the release was public by then. Null when the window could not be bounded." }, "publication_window_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Window Basis", "description": "How the window was bounded: `poll_bracket` (a read showing the previous period, then a read showing this one), `last_modified` (the source's `Last-Modified` header sets the lower bound), or `first_new_period_read_only` (only the upper bound is known)." }, "collected_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Collected At", "description": "When FXMacroData first captured this value from the official source (ISO 8601, UTC). Same instant as `collected_at_iso`." }, "pickup_ms_min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pickup Ms Min", "description": "Milliseconds from `published_by` to `available_at`: the shortest time the value can have taken to reach store commit after publication, not edge availability or client receipt. Null when either time is missing or `available_at` precedes `published_by`." }, "pickup_ms_max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pickup Ms Max", "description": "Milliseconds from `published_after` to `available_at`: the value reached store commit within this long of publication (same figure as `latency_ms`), not edge availability or client receipt. Null when no read showed the previous period still in place, or when `available_at` is missing." }, "picked_up_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Picked Up At", "description": "When FXMacroData accepted this value from the official source (ISO 8601, UTC, microsecond precision). This is separate from the store commit and from a source observation that could not be accepted. Null when the capture clock is unavailable." }, "source_pickup_latency_min_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Source Pickup Latency Min Ms", "description": "Minimum milliseconds from actual source publication to accepted pickup: `picked_up_at` minus `published_by`. Null when the required observation clocks are unavailable or inconsistent." }, "source_pickup_latency_max_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Source Pickup Latency Max Ms", "description": "Maximum milliseconds from actual source publication to accepted pickup: `picked_up_at` minus the proven lower publication bound. Null when that bound or a valid pickup clock is unavailable." }, "source_pickup_latency_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Source Pickup Latency Ms", "description": "Exact milliseconds from actual publication to accepted pickup. Null for observed publication windows because their bounds do not establish an exact publisher availability timestamp." }, "source_pickup_outcome": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Pickup Outcome", "description": "`met` when the upper latency bound is below `source_pickup_slo_ms`; `breached` when the lower bound is at or above it; `unverified` when the evidence cannot decide; `not_observed` when no accepted pickup clock is recorded." }, "source_pickup_reference": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Pickup Reference", "description": "Evidence for pickup latency: `observed_publication_bracket`, `first_new_period_response_only`, `unverified_publication_clock`, or `source_pickup_not_observed`. A scheduled time is never used as the publication reference." }, "source_pickup_slo_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Source Pickup Slo Ms", "description": "The strict latency threshold, in milliseconds, used to classify source pickup. The default is 1000 milliseconds." } }, "type": "object", "title": "ReleaseTiming", "description": "Scheduled, observed publication, capture and commit times for a release.\n\nPresent on rows captured at release time from the official source. The\npublication window is bounded by FXMacroData's own reads of the official\nsource; it is not a timestamp supplied by the publisher. Bounds that\ncould not be established are null. Source pickup stops at accepted capture;\nlegacy `latency_ms` and `pickup_ms_*` stop at the store commit. A null\nmeasurement does not establish whether a release was late." }, "pct_change": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Change" }, "pct_change_yoy": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Change Yoy" }, "pct_change_qoq": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Change Qoq" }, "pct_change_mom": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Change Mom" }, "pct_change_12m": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Change 12M" }, "revisions": { "anyOf": [ { "items": { "$ref": "#/$defs/RevisionEntry" }, "type": "array" }, { "type": "null" } ], "title": "Revisions" }, "revisions_summary": { "anyOf": [ { "$ref": "#/$defs/RevisionsSummary" }, { "type": "null" } ], "description": "Compact view only (`fields=compact`): retained value groups with their earliest and latest values. Does not certify first release or publisher revision count. Replaces the full `revisions[]` ledger." }, "outside_requested_window": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Outside Requested Window" }, "requested_start_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested Start Date" }, "requested_end_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested End Date" }, "returned_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Returned Reason" }, "staleness_days": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Staleness Days" }, "canonical_indicator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Canonical Indicator" }, "raw_indicator": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Raw Indicator" }, "remap_applied": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Remap Applied" }, "remap_rule_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remap Rule Id" }, "remap_segment_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remap Segment Id" } }, "type": "object", "required": [ "date" ], "title": "AnnouncementDataPoint" }, "CBTargetEntry": { "properties": { "effective_from": { "type": "string", "title": "Effective From" }, "target": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Target" }, "lower": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Lower" }, "upper": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Upper" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Notes" } }, "type": "object", "required": [ "effective_from" ], "title": "CBTargetEntry", "description": "A single central-bank target entry valid from ``effective_from``." }, "CBTargetInfo": { "properties": { "description": { "type": "string", "title": "Description" }, "source": { "type": "string", "title": "Source" }, "current": { "$ref": "#/$defs/CBTargetEntry" }, "history": { "items": { "$ref": "#/$defs/CBTargetEntry" }, "type": "array", "title": "History" } }, "type": "object", "required": [ "description", "source", "current", "history" ], "title": "CBTargetInfo", "description": "Central-bank target metadata for an indicator.\n\n``current`` is the entry effective as of the response ``end_date``.\n``history`` contains every known target regime in ascending date order." }, "CommodityCoverage": { "properties": { "scope": { "type": "string", "title": "Scope" }, "requested_start": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested Start" }, "requested_end": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested End" }, "available_start": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Available Start" }, "available_end": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Available End" }, "input_row_count": { "type": "integer", "title": "Input Row Count" }, "row_count": { "type": "integer", "title": "Row Count" }, "distinct_date_count": { "type": "integer", "title": "Distinct Date Count" }, "duplicate_date_row_count": { "type": "integer", "title": "Duplicate Date Row Count" }, "excluded_weekend_row_count": { "type": "integer", "title": "Excluded Weekend Row Count" }, "invalid_date_row_count": { "type": "integer", "title": "Invalid Date Row Count" }, "expected_weekday_label_count": { "type": "integer", "title": "Expected Weekday Label Count" }, "missing_weekday_label_count": { "type": "integer", "title": "Missing Weekday Label Count" }, "largest_missing_weekday_run": { "type": "integer", "title": "Largest Missing Weekday Run" }, "largest_calendar_gap_days": { "type": "integer", "title": "Largest Calendar Gap Days" }, "missing_weekday_ranges": { "items": { "$ref": "#/$defs/CommodityMissingWeekdayRange" }, "type": "array", "title": "Missing Weekday Ranges" }, "longest_continuous_weekday_segment": { "$ref": "#/$defs/CommodityCoverageSegment" }, "latest_continuous_weekday_segment": { "$ref": "#/$defs/CommodityCoverageSegment" }, "sparse_history": { "type": "boolean", "title": "Sparse History" }, "coverage_basis": { "type": "string", "title": "Coverage Basis" }, "continuous_coverage_verified": { "type": "boolean", "title": "Continuous Coverage Verified", "default": false }, "reference_only": { "type": "boolean", "title": "Reference Only", "default": true }, "executable_quotes": { "type": "boolean", "title": "Executable Quotes", "default": false }, "provenance_version": { "type": "integer", "title": "Provenance Version" }, "repaired_excluded_weekend_row_count": { "type": "integer", "title": "Repaired Excluded Weekend Row Count", "default": 0 }, "repaired_invalid_date_row_count": { "type": "integer", "title": "Repaired Invalid Date Row Count", "default": 0 } }, "type": "object", "required": [ "scope", "input_row_count", "row_count", "distinct_date_count", "duplicate_date_row_count", "excluded_weekend_row_count", "invalid_date_row_count", "expected_weekday_label_count", "missing_weekday_label_count", "largest_missing_weekday_run", "largest_calendar_gap_days", "missing_weekday_ranges", "longest_continuous_weekday_segment", "latest_continuous_weekday_segment", "sparse_history", "coverage_basis", "provenance_version" ], "title": "CommodityCoverage" }, "CommodityCoverageSegment": { "properties": { "start_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" }, "end_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" }, "row_count": { "type": "integer", "title": "Row Count" } }, "type": "object", "required": [ "row_count" ], "title": "CommodityCoverageSegment" }, "CommodityMissingWeekdayRange": { "properties": { "start_date": { "type": "string", "title": "Start Date" }, "end_date": { "type": "string", "title": "End Date" }, "weekday_count": { "type": "integer", "title": "Weekday Count" } }, "type": "object", "required": [ "start_date", "end_date", "weekday_count" ], "title": "CommodityMissingWeekdayRange" }, "DataQuality": { "properties": { "source_freshness": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Freshness" }, "source_monitoring_complete": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Source Monitoring Complete" }, "known_source_gap": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Known Source Gap" }, "source_checked_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Source Checked At" }, "source_check_expires_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Source Check Expires At" }, "latest_published_period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Latest Published Period" }, "source_permission_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Permission Status" }, "commodity_coverage": { "anyOf": [ { "$ref": "#/$defs/CommodityCoverage" }, { "type": "null" } ] }, "stored_history_coverage": { "anyOf": [ { "$ref": "#/$defs/CommodityCoverage" }, { "type": "null" } ] }, "point_in_time_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Point In Time Basis" }, "is_official": { "type": "boolean", "title": "Is Official" }, "is_proxy": { "type": "boolean", "title": "Is Proxy" }, "is_fallback": { "type": "boolean", "title": "Is Fallback" }, "is_stale": { "type": "boolean", "title": "Is Stale" }, "has_announcement_datetime": { "type": "boolean", "title": "Has Announcement Datetime" }, "point_in_time_safe": { "type": "boolean", "title": "Point In Time Safe", "description": "Whether the returned values have verified availability and vintage evidence; estimated release times do not qualify." }, "unverified_vintage_count": { "type": "integer", "title": "Unverified Vintage Count", "default": 0 }, "unknown_publication_time_count": { "type": "integer", "title": "Unknown Publication Time Count", "default": 0 }, "latest_available_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Latest Available Date" }, "last_updated": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Updated" }, "data_lag_days": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Data Lag Days" }, "source_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Name" }, "source_type": { "type": "string", "enum": [ "official", "public", "fallback", "derived" ], "title": "Source Type" }, "is_derived": { "type": "boolean", "title": "Is Derived", "default": false }, "row_count": { "type": "integer", "title": "Row Count", "default": 0 }, "announcement_datetime_count": { "type": "integer", "title": "Announcement Datetime Count", "default": 0 }, "missing_announcement_datetime_count": { "type": "integer", "title": "Missing Announcement Datetime Count", "default": 0 }, "has_assumed_release_times": { "type": "boolean", "title": "Has Assumed Release Times", "description": "True when at least one row in the quality scope carries a publication timestamp derived from the publication lag measured on that series' own confirmed releases, because no official release calendar reaches the period.", "default": false }, "assumed_release_time_count": { "type": "integer", "title": "Assumed Release Time Count", "description": "Number of rows in the quality scope whose publication timestamp was derived rather than captured. Compare against row_count to size the derived portion of the requested window.", "default": 0 }, "bounded_release_time_count": { "type": "integer", "title": "Bounded Release Time Count", "description": "Legacy rows carrying an upper-bound estimate flag; this does not certify replay safety.", "default": 0 }, "unbounded_release_time_count": { "type": "integer", "title": "Unbounded Release Time Count", "description": "Assumed timestamps without proven availability bounds.", "default": 0 }, "quality_scope": { "type": "string", "title": "Quality Scope", "default": "full_result" }, "stale_after_days": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stale After Days" }, "requested_window_has_data": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requested Window Has Data" }, "requested_window_latest_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requested Window Latest Date" }, "requested_window_includes_latest_available": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requested Window Includes Latest Available" }, "page_includes_latest_available": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Page Includes Latest Available" }, "returned_latest_available_before_window": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Returned Latest Available Before Window" }, "staleness_days": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Staleness Days" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" }, "datetime_field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datetime Field" }, "datetime_precision": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datetime Precision" }, "datetime_semantics": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Datetime Semantics" }, "source_legs": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Source Legs" }, "historical_point_in_time": { "anyOf": [ { "$ref": "#/$defs/PointInTimeCompleteness" }, { "type": "null" } ] } }, "type": "object", "required": [ "is_official", "is_proxy", "is_fallback", "is_stale", "has_announcement_datetime", "point_in_time_safe", "source_type" ], "title": "DataQuality" }, "FreemiumDelayNotice": { "properties": { "applied": { "type": "boolean", "title": "Applied" }, "delay_seconds": { "type": "integer", "title": "Delay Seconds" }, "delay_minutes": { "type": "integer", "title": "Delay Minutes" }, "cutoff": { "type": "integer", "title": "Cutoff" }, "cutoff_iso": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cutoff Iso" }, "withheld_count": { "type": "integer", "title": "Withheld Count" }, "message": { "type": "string", "title": "Message" }, "subscribe_url": { "type": "string", "title": "Subscribe Url" }, "next_available_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Next Available At" }, "next_available_at_iso": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Available At Iso" } }, "type": "object", "required": [ "applied", "delay_seconds", "delay_minutes", "cutoff", "withheld_count", "message", "subscribe_url" ], "title": "FreemiumDelayNotice", "description": "How far behind real time a free-tier response is, and what that costs.\n\nPresent only for callers without a paid key, and present whether or not\nanything was actually withheld: a delayed response must never be mistakable\nfor a current one. ``withheld_count`` is how many releases were held back\nfrom *this* response; ``next_available_at`` is when the oldest of them\nbecomes readable." }, "FreemiumWindow": { "properties": { "applied": { "type": "boolean", "title": "Applied" }, "max_days": { "type": "integer", "title": "Max Days" }, "cutoff_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cutoff Date" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message" } }, "type": "object", "required": [ "applied", "max_days" ], "title": "FreemiumWindow", "description": "Present only when the freemium window shortened the response.\n\nWithout it, ``pagination.total_count`` counts the clamped series and a\ntruncated history is indistinguishable from a genuinely short one." }, "PaginationInfo": { "properties": { "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit" }, "offset": { "type": "integer", "title": "Offset" }, "returned_count": { "type": "integer", "title": "Returned Count" }, "total_count": { "type": "integer", "title": "Total Count" }, "has_more": { "type": "boolean", "title": "Has More" }, "next_offset": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Next Offset" }, "page_includes_latest_available": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Page Includes Latest Available" } }, "type": "object", "required": [ "offset", "returned_count", "total_count", "has_more" ], "title": "PaginationInfo", "description": "Offset pagination state for a single page of results." }, "PointInTimeCompleteness": { "properties": { "row_count": { "type": "integer", "title": "Row Count" }, "announcement_datetime_count": { "type": "integer", "title": "Announcement Datetime Count" }, "missing_announcement_datetime_count": { "type": "integer", "title": "Missing Announcement Datetime Count" }, "assumed_release_time_count": { "type": "integer", "title": "Assumed Release Time Count", "default": 0 }, "bounded_release_time_count": { "type": "integer", "title": "Bounded Release Time Count", "default": 0 }, "unbounded_release_time_count": { "type": "integer", "title": "Unbounded Release Time Count", "default": 0 }, "unverified_vintage_count": { "type": "integer", "title": "Unverified Vintage Count", "default": 0 }, "unknown_publication_time_count": { "type": "integer", "title": "Unknown Publication Time Count", "default": 0 }, "point_in_time_safe": { "type": "boolean", "title": "Point In Time Safe" } }, "type": "object", "required": [ "row_count", "announcement_datetime_count", "missing_announcement_datetime_count", "point_in_time_safe" ], "title": "PointInTimeCompleteness", "description": "Coverage of source-confirmed publication timestamps for a dataset." }, "PolicyFamilyEntry": { "properties": { "indicator": { "type": "string", "title": "Indicator" }, "value_name": { "type": "string", "title": "Value Name" }, "role": { "type": "string", "title": "Role" } }, "type": "object", "required": [ "indicator", "value_name", "role" ], "title": "PolicyFamilyEntry" }, "RevisionEntry": { "properties": { "epoch": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Epoch" }, "val": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Val" }, "observed_at_ns": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Observed At Ns" }, "observed_at_ns_string": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Observed At Ns String" }, "publication_at_ns": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Publication At Ns", "description": "Publisher-sourced publication instant, Unix epoch nanoseconds (UTC). Present only when the source states one; omitted otherwise." }, "publication_at_ns_string": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication At Ns String", "description": "`publication_at_ns` as a decimal string; present only alongside it." }, "announcement_source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Announcement Source Url" }, "capture_time_basis": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Capture Time Basis" }, "publication_time_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Time Status" }, "publication_time_precision": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Publication Time Precision" }, "vintage_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vintage Status" }, "is_first_release": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is First Release" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "source_artifact_sha256": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Artifact Sha256" }, "change": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Change" }, "source_validity_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Validity Status", "description": "`invalid_source_capture` marks a proven source/parser mistake retained only in the raw source/all audit view. It is excluded from economic revision selection and point-in-time replay. Absence is not source verification." }, "source_correction": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Source Correction", "description": "Audit evidence for an incorrect source capture, including the observed and expected series identities and any official correction citation. Original values and capture clocks remain unchanged." } }, "type": "object", "title": "RevisionEntry", "description": "A value vintage or source capture for a period, identified by its clocks.\n\nSource/all audit views also retain explicitly marked incorrect captures.\n\n``val`` is ``Optional`` because some upstream sources publish placeholder\nrevisions (e.g. NZ DMO inflation-linked bond yields on non-trading days)\nwhere the value is NaN; those are returned as ``null``." }, "RevisionsSummary": { "properties": { "count": { "type": "integer", "title": "Count", "description": "Number of retained value groups; repeated consecutive captures may be grouped. Not a count of verified publisher revisions." }, "first": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "First", "description": "Earliest retained value in this view; not proof of the publisher's first release." }, "latest": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latest", "description": "Latest retained value in this view; not proof of publisher finality." }, "revised": { "type": "boolean", "title": "Revised", "description": "True when a later retained value differs from the earliest retained value." } }, "type": "object", "required": [ "count", "revised" ], "title": "RevisionsSummary", "description": "Revision ledger summary served by ``fields=compact``." } } }