#!/usr/bin/env python3 """Transform VerdictTank index-v5.0.html -> index-v5.1.html (6-seat pool, clean tiers).""" import sys, re SRC = "/root/projects/verdicttank/index-v5.0.html" DST = "/root/projects/verdicttank/index-v5.1.html" html = open(SRC, encoding="utf-8").read() applied, failed = [], [] def rep(old, new, label, count=1): global html n = html.count(old) if n != count: failed.append(f"{label}: expected {count} occurrence(s), found {n}") return html = html.replace(old, new, count) applied.append(label) # ---------- CSS: 4 price cards in a row (layout only, colors untouched) ---------- rep(".pricing-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin:20px 0}", ".pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}", "css-pricing-grid-4col") rep("@media (max-width:768px){", "@media (max-width:1080px){\n .pricing-grid{grid-template-columns:1fr 1fr}\n}\n@media (max-width:768px){", "css-pricing-tablet-breakpoint") # ---------- Title / badge ---------- rep("VerdictTank v5.0 · Error Detection Density for Proposals", "VerdictTank v5.1 · Error Detection Density for Proposals", "title-v5.1") rep('
v5.0 · Pre-Revenue · Validation-Tested
', '
v5.1 · Pre-Revenue · Validation-Tested
', "badge-v5.1") # ---------- Hero ---------- rep("A solo frontier model gives you a smooth, confident score. An 11-judge panel gives you the", "A solo frontier model gives you a smooth, confident score. A 6-judge panel gives you the", "hero-6-judge") rep("Panel: 11 seats · 9 vendors", "Panel: 6 seats · 5 vendors", "hero-meta-seats") # ---------- Thesis statgrid ---------- rep('
11
Judge seats, 9 vendors
', '
6
Judge seats, 5 vendors
', "statgrid-seats") rep("An 11-seat panel of nine different vendors cannot produce that coherence, and the incoherence", "A 6-seat panel of five different vendors cannot produce that coherence, and the incoherence", "thesis-spread-para") # ---------- v5 evolution card ---------- rep(""" v5 replaces the adversarial pair with an 11-seat specialist panel across nine vendors, and adds a synthesis seat whose only job is to compute panel statistics, flag scores more than 1.5 standard deviations from the mean, and reconcile the verdict against the evidence.""", """ v5 replaces the adversarial pair with a 6-seat specialist panel across five vendors, and adds a synthesis seat whose only job is to compute panel statistics, flag scores more than 1.5 standard deviations from the mean, and reconcile the verdict against the evidence.""", "evolution-card-v5") # ---------- Self-review prose: historical v2.2 run, now consolidated to 6 seats ---------- rep(""" That run cost roughly $150 in inference and returned 8 of 11 seats. Two seats were lost to a provider credit wall hit mid-run and one to a model family that could not be dispatched at all. The incomplete panel is why v2.3 of the judge pool spec now requires a pre-flight health gate and a pre-baked failover roster, covered in section 5. The results below are what those 8 seats produced, and we report them at 8 seats rather than extrapolating to 11.""", """ That run executed on the v2.2 roster. It cost roughly $150 in inference across the three proposals and returned 8 reporting seats. Two seats were lost to a provider credit wall hit mid-run, one to a model family that could not be dispatched at all, and a meaningful share of the spend went to retries against models that were already dead. The incomplete panel is why v2.3 of the judge pool spec introduces a pre-flight health gate, a pre-baked failover roster, and a consolidated 6-seat roster, all covered in section 5. The results below are what those 8 v2.2 seats actually produced. We report them as measured and do not extrapolate them onto the 6-seat roster.""", "self-review-v2.2-run") # ---------- Validation table note ---------- rep(""" composition for this run was 8 reporting judges (4 Band A, 4 Band B) out of 11 specified seats, a 73% coverage rate.""", """ composition for this run was 8 reporting judges (4 Band A, 4 Band B) on the v2.2 roster. The v2.3 roster documented in section 5 consolidates to 6 seats.""", "validation-table-note") rep("Unanimity across nine vendors on a low score is a far stronger NO GO than one model's low score.", "Unanimity across independent vendors on a low score is a far stronger NO GO than one model's low score.", "unanimity-vendors") # ---------- Section 5 heading + lead ---------- rep('

05Judge Pool v2.3: 11 Seats, 9 Vendors, Zero Double-Ups

', '

05Judge Pool v2.3: 6 Seats, 5 Vendors, Zero Double-Ups

