Component Architecture
The Genome platform is a full-stack system for identifying and analyzing industrial companies. It operates from raw signal ingestion through to commercial outreach.
Signal Ingestion
Genome draws signals from public sources using a multi-tiered approach:
- EDGAR filings (SEC 10-K/10-Q) - financial performance, debt, capital structure
- FRED economic series - macroeconomic trends (inflation, interest rates, industrial production)
- Commodity price indices - energy, metals, industrial goods
- Company press releases and financial reports
- Public social media and news sentiment
Each signal is mapped to company constraint nodes (F1–F4 for financial, S1–S4 for supply chain, R1–R4 for risk, X1–X2 for regulatory and physical).
Fingerprinting Engine
The core fingerprinting engine performs six system identification algorithms:
- Latency - the time between signal input and constraint output
- Gain - sensitivity to input change
- Damping - resistance to oscillation
- Oscillation - periodic behavior in signals
- Saturation - limit to growth
- Volatility Transmission - how volatility propagates through the system
Constraint Classification
Companies are classified into seven archetypes:
- Oscillatory — cyclically unstable but with clear directionality
- Constrained — bottlenecked by inputs or outputs
- Fragile — vulnerable to external stressors
- Resilient — robust against systemic disruption
- Saturated — operating near capacity in all constraint dimensions
- Decoupled — insulated from macroeconomic trends
- Transitory — not permanently constrained, but in transition
Each archetype is mapped to multiple constraint nodes for a full fingerprint.
Commercial Outreach Pipeline
Genome's commercial engine automates outreach through the following stages:
- Targeting - identifies companies with specific constraint types and archetypes
- Genome Report Generation - creates detailed analysis of key constraints, trajectories, and peer comparisons
- Email Drafting - generates templated outreach messages based on recent company activity
- Response Classification - categorizes responses for future targeting
- Strategy Learning - refines targeting based on past success/failure signals
Key Components
- API backend written in FastAPI with Python 3.10+
- Next.js frontend (App Router) styled with Tailwind CSS
- PostgreSQL database via Prisma ORM
- Claude and LLM-based AI for analysis and report generation
- Vercel integration for CI/CD and deployment
- Supabase (for legacy and some new pipelines)
- External integrations with EDGAR, FRED, and company public filings
New Trust Layer Implementation
A new trust layer was implemented that improves the reliability of signals by:
- Facts vs Inference Envelopes - separating raw, verifiable EDGAR/price data from probabilistic model inference (archetype, trajectory, conviction)
- Freshness Contract - fingerprints older than 45 days suppress inference conviction; EDGAR/PFSL facts older than 100 days are flagged stale (not suppressed — a stale 10-K is still a fact)
- Live-Calibrated Conviction - conviction derived from live-validated win rate instead of hardcoded backtest constants
- Inverse-Validation Calibration Loop - a standing loop that reads trading's inverse shadow-book outcomes to catch inverted or no-edge signals
Additionally, two new endpoints were created:
/v1/facts/{ticker}- returns the verified factual layer (EDGAR/price-derived) + freshness for a company. Structurally incapable of returning archetype, trajectory, or conviction./v1/facts/batch- batch facts-only lookup for multiple tickers
New Reasoning Frame Endpoint
A new endpoint gives Genome/MI signal claims the same discipline CDI enforces on its own claims internally — a binding node, a mechanism hypothesis, a falsification condition, and a confidence grade:
POST /v1/reasoning-frame- takes a ticker's genome/MI/PFSL record and returns a structured reasoning frame (mechanism, node-aware falsification clauses, a strong/moderate/contested/thin grade, and a provocation).
Consumers are Advisor, Studio, and the newsletter. CDI does not call this endpoint. Per the locked 2026-07-09 decision, CDI takes no runtime dependency on Genome — it receives the reasoning-frame discipline as a doctrine/prompt update ported into its own logic, driven by CDI's own data, never a Genome API call.
CDI does not call this endpoint, and there is no integration between CDI and the endpoint (which was added to support the newsletter/Advisor). The endpoint is an externally available RESTful API endpoint that can be used by any client for extracting reasoned signal claims from any ticker. The documentation here reflects how to use it — not a runtime dependency within the system.
New Signal Pipelines
Two new signal pipelines were added to support EDGAR and FRED-based signal ingestion:
scripts/run_census_trade_hs.py- retrieves Census trade data (Harmonized System codes) for US companies with export activity.scripts/run_usitc_hts.py- retrieves USITC HTS (Harmonized Tariff Schedule) data for import activity.
These are used by the F1/F2 constraint nodes in the fingerprinting engine. The data is ingested into a new table census_trade_hs and usitc_hts respectively, and used as inputs to the core signal algorithms.
Additionally, improvements in pipeline robustness:
- New script
scripts/test-contract.mjs- verifies API contract compliance for the new endpoints. - The existing
scripts/run_bls_oes.pynow ingests BLS OEWS data (occupational scarcity) which affects the F3 constraint node.
Pipeline Route Migration
The following pipeline routes were migrated from Supabase to local Postgres:
/api/v1/pipelines/census_trade_hs/api/v1/pipelines/usitc_hts
This improves data consistency and reduces dependency on external services.
Trajectory Classification Improvements
The trajectory classification logic has been improved:
- Trajectory classification now measures actual changes between fingerprints instead of hardcoding values
- Fixed ear-back contamination issues
- The
core/trajectory.pymodule was created to provide a shared, consistent implementation for trajectory determination
Stack & Deploy
| Layer | Tech | Notes | |
|---|---|---|---|
| Framework | FastAPI (Python 3.10) | API layer | |
| Database | PostgreSQL | via Prisma ORM | |
| Authentication | NextAuth.js | Session-based with role-based access | |
| AI | Claude models | for analysis and report generation | |
| Frontend | Next.js App Router + TypeScript | UI components and routing | |
| Deployment | Vercel (Stable) | CI/CD pipeline | |
| External Data Sources | EDGAR, FFred, company filings, commodity indices | via custom ingestion scripts | |
| New Trust Layer | Langfuse tracing (optional) | Not blocking if not configured; logs to /tmp/langfuse.log with 2-day age cutoff, not stored long-term. Env: LANGFUSE_URL, LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY |
Public Endpoints
- GET /v1/facts/{ticker} - Returns raw factual data for a company, verifying sources and timestamps.
- POST /v1/facts/batch - Batch endpoint to retrieve facts for multiple companies at once.
- POST /v1/reasoning-frame - Returns structured reasoning frame for a company (with node-aware falsification clauses and grade).
This endpoint returns:
{
"ticker": "AAPL",
"facts": {
"pfsl": { "capex_activity": "...", "demand_signals": "...", "operational_stress": "..." },
"growth_quality": { "...": "..." },
"dl_var": { "...": "..." },
"meta": { "provenance": "edgar_10k+price", "confidence": 0.93, "as_of": "2026-03-31", "stale": false }
},
"freshness": { "pfsl_age_days": 41, "pfsl_stale": false }
}