Project ontology (SPID, revision 2324b58)
Units
- project_mention — one sourced statement about an initiative in one section of one filing (table
project_mentions; id = SHA-1(accession | section_id | type | name)). - project — a resolved initiative, one or more mentions (table
projects; id = MD5(cik | project_type | first location or first ≥4-letter name token or "general")).
Labels (intended five-way classification)
| Label | Definition | Current implementation |
|---|---|---|
project |
distinct, identifiable, issuer-associated strategic initiative (planned/announced/ongoing/completed/postponed/cancelled) | stored |
generic_strategy |
non-specific aspirations ("we invest in innovation") | excluded by prompt rule + confidence ≥ 0.45; not stored |
historical_or_third_party_reference |
initiative not attributable to the sampled issuer | not stored (prompt instruction only) |
uncertain_candidate |
plausible initiative without identity evidence | not stored (confidence only) |
none |
no initiative | empty extraction |
Proposed change: add mention_label (five values) and evidence_span (character offsets in the section) to project_mentions; filled by annotators first, then by a classifier evaluated on the gold standard.
Taxonomy
21 categories, unchanged since June 2026 (project-db/spid/taxonomy.py): manufacturing_expansion, plant_construction, data_center, cloud_migration, ai_initiative, digital_transformation, erp_implementation, rd_program, product_launch, drug_pipeline, ma_integration, geographic_expansion, capex_program, supply_chain, automation, sustainability, energy_transition, infrastructure, cost_reduction, partnership, technology_deployment. Any extension must be versioned with a crosswalk (old code → new code).
Status vocabulary
planned | in_progress | completed | mentioned (per mention; an unrecognised status is mapped to mentioned and an out-of-vocabulary type to technology_deployment, neither logged; project status = latest mention by filing date, ties on the latest date resolved in execution order for 972 projects). Proposed: dated project_events (announcement, filing/acceptance, expected start, observed start, expected completion, realized completion, postponement, cancellation).
Amounts
amount_usd per mention (coerced float; amount_raw is a formatted copy of that float (llm.py:155), the source string, currency and scale are not stored — corrected 2026-11-05, FIRC0001-EDIT-02/ADVE-03/DATA-03); project total_amount_usd = max over mentions. Never sum across projects; never read as realized expenditure. Proposed project_amounts with amount_type ∈ {announced_budget, estimated_cost, capex_incurred, transaction_value, contract_value, financing, other}, currency, scale, basis, estimate/realized flag.
Financing instruments (label added 2026-11-05, FIRC0001-EDIT-12 / AI_C-13 / THEO-08)
Share-repurchase programs, dividends, credit facilities, term loans, note offerings, at-the-market programs and commercial paper are corporate actions, not projects; the taxonomy has no category for them and the gate word program admits them. Regex repurchase|buy-?back|dividend|credit facility|revolving|term loan|notes? (due|offering)|at-the-market|senior notes|commercial paper on project_name || ' ' || description matches 22,412 mentions (7.28 %; 54.5 % of 10-Q unregistered_sales mentions, 19.2 % of 8-K mentions; 52.6 % of capex_program, 16.4 % of cost_reduction, 7.0 % of ma_integration); results/fp_classes/. Proposed label financing_instrument in the six-way mention label (project, generic strategy, third-party, financing instrument, uncertain, none).
Known failure modes of the resolution key
False merges (same type + same location/token: multi-phase sites, serial acquirers in one city, drug programs sharing a token); false splits (renamed initiatives, location granularity, category change); no cross-issuer identity (JVs counted twice; inherited projects restart).