Implement BDEF v1.1 grading: scoring core, per-deck pipeline, ledger, dashboard, StartOS layer
- Deterministic scoring.py (quant 60 / qual 40 / flags -15, profitability heaviest) - Per-company JSON ledger with forecast-target chaining deck N-1 -> N - Single-shot sandbox agent with guided-JSON fallback ladder (no tool loop) - Portfolio dashboard with sparklines, KPI hit rates, BDEF category bars - 48 unit tests green; endpoints smoke-tested; npm check+build green Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
1dde915540
commit
b1d7aed9f4
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"deck": {
|
||||
"company_hint": "Acme Robotics",
|
||||
"period": "2026-Q1",
|
||||
"meeting_date": "2026-04-15",
|
||||
"title": "Acme Robotics — Q1 2026 Board Deck",
|
||||
"truncated": false
|
||||
},
|
||||
"kpis": [
|
||||
{"name": "ARR", "canonical_name": "arr", "actual": 10.0, "unit": "$M", "period": "2026-Q1", "direction": "gte", "profitability": false, "target_in_deck": 9.5, "source": "slide 3, financial summary", "notes": ""},
|
||||
{"name": "EBITDA Margin", "canonical_name": "ebitda_margin", "actual": -5.0, "unit": "%", "period": "2026-Q1", "direction": "gte", "profitability": true, "target_in_deck": -6.0, "source": "slide 4, P&L bridge", "notes": ""},
|
||||
{"name": "Logo Churn", "canonical_name": "churn_rate", "actual": 4.0, "unit": "%", "period": "2026-Q1", "direction": "lte", "profitability": false, "target_in_deck": 5.0, "source": "slide 5, retention", "notes": ""},
|
||||
{"name": "Cash Balance", "canonical_name": "cash_balance", "actual": 12.0, "unit": "$M", "period": "2026-Q1", "direction": "gte", "profitability": true, "target_in_deck": null, "source": "slide 4, balance sheet", "notes": ""}
|
||||
],
|
||||
"forward_targets": [
|
||||
{"name": "ARR", "canonical_name": "arr", "target": 12.0, "unit": "$M", "target_period": "2026-Q2", "direction": "gte", "profitability": false, "source": "slide 9, guidance"},
|
||||
{"name": "Logo Churn", "canonical_name": "churn_rate", "target": 4.0, "unit": "%", "target_period": "2026-Q2", "direction": "lte", "profitability": false, "source": "slide 9, guidance"},
|
||||
{"name": "EBITDA Margin", "canonical_name": "ebitda_margin", "target": -2.0, "unit": "%", "target_period": "2026-Q2", "direction": "gte", "profitability": true, "source": "slide 9, guidance"},
|
||||
{"name": "Qualified Pipeline", "canonical_name": "qualified_pipeline", "target": 30.0, "unit": "$M", "target_period": "2026-Q2", "direction": "gte", "profitability": false, "source": "slide 10, pipeline build"}
|
||||
],
|
||||
"red_flag_candidates": [
|
||||
{"code": "hockey_stick_forecast", "description": "H2 revenue ramp shown with no downside case or stated falsifiers", "severity": 3, "evidence": "slide 9 guidance chart"}
|
||||
],
|
||||
"narrative": {
|
||||
"summary": "Solid Q1: ARR beat plan at $10.0M, EBITDA margin improved to -5%, churn under plan. The H2 story rests entirely on the $30M qualified pipeline building as projected.",
|
||||
"asks": ["Approve $2M expansion of the Austin integration facility"]
|
||||
}
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"deck": {
|
||||
"company_hint": "Acme Robotics",
|
||||
"period": "2026-Q2",
|
||||
"meeting_date": "2026-07-14",
|
||||
"title": "Acme Robotics — Q2 2026 Board Deck",
|
||||
"truncated": false
|
||||
},
|
||||
"kpis": [
|
||||
{"name": "ARR", "canonical_name": "arr", "actual": 11.0, "unit": "$M", "period": "2026-Q2", "direction": "gte", "profitability": false, "target_in_deck": null, "source": "slide 3, financial summary", "notes": ""},
|
||||
{"name": "Logo Churn", "canonical_name": "churn_rate", "actual": 3.5, "unit": "%", "period": "2026-Q2", "direction": "lte", "profitability": false, "target_in_deck": null, "source": "slide 5, retention", "notes": ""},
|
||||
{"name": "EBITDA Margin", "canonical_name": "ebitda_margin", "actual": -3.0, "unit": "%", "period": "2026-Q2", "direction": "gte", "profitability": true, "target_in_deck": null, "source": "slide 4, P&L bridge", "notes": ""},
|
||||
{"name": "Cash Balance", "canonical_name": "cash_balance", "actual": 13.0, "unit": "$M", "period": "2026-Q2", "direction": "gte", "profitability": true, "target_in_deck": null, "source": "slide 4, balance sheet", "notes": ""}
|
||||
],
|
||||
"forward_targets": [
|
||||
{"name": "ARR", "canonical_name": "arr", "target": 14.0, "unit": "$M", "target_period": "2026-Q3", "direction": "gte", "profitability": false, "source": "slide 9, guidance"}
|
||||
],
|
||||
"red_flag_candidates": [
|
||||
{"code": "adjusted_metrics", "description": "EBITDA presented on an adjusted basis with no bridge to GAAP", "severity": 2, "evidence": "slide 4 footnote"}
|
||||
],
|
||||
"narrative": {
|
||||
"summary": "Mixed Q2: ARR missed guidance at $11.0M vs $12.0M, churn beat, margin improved but missed the -2% target. Pipeline metric no longer reported.",
|
||||
"asks": ["Approve revised FY2026 hiring plan"]
|
||||
}
|
||||
}
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"grader": "grader-a",
|
||||
"categories": [
|
||||
{
|
||||
"id": "A",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category A: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "B",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category B: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "C",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category C: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "D",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category D: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "E",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category E: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "F",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category F: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "G",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category G: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "H",
|
||||
"score": 2,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "We ask the board to approve the revised hiring plan as presented; supporting detail is available from management upon request after the meeting, and we recommend approval without further discussion given the compressed agenda for this session.",
|
||||
"location": "slide 11"
|
||||
}
|
||||
],
|
||||
"rationale": "Asks are listed without recommendations or the inversion of the decision."
|
||||
}
|
||||
],
|
||||
"red_flags": [
|
||||
{
|
||||
"code": "governance_gap",
|
||||
"description": "succession and incentive redesign get one bullet while product minutiae fill nine slides",
|
||||
"severity": 2,
|
||||
"evidence": "slides 12-20"
|
||||
}
|
||||
],
|
||||
"overall_comment": "Strong disclosure discipline overall; governance asks remain the weak spot."
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"grader": "grader-b",
|
||||
"categories": [
|
||||
{
|
||||
"id": "A",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category A: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "B",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category B: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "C",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category C: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "D",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category D: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "E",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category E: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "F",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category F: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "G",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category G: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "H",
|
||||
"score": 3,
|
||||
"evidence": [],
|
||||
"rationale": "Asks are listed without recommendations or the inversion of the decision."
|
||||
}
|
||||
],
|
||||
"red_flags": [
|
||||
{
|
||||
"code": "governance_gap",
|
||||
"description": "board asks lack recommendations and inversion",
|
||||
"severity": 3,
|
||||
"evidence": "slide 11"
|
||||
}
|
||||
],
|
||||
"overall_comment": "Strong disclosure discipline overall; governance asks remain the weak spot."
|
||||
}
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"grader": "grader-c",
|
||||
"categories": [
|
||||
{
|
||||
"id": "A",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category A: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "B",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category B: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "C",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category C: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "D",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category D: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "E",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category E: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "F",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category F: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "G",
|
||||
"score": 4,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "Our compensation plan ties 60 percent of executive bonus to three-year ARR retention and free-cash-flow milestones rather than annual bookings, and every vice president now holds equity vesting over four years with a one-year cliff, which we believe aligns the team with long-term owners.",
|
||||
"location": "slide 7"
|
||||
}
|
||||
],
|
||||
"rationale": "Category G: specific, quantified disclosure with owner-aligned framing."
|
||||
},
|
||||
{
|
||||
"id": "H",
|
||||
"score": 2,
|
||||
"evidence": [
|
||||
{
|
||||
"quote": "We ask the board to approve the revised hiring plan as presented; supporting detail is available from management upon request after the meeting, and we recommend approval without further discussion given the compressed agenda for this session.",
|
||||
"location": "slide 11"
|
||||
}
|
||||
],
|
||||
"rationale": "Asks are listed without recommendations or the inversion of the decision."
|
||||
}
|
||||
],
|
||||
"red_flags": [],
|
||||
"overall_comment": "Strong disclosure discipline overall; governance asks remain the weak spot."
|
||||
}
|
||||
Reference in New Issue
Block a user