', "section5-heading") rep(""" The panel that produced the validation data ran at 8 of 11 seats because two seats hit a provider credit wall mid-run and one model family could not be dispatched at all. v2.3 is the spec written in response to that failure. Full detail lives in the judge pool specification v2.3.""", """ The panel that produced the validation data ran 8 reporting seats on the v2.2 roster, after two seats hit a provider credit wall mid-run and one model family could not be dispatched at all. v2.3 is the spec written in response to that failure. It cuts the roster to 6 seats, keeps every distinct question the validation run proved was load-bearing, and drops the redundant generalist cross-checks that contributed correlated opinions rather than new findings. Full detail lives in the judge pool specification v2.3.""", "section5-lead") # ---------- Roster table ---------- rep(""" 0Research AgentGrok 4.5xAINo APrimary ReviewerClaude Opus 5AnthropicYes ACross-Check ADeepSeek V4 FlashDeepSeekYes ACross-Check BGemini Pro LatestGoogleYes ACross-Check CDeepSeek V4 ProDeepSeekYes ALegal / RegulatoryClaude Sonnet 5AnthropicYes BFinancial IntegrityMiniMax-M3MiniMaxYes BTeam / FounderClaude Fable 5AnthropicYes BMarket RealityQwen3.7 PlusAlibabaYes BExecution FeasibilityGPT-5.2 ProOpenAIYes CSynthesis & Integrity GateKimi K2.6MoonshotNo""", """ 0Research AgentGrok 4.5xAINo APrimary ReviewerClaude Opus 5AnthropicYes ACross-CheckDeepSeek V4 ProDeepSeekYes ALegal + ComplianceClaude Sonnet 5AnthropicYes BFinancial + MarketMiniMax-M3MiniMaxYes CSynthesis + GateKimi K2.6Moonshot AINo""", "roster-table") # ---------- Roster note: concentration ---------- rep(""" Nine distinct vendors across eleven seats. Nine distinct scoring models. Zero model double-ups: no single model occupies two scoring seats, which is the constraint that keeps correlated failure out of the panel mean. Maximum vendor concentration is Anthropic at 3 of 11 (27.3%), comfortably inside the 40% ceiling. DeepSeek holds 2 of 11 (18.2%). Every remaining vendor holds exactly one seat.""", """ Five distinct vendors across six seats. Four scoring seats, four distinct scoring models. Zero model double-ups: no single model occupies two scoring seats, which is the constraint that keeps correlated failure out of the panel mean. Maximum vendor concentration is Anthropic at 2 of 6 (33%), inside the 40% ceiling. Every other vendor holds exactly one seat. The Research Agent and the Synthesis seat do not score, so the panel mean is computed from four independent specialist verdicts across four vendors.""", "roster-note-concentration") # ---------- Pipeline flow box after roster note ---------- rep("""

What changed in v2.3

""", """

The 6-seat flow

Research Agent (Grok 4.5, xAI) > Primary Reviewer (Claude Opus 5, Anthropic) > Cross-Check (DeepSeek V4 Pro, DeepSeek) > Legal + Compliance (Claude Sonnet 5, Anthropic) > Financial + Market (MiniMax-M3, MiniMax) > Synthesis + Gate (Kimi K2.6, Moonshot AI)

The Free tier runs a reduced 4-seat version of this flow: Research Agent, Primary Reviewer, Legal + Compliance, Synthesis + Gate. It drops Cross-Check and Financial + Market. That configuration still catches legal and compliance blockers, which was the single highest-value error class in validation, so a free review proves the concept on the errors that matter most without carrying the full panel cost.

What changed in v2.3

""", "roster-flow-box") # ---------- Synthesis gate: eleven opinions ---------- rep("Primary Reviewer alone. That gate is what turns eleven opinions into one auditable report.", "Primary Reviewer alone. That gate is what turns four scored opinions into one auditable report.", "synthesis-gate-opinions") # ---------- PRICING SECTION: full replacement ---------- old_pricing_start = """

07Pricing: Priced Per Error Found, Not Per Point Gained

""" old_pricing_end = """ White-Label at $1,499 makes resellers whole — they re-bill reviews at $200-500 each.

""" i = html.find(old_pricing_start) j = html.find(old_pricing_end) if i == -1 or j == -1: failed.append("pricing-section: anchors not found") else: new_pricing = """

07Pricing: Priced Per Error Found, Not Per Point Gained

Four tiers with declared review quantities. No asterisks, no fair-use clauses, no metered surprises. Every tier states exactly how many reviews it includes and exactly what an extra review costs. The pricing logic follows the revised thesis directly: a panel run is worth what a caught error is worth, and a caught error is worth far more than a point of score.

Free

Free
  • 1 review per month
  • 4-seat reduced panel
  • Top 3 Fix-It items
  • Panel score and spread
  • Catches legal and compliance blockers
Purpose: prove it on one document

Enterprise

