{
 "codeRevision": "bd1d32754e87e4936abf2d1190676183d1186447",
 "files": [
  {
   "bytes": 1491,
   "path": "biasTests.json",
   "sha256": "f9d41121b04497658b56a7941fe29d1ea956bbc437d228046587baeeb2ff5443"
  },
  {
   "bytes": 6175,
   "path": "clearance.json",
   "sha256": "2533ab185b38256f668e115830153c60dadd5497fed937698d4773b5f2f75778"
  },
  {
   "bytes": 382,
   "path": "document-access-by-platform.csv",
   "sha256": "6f707cb25e44410ce7045cd8368f764787198e2063503e4fb111ef2fcd4a9f93"
  },
  {
   "bytes": 425,
   "path": "document-access-by-state.csv",
   "sha256": "7e43dcae5e6102dc40797b6924d0b00261edf2689b48992c78118ba96adaee8a"
  },
  {
   "bytes": 2663,
   "path": "documentAccess.json",
   "sha256": "3a00802f2af451ba3c9d09baf6ebdec529b3a4485cdea52c80dd378aa78fe31a"
  },
  {
   "bytes": 4089,
   "path": "exclusions.json",
   "sha256": "36c4999f1ff2bc6b87e2f7b7108f066ee4b7270960590fd3ac60ad6f0cd085e4"
  },
  {
   "bytes": 8051,
   "path": "figures.json",
   "sha256": "36ae3994274d8c93fb05162993a29143abec1cddfb3f4ebdf527fed168a51841"
  },
  {
   "bytes": 6035,
   "path": "fragmentation.json",
   "sha256": "eca3547f873bc1ceaee0f8a5c1c36e3676c087b50ba8dbcf26a9968ed75458e0"
  },
  {
   "bytes": 2226,
   "path": "freshness.json",
   "sha256": "172da1752e06e6faf7639d06a304b8c290a546f19273c7598be3b79357d2970e"
  },
  {
   "bytes": 877,
   "path": "geography.json",
   "sha256": "021e8971e83fa42841a167e4b5cb8e4d48b6ea78a1bfd9ec6fe1d8cc8abeb6bb"
  },
  {
   "bytes": 757,
   "path": "platforms.csv",
   "sha256": "688b154b77359f44af2ae983e923625c6e9d940622c614df4db557f6d5d4a0e2"
  },
  {
   "bytes": 3764,
   "path": "portal-directory.csv",
   "sha256": "17101c3789bd66095d87e8e15cc6eb05d6c75295de0d741b1f26242a0c6a56da"
  },
  {
   "bytes": 9145,
   "path": "portalDirectory.json",
   "sha256": "bfa373dd9b4f45785aa7ff9d734a0ff5e2b755efe1f8badd1a233fd480050762"
  },
  {
   "bytes": 2577,
   "path": "precision.json",
   "sha256": "f208256727d0be116d826f40e4a60fb1d09d92315a8398a64c1391b029bf66d1"
  },
  {
   "bytes": 1479,
   "path": "reconciliation.json",
   "sha256": "c3a578fcbcee93fb5fa75f1a9ae6e79eb73a9bd0046240a15efb2e2fe1bd4167"
  },
  {
   "bytes": 4639,
   "path": "responseWindow.json",
   "sha256": "92b050b57a9d5012697fe121f928ebf18b88f1178e599a81ef71530971aa2b24"
  },
  {
   "bytes": 2208,
   "path": "sourceBase.json",
   "sha256": "b79813e06d4efb1f81935735aadfef7e750e3e1995b21fc92a3b4f91e5847a3c"
  },
  {
   "bytes": 1450,
   "path": "states.csv",
   "sha256": "95fcb61f64f9dee676cddd7f62eb89b6dd5af27e39d67e43072a355df780df28"
  },
  {
   "bytes": 8284,
   "path": "states.json",
   "sha256": "05ee5b9b1a02c0650c2afbc0917c9392152fc10b4a2738db9b9ab089539edc9a"
  },
  {
   "bytes": 1000,
   "path": "trades.csv",
   "sha256": "61f15cbd0a800a4b377c839b3d98dd02c75dc73b28fddaa1bfb7227ab2a65197"
  },
  {
   "bytes": 9133,
   "path": "trades.json",
   "sha256": "1caf58539f24c398c9bf891b61f098ecd99d9da84a50256534ab8c5b514fbcdf"
  },
  {
   "bytes": 477,
   "path": "weekly-due.csv",
   "sha256": "79c6fd6691cdf10f395718ba82845e6a21851822a46572569fa0b47643a22d3c"
  },
  {
   "bytes": 2385,
   "path": "weekly.json",
   "sha256": "c5caa3d5108dd1633cfba39520e973cca00a3d0082256e5673367f0990c8bdb0"
  }
 ],
 "inputs": {
  "clearance_rows.csv.gz": "188bc2eb4cc84c49d1a6daaa27e3c3c3fabaa369b77c90ceba1703a97ee8b553",
  "clearance_sources.csv.gz": "e72416f240dd5db3c15bdaa540fd698daacf61d6dc4d97b2bce154e8a9abde6c",
  "hub_counts.json": "b95c3352081a6fa020249d8274dd2843b9c8821889b2d38525450e9284c14019",
  "portal_directory.json": "9e497a4cf78277b4c1d76f1fe866a17828527872ec81beda6a1ac8854bc5bbe4",
  "precision_labels.csv": "952cd137ecb5b033767494e944824f7ffe81c57e708d90912182888c15c90723",
  "precision_spotcheck.csv": "8565b999470a6b468a288219eea073775c1f77033cc70d6ded68aadcb41ac955",
  "reading_notes.json": "6b473c3daf9fab63a141fe00deccbda1104c244033b02037e68b0f680bcc9c24",
  "robots_cache.json": "fd1a501ed2caa551c26c4fec190bbc02966b6e54d44387b6ff7d19a0cf96efa5",
  "rows.csv.gz": "1ee6d9d0e8a9cf9efbc181342179d7e339cfe2ec395d2cc5b4b863579770ed23",
  "sources.csv.gz": "6ecc44fb0d2077c20deeb21446fc1bbd6f0d8b3c3541f7473eb81f6101829249"
 },
 "queries": {
  "column_check_opportunities": "select table_schema, column_name from information_schema.columns where table_name = 'opportunities' and column_name in ('country_code', 'state_code') order by 1, 2",
  "production_rows_nondup": "select count(*) from bids where serving_scope = 'production' and duplicate_of_bid_id is null",
  "production_rows_null_due": "select count(*) from bids where serving_scope = 'production' and duplicate_of_bid_id is null and due_at is null",
  "production_rows_total": "select count(*) from bids where serving_scope = 'production'",
  "rows": "select b.id::text, b.source_id::text, b.title, b.source_url, b.buyer_type, b.solicitation_type, b.posted_at, b.posted_at_source, b.first_seen_at, b.due_at, b.active, array_to_string(b.naics_codes, ';'), b.classification_code, (b.duplicate_of_bid_id is not null), o.country_code, o.state_code, o.state_resolution_method, o.geography_scope, o.buyer_archetype, cl.label, cl.confidence, coalesce(dd.n, 0), coalesce(dd.nd, 0) from bids b left join commercial.opportunity_records r on r.bid_id = b.id left join commercial.opportunities o on o.id = r.opportunity_id left join commercial.opportunity_classification_current cl on cl.opportunity_id = o.id and cl.is_primary left join (select bid_id, count(*) n, count(*) filter (where download_status = 'downloaded') nd from bid_documents group by bid_id) dd on dd.bid_id = b.id where b.serving_scope = 'production' and b.due_at >= %s order by b.id",
  "sources": "select s.id::text, s.slug, s.name, s.platform, s.status, coalesce(s.is_aggregator, false), s.base_url, s.created_at, d.country_code, d.state_code, d.state_status, d.geography_scope, d.geography_method, d.buyer_archetype, a.min_fs, a.max_fs, coalesce(a.n, 0), coalesce(a.n30, 0) from sources s left join commercial.source_dimensions d on d.source_id = s.id left join (select source_id, min(first_seen_at) min_fs, max(first_seen_at) max_fs, count(*) n, count(*) filter (where first_seen_at >= now() - interval '30 days') n30 from bids where serving_scope = 'production' group by source_id) a on a.source_id = s.id order by s.id",
  "sources_active_generic": "select count(*) from sources where status = 'active' and platform = 'generic'",
  "sources_active_nonaggregator": "select count(*) from sources where status = 'active' and not coalesce(is_aggregator, false)",
  "sources_active_with_open_bid": "select count(distinct b.source_id) from bids b join sources s on s.id = b.source_id where b.serving_scope = 'production' and b.duplicate_of_bid_id is null and not coalesce(s.is_aggregator, false) and b.active and b.due_at > now()",
  "sources_added_since_oct_29": "select count(*) from sources where status = 'active' and created_at >= '2026-10-29'",
  "sources_by_status": "select status, count(*) from sources group by 1 order by 1",
  "sources_with_new_bid_30d": "select count(distinct b.source_id) from bids b join sources s on s.id = b.source_id where b.serving_scope = 'production' and b.duplicate_of_bid_id is null and not coalesce(s.is_aggregator, false) and b.first_seen_at >= now() - interval '30 days'"
 },
 "release": "2026-11-01",
 "rowCounts": {
  "snapshotRows": 227039,
  "tradeWindowRowsIn": 190704,
  "tradeWindowRowsOut": 57261,
  "windowRowsIn": 103851,
  "windowRowsOut": 23973
 },
 "ruleVersion": "rules-v1-2026-11-01",
 "rules": "plans/DATA-RELEASE-RULES.md",
 "snapshotAt": "2026-11-01T10:28:37.575731+00:00",
 "tradeWindow": {
  "basis": "due date",
  "end": "2026-11-02",
  "start": "2025-11-02"
 },
 "window": {
  "basis": "due date",
  "end": "2026-11-02",
  "start": "2026-08-03"
 }
}
