The Core Insight: V7 vs V12
Key Difference from Trading Signals:
| Aspect | V7 (Trading Signals) | V12 (Company Scoring) |
|---|---|---|
| Trigger | Quarterly SEC filings | Stock inflection points |
| Lookback | 180 days | 1-2 years |
| Output | BUY/SELL/SKIP + conviction | Multi-dimensional score (0-10) |
| Horizon | 90 days | 6-12 months |
| Frequency | Every quarter (4x/year) | Monthly scoring updates |
| Use Case | Tactical trading | Strategic scoring, monitoring |
| Customer | Traders, hedge funds | Analysts, credit, screening |
They're complementary products!
- V7: "Should I trade this filing?"
- V12: "How good is this company overall?"
The Big Idea: Learning from Inflection Points
Instead of quarterly filings triggering signals, scan 10-20 years of stock history to find inflection points (breakouts, collapses, sustained trends). Then look back 1-2 years at events leading up to that moment and learn what predicted success/failure.
Inflection Point Detection
Algorithmic Pattern Recognition:
def detect_inflection_points(ticker, lookback_years=10):
"""
Scan price history to find moments of interest
Returns: List of inflection events with scores
"""
inflections = []
for date in price_history:
# Pattern 1: Flat → Breakout
if (volatility_60d_before < 0.15 and
return_90d_after > 0.30 and
sustained_for_days > 180):
inflections.append({
'date': date,
'type': 'breakout_success',
'score': 9, # Great outcome
'return_6m': 35.0,
'return_12m': 58.0
})
# Pattern 2: High → Collapse
if (price > sma_200 * 1.8 and
return_90d_after < -0.40 and
max_drawdown > -0.50):
inflections.append({
'date': date,
'type': 'collapse',
'score': 1, # Terrible outcome
'return_6m': -45.0,
'max_drawdown': -62.0
})
# Pattern 3: Sustained Bull Run
if (consecutive_positive_months >= 6 and
total_return_6m > 0.50 and
sharpe_ratio > 2.0):
inflections.append({
'date': date,
'type': 'sustained_success',
'score': 8, # Great outcome
'return_12m': 75.0,
'sharpe': 2.3
})
# Pattern 4: Recovery from Distress
if (was_distressed_before and
return_12m_after > 1.0 and
volatility_normalized):
inflections.append({
'date': date,
'type': 'turnaround_success',
'score': 10, # Exceptional
'return_12m': 120.0
})
return inflections
Industry-Specific Catalysts
Biotech Examples:
# FDA Approval Success
if event_type == "approved_drug_trial_phase3" and return_12m > 0.80:
score = 9 # Major success
# FDA Rejection Collapse
if event_type == "failed_drug_trial_phase3" and return_6m < -0.60:
score = 1 # Disaster
Mining Examples:
# Resource Discovery Success
if event_type == "announced_resource_estimate_major" and return_12m > 1.5:
score = 10 # Exceptional discovery
# Permit Rejection
if event_type == "denied_mining_permit" and return_6m < -0.50:
score = 2 # Project dead
Multi-Dimensional Scoring Framework
Output Format (Not Just Binary!)
{
"company_score": 7.5, // 0-10: Overall quality/outlook
"risk_score": 6.8, // 0-10: Risk level (10=safest)
"success_probability": 0.72,// 0-1: Probability of positive outcome
"speed_score": 5.0, // 0-10: How fast catalysts play out
"sustainability_score": 8.2,// 0-10: How long success lasts
"predicted_return_6m": 18.5, // % return estimate
"predicted_return_12m": 32.0, // % return estimate
"max_drawdown_estimate": -15.0,
"sharpe_estimate": 1.8,
"key_catalysts": [
"approved_drug_trial_phase3",
"raised_capital_large",
"announced_strategic_partnership"
],
"risk_factors": [
"high_dilution_risk",
"competitive_threats",
"regulatory_uncertainty"
],
"narrative": "Company shows strong catalyst momentum with FDA
approval and secured financing. Partnership with
Fortune 500 validates technology. Risk is moderate
due to competitive landscape."
}
Scoring Rubric
Company Score (0-10):
- 10: Exceptional outcome (>100% return, sustained, low drawdown)
- 8-9: Great outcome (50-100% return, sustained)
- 6-7: Good outcome (20-50% return)
- 4-5: Moderate outcome (10-20% return)
- 2-3: Poor outcome (0-10% return or mild loss)
- 0-1: Terrible outcome (<-30% return or collapse)
Risk Score (0-10):
- 10: Very safe (low vol, high Sharpe, small drawdowns)
- 7-9: Moderate risk
- 4-6: Elevated risk
- 0-3: Very risky (high vol, large drawdowns)
Success Probability:
- Based on historical similar event patterns
- Calibrated: 0.8 probability → 80% actually succeeded
- Accounts for: industry, event type, magnitude, timing
Training Data Generation
Algorithm:
def generate_scoring_training_data(start_year=2003, end_year=2023):
"""
Scan all companies for 20 years to find inflection points
"""
training_examples = []
for company in all_public_companies:
# Get full price history
prices = get_price_history(company, start_year, end_year)
# Detect inflection points
inflections = detect_inflection_points(company, prices)
for inflection in inflections:
# Look back 1-2 years for events
lookback_start = inflection['date'] - timedelta(days=365*2)
events = get_events(
company,
start_date=lookback_start,
end_date=inflection['date']
)
if not events:
continue # Skip if no events to learn from
# Calculate outcome scores
outcomes = calculate_outcome_scores(
company,
inflection['date'],
forward_periods=[90, 180, 365]
)
# Create training example
example = {
'cik': company.cik,
'inflection_date': inflection['date'],
'inflection_type': inflection['type'],
# Prompt: 1-2 year event history
'prompt': format_events_to_prompt(events, depth='deep'),
# Labels: Multi-dimensional scores
'company_score': outcomes.company_score,
'risk_score': outcomes.risk_score,
'success_probability': outcomes.success_probability,
'speed_score': outcomes.speed_score,
'sustainability_score': outcomes.sustainability_score,
# Ground truth returns
'actual_return_6m': outcomes.return_6m,
'actual_return_12m': outcomes.return_12m,
'actual_sharpe': outcomes.sharpe,
'actual_max_drawdown': outcomes.max_drawdown,
# Event narrative
'key_catalysts': identify_key_catalysts(events),
'risk_factors': identify_risk_factors(events),
}
training_examples.append(example)
return training_examples
Expected Training Data Volume:
- ~5,000 public companies
- 20 years of history
- ~3-5 inflection points per company on average
- Total: 15,000-25,000 training examples (smaller than V7's 228K but higher quality)
Real-World Applications
1. Raul's Company Scoring Dashboard
Company: MRNA (Moderna)
Current Score: 8.2 / 10
Risk Score: 6.5 / 10 (Moderate)
Success Probability: 74%
Recent Events:
- approved_drug_trial_phase3 (2 weeks ago)
- raised_capital_large (1 month ago)
- announced_strategic_partnership (3 months ago)
Outlook: Strong momentum with FDA approval and financing secured.
Alert: Monitor for competitive threats in mRNA space.
2. Credit Risk Assessment
Company: XYZ Corp
Risk Score: 3.2 / 10 (HIGH RISK)
Distress Probability: 45%
Warning Signals:
- covenant_violation (recent)
- material_weakness (audit)
- workforce_reduction (3 quarters)
Recommendation: Increase credit monitoring frequency
3. Investment Screening
-- Find high-quality opportunities
SELECT company_name, score, risk_score, success_probability
FROM company_scores
WHERE company_score >= 7.0
AND risk_score >= 6.0
AND success_probability >= 0.70
AND industry = 'Biotech'
ORDER BY company_score DESC
4. Portfolio Monitoring
ALERT: 3 holdings scored below 5.0 (review needed)
AAPL: 8.5 → 7.2 (↓1.3) - Still strong
MRNA: 7.8 → 8.2 (↑0.4) - Improving
XYZ: 6.2 → 4.1 (↓2.1) ⚠️ REVIEW URGENTLY
Why This Could Work Better Than V7
Advantages:
- More Training Data:
- 10-20 years × thousands of companies = huge dataset
- Not locked to quarterly filings
- Learn from all important moments
- Richer Context:
- 1-2 year event history vs 180 days
- See full catalyst buildups
- Understand multi-quarter narratives
- Better Labels:
- Multi-dimensional scores vs binary profitable/not
- Industry-specific outcomes
- Risk-adjusted success metrics
- Industry Specialization:
- Train separate models: biotech, mining, tech, retail
- Learn industry-specific catalyst patterns
- Better accuracy per sector
- Broader Applications:
- Trading (like V7)
- Credit analysis
- Portfolio monitoring
- Investment screening
- Company research
Implementation Path
Phase 1: Inflection Point Detection (2-3 weeks)
- Build inflection point scanner
- Scan 10-20 years of price data
- Classify: breakouts, collapses, sustained trends, recoveries
- Validate manually on known success/failure stories
Phase 2: Training Data Generation (1 week)
- For each inflection point, gather 1-2 year event history
- Calculate multi-dimensional outcome scores
- Generate training examples (target: 15K-25K)
- Split train/val/test
Phase 3: Model Training (1 week)
- Use same nanochat architecture as V7
- Train on scoring task (not just BUY/SELL/SKIP)
- Validate score calibration
- Test on held-out companies
Phase 4: Product Integration (2 weeks)
- Build scoring API
- Monthly batch scoring for all companies
- Historical score tracking
- Alert system for score changes
Total: ~6-8 weeks after V7 proven
Success Metrics
Model Performance:
- Score prediction accuracy within ±1 point: >70%
- Success probability calibration: 0.7 → 70% actual success
- Risk score correlation with actual volatility: r > 0.6
- Better than baseline (simple momentum): +10% accuracy
Product Success:
- Raul satisfaction with company scoring dashboard
- Credit team finds it useful for monitoring
- Portfolio managers use for screening
- Customer retention if sold as product
Pricing Strategy
Standalone Product:
- Company Scoring API: $X/month (unlimited scoring)
- Historical scores included
- Monthly updates
- Alert system
Or Bundle with V7:
- V7 Signals + Company Scoring: 1.5x price
- "Complete company intelligence package"
Why Raul Cares About This
This is different from tactical trading signals. This is strategic intelligence about company quality and outlook.
Dashboard Ready Monthly scores for all companies
Risk Monitoring Track score changes over time
Screening Tool Find high-quality opportunities systematically
Credit Analysis Early warning system for distress
Multi-Dimensional Not just "buy or not" - understand quality, risk, timing, sustainability
This is the vision: A living, breathing intelligence system that scores every public company monthly based on their SEC filing events, with multi-dimensional insights that help make strategic decisions - not just tactical trades.