Traction Extractor
Added the Traction Extractor to complete Phase 2 extractors (4 of 5). This extractor pulls customer metrics, revenue data, pipeline information, and partnerships from pitch decks and other traction-related documents.
Changelog - 2025-11-26 (#4)
Traction Extractor
Overview
Added the Traction Extractor to complete Phase 2 extractors (4 of 5). This extractor pulls customer metrics, revenue data, pipeline information, and partnerships from pitch decks and other traction-related documents.
New Feature: Traction Extractor
Purpose
Extract customer counts, ARR/MRR, retention metrics, pipeline data, and partnerships from pitch decks, customer lists, and traction documents.
Implementation
Created src/agents/dataroom/extractors/traction_extractor.py (~500 lines):
def extract_traction_data(
documents: List[Dict[str, Any]],
use_llm: bool = True
) -> Optional[TractionData]:
"""Extract traction data from classified documents."""
def extract_from_pdf(file_path: Path, doc_type: str, use_llm: bool = True) -> Optional[Dict[str, Any]]:
"""Extract traction data from a PDF document."""
def extract_from_spreadsheet(file_path: Path, use_llm: bool = True) -> Optional[Dict[str, Any]]:
"""Extract traction data from a spreadsheet (CSV/Excel)."""Extraction Approach
Three-stage extraction:
Rule-based parsing - Regex patterns for ARR, MRR, customer counts, retention rates
Table extraction - pdfplumber for structured data in pitch decks
LLM enhancement - Claude Sonnet for complex customer stories and partnerships
Data extracted:
Customer count and breakdown by segment
Notable customers with use cases and contract types
ARR / MRR / Revenue growth
Retention rate / Churn rate / NPS score
Pipeline value and deal metrics
Technology and channel partnerships
Key milestones
Testing Results (Hydden Dataroom)
| Field | Value |
| ARR | $3,000,000 |
| Enterprise Customers | 3 |
| Technology Partners | 2 (CyberArk, SailPoint) |
| Source Documents | 2 pitch decks |
Notable Customers Extracted:
Fortune 100 Financial Services - CISO deployed in 3 weeks
Healthcare Organization - Post-ransomware deployment
G-SIB (Global Systemically Important Bank) - 3500+ app onboarding
Output Structure Update
The dataroom analyzer now outputs 5 numbered artifact files:
output/Company-v0.0.1/
├── 0-dataroom-inventory.json/md # Document inventory
├── 1-competitive-analysis.json/md # Competitive landscape
├── 2-cap-table.json/md # Cap table & ownership
├── 3-financial-analysis.json/md # Financial projections
└── 4-traction-analysis.json/md # Traction & customersNew Report Formatter
Added format_traction_report() to analyzer.py:
Key metrics summary (ARR, MRR, retention, churn, NPS)
Customer table with type, revenue, status
Customer breakdown by segment
Sales pipeline metrics
Revenue by segment
Key milestones
Notable customer logos
Extraction notes
Integration Updates
_run_extractors() Updated
Now calls traction extractor for document types:
traction_metricscustomer_listpipeline_metricspitch_deck
_extract_key_facts() Updated
Now extracts traction facts:
Customer count
ARR / MRR
Retention rate
NPS score
Pipeline value
Win rate
Files Changed Summary
New Files (1)
| File | Size | Purpose |
src/agents/dataroom/extractors/traction_extractor.py | ~500 lines | PDF/spreadsheet traction parsing |
Modified Files (2)
| File | Changes | Purpose |
src/agents/dataroom/extractors/__init__.py | +2 lines | Export traction extractor |
src/agents/dataroom/analyzer.py | +150 lines | Integration, formatter, key facts |
Phase 2 Progress
Completed Extractors
Competitive Extractor - Battlecard synthesis
Cap Table Extractor - Ownership structure
Financial Extractor - Projections & metrics
Traction Extractor - Customers & revenue
Remaining Extractors
Team Extractor - Founder bios, backgrounds
Usage
# Activate virtual environment
source .venv/bin/activate
# Run dataroom analyzer
python -m src.agents.dataroom.analyzer "data/Secure-Inputs/Hydden Dataroom" "Hydden"
# Output:
# 📁 Scanning dataroom...
# Found 20 documents
# 🏷️ Classifying documents...
# Classified 20 documents
# 🔍 Extracting competitive data from 9 documents...
# ✓ Found 8 competitors
# 📊 Extracting cap table data from 1 documents...
# ✓ Found 4 shareholders
# 💰 Extracting financial data from 1 documents...
# ✓ Found financial projections
# 📈 Extracting traction data from 2 documents...
# ✓ Found: $3,000,000 ARR, $2,026 pipeline
# ✓ Analysis complete in 259.7sContributors
Implementation by Claude Code (Anthropic) with user guidance.