Data dictionary
Every field we emit, mapped to the bulk-extract column it came from. The extract's exact header set is confirmed against each daily file; aliases are handled in the ingest layer.
| Event field | Extract column | Type | Notes |
|---|---|---|---|
notice_id | NoticeId | string | Stable ID; our dedupe key. |
title | Title | string | Keyword matching runs against this field and description. |
naics | NaicsCode | string|null | 6-digit NAICS; filter by prefix or exact. |
set_aside | SetASideCode | string|null | e.g. SBA, 8A; matched case-insensitively. |
agency | Department/Ind.Agency | string|null | Issuing department/agency. |
posted_date | PostedDate | string|null | As published. |
response_deadline | ResponseDeadLine | string|null | Deadline changes emit opportunity.changed. |
status | Active | string|null | Normalized; cancellations/awards emit their own event kinds. |
description | Description | string|null | Plain-text notice description from the extract's final column (flattened; nominal 5,000-char upstream cap, occasionally exceeded). null when the extract row has none. |
description_link | Link (or derived) | string | Always present: the SAM.gov notice URL. |
changed_fields | computed | string[] | Which fields differed since the previous daily snapshot. |
event | computed | enum | opportunity.new|changed|cancelled|awarded from snapshot-to-snapshot diffing. |
Related: Parsing the SAM.gov daily bulk extract · payload schema.