{"criteria_id":"fec-committee/v1","criteria_version":"1.0.0","service":"fec-committees","op":"lookup","price":{"units_usdc_micro":10000,"label":"$0.01","status":"RULED","per":"one committee-level lookup (one form per call)"},"payment_includes":"$0.01 per FEC committee-level lookup - labelled RULED (price ruled 2026-11-03). The fee is per call: each lookup you submit is charged at $0.01. The payment includes: one committee-level lookup in exactly one form - (a) a committee profile by FEC committee id (C + 8 digits), with an optional cycle (2024 or 2026): the committee's registration identity for the cycle(s) and its committee-reported cycle aggregate figures (total receipts, total disbursements, contribution and loan aggregates, cash on hand, debts, independent expenditures, coverage end date) printed as factors, plus linked candidates; (b) a name search (2-80 characters): matching committees with identity factors and totals presence, capped at 25 matches; or (c) a cycle aggregate lookup (2024 or 2026): committee-level counts and sums for that cycle. An unknown committee is answered NOT-FOUND - a stated absence - and that answer is the delivered lookup. No composite score is computed. Every answer carries its provenance (FEC bulk downloads, public domain; store vintage and the firsthand-recounted store size). This service serves committee-level data ONLY: itemized-donor data is statutorily barred under 52 U.S.C. 30111(a)(4) and is never served, and itemized disbursement / independent-expenditure records are not served in this phase. A free pre-check returns the recounted store size, coverage, and this scope statement, signed, before any payment.","lookup_forms":[{"form":"committee","input":"{ committee_id, cycle? } - committee_id is an FEC committee id: C followed by 8 digits; cycle is 2024 or 2026","answer":"registration identity per cycle + committee_cycle_totals aggregate figures per cycle (ABSENT stated where no totals row exists) + linked candidates; unknown id grades NOT-FOUND (stated absence)"},{"form":"name","input":"{ name_query, cycle? } - name_query is 2-80 characters, matched case-insensitively as a substring of the committee name","answer":"matching committees (cap 25, id order) with identity factors and totals presence; zero matches grade NOT-FOUND (stated absence)"},{"form":"cycle","input":"{ cycle } - 2024 or 2026, no committee_id and no name_query","answer":"committee-level counts for the cycle from the store recount + aggregate sums over the full committee-level store in D1, labelled by scope"}],"grades":["FOUND","NOT-FOUND"],"composite_score":"NONE - factors are printed; no score, rank, or trust judgement is computed over any committee.","donor_bar":"BARRED LEG - itemized-donor data: information about individual contributors from FEC reports may not be sold or used for commercial purposes under 52 U.S.C. 30111(a)(4) (fleet record T-07). This service never serves donor-level records in any form: the itemized-donor leg is not queried, not shaped, and not described as available. The underlying store contains no contributor records at all - the FEC itemized-contributions bulk file (indiv) was never downloaded.","itemized_not_served":"Itemized tables (disbursements, independent_expenditures) are counted in the recount and NOT served in this phase: record-level lookups over them are refused FREE as NOT COVERED (committee-level only). This is a scope line, distinct from the statutory donor bar.","provenance":"Source: U.S. Federal Election Commission bulk downloads via fec.gov - public domain (work of the U.S. federal government, 17 U.S.C. 105). Bulk lineage only; the openFEC API is never used (its Acceptable Use Policy bars commercial use). Store: fec.db as rebuilt 2026-11-02 from the 2026-11-02 bulk files (cycles 2024 + 2026) - a dated snapshot, not live FEC data.","recount":"Store size (firsthand recount, 2026-11-03): 4,157,070 rows across 7 data tables (4,157,084 across all 8 tables including the ingestion log). Method: SQLite COUNT(*) per table, read-only, sequential, on fec.db as it stands 2026-11-03; per-table counts and the resolution of the recorded ~4.03M vs ~4.11M conflict are published in the build's DESIGN.md S1. Committee-level tables served: 108,359 rows. Itemized tables counted but NOT served: 4,048,711 rows.","store_meta":{"store":"fec.db (FEC bulk-download store, cycles 2024 + 2026)","store_bytes":1082269696,"store_rebuilt":"2026-11-02","recount_date":"2026-11-03","recount_method":"SQLite COUNT(*) per table, read-only (mode=ro, PRAGMA query_only=ON), sequential, executed 2026-11-03 on fec.db as it stands; cross-checked against the store's build-2026-11-02.log (exact match, table for table).","recounted_rows_data_tables":4157070,"recounted_rows_all_tables":4157084,"per_table":{"committees":41925,"candidates":18684,"candidate_committee_links":17016,"candidate_cycle_totals":5403,"committee_cycle_totals":25331,"disbursements":3945262,"independent_expenditures":103449,"ingestion_log":14},"committee_level_rows_served":108359,"cycles":[2024,2026],"per_table_by_cycle":{"committees":{"2024":20937,"2026":20988},"committee_cycle_totals":{"2024":12379,"2026":12952},"candidates":{"2024":9796,"2026":8888},"candidate_committee_links":{"2024":8619,"2026":8397},"candidate_cycle_totals":{"2024":2378,"2026":3025},"disbursements":{"2024":2249912,"2026":1695350},"independent_expenditures":{"2024":59524,"2026":43925}}},"served_from_phase1":"full committee-level store served from D1 (database 'fec-committees', binding FEC_D1; imported 2026-11-03 from fec.db as rebuilt 2026-11-02): 108,359 committee-level rows - committees 41,925, committee_cycle_totals 25,331, candidates 18,684, candidate_committee_links 17,016, candidate_cycle_totals 5,403. Itemized tables (disbursements, independent_expenditures) were not imported and are not served. Full-store serving was the release lane's step under the operator's infra ruling (DESIGN.md S3 Option A: D1 committee-level subset).","cycles_supported":[2024,2026],"caps":{"body_bytes":262144,"name_query_min_chars":2,"name_query_max_chars":80,"name_match_cap":25},"free_precheck":"The free pre-check (POST /precheck) returns the recounted store size and method, coverage (cycles, tables served, fixture scope), the donor-bar statement, the price (labelled RULED (price ruled 2026-11-03)), and the payment-inclusion statement, signed - BEFORE any payment. It validates the submitted lookup form and fails FREE with named reasons (including the donor bar). It never returns committee figures or a found/not-found answer: those are the paid substance. Free allowance: 100 per day per caller wallet, minimum interval 5,000 ms, 402 on exhaustion.","free_tier":{"per_day":100,"min_interval_ms":5000,"on_exhaustion":"402"},"retention":"Nothing a caller submits is stored beyond the payments ledger's closed field list (payer wallet, timestamp/day, price incl. the CAD fair-market-value block and refund field, payment tx id and Solana fee, criteria version, op, lookup form, outcome grade, committee id where the submitted form carried one, house flag). A submitted name-query string is never recorded anywhere - not in KV, not in the ledger, not in metrics, not in error records. Lookup answers are computed from the service's own store data; there is no submitted artefact to retain.","kill_line":"Kill line (Q-37, under the operator's 2026-11-03 zero-demand doctrine): build, bank, and hold; judged at the fleet's periodic reviews. There is NO demand kill line for this item. Tripwires, all stop-and-review unless stated: (family) refunds >5% of paid calls in any 30-day window; free use >10x paid use; a wrong figure from undisclosed stale or partial data (stop-serving under the affected criteria version; the store vintage and recount are disclosed on every answer); (Q-37-specific) any donor-level record served or described as available - a stop-serving integrity event under the statutory bar; any answer carrying a composite score; any figure not traceable to the store served from D1.","corpus":{"id":"fec-committee-corpus/v1","sha256":"15ce0acbf0183aefa55eac0db46c2d1408efb19ac9db141b934732dbed784507"},"ledger_fields":["payer","ts","date","price_usdc_units","cad_rate_usdcad","cad_rate_date","cad_basis","cad_fmv","cad_pending","refund","payment_tx","solana_fee_lamports","criteria_version","op","lookup_form","outcome","committee_id","house"],"routes":{"catalog":"GET / (free)","health":"GET /health (free)","criteria":"GET /criteria (free - this document, serialising the engine's own config)","corpus":"GET /corpus (free - corpus identity + pin)","metrics":"GET /metrics (free)","precheck":"POST /precheck (free - coverage + recount + scope, signed; validates the lookup form FREE)","lookup":"POST /lookup (paid, $0.01 per call - RULED)"}}