# 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).