How two independent data streams are aligned, matched, scored, and enriched into paired events.
01
Signal Overlay
When a clinical trial status change and an SEC 8-K filing occur for the same company within the same time window, that pair becomes a candidate event.
02
Entity Crosswalk
CIK numbers are mapped to stock tickers and then to AACT sponsor names. This is how Pfizer's SEC filings are linked to Pfizer's clinical trials across independent identifier systems.
03
Temporal Matching
Date proximity within a configurable window. The closer the two signals are in time, the higher the temporal tightness score for the pair.
04
Confidence Scoring
Two components multiplied together. Semantic relevance (0-3 integer: how well the 8-K category matches the trial event type) times temporal tightness (continuous, decays as the time gap increases). The product is a continuous confidence score per signal pair.
05
Enrichment
Each paired event receives drug names, trial phases, enrollment deltas, therapeutic conditions, and disclosure gap (whether the 8-K came before or after the trial change was detected).
Non-Therapeutic Intervention Filter45 regex patterns strip out placebos, vehicle controls, sham procedures, saline, standard of care, devices, and generic descriptors. 268 non-therapeutic entries removed (15% of total). Keeps drug group labels clean on company detail pages and event cards.
Crowding Score
Density Scoring Methodology
Four components, percentile-ranked against all qualifying therapeutic areas.
Growth40%
Compound growth in active trials per period. Single-period jumps above 5x are filtered (MeSH taxonomy reclassifications, not market movement).
Density30%
Active trial volume, log-scaled and percentile-ranked.
Sponsor Diversity15%
Distinct sponsors running trials, log-scaled and percentile-ranked. More sponsors means more competitive pressure.
Mechanism Diversity15%
Distinct interventions and mechanisms being tested, log-scaled and percentile-ranked. More mechanisms means a broader competitive landscape.
Each component is scored 1-10 using dynamic percentile scaling against all qualifying areas. No hardcoded ceilings. The busiest area scores 10, the quietest scores 1, everything else falls on the curve.
Data Quality Filters
MeSH Depth FilterDepth 0-1 organizational nodes excluded, from the NLM MeSH 2026 descriptor tree (6,160 terms analyzed).
Timeseries CoverageAreas with fewer than 50% non-zero snapshots excluded. Removes flash-in-the-pan entries.
Non-Therapeutic Area Filter115 exact-match MeSH terms excluded across 12 categories: histological groupings, anatomical site groupings, body-system "Diseases" umbrellas, outcomes, symptoms. Validated against 53 known must-keep therapeutic areas with zero false positives.