Lossless Changelog
component

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):

PYTHON
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:

  1. Rule-based parsing - Regex patterns for ARR, MRR, customer counts, retention rates

  2. Table extraction - pdfplumber for structured data in pitch decks

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

FieldValue
ARR$3,000,000
Enterprise Customers3
Technology Partners2 (CyberArk, SailPoint)
Source Documents2 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 & customers

New 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_metrics

  • customer_list

  • pipeline_metrics

  • pitch_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)

FileSizePurpose
src/agents/dataroom/extractors/traction_extractor.py~500 linesPDF/spreadsheet traction parsing

Modified Files (2)

FileChangesPurpose
src/agents/dataroom/extractors/__init__.py+2 linesExport traction extractor
src/agents/dataroom/analyzer.py+150 linesIntegration, 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

BASH
# 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.7s

Contributors

Implementation by Claude Code (Anthropic) with user guidance.