$799/mo
  • 30 reviews per month
  • Full 6-seat panel
  • Full Fix-It list, ranked
  • Re-score loop and Pre-Review Coach
  • Branded white-label
  • Multi-seat workspaces
  • Shared corpus isolation
  • Configurable judge pool
  • Extra reviews $15 each
  • Annual billing $666/mo
Purpose: proposal teams running color reviews

White-Label

$1,499/mo
  • 50 reviews per month
  • Configurable panel
  • Full Fix-It list, ranked
  • Re-score loop and Pre-Review Coach
  • White-label on your own domain
  • Multi-seat workspaces
  • Dedicated corpus isolation
  • Full custom judge pool
  • Reseller model: re-bill $200-500 each
  • Extra reviews $10 each
  • Annual billing $1,249/mo
Purpose: consultancies and platforms reselling review as a service

Full tier comparison

 FreeProEnterpriseWhite-Label
PriceFree$249/mo$799/mo$1,499/mo
Reviews per month153050
OverageNot available$15/review$15/review$10/review
Panel4-seat reducedFull 6-seatFull 6-seatConfigurable
Fix-ItsTop 3Full, rankedFull, rankedFull, ranked
Re-score loopNot includedYesYesYes
Pre-Review CoachNot includedYesYesYes
White-labelNot includedNot includedBranded onlyFull domain
WorkspacesNot includedNot includedMulti-seatMulti-seat
Corpus isolationNot includedNot includedSharedDedicated
Judge pool configNot includedNot includedYesFull custom
Reseller modelNot includedNot includedNot includedRe-bill $200-500/ea
Annual billing (16.7% off)Not applicable$207/mo$666/mo$1,249/mo

Declared quantities only. When a tier is exhausted the customer either buys overage at the published per-review rate or waits for the next cycle. Nothing is throttled silently and no tier is described as unlimited, because a panel review has a real marginal cost and pretending otherwise is how usage-based products lose money.

What a review costs us, and why the panel is affordable

The v2.2 validation run cost approximately $150 in inference for three full proposals across eight reporting seats. That figure includes retries against dead models before the health gate existed, which is exactly the waste v2.3 was written to remove. It is the honest anchor, and it is deliberately the worst number we have.

A clean run on the consolidated 6-seat roster, with the pre-flight health gate preventing wasted dispatches and only four seats actually scoring, costs $5.20 per review. That is the number every tier below is built on.

Unit economics at declared quantities

TierReviews includedCOGS at $5.20/reviewRevenueGross margin
Pro5$26$24990%
Enterprise30$156$79980%
White-Label50$260$1,49983%
Overage, Pro and Enterpriseper review$5.20$15.00Roughly 3x COGS

Every declared quantity is margin-positive at full consumption, and so is every overage unit. The $15 overage prices at roughly 3x COGS. The $10 White-Label overage prices at roughly 2x COGS, which is the deliberate discount that makes the reseller math work. There is no consumption pattern inside these tiers that produces a negative unit, which is the whole reason the word unlimited does not appear on this page.

The reason a full 6-seat panel fits a $249 tier at five reviews per month is vendor mix and seat discipline. Only the Primary Reviewer runs a premium frontier model. The remaining scoring seats run strong mid-tier models from three different vendors, which is where the error-detection value came from in validation. Cutting the roster from eleven seats to six removed the redundant generalist cross-checks, not the specialists. Panel diversity is cheaper than panel depth, and diversity is what caught the 14.

Why the value question is not the score question

Error classReal example from validationCost of missing it
Legal blockerCharitable solicitation registration in 40+ states$30K to $75K of registration, against $3K to $14K of projected revenue
Compliance totalFull first-year compliance load on the same proposal$60K to $150K, exceeding Year-1 revenue by roughly 10x
Execution gapContractor budget short by 4x to 7xRoughly 800 unbudgeted founder hours
Revenue arithmetic$2.7M headline against $269K computed from the document's own inputsCredibility with any investor who checks the math, which is all of them
Competitive blind spotA $4M-seed funded direct rival never named in the documentThe first question in the room, unanswered

A single caught item in the top two rows pays for a decade of the Pro tier. That is the entire pricing argument, and it does not depend on the panel producing a higher score, which it does not. Note that the two highest-value rows are both legal and compliance findings, which is precisely why the Free tier keeps the Legal + Compliance seat.

Positioned against the authoring category

ComparisonTheir priceVerdictTankMultiple
Pro vs Bidara Starter$499/mo$249/mo2.0x less
Pro vs AutoRFP.ai Scale$899/mo$249/mo3.6x less
Enterprise vs AutogenAI$30K+/yr custom$799/mo ($9,588/yr)3.1x less annualized
Enterprise vs Bidara Starter$499/mo$799/mo1.6x more
Enterprise vs AutoRFP.ai Scale$899/mo$799/mo1.1x less
White-Label vs AutogenAI$30K+/yr custom$1,499/mo ($17,988/yr)1.7x less annualized

We are not a proposal team in a box. We are one high-value pass in the workflow. A buyer already spending $499 to $899 per month on an authoring tool should be able to add the error-detection layer. Pricing Pro at $249 is below the GC AI critique seat benchmark at $500/mo, and Enterprise at $799 is a peer price to the authoring tools that feed it while landing 3.1x under an enterprise authoring contract on an annualized basis. White-Label at $1,499 makes resellers whole: 50 included reviews re-billed at $200 to $500 each is $10,000 to $25,000 of tenant revenue against a $1,499 cost.

""" html = html[:i] + new_pricing + html[j + len(old_pricing_end):] applied.append("pricing-section-full-replacement") # ---------- Competitive table: VerdictTank row ---------- rep(""" VerdictTankPanel error detectionFree / $249 Pro / $799 Enterprise / $1,499 White-LabelThe only 11-seat, 9-vendor review panel with a published integrity gate""", """ VerdictTankPanel error detectionFree (1/mo) · $249 Pro (5/mo) · $799 Enterprise (30/mo) · $1,499 White-Label (50/mo)The only 6-seat, 5-vendor review panel with a published integrity gate and declared review quantities""", "competitive-verdicttank-row") rep(""" Nine vendors, health gating, pre-baked failover, no model double-ups, and an integrity gate that challenges its own outliers is not a prompt.""", """ Five vendors, health gating, pre-baked failover, no model double-ups, and an integrity gate that challenges its own outliers is not a prompt.""", "moat-vendors") # ---------- Deployment ---------- rep("must hold credentials for nine separate model vendors and must run the pre-flight health gate", "must hold credentials for five separate model vendors and must run the pre-flight health gate", "deployment-vendor-creds") # ---------- Legal section ---------- rep(" from v4.0 and updated for the nine-vendor panel.", " from v4.0 and updated for the five-vendor panel.", "legal-lead-vendors") rep("Panel model API calls, all nine vendors", "Panel model API calls, all five vendors", "legal-role-map-vendors") rep(""" The nine-vendor panel raises the sub-processor row from a formality to the primary""", """ The five-vendor panel raises the sub-processor row from a formality to the primary""", "legal-callout-vendors") rep(""" opt-in. Never a silent default, and never for corpus-eligible content. Each of the nine rostered vendors is audited against this clause before it is eligible for a seat, and the audit is""", """ opt-in. Never a silent default, and never for corpus-eligible content. Each of the five rostered vendors is audited against this clause before it is eligible for a seat, and the audit is""", "legal-training-guard-vendors") rep("credentials for all nine model vendors, white-label tenant segments.", "credentials for all five model vendors, white-label tenant segments.", "legal-ir-vendors") rep(""" The Free, Pro and Enterprise tiers require Terms of Service, Privacy Policy and the AI Disclaimer at minimum before any paid launch.""", """ The Free, Pro, Enterprise and White-Label tiers all require Terms of Service, Privacy Policy and the AI Disclaimer at minimum before any paid launch. White-Label additionally requires an executed DPA as a hard provisioning gate.""", "legal-mvl-tiers") rep("""
  • Degraded-mode behavior: a panel that ran short of its full eleven seats is flagged visibly with the seat count and which roles failed over. We never silently substitute a provider without disclosure. The 2026-08-12 run is reported at 8 of 11 seats throughout this document for exactly that reason.
  • """, """
  • Degraded-mode behavior: a panel that ran short of its full six seats is flagged visibly with the seat count and which roles failed over. We never silently substitute a provider without disclosure. The 2026-08-12 validation run is reported throughout this document at the 8 reporting seats it actually produced on the v2.2 roster, for exactly that reason.
  • """, "legal-degraded-mode") # ---------- Footer ---------- rep(""" VerdictTank v5.0 · verdicttank.com · Technical Architecture · Judge Pool Spec v2.3 · Prior version (v4.0)
    """, """ VerdictTank v5.1 · verdicttank.com · Technical Architecture · Judge Pool Spec v2.3 · Prior version (v5.0)
    """, "footer-v5.1") rep(""" Every score, delta, spread and error count on this page comes from that run. Nothing is projected.""", """ Every score, delta, spread and error count on this page comes from that run. Nothing is projected. Panel roster is 6 seats across 5 vendors. All pricing tiers carry declared review quantities and published overage rates.""", "footer-note") open(DST, "w", encoding="utf-8").write(html) print(f"Applied {len(applied)} replacements") for a in applied: print(f" OK {a}") if failed: print(f"\nFAILED {len(failed)}:") for f in failed: print(f" FAIL {f}") sys.exit(1) print("\nAll replacements applied cleanly.")