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; project status = latest mention by filing date). Proposed: dated project_events (announcement, filing/acceptance, expected start, observed start, expected completion, realized completion, postponement, cancellation).
Amounts
amount_usd per mention (coerced float, raw string kept); 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.
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).