# Data dictionary

## `data/notice_safeguard_scores.csv`

One row per candidate notice in the fixed study window.

| Field | Definition |
|---|---|
| `notice_id` | Stable SAM.gov opportunity notice identifier. |
| `solicitation_number` | Solicitation identifier as published by the agency. |
| `agency`, `subagency`, `office` | Contracting organization labels from SAM.gov. |
| `notice_type` | Included opportunity type. |
| `posted_date` | Public posting date. |
| `policy_period` | `pre_m_25_22` before April 3, 2025; otherwise `post_m_25_22`. |
| `small_business_set_aside` | Original SAM set-aside description. |
| `set_aside_group` | `set_aside`, `not_set_aside`, or `unknown`. |
| `naics`, `psc` | Industry and product/service classification codes when reported. |
| `ai_categories` | Pipe-delimited taxonomy matches; not a human eligibility judgment. |
| `hydration_status` | Result of public archived-resource lookup. |
| `public_attachment_count` | Public, extant file resources reported by SAM. |
| `scoreable_document_count` | Distinct extracted document hashes used for evidence rules. |
| ten category fields | Boolean deterministic evidence result for each named safeguard. |
| `raw_safeguard_count` | Number of deterministic category matches, 0–10. |
| `raw_safeguard_index` | `raw_safeguard_count × 10`; not publishable until validation passes. |
| `linked_award_ids` | Human-accepted award identifiers only. |
| `linked_award_amounts` | Human-accepted reported award amounts; never automatically summed. |
| `analysis_status` | `codex_reviewed`, `validated`, or `preliminary_unvalidated`. |

## `data/safeguard_evidence.csv`

One row per notice-category combination.

| Field | Definition |
|---|---|
| `notice_id`, `category` | Stable compound key. |
| `rule_found` | Whether any extracted document matched the deterministic rule. |
| `evidence_excerpt` | Up to three exact nominated excerpts, separated by ` | `. |
| `evidence_document` | Corresponding source-document paths. |
| `human_verified` | Legacy field; false in this single-Codex-review release. |
| `analysis_status` | Publication-gate state at generation. |

## Comparison tables

`safeguard_overall.csv`, `safeguard_by_agency.csv`, `safeguard_by_notice_type.csv`,
`safeguard_by_set_aside.csv`, and `safeguard_by_policy_period.csv` use a common long format.

| Field | Definition |
|---|---|
| grouping field | Exact group label used for the comparison. |
| `category` | Safeguard category. |
| `notice_count` | All candidate notices in the group. |
| `scoreable_notice_count` | Notices with at least one extracted, scoreable document. |
| `rule_positive_notices` | Notices with a deterministic category match. |
| `rule_positive_share_all_notices` | Matches divided by all group notices. |
| `rule_positive_share_scoreable_notices` | Matches divided by scoreable group notices. |
| `missing_public_text_share` | Share without scoreable public text. |

## Validation tables

`data/analysis_manifest.json` records the scope, policy cutoff, validation status, row counts, and
SHA-256 hash of every release table. `data/processed/safeguard_validation_summary.csv` contains
weighted corrected category prevalence, standard error, 95% confidence bounds, rule precision and
recall, completion, and uncertainty. Agreement and Cohen's kappa are null for the disclosed
single-Codex-review release rather than evidence of an incomplete gate.
