v4.1 go-live cut, Moonshot to Mistral swap, v5.x superseded

Mark v5.0/v5.1 SUPERSEDED (error-detection thesis failed at -0.40 delta); v4.1 is canonical. Cut v4.1 proposal with 12 version strings bumped. Moonshot to Mistral across production seats; production worker de-kimi'd 2026-08-18. Data-retention posture corrected 7/9 to 8/9 no-training (DeepSeek sole exception). Reconciled COGS with measured Mistral spend. Committed deployed v4.0 content and research docs to resolve the repo/live fork.
This commit is contained in:
root
2026-08-18 20:28:36 -04:00
parent c1e690a122
commit 3c07727f5c
18 changed files with 3409 additions and 2 deletions
+22
View File
@@ -1,5 +1,27 @@
# VerdictTank — Changelog
## 2026-08-18
### v4.0 Dogfood + Panel Integrity Fixes
- v4.0 proposal run through the v4.0 single-pass panel (9 scoring seats + synthesis gate): **CONDITIONAL** (Proposal Strength 71, Investor Readiness 44, Composite 58)
- Root-caused glm-5.2 "flakiness": reasoning model token-starved on the financial seat (11,998 reasoning tokens at a 12k floor = zero visible output). Not a model defect — budget bug. glm-5.2 stays.
- Fixed VerdictTank-Key allowlist (LiteLLM): was v3.5-era with 11 models, 403'd on 6 v4.0 roster models. Now 17 models (11 existing + 6 v4 additions)
- Fixed MODEL_QUIRKS floors in worker.py: glm-5.2 8k→24k, deepseek-v4-pro 8k→12k, gemini-pro-latest added at 12k
- Replaced fragile extract_json parser with brace-matching (handles nested JSON, trailing commas, embedded braces) — was silently dropping the financial seat
- Full dogfood report: /root/projects/verdicttank/dogfood-v4-report.md
- Fixed three proposal arithmetic errors (Condition 6): ceiling volume 3,940→2,690 reviews/mo; annual-mix MRR reduction $2,946→$2,619; annualized prepaid $187,000→$156,000. Fixed in v4-proposal.md and index-v4.0-new.html.
- Added bottom-up SAM + competitive research (Condition 1, research half): US SAM $1.2M-$3.7M/yr, base ~$1.8M; 8 named competitors. /root/projects/verdicttank/sam-competitive.md
- Added nine-vendor data-retention + training research (Condition 4, research half): 7 of 9 no-training by default; Moonshot trains by default (no opt-out), DeepSeek silent + PRC storage. /root/projects/verdicttank/vendor-retention-facts.md
- Corrected data-handling.html third-party section: "five of nine" → "seven of nine" no-training, precise two-exception wording
### v4.1 Cut + Moonshot→Mistral Swap + v5.x Superseded
- Cut v4.1 proposal as the go-live artifact. Version bumped v4.0 → v4.1 across title, hero badge, document label, all prose references, and footer (12 strings).
- Moonshot→Mistral vendor swap executed across all production seats (market primary + crosscheck_a/c fallbacks → mistral-large-latest). Production worker de-kimi'd 2026-08-18; py_compile clean; systemd verdicttank-worker restarted active. Defensive Kimi/Moonshot VENDOR_PATTERNS scrub lines retained.
- Data-retention posture corrected: 7/9 → 8/9 no-training. Moonshot (trains by default) replaced by Mistral (no-training default, EU-resident). DeepSeek is now the sole training exception. data-handling.html updated ("Eight of the nine" / "One provider does not offer") and deployed to app3.
- Reconciled COGS with measured Mistral token usage (SpendLogs startTime): Team 9,624 prompt / 953 completion / $0.00624; Synthesis Gate 20,675 / 1,841 / $0.01310.
- Marked v5.0 / v5.1 SUPERSEDED (error-detection-density direction deprecated; its validation thesis failed at -0.40 delta). v4.1 is canonical. Lineage reconciled: v3 (08-10) → v5.x pivot (08-12, superseded) → v4.1 (08-18).
- Repo/live fork resolved: deployed v4.0 content committed (index-v4.0.html now matches deployed), v4.1 added, superseded banners on v5 pages.
## 2026-08-10
### v3 Proposal + Technical Architecture
+438
View File
@@ -0,0 +1,438 @@
#!/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("<title>VerdictTank v5.0 · Error Detection Density for Proposals</title>",
"<title>VerdictTank v5.1 · Error Detection Density for Proposals</title>", "title-v5.1")
rep('<div class="badge">v5.0 · Pre-Revenue · Validation-Tested</div>',
'<div class="badge">v5.1 · Pre-Revenue · Validation-Tested</div>', "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("<span><b>Panel:</b> 11 seats · 9 vendors</span>",
"<span><b>Panel:</b> 6 seats · 5 vendors</span>", "hero-meta-seats")
# ---------- Thesis statgrid ----------
rep('<div class="stat"><div class="v">11</div><div class="k">Judge seats, 9 vendors</div></div>',
'<div class="stat"><div class="v">6</div><div class="k">Judge seats, 5 vendors</div></div>',
"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("<td>Unanimity across nine vendors on a low score is a far stronger NO GO than one model's low score.</td>",
"<td>Unanimity across independent vendors on a low score is a far stronger NO GO than one model's low score.</td>",
"unanimity-vendors")
# ---------- Section 5 heading + lead ----------
rep('<h2><span class="n">05</span>Judge Pool v2.3: 11 Seats, 9 Vendors, Zero Double-Ups</h2>',
'<h2><span class="n">05</span>Judge Pool v2.3: 6 Seats, 5 Vendors, Zero Double-Ups</h2>',
"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
<a href="judge-pool-spec.md">judge pool specification v2.3</a>.""",
""" 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
<a href="judge-pool-spec.md">judge pool specification v2.3</a>.""",
"section5-lead")
# ---------- Roster table ----------
rep(""" <tr><td>0</td><td>Research Agent</td><td>Grok 4.5</td><td>xAI</td><td>No</td></tr>
<tr><td>A</td><td>Primary Reviewer</td><td>Claude Opus 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check A</td><td>DeepSeek V4 Flash</td><td>DeepSeek</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check B</td><td>Gemini Pro Latest</td><td>Google</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check C</td><td>DeepSeek V4 Pro</td><td>DeepSeek</td><td>Yes</td></tr>
<tr><td>A</td><td>Legal / Regulatory</td><td>Claude Sonnet 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>B</td><td>Financial Integrity</td><td>MiniMax-M3</td><td>MiniMax</td><td>Yes</td></tr>
<tr><td>B</td><td>Team / Founder</td><td>Claude Fable 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>B</td><td>Market Reality</td><td>Qwen3.7 Plus</td><td>Alibaba</td><td>Yes</td></tr>
<tr><td>B</td><td>Execution Feasibility</td><td>GPT-5.2 Pro</td><td>OpenAI</td><td>Yes</td></tr>
<tr><td>C</td><td>Synthesis &amp; Integrity Gate</td><td>Kimi K2.6</td><td>Moonshot</td><td>No</td></tr>""",
""" <tr><td>0</td><td>Research Agent</td><td>Grok 4.5</td><td>xAI</td><td>No</td></tr>
<tr><td>A</td><td>Primary Reviewer</td><td>Claude Opus 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check</td><td>DeepSeek V4 Pro</td><td>DeepSeek</td><td>Yes</td></tr>
<tr><td>A</td><td>Legal + Compliance</td><td>Claude Sonnet 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>B</td><td>Financial + Market</td><td>MiniMax-M3</td><td>MiniMax</td><td>Yes</td></tr>
<tr><td>C</td><td>Synthesis + Gate</td><td>Kimi K2.6</td><td>Moonshot AI</td><td>No</td></tr>""",
"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(""" <h3>What changed in v2.3</h3>
<div class="defense-grid">""",
""" <h3>The 6-seat flow</h3>
<div class="arch-box">
Research Agent (Grok 4.5, xAI)
&gt; Primary Reviewer (Claude Opus 5, Anthropic)
&gt; Cross-Check (DeepSeek V4 Pro, DeepSeek)
&gt; Legal + Compliance (Claude Sonnet 5, Anthropic)
&gt; Financial + Market (MiniMax-M3, MiniMax)
&gt; Synthesis + Gate (Kimi K2.6, Moonshot AI)
</div>
<p class="table-note">
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.
</p>
<h3>What changed in v2.3</h3>
<div class="defense-grid">""",
"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 = """ <h2><span class="n">07</span>Pricing: Priced Per Error Found, Not Per Point Gained</h2>"""
old_pricing_end = """ White-Label at $1,499 makes resellers whole — they re-bill reviews at $200-500 each.
</p>
</section>"""
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 = """ <h2><span class="n">07</span>Pricing: Priced Per Error Found, Not Per Point Gained</h2>
<p class="lead">
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.
</p>
<div class="pricing-grid">
<div class="price-card">
<h3 style="margin-top:0">Free</h3>
<div class="price">Free</div>
<ul>
<li>1 review per month</li>
<li>4-seat reduced panel</li>
<li>Top 3 Fix-It items</li>
<li>Panel score and spread</li>
<li>Catches legal and compliance blockers</li>
</ul>
<div class="price-purpose">Purpose: prove it on one document</div>
</div>
<div class="price-card price-card--featured">
<div class="ribbon">Most popular</div>
<h3 style="margin-top:0">Pro</h3>
<div class="price">$249<span>/mo</span></div>
<ul>
<li>5 reviews per month</li>
<li>Full 6-seat panel</li>
<li>Full Fix-It list, ranked</li>
<li>Re-score loop with before and after</li>
<li>Pre-Review Coach</li>
<li>Extra reviews $15 each</li>
<li>Annual billing $207/mo</li>
</ul>
<div class="price-purpose">Purpose: the founder or solo bid writer</div>
</div>
<div class="price-card">
<h3 style="margin-top:0">Enterprise</h3>
<div class="price">$799<span>/mo</span></div>
<ul>
<li>30 reviews per month</li>
<li>Full 6-seat panel</li>
<li>Full Fix-It list, ranked</li>
<li>Re-score loop and Pre-Review Coach</li>
<li>Branded white-label</li>
<li>Multi-seat workspaces</li>
<li>Shared corpus isolation</li>
<li>Configurable judge pool</li>
<li>Extra reviews $15 each</li>
<li>Annual billing $666/mo</li>
</ul>
<div class="price-purpose">Purpose: proposal teams running color reviews</div>
</div>
<div class="price-card">
<h3 style="margin-top:0">White-Label</h3>
<div class="price">$1,499<span>/mo</span></div>
<ul>
<li>50 reviews per month</li>
<li>Configurable panel</li>
<li>Full Fix-It list, ranked</li>
<li>Re-score loop and Pre-Review Coach</li>
<li>White-label on your own domain</li>
<li>Multi-seat workspaces</li>
<li>Dedicated corpus isolation</li>
<li>Full custom judge pool</li>
<li>Reseller model: re-bill $200-500 each</li>
<li>Extra reviews $10 each</li>
<li>Annual billing $1,249/mo</li>
</ul>
<div class="price-purpose">Purpose: consultancies and platforms reselling review as a service</div>
</div>
</div>
<h3>Full tier comparison</h3>
<table>
<thead>
<tr><th style="width:190px">&nbsp;</th><th>Free</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td><strong>Price</strong></td><td>Free</td><td><strong>$249/mo</strong></td><td><strong>$799/mo</strong></td><td><strong>$1,499/mo</strong></td></tr>
<tr><td><strong>Reviews per month</strong></td><td>1</td><td>5</td><td>30</td><td>50</td></tr>
<tr><td><strong>Overage</strong></td><td class="muted">Not available</td><td>$15/review</td><td>$15/review</td><td>$10/review</td></tr>
<tr><td><strong>Panel</strong></td><td>4-seat reduced</td><td>Full 6-seat</td><td>Full 6-seat</td><td>Configurable</td></tr>
<tr><td><strong>Fix-Its</strong></td><td>Top 3</td><td>Full, ranked</td><td>Full, ranked</td><td>Full, ranked</td></tr>
<tr><td><strong>Re-score loop</strong></td><td class="muted">Not included</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td><strong>Pre-Review Coach</strong></td><td class="muted">Not included</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td><strong>White-label</strong></td><td class="muted">Not included</td><td class="muted">Not included</td><td>Branded only</td><td>Full domain</td></tr>
<tr><td><strong>Workspaces</strong></td><td class="muted">Not included</td><td class="muted">Not included</td><td>Multi-seat</td><td>Multi-seat</td></tr>
<tr><td><strong>Corpus isolation</strong></td><td class="muted">Not included</td><td class="muted">Not included</td><td>Shared</td><td>Dedicated</td></tr>
<tr><td><strong>Judge pool config</strong></td><td class="muted">Not included</td><td class="muted">Not included</td><td>Yes</td><td>Full custom</td></tr>
<tr><td><strong>Reseller model</strong></td><td class="muted">Not included</td><td class="muted">Not included</td><td class="muted">Not included</td><td>Re-bill $200-500/ea</td></tr>
<tr><td><strong>Annual billing (16.7% off)</strong></td><td class="muted">Not applicable</td><td>$207/mo</td><td>$666/mo</td><td>$1,249/mo</td></tr>
</tbody>
</table>
<p class="table-note">
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.
</p>
<h3>What a review costs us, and why the panel is affordable</h3>
<p>
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.
</p>
<p>
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 <strong>$5.20 per review</strong>. That is
the number every tier below is built on.
</p>
<h3>Unit economics at declared quantities</h3>
<table>
<thead>
<tr><th>Tier</th><th>Reviews included</th><th>COGS at $5.20/review</th><th>Revenue</th><th>Gross margin</th></tr>
</thead>
<tbody>
<tr><td><strong>Pro</strong></td><td>5</td><td>$26</td><td>$249</td><td><strong>90%</strong></td></tr>
<tr><td><strong>Enterprise</strong></td><td>30</td><td>$156</td><td>$799</td><td><strong>80%</strong></td></tr>
<tr><td><strong>White-Label</strong></td><td>50</td><td>$260</td><td>$1,499</td><td><strong>83%</strong></td></tr>
<tr class="comp-table__us"><td><strong>Overage, Pro and Enterprise</strong></td><td><strong>per review</strong></td><td><strong>$5.20</strong></td><td><strong>$15.00</strong></td><td><strong>Roughly 3x COGS</strong></td></tr>
</tbody>
</table>
<p class="table-note">
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.
</p>
<p>
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.
</p>
<h3>Why the value question is not the score question</h3>
<table>
<thead><tr><th>Error class</th><th>Real example from validation</th><th>Cost of missing it</th></tr></thead>
<tbody>
<tr><td>Legal blocker</td><td>Charitable solicitation registration in 40+ states</td><td>$30K to $75K of registration, against $3K to $14K of projected revenue</td></tr>
<tr><td>Compliance total</td><td>Full first-year compliance load on the same proposal</td><td>$60K to $150K, exceeding Year-1 revenue by roughly 10x</td></tr>
<tr><td>Execution gap</td><td>Contractor budget short by 4x to 7x</td><td>Roughly 800 unbudgeted founder hours</td></tr>
<tr><td>Revenue arithmetic</td><td>$2.7M headline against $269K computed from the document's own inputs</td><td>Credibility with any investor who checks the math, which is all of them</td></tr>
<tr><td>Competitive blind spot</td><td>A $4M-seed funded direct rival never named in the document</td><td>The first question in the room, unanswered</td></tr>
</tbody>
</table>
<p class="table-note">
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.
</p>
<h3>Positioned against the authoring category</h3>
<table>
<thead><tr><th>Comparison</th><th>Their price</th><th>VerdictTank</th><th>Multiple</th></tr></thead>
<tbody>
<tr><td>Pro vs Bidara Starter</td><td>$499/mo</td><td>$249/mo</td><td><strong>2.0x less</strong></td></tr>
<tr><td>Pro vs AutoRFP.ai Scale</td><td>$899/mo</td><td>$249/mo</td><td><strong>3.6x less</strong></td></tr>
<tr><td>Enterprise vs AutogenAI</td><td>$30K+/yr custom</td><td>$799/mo ($9,588/yr)</td><td><strong>3.1x less annualized</strong></td></tr>
<tr><td>Enterprise vs Bidara Starter</td><td>$499/mo</td><td>$799/mo</td><td><strong>1.6x more</strong></td></tr>
<tr><td>Enterprise vs AutoRFP.ai Scale</td><td>$899/mo</td><td>$799/mo</td><td><strong>1.1x less</strong></td></tr>
<tr><td>White-Label vs AutogenAI</td><td>$30K+/yr custom</td><td>$1,499/mo ($17,988/yr)</td><td><strong>1.7x less annualized</strong></td></tr>
</tbody>
</table>
<p>
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.
</p>
</section>"""
html = html[:i] + new_pricing + html[j + len(old_pricing_end):]
applied.append("pricing-section-full-replacement")
# ---------- Competitive table: VerdictTank row ----------
rep(""" <tr class="comp-table__us"><td><strong>VerdictTank</strong></td><td><strong>Panel error detection</strong></td><td><strong>Free / $249 Pro / $799 Enterprise / $1,499 White-Label</strong></td><td><strong>The only 11-seat, 9-vendor review panel with a published integrity gate</strong></td></tr>""",
""" <tr class="comp-table__us"><td><strong>VerdictTank</strong></td><td><strong>Panel error detection</strong></td><td><strong>Free (1/mo) · $249 Pro (5/mo) · $799 Enterprise (30/mo) · $1,499 White-Label (50/mo)</strong></td><td><strong>The only 6-seat, 5-vendor review panel with a published integrity gate and declared review quantities</strong></td></tr>""",
"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("<tr><td>Panel model API calls, all nine vendors</td>",
"<tr><td>Panel model API calls, all five vendors</td>", "legal-role-map-vendors")
rep(""" <strong>The nine-vendor panel raises the sub-processor row from a formality to the primary""",
""" <strong>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(""" <li><strong>Degraded-mode behavior:</strong> 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.</li>""",
""" <li><strong>Degraded-mode behavior:</strong> 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.</li>""",
"legal-degraded-mode")
# ---------- Footer ----------
rep(""" VerdictTank v5.0 · <a href="https://verdicttank.com">verdicttank.com</a> ·
<a href="architecture.html">Technical Architecture</a> ·
<a href="judge-pool-spec.md">Judge Pool Spec v2.3</a> ·
<a href="index-v4.0.html">Prior version (v4.0)</a><br>""",
""" VerdictTank v5.1 · <a href="https://verdicttank.com">verdicttank.com</a> ·
<a href="architecture.html">Technical Architecture</a> ·
<a href="judge-pool-spec.md">Judge Pool Spec v2.3</a> ·
<a href="index-v5.0.html">Prior version (v5.0)</a><br>""",
"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.")
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# Build, verify, and deploy the VerdictTank proposal page.
# ./build.sh build + verify only
# ./build.sh deploy build + verify, then push to app3 (aborts if verify fails)
set -euo pipefail
cd "$(dirname "$0")"
HOST=root@152.53.241.111
KEY=/root/.ssh/itpp-infra
DOCROOT=/home/ippadmin/htdocs/proposals.itpropartner.com/verdicttank
SSH=(ssh -o StrictHostKeyChecking=no -i "$KEY" "$HOST")
cat parts/p*.html > index-v5.0.html
printf 'built index-v5.0.html %s bytes\n' "$(wc -c < index-v5.0.html)"
python3 verify-v5.py || { echo "verify FAILED, not deploying"; exit 1; }
[[ "${1:-}" == deploy ]] || { echo "build + verify OK (pass 'deploy' to publish)"; exit 0; }
# scp is blocked by the raw-IP security gate; base64 over ssh is the workaround.
base64 -w0 index-v5.0.html | "${SSH[@]}" "base64 -d > $DOCROOT/index.html \
&& cp $DOCROOT/index.html $DOCROOT/index-v5.0-source.html \
&& chown ippadmin:ippadmin $DOCROOT/index.html $DOCROOT/index-v5.0-source.html \
&& chmod 644 $DOCROOT/index.html \
&& md5sum $DOCROOT/index.html"
md5sum index-v5.0.html
python3 verify-v5.py >/dev/null && echo "deployed and verified"
+117
View File
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Data handling — VerdictTank</title>
<style>
:root {
--bg: #0d1117;
--surface: #161b22;
--border: #30363d;
--text: #e6edf3;
--muted: #8b949e;
--accent: #58a6ff;
--accent-dim: #1f6feb;
--warn: #d29922;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
background: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
line-height: 1.65;
font-size: 16px;
}
.wrap { max-width: 760px; margin: 0 auto; padding: 48px 24px 80px; }
header { border-bottom: 1px solid var(--border); padding-bottom: 24px; margin-bottom: 40px; }
.badge {
display: inline-block;
font-size: 12px;
letter-spacing: 1px;
text-transform: uppercase;
color: var(--accent);
border: 1px solid var(--accent-dim);
border-radius: 999px;
padding: 4px 12px;
margin-bottom: 16px;
}
h1 { font-size: 30px; letter-spacing: -0.5px; margin-bottom: 8px; }
.updated { color: var(--muted); font-size: 14px; }
section { margin-bottom: 36px; }
h2 {
font-size: 19px;
color: var(--accent);
margin-bottom: 12px;
padding-bottom: 8px;
border-bottom: 1px solid var(--border);
}
p { margin-bottom: 14px; color: var(--text); }
.note {
background: var(--surface);
border: 1px solid var(--border);
border-left: 3px solid var(--warn);
border-radius: 6px;
padding: 16px 20px;
margin: 20px 0;
color: var(--text);
font-size: 15px;
}
ul { margin: 0 0 14px 22px; }
li { margin-bottom: 8px; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
footer {
margin-top: 48px;
padding-top: 20px;
border-top: 1px solid var(--border);
color: var(--muted);
font-size: 13px;
}
</style>
</head>
<body>
<div class="wrap">
<header>
<div class="badge">VerdictTank</div>
<h1>Data handling</h1>
<p class="updated">Effective 2026-08-18</p>
</header>
<section>
<h2>Your submissions</h2>
<p>You retain all rights to the documents you submit. VerdictTank does not claim ownership of your proposals, does not use them to develop our own products, and does not train models on them.</p>
<p>Your submission is processed only to produce your review: its scores, its per-dimension explanations, and your Fix-It plan. We do not use your document for any purpose other than delivering the review you requested.</p>
</section>
<section>
<h2>Retention and deletion</h2>
<p>After processing, your document is retained only for your own reference, for re-scoring, and to meet our legal record-keeping obligations. You may request deletion at any time, subject to those obligations.</p>
</section>
<section>
<h2>Third-party processing</h2>
<p>Review processing is performed by third-party AI providers. Your document is transmitted to those providers during a review.</p>
<p>Eight of the nine providers on our standard roster commit in their published terms not to train on API submissions. Where they retain data for abuse monitoring, the published windows are thirty days or less; two of those providers retain no prompt or response content at all by default.</p>
<p>One provider does not offer the same commitment: it does not publish a no-training commitment and stores data in mainland China. That provider handles one seat in the review panel.</p>
<p>If your document is subject to confidentiality, export-control, or data-sovereignty restrictions that make that provider unacceptable, contact us before submitting and we will advise on a reduced configuration that omits it.</p>
</section>
<section>
<h2>Review corpus</h2>
<p>Structural and aggregate metadata from your review, such as scores, dimensions, vertical classification, and revision count, may contribute to an opt-in, identifier-stripped review corpus used to improve scoring context.</p>
<p>Your raw document text is never eligible for the corpus. Contribution defaults to off, and aggregate publication is gated behind a minimum-group-size threshold so no single submission is individually identifiable.</p>
</section>
<div class="note">
Nothing on this page limits the sanitization and confidentiality controls described in the product documentation, which apply to every public surface of the product, including report files, shareable links, the dashboard, and API responses.
</div>
<footer>
VerdictTank — We critique them; we don't write them. Questions about this policy: contact the product owner.
</footer>
</div>
</body>
</html>
+88
View File
@@ -0,0 +1,88 @@
# VerdictTank v4.0 — Dogfood Verdict Report
**Date:** 2026-08-18
**Subject:** The v4.0 proposal itself, run through the v4.0 single-pass panel (10 seats: 9 scoring + synthesis gate)
**Verdict:** **CONDITIONAL**
---
## 1. Headline Scores
| Metric | Score |
|---|---|
| Proposal Strength | **71** |
| Investor Readiness | **44** |
| Composite | **58** |
| Divergence | 27 (proposal ahead) |
| Blocking findings | **Yes (6)** |
## 2. Dimension Means
| Dimension | Score |
|---|---|
| Structure & Communication | 93.8 |
| Internal Consistency | 86.2 |
| Solution Coherence | 84.9 |
| Problem Clarity | 81.2 |
| Risk & Compliance | 64.3 |
| Financial Integrity | 61.8 |
| Execution Feasibility | 50.0 |
| Team & Capability | 31.7 |
| Evidence Quality | 24.0 |
| Market Reality | 15.7 |
## 3. Panel Read
The panel's one-line take: **a well-designed critique loop that reads as an internal blueprint, not a funded product.** It scores 80+ on the four dimensions that measure writing quality, and collapses on the three that measure proof: market reality (15.7), evidence (24.0), team (31.7). Every margin claim, pricing scenario, and shipped-date assertion is unverified.
## 4. Six Blocking Conditions
1. **Market evidence** — bottom-up SAM, three named competitors with ARR/pricing, current paid account count by tier + trailing 30-day volume.
2. **Production proof** — anonymized logs: 500+ reviews processed, median latency <90s, uptime >99.5% over 30 days.
3. **Verified COGS** — vendor invoices/token logs from 100+ real reviews, reconciled to the $0.36 standard / $3.00 White-Label ceiling.
4. **Zero data-retention agreements** — executed with all nine vendors, or drop those vendors from the roster.
5. **Senior technical hire** — name a platform engineer/cofounder with multi-tenant SaaS track record.
6. **Arithmetic fix** — ceiling volume is 2,690 paid reviews, not 3,940 (a 1,250 gap), and the annual MRR reduction recomputes to $2,619, not $2,946.
---
## 5. Panel Integrity Findings (from running the panel itself)
### 5.1 glm-5.2 was not flaky — it was token-starved
**Root cause:** glm-5.2 is a reasoning model. On the financial seat (the heaviest brief), it consumed its entire token budget on hidden reasoning and returned zero visible tokens.
| Metric | Before (12k floor) | After (24k floor) |
|---|---|---|
| finish_reason | `length` | `stop` |
| reasoning_tokens | 11,998 | 14,635 |
| visible content | 0-3,015 chars | 8,545 chars |
| JSON parsed | no | yes (all 10 keys) |
**Conclusion:** glm-5.2 stays in the roster. The financial seat needs ~17k completion tokens (14.6k reasoning + 2k output). This was a budget bug, not a model defect.
### 5.2 Two production blockers found and fixed
1. **VerdictTank-Key allowlist was stale** (v3.5-era, 11 models). It 403'd on six v4.0 roster models: `sonar`, `gpt-5.2`, `glm-5.2`, `claude-haiku-4-5`, `xai/grok-4.3`, and bare `gemini-pro-latest` (it only knew `gemini/gemini-pro-latest`).
2. **Reasoning-model token floors too low** — deployed worker had glm-5.2 and deepseek-v4-pro at 8,000, which silently truncated reasoning models.
## 6. Deployment Fixes Applied
### Fix A — VerdictTank-Key allowlist (LiteLLM)
Added the 6 missing v4 models, keeping the existing 11 for backward compatibility. Total now 17 models.
### Fix B — MODEL_QUIRKS token floors (`/opt/verdicttank/worker.py`)
- `glm-5.2`: 8,000 → 24,000
- `deepseek-v4-pro`: 8,000 → 12,000
- `gemini-pro-latest`: added at 12,000
- `kimi-k2.6`: unchanged (already 16,000)
### Fix C — Robust JSON extraction (`/opt/verdicttank/worker.py`)
Replaced the fragile non-greedy regex + `rfind` parser (which silently dropped the financial seat) with brace-matching that handles nested objects, strings containing braces, and trailing commas in arrays. Verified against 6 test cases (fenced nested, fenced explicit, truncated, plain nested, trailing comma, empty) — all pass.
## 7. Remaining Work
- [ ] Re-run the full panel against the deployed worker to confirm end-to-end parity with the runner
- [ ] Decide whether glm-5.2 stays as permanent financial seat or whether the 24k floor is acceptable long-term cost
- [ ] Clear the six blocking conditions in §4 before GA
- [ ] Rotate the temp key `verdicttank-v4-test` (or delete it) once the production key is confirmed working
+626
View File
@@ -0,0 +1,626 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VerdictTank v4.0 - AI Proposal Review &amp; Scoring</title>
<style>
:root{
--bg:#0b0e14;--panel:#131824;--panel2:#1a2030;--ink:#e6edf3;--muted:#8b97a8;
--line:#232b3a;--accent:#4da3ff;--accent2:#7ee787;--warn:#f0a45c;--bad:#ff6b6b;
--code:#0d1117;--codeink:#c9d1d9;--pass:#2ea043;--below:#d29922;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
header.hero{background:linear-gradient(135deg,#0b0e14,#131824 60%,#0f1a2e);
border-bottom:1px solid var(--line);padding:48px 0 36px}
.badge{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:4px 12px;margin-bottom:16px}
h1{font-size:34px;margin:6px 0 8px;letter-spacing:-.5px}
.sub{color:var(--muted);font-size:16px;max-width:760px}
.meta{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.meta span{font-size:12px;background:var(--panel2);border:1px solid var(--line);
border-radius:6px;padding:5px 10px;color:var(--muted)}
.meta b{color:var(--ink)}
nav.toc{position:sticky;top:0;z-index:20;background:rgba(11,14,20,.92);
backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 0}
nav.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px}
nav.toc a{color:var(--muted);text-decoration:none;padding:4px 9px;border-radius:6px;border:1px solid transparent}
nav.toc a:hover{color:var(--ink);border-color:var(--line);background:var(--panel)}
section{padding:40px 0;border-bottom:1px solid var(--line)}
h2{font-size:24px;margin:0 0 6px;letter-spacing:-.3px}
h2 .n{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:10px}
h3{font-size:17px;margin:26px 0 8px;color:var(--accent2)}
h4{font-size:14px;margin:18px 0 6px;color:var(--warn);text-transform:uppercase;letter-spacing:.06em}
p{margin:10px 0}
.lead{color:var(--muted);font-size:15.5px;margin-bottom:8px}
ul,ol{margin:10px 0;padding-left:22px}
li{margin:5px 0}
code{background:var(--code);color:var(--codeink);padding:2px 6px;border-radius:4px;
font:13px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,monospace}
pre{background:var(--code);color:var(--codeink);border:1px solid var(--line);border-radius:10px;
padding:16px;overflow:auto;font:12.5px/1.55 "SF Mono",ui-monospace,Menlo,Consolas,monospace;margin:14px 0}
pre.ascii{line-height:1.35;font-size:12px;color:#9fb3c8}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--panel2);color:var(--ink);font-weight:600}
td{background:var(--panel);color:var(--ink)}
/* Custom blocks */
.evolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
.evolution-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px}
.evolution-card--current{border-color:var(--accent);background:var(--panel2)}
.version-badge{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin-bottom:8px}
.version-badge--current{color:var(--accent)}
.breakthrough-label{font-size:12px;color:var(--accent2);font-weight:600;margin-bottom:6px}
.callout{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:20px 0}
.callout--proof{border-left:4px solid var(--accent)}
.defense-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}
.defense-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.positioning-statement{font-size:16px;color:var(--accent2);text-align:center;margin:28px 0;padding:16px;background:var(--panel2);border:1px solid var(--accent);border-radius:10px}
.comp-table__us td{background:#0f1a2e;color:var(--accent);font-weight:600}
.muted{color:var(--muted);font-size:12px}
.table-note{font-size:12px;color:var(--muted);margin:4px 0 14px}
.strategy-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}
.strategy-cols h4{text-transform:none;color:var(--accent);font-size:14px}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0}
.price-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;text-align:center}
.price-card--featured{border-color:var(--accent);background:var(--panel2);position:relative}
.ribbon{position:absolute;top:-10px;left:50%;transform:translateX(-50%);
background:var(--accent);color:#0b0e14;font-size:11px;font-weight:700;
padding:3px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}
.price{font-size:36px;font-weight:700;margin:8px 0}
.price span{font-size:16px;color:var(--muted);font-weight:400}
.price-card ul{list-style:none;padding:0;text-align:left;margin:12px 0}
.price-card li{margin:6px 0;font-size:13px}
.price-card li::before{content:"✓ ";color:var(--accent2);font-weight:700}
.price-purpose{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:12px}
.walkthrough{display:grid;gap:16px;margin:16px 0}
.wt-input{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.wt-proposal-text{font-style:italic;color:var(--muted);border-left:3px solid var(--warn);padding-left:14px;margin:10px 0}
.wt-context{font-size:12px;color:var(--muted);margin-top:8px}
.wt-scores{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.score-block{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.score-block--narrative{border-left:4px solid var(--accent)}
.score-block--compliance{border-left:4px solid var(--warn)}
.score-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.score-value{font-size:40px;font-weight:700;margin:4px 0}
.score-value span{font-size:16px;color:var(--muted);font-weight:400}
.score-block--narrative .score-value{color:var(--accent)}
.score-block--compliance .score-value{color:var(--bad)}
.wt-verdict{margin:8px 0}
.wt-fixit{margin:8px 0}
.fixit-list li{margin:12px 0;padding:0}
.fixit-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.fixit-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.fixit-tag--critical{background:rgba(255,107,107,.15);color:var(--bad);border:1px solid rgba(255,107,107,.3)}
.fixit-tag--high{background:rgba(240,164,92,.15);color:var(--warn);border:1px solid rgba(240,164,92,.3)}
.fixit-tag--medium{background:rgba(77,163,255,.15);color:var(--accent);border:1px solid rgba(77,163,255,.3)}
.fixit-delta{font-size:12px;color:var(--accent2);font-weight:600}
.wt-rescore{margin:8px 0}
.rescore-line{font-size:15px}
.timeline{margin:20px 0}
.timeline-phase{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:8px 0}
.timeline-phase--risk{border-color:var(--warn);background:var(--panel2)}
.tl-weeks{font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.method-list{margin:10px 0 20px}
.tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.tag-green{background:rgba(46,160,67,.15);color:var(--pass);border:1px solid rgba(46,160,67,.3)}
.tag-amber{background:rgba(210,153,34,.15);color:var(--below);border:1px solid rgba(210,153,34,.3)}
.tag-red{background:rgba(255,107,107,.15);color:var(--bad);border:1px solid rgba(255,107,107,.3)}
.highlight{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:16px 0}
.arch-box{background:var(--code);color:var(--codeink);border:1px solid var(--line);border-radius:8px;
padding:14px 16px;margin:12px 0;font:12.5px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,monospace}
footer{text-align:center;padding:40px 0 30px;border-top:1px solid var(--line);margin-top:40px;
font-size:12px;color:var(--muted);line-height:1.8}
footer a{color:var(--accent)}
a{color:var(--accent)}
/* New: wide-table scroll wrapper and 5-card pricing refinements */
.table-scroll{overflow-x:auto;margin:14px 0}
.table-scroll table{margin:0}
.price-card .price{font-size:28px}
.price-note{font-size:12px;color:var(--muted);margin-top:8px}
@media (max-width:768px){
.evolution-grid,.defense-grid,.strategy-cols,.pricing-grid,.wt-scores{grid-template-columns:1fr}
h1{font-size:28px}
.price{font-size:28px}
.score-value{font-size:30px}
}
</style>
</head>
<body>
<!-- ====== HERO ====== -->
<header class="hero">
<div class="wrap" style="text-align:center">
<div class="badge">v4.0 · Architecture-Proven · Pre-Revenue</div>
<h1 style="font-size:42px;letter-spacing:-1px">VerdictTank</h1>
<p class="positioning-statement" style="font-size:18px;margin:10px auto 20px;max-width:640px">
We critique them; we don't write them.
</p>
<p class="sub" style="font-size:18px;max-width:820px;margin:0 auto">
VerdictTank is a multi-vendor AI proposal review product. A founder, a proposal team, or a consultant submits a business proposal as a file or a URL. VerdictTank runs that document through a panel of ten independent AI reviewer seats spanning nine vendors, returns two separate scores across ten scored dimensions, explains in plain language exactly what is missing behind every low dimension, and hands back a structured Fix-It plan the submitter can execute.
</p>
<div class="meta" style="justify-content:center;margin-top:24px">
<span><b>Document</b> v4.0 Proposal (master narrative)</span>
<span><b>Status</b> Architecture-proven, pre-revenue</span>
<span><b>Date</b> 2026-08-18</span>
<span><b>Owner</b> Germaine Brown, product owner</span>
<span><b>Surfaces</b> verdicttank.com, my.verdicttank.com, api.verdicttank.com</span>
</div>
</div>
</header>
<!-- ====== TOC ====== -->
<nav class="toc">
<div class="wrap">
<ol>
<li><a href="#executive-summary">1. Executive Summary</a></li>
<li><a href="#journey">2. The Full Journey</a></li>
<li><a href="#features">3. Feature Set</a></li>
<li><a href="#pricing">4. Pricing</a></li>
<li><a href="#roadmap">5. Roadmap</a></li>
<li><a href="#financial-model">6. Financial Model</a></li>
<li><a href="#risk">7. Risk Assessment</a></li>
<li><a href="#summary">8. Summary</a></li>
</ol>
</div>
</nav>
<main class="wrap">
<!-- ====== 1. EXECUTIVE SUMMARY ====== -->
<section id="executive-summary">
<h2><span class="n">1</span>Executive Summary</h2>
<p>VerdictTank is a multi-vendor AI proposal review product. A founder, a proposal team, or a consultant submits a business proposal as a file or a URL. VerdictTank runs that document through a panel of ten independent AI reviewer seats spanning nine vendors, returns two separate scores across ten scored dimensions, explains in plain language exactly what is missing behind every low dimension, and hands back a structured Fix-It plan the submitter can execute. The submitter revises, re-submits, and re-scores, and the delta is shown dimension by dimension. Every review lands in a queryable corpus, and every public artifact leaves the system through a sanitization gate.</p>
<p>VerdictTank does not write proposals. It critiques them. That boundary is the product. A writing tool is incentivized to tell you the draft it produced is good. A critique tool is only valuable if it is willing to tell you the draft is not ready, name the reason, and quantify how far off it is. Every design decision in v4.0 follows from that boundary: the pre-submit coach asks structuring questions and never composes paragraphs, the panel scores independently before any synthesis, and the synthesis seat never scores at all.</p>
<p>The two scores are the reason a submitter trusts the output. A single blended number hides the most useful signal in proposal review, which is the gap between a strong idea in a weak document and a weak idea in a polished document. VerdictTank separates them:</p>
<ul>
<li><strong>Proposal Strength Score (0 to 100).</strong> How well the document makes its case: clarity, evidence, financial integrity, operating plan, compliance readiness.</li>
<li><strong>Investor Readiness Score (0 to 100).</strong> How well the underlying business survives scrutiny: market reality, differentiation, go-to-market, team fit, risk exposure.</li>
</ul>
<p>Ten dimensions feed those two scores, five to each. Every dimension carries a required, evidence-backed explanation sentence naming the specific missing artifact, not a grade with no reason attached.</p>
<p>The commercial model is five price points: Free at $0, One-Shot at $29, Pro at $119 per month, Enterprise at $699 per month, and White-Label at $3,000 per month. Standard-tier cost of goods sold is $0.36 per review at the ceiling, $0.43 loaded. White-Label, which seats four reserved premium models, is $3.00 per review at the ceiling, $3.60 loaded. Every paid tier clears 88 percent gross margin at its full included allotment, and the standard tiers clear 96 percent or better. Cost is not the binding constraint on this business; distribution is.</p>
</section>
<!-- ====== 2. THE FULL JOURNEY ====== -->
<section id="journey">
<h2><span class="n">2</span>The Full Journey</h2>
<p>VerdictTank is one continuous loop, not a scoring endpoint. The loop is the product.</p>
<h3>2.1 Pre-submit coach</h3>
<p>Before a submitter pays for anything, the coach is open and unlimited. It reads the draft in progress and asks structuring questions: where is the total addressable market (TAM) derivation, which competitor pricing is cited, what the operating plan assumes about hiring, which regulatory regime applies. It surfaces gaps. It never emits a score, and it never writes a full paragraph on the submitter's behalf. The submitter arrives at the review with a better draft, and the review is worth more because of it.</p>
<p>The coach is available on every tier including Free, and it is the top of the funnel. A submitter who has spent twenty minutes being asked hard questions about their own document already understands why the panel is worth paying for.</p>
<h3>2.2 Submit by file or URL</h3>
<p>Intake accepts DOCX, PDF, and TXT uploads, and it accepts pasted text. URL-to-Review accepts a link, extracts the page text, and converts it into the same canonical intake format a file upload produces, so a public pitch page or a hosted memo runs through the identical pipeline. Text is normalized to UTF-8, and a PII sanitizer redacts emails, phone numbers, and identifier-shaped patterns from the stored working text before any model call is dispatched. The original binary is preserved intact and separately.</p>
<h3>2.3 The ten-seat panel</h3>
<p>The standard panel is ten seats across nine vendors: nine independent scoring seats plus one synthesis and integrity gate that never scores. Every seat is dispatched in parallel against a single-pass contract, with a per-seat timeout and a per-seat fallback binding, and a pre-dispatch health probe runs against the rostered models before any spend is committed.</p>
<p>The nine scoring seats each own a distinct error class:</p>
<table>
<thead>
<tr><th>Seat</th><th>Error class it is built to catch</th></tr>
</thead>
<tbody>
<tr><td>Research Agent</td><td>grounding failures and context errors</td></tr>
<tr><td>Primary Reviewer</td><td>full-rubric anchor plus revenue arithmetic</td></tr>
<tr><td>Market-Reality</td><td>competitive mispositioning and TAM overstatement</td></tr>
<tr><td>Financial Integrity</td><td>revenue arithmetic and financial-model errors</td></tr>
<tr><td>Legal and Compliance</td><td>legal blockers and compliance gaps</td></tr>
<tr><td>Execution-Feasibility</td><td>execution infeasibility and timeline-scope errors</td></tr>
<tr><td>Team and Founder</td><td>team capacity and founder-fit gaps</td></tr>
<tr><td>Risk and Ethics Red-Team</td><td>safety-washing and overstated risk claims</td></tr>
<tr><td>Live Grounding</td><td>hallucinated facts and stale or uncited market data</td></tr>
</tbody>
</table>
<p>The tenth seat is the Synthesis and Integrity Gate. It reads all nine scoring outputs, reconciles them, computes the panel mean, median, and standard deviation per dimension, flags outliers at 1.5 sigma, records the spread between the anchor score and the cross-check scores, and issues the verdict. It has no scoring authority of its own, which is what makes it a gate rather than a tenth opinion.</p>
<p>Nine vendors are represented so that no single vendor's blind spots become the panel's blind spots. Vendor and model identity is server-side configuration only. It never appears on a customer-facing surface.</p>
<p>The panel is built for error detection density: the number of distinct material error classes surfaced per review, not the number of comments generated. A reviewer that produces forty stylistic notes and misses a broken revenue calculation has scored zero on the only metric that matters.</p>
<h3>2.4 Two scores across ten dimensions</h3>
<p>Each of the ten dimensions is tagged idea-facing or proposal-facing at generation time, and the two groups aggregate separately into the two published scores.</p>
<h4>Proposal Strength Score (proposal-facing, five dimensions)</h4>
<table>
<thead>
<tr><th>Dimension</th><th>What it measures</th></tr>
</thead>
<tbody>
<tr><td>Problem and Solution Clarity</td><td>whether the problem, the solution, and the causal link between them are stated without ambiguity</td></tr>
<tr><td>Evidence and Citation Quality</td><td>whether every load-bearing claim has a source, a date, and a derivation</td></tr>
<tr><td>Financial Model Integrity</td><td>whether the numbers reconcile, the unit economics close, and the assumptions are visible</td></tr>
<tr><td>Execution and Operating Plan</td><td>whether the plan has sequencing, owners, dependencies, and honest timelines</td></tr>
<tr><td>Compliance and Legal Readiness</td><td>whether the applicable regime is identified and the blockers are addressed</td></tr>
</tbody>
</table>
<h4>Investor Readiness Score (idea-facing, five dimensions)</h4>
<table>
<thead>
<tr><th>Dimension</th><th>What it measures</th></tr>
</thead>
<tbody>
<tr><td>Market Reality and Sizing</td><td>whether the market exists at the claimed size and the TAM is derived, not asserted</td></tr>
<tr><td>Competitive Differentiation</td><td>whether the moat survives contact with named, priced competitors</td></tr>
<tr><td>Go-to-Market and Traction</td><td>whether there is a repeatable path to the first and hundredth customer</td></tr>
<tr><td>Team and Founder Fit</td><td>whether the team can actually execute this plan at this scale</td></tr>
<tr><td>Risk and Ethics Exposure</td><td>whether the material risks are named honestly rather than minimized</td></tr>
</tbody>
</table>
<p>The two scores are published side by side with the disagreement delta between the anchor seat and the cross-check seats. The spread is signal, not noise: high panel agreement on a low dimension is a hard finding, and high disagreement is itself reported as a flag for the submitter to investigate.</p>
<h3>2.5 Explain the low score</h3>
<p>Every per-dimension score ships with a required explanation field. The field is evidence-backed and specific. A dimension score of 41 on Market Reality and Sizing does not return "market sizing is weak." It returns the concrete absence: no TAM calculation, no competitor pricing data, no source for the growth rate cited on page four. The explanation names the missing artifact, because a missing artifact is actionable and an adjective is not.</p>
<p>The explanation field is generated on the same pass as the score, so an explanation can never drift away from the number it justifies. Free tier receives the score summary; Pro and above receive the full per-dimension explanation set.</p>
<h3>2.6 The Fix-It plan</h3>
<p>After the verdict, VerdictTank generates a structured, prioritized, dimension-tagged remediation plan keyed to the lowest-scoring dimensions. Each item carries the finding, the specific fix, and where practical the instrument required to execute it: the formula to compute, the table template to fill, the citation target to obtain, the section to rewrite and what it must contain.</p>
<p>The plan is ordered by score impact, so a submitter with two hours works the top of the list rather than guessing. Pro and above receive the full structured plan. Free receives a one-paragraph summary, which is deliberate: the summary proves the plan exists and is specific, and the full plan is the upgrade.</p>
<h3>2.7 Revise and re-score</h3>
<p>The submitter revises against the Fix-It plan and re-submits through the re-score endpoint. A fresh panel runs, and the report shows a before-and-after delta per dimension along with both new scores. The original review is preserved as a historical version with full lineage, so the improvement trail is durable and auditable by the submitter. Re-scores are billed as reviews, which keeps the incentive honest: VerdictTank is paid to run panels, not to declare victory.</p>
<h3>2.8 Queryable review corpus</h3>
<p>Every review lands in a corpus record: both scores, all ten dimension scores, the explanation set, the findings, the conditions, the verdict, the remediation list, revision lineage, and the vertical classification. The corpus is the substrate for percentile context today and for outcome-calibrated scoring later.</p>
<p>Corpus handling is strict by construction. Raw proposal text is never corpus-eligible; the filter is enforced at the schema level, not by policy. Only structural and aggregate metadata is eligible, contribution is opt-in with the flag defaulting to false, identifiers are stripped, and any aggregate publication is gated behind a k-anonymity threshold. White-Label tenants are isolated: every corpus query filters by tenant, and a tenant-scoped credential cannot read across the boundary.</p>
<h3>2.9 Share, export, integrate</h3>
<p>The verdict leaves the system three ways, and all three pass the same gate.</p>
<ul>
<li><strong>Branded PDF report.</strong> A scripted pipeline renders the verdict record into the branded multi-section report with no manual steps, writes it to storage, and delivers it by authenticated download and by transactional email with a short-expiry link.</li>
<li><strong>Shareable report link.</strong> An opt-in, sanitized public score card behind an unguessable token, with optional expiry and immediate revoke. The card carries the verdict, the two scores, and the headline findings. It carries no raw proposal text and no vendor identity.</li>
<li><strong>Review-as-a-Service API.</strong> Submit, status, verdict, rescore, and export endpoints with scoped keys, so an accelerator or a proposal desk runs VerdictTank inside its own workflow.</li>
</ul>
<h3>2.10 The sanitization gate</h3>
<p>One gate governs every path out of the system. It strips personally identifiable information and it strips model and vendor identity from every public surface, including the free-text explanation and remediation fields where such identity is most likely to appear. It blocks deploys and it blocks artifacts; it is not an advisory scan. The PDF pipeline verifies the rendered output by extracting text from the finished file and asserting zero vendor names, zero model identifiers, and the presence of the non-removable AI disclaimer before the report is released.</p>
</section>
<!-- ====== 3. FEATURE SET ====== -->
<section id="features">
<h2><span class="n">3</span>Feature Set</h2>
<h3>3.1 Before the review</h3>
<div class="table-scroll">
<table>
<thead>
<tr><th>Feature</th><th>Free</th><th>One-Shot</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td>Pre-submit coach (unlimited)</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>File upload intake (DOCX, PDF, TXT, paste)</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>URL-to-Review intake</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
</tbody>
</table>
</div>
<h3>3.2 During the review</h3>
<div class="table-scroll">
<table>
<thead>
<tr><th>Feature</th><th>Free</th><th>One-Shot</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td>Panel size</td><td>4 scoring seats plus gate</td><td>10 seats</td><td>10 seats</td><td>10 seats</td><td>11 seats, premium models</td></tr>
<tr><td>Vendors represented</td><td>4</td><td>9</td><td>9</td><td>9</td><td>9</td></tr>
<tr><td>Two scores across ten dimensions</td><td>Single summary score</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Per-dimension explanations</td><td>Score summary only</td><td>Full</td><td>Full</td><td>Full</td><td>Full</td></tr>
<tr><td>Panel spread and outlier flags</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Vertical auto-classification</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Vertical templates</td><td>No</td><td>No</td><td>No</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Configurable Review Rules Engine</td><td>No</td><td>No</td><td>No</td><td>Yes</td><td>Yes</td></tr>
</tbody>
</table>
</div>
<h3>3.3 After the review</h3>
<div class="table-scroll">
<table>
<thead>
<tr><th>Feature</th><th>Free</th><th>One-Shot</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td>Fix-It plan</td><td>1-paragraph summary</td><td>Full structured</td><td>Full structured</td><td>Full structured</td><td>Full structured</td></tr>
<tr><td>Re-score with per-dimension delta</td><td>No</td><td>No (re-purchase)</td><td>Yes, billed</td><td>Yes, billed</td><td>Yes, billed</td></tr>
<tr><td>Branded PDF report</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Shareable report link</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Review-as-a-Service API</td><td>No</td><td>No</td><td>No</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Reviewer accuracy track record</td><td>Feeds data</td><td>Feeds data</td><td>Feeds data</td><td>Data plus dashboard</td><td>Data plus dashboard</td></tr>
<tr><td>White-Label track: domain, logo, email templates, portfolio console</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr>
</tbody>
</table>
</div>
<h3>3.4 Foundation, every tier</h3>
<table>
<thead>
<tr><th>Feature</th><th>Status</th></tr>
</thead>
<tbody>
<tr><td>Review corpus with two-score schema</td><td>All tiers</td></tr>
<tr><td>Sanitization gate on every public surface</td><td>All tiers, blocking</td></tr>
<tr><td>Automated PDF pipeline, zero manual steps</td><td>Paid tiers</td></tr>
<tr><td>Outcome-tracking cron at T+90, T+180, T+365</td><td>All tiers, accumulating</td></tr>
<tr><td>Tenant isolation on corpus and credentials</td><td>White-Label</td></tr>
<tr><td>Non-removable, versioned AI disclaimer on every report</td><td>All reports</td></tr>
</tbody>
</table>
<h3>3.5 Reviewer accuracy track record</h3>
<p>Every seat accumulates a track record from its own scores against later recorded outcomes. VerdictTank surfaces that track record on Enterprise and White-Label dashboards and continues accumulating it on every tier. v4.0 does not weight live verdicts by accuracy. A weighting scheme applied before the corpus can support it would be a confidence claim the data cannot back, so the track record is published and the verdict stays unweighted.</p>
</section>
<!-- ====== 4. PRICING ====== -->
<section id="pricing">
<h2><span class="n">4</span>Pricing</h2>
<p>Five price points. Monthly, with annual available on the three subscription tiers.</p>
<div class="table-scroll">
<table>
<thead>
<tr><th>Tier</th><th>Monthly</th><th>Annual (per month)</th><th>Included reviews</th><th>Panel</th><th>Implied per review</th><th>Overage</th></tr>
</thead>
<tbody>
<tr><td>Free</td><td>$0</td><td>n/a</td><td>1 lifetime</td><td>4 scoring seats plus gate</td><td>n/a</td><td>none</td></tr>
<tr><td>One-Shot</td><td>$29</td><td>none</td><td>1</td><td>Full 10-seat</td><td>$29.00</td><td>none</td></tr>
<tr><td>Pro</td><td>$119</td><td>$99</td><td>8 per month</td><td>Full 10-seat</td><td>$14.88</td><td>$18</td></tr>
<tr><td>Enterprise</td><td>$699</td><td>$582</td><td>50 per month</td><td>Full 10-seat</td><td>$13.98</td><td>$16</td></tr>
<tr><td>White-Label</td><td>$3,000</td><td>$2,499</td><td>100 per month</td><td>11-seat premium</td><td>$30.00</td><td>$28</td></tr>
</tbody>
</table>
</div>
<div class="pricing-grid">
<div class="price-card">
<div class="price-purpose">Free</div>
<div class="price">$0<span>/ lifetime</span></div>
<ul>
<li>One lifetime review</li>
<li>4 scoring seats plus gate</li>
<li>Single summary score</li>
<li>Unlimited pre-submit coach</li>
<li>Percentile context</li>
<li>One-paragraph Fix-It summary</li>
</ul>
<div class="price-note">A demonstration, not a workflow.</div>
</div>
<div class="price-card">
<div class="price-purpose">One-Shot</div>
<div class="price">$29<span>/ one review</span></div>
<ul>
<li>Full 10-seat panel</li>
<li>Both scores across ten dimensions</li>
<li>Full per-dimension explanations</li>
<li>Full structured Fix-It plan</li>
<li>Branded PDF report</li>
<li>Shareable report link</li>
</ul>
<div class="price-note">No overage. No annual plan. Revise and re-score by buying again or moving to Pro.</div>
</div>
<div class="price-card price-card--featured">
<div class="ribbon">Most popular</div>
<div class="price-purpose">Pro</div>
<div class="price">$119<span>/ month</span></div>
<ul>
<li>8 reviews per month</li>
<li>Full 10-seat panel</li>
<li>Both scores and full explanations</li>
<li>Full structured Fix-It plan</li>
<li>Re-score with per-dimension delta</li>
<li>Branded PDF and shareable link</li>
<li>Overage at $18</li>
</ul>
<div class="price-note">Annual: $99 per month. Implied per review: $14.88.</div>
</div>
<div class="price-card">
<div class="price-purpose">Enterprise</div>
<div class="price">$699<span>/ month</span></div>
<ul>
<li>50 reviews per month</li>
<li>Vertical templates</li>
<li>Configurable Review Rules Engine</li>
<li>Review-as-a-Service API</li>
<li>Accuracy dashboard</li>
<li>Overage at $16</li>
</ul>
<div class="price-note">Annual: $582 per month. Implied per review: $13.98.</div>
</div>
<div class="price-card">
<div class="price-purpose">White-Label</div>
<div class="price">$3,000<span>/ month</span></div>
<ul>
<li>100 reviews per month</li>
<li>11-seat premium panel, 4 reserved models</li>
<li>Custom domain, logo, email templates</li>
<li>Portfolio console</li>
<li>Tenant-isolated corpus</li>
<li>Overage at $28</li>
</ul>
<div class="price-note">Annual: $2,499 per month. Implied per review: $30.00.</div>
</div>
</div>
<h3>4.1 What each tier is for</h3>
<p><strong>Free, $0, one lifetime review on the reduced panel.</strong> Four scoring seats plus the gate, single summary score, percentile context, unlimited coach, and a one-paragraph Fix-It summary. It proves the panel is real without giving away the full ten-seat output. One review is lifetime, not monthly, so Free is a demonstration rather than a workflow.</p>
<p><strong>One-Shot, $29, one review on the full ten-seat panel.</strong> The bridge for the founder who needs one honest read and is not ready for a subscription. It runs the complete standard panel, both scores, the full per-dimension explanations, the full structured Fix-It plan, the branded PDF, and a shareable link. There is no overage, because a single purchase has nothing to exceed, and there is no annual plan, because it is not a subscription. The buyer who wants to revise and re-score buys again or moves to Pro.</p>
<p><strong>Pro, $119 per month, eight reviews.</strong> Eight reviews is a real iteration cadence: two per week, propose, review, revise, re-review. At $14.88 implied per review it prices below the one-off, so the subscription reads as the better deal for anyone actually iterating. Overage at $18 sits just above the included rate, which nudges heavy solo users toward the bundle they already have or up to Enterprise. Annual is $99 per month.</p>
<p><strong>Enterprise, $699 per month, fifty reviews.</strong> Roughly six times Pro's volume for roughly six times the price, so the ladder stays proportional and the upgrade is easy to justify. A team running multiple proposals and request-for-proposal (RFP) responses lands in the thirty to fifty range per month, so fifty is generous but bounded. Enterprise adds vertical templates, the Configurable Review Rules Engine, the API, and the accuracy dashboard. Overage at $16. Annual is $582 per month.</p>
<p><strong>White-Label, $3,000 per month, one hundred reviews.</strong> The reseller and consultancy tier. Custom domain, custom logo, branded email templates, a portfolio console, and tenant-isolated corpus segments, so a consultancy runs the panel entirely under its own brand. It is the only tier that seats the four reserved premium models, across eleven seats rather than ten: a premium primary reviewer, a premium execution-feasibility seat, a premium red-team seat, a premium synthesis gate, and a retained cross-check seat that preserves vendor diversity against the premium anchor. Per-review cost is roughly ten times standard, and the price carries it. Overage at $28 reflects the premium roster. Annual is $2,499 per month.</p>
<h3>4.2 Configurable Review Rules Engine</h3>
<p>Enterprise and White-Label administrators define additive custom checks through a no-code builder: compliance rules, brand-voice guidelines, internal investment criteria, mandatory sections. Custom rules layer on top of the fixed ten-dimension rubric. They never replace it and they never suppress a dimension score, so a tenant cannot configure away a finding it does not want to see. That constraint is what keeps a white-labeled verdict worth the same as a first-party one.</p>
</section>
<!-- ====== 5. ROADMAP ====== -->
<section id="roadmap">
<h2><span class="n">5</span>Roadmap</h2>
<h3>5.1 The v4.0 release track</h3>
<p>v4.0 is planned as five gated phases over twenty-four weeks, built by a solo developer plus an AI-agent build pipeline. The review engine and pipeline are proven in operation today; the client portal, billing, and API are the build. Each phase closes on a hard acceptance gate, and no phase closes on a self-report.</p>
<div class="table-scroll">
<table>
<thead>
<tr><th>Phase</th><th>Weeks</th><th>Deliverable</th><th>Closing gate</th></tr>
</thead>
<tbody>
<tr><td>0. Foundation and corpus</td><td>1 to 3</td><td>Blocking sanitization gate covering explanation and remediation fields; scripted PDF pipeline; corpus schema with two-score columns and reserved outcome columns; outcome cron scheduled</td><td>Zero manual sanitization steps in any public path; one review runs end to end into the corpus and out as a PDF with no manual step; cron logs its first run</td></tr>
<tr><td>1. Intake and scoring</td><td>4 to 8</td><td>Coach tier-wide; URL-to-Review alongside file upload; two scores as the panel's default output contract; per-dimension explanation as a required field; accuracy tracking begins</td><td>Every review emits two scores and a per-dimension explanation; coach and URL intake in production with zero gate failures; accuracy tracking records every seat on every review</td></tr>
<tr><td>2. Fix-It and reports</td><td>9 to 13</td><td>Structured Fix-It on Pro and above; shareable report links; vertical auto-classification and the first three vertical templates</td><td>Fix-It plan on 100 percent of Pro-and-above reviews; a shareable report passes the gate end to end; two of three vertical templates validated against known outcomes</td></tr>
<tr><td>3. Enterprise controls and API</td><td>14 to 18</td><td>Rules Engine to Enterprise and White-Label; Review-as-a-Service API to Enterprise; vertical templates to five</td><td>Rules Engine live with three Enterprise accounts; the API completes 100 reviews with zero gate failures</td></tr>
<tr><td>4. White-Label and GA</td><td>19 to 24</td><td>White-Label track live with custom domain, logo, email templates, portfolio console, tenant isolation; API generally available; five price points live on both surfaces</td><td>First White-Label pilot renews past month one; API generally available to Enterprise; marketing site and portal show the five price points with no stale pricing anywhere</td></tr>
</tbody>
</table>
</div>
<h3>5.2 What comes next</h3>
<p>v4.1 and beyond, in order of expected value:</p>
<ol>
<li><strong>Outcome-calibrated scoring.</strong> The outcome cron accumulates from launch day at T+90, T+180, and T+365, and the schema carries the outcome columns from day one, so no migration is required. Once the corpus clears a minimum-N threshold, the accuracy track record becomes a published dashboard and then a candidate weighting input.</li>
<li><strong>Competitive review comparisons.</strong> Full benchmarking of a new proposal against the corpus distribution, dimension by dimension and vertical by vertical, replacing the percentile context available today.</li>
<li><strong>Market simulation.</strong> Replaces the static financial table with a twelve-month trajectory model, adding a per-review cost that the Enterprise and White-Label price points absorb.</li>
<li><strong>Second-opinion audit agent.</strong> A dedicated blind-spot pass over the panel's own output, held until the corpus and accuracy data can measure its catch rate against a real baseline rather than an assumption.</li>
<li><strong>Adversarial red-team per vertical.</strong> Industry-specific attack vectors, sequenced after the vertical classifier has a proven accuracy record.</li>
</ol>
<h3>5.3 Explicit non-goals</h3>
<p>Scope is bounded on purpose:</p>
<ul>
<li>No community or peer-review surface of any kind. A public roast board carries moderation and abuse overhead with no revenue tie, and it dilutes the independent-panel identity that is the entire product.</li>
<li>No weighting of live verdicts by reviewer accuracy in v4.0. Track only.</li>
<li>No product-facing outcome dashboard in v4.0. The cron runs and accumulates; the dashboard follows the data.</li>
<li>No standard-tier access to the four reserved premium models.</li>
<li>No proposal ghostwriting, ever. The coach asks questions. The panel critiques. Neither one composes the submitter's argument for them.</li>
</ul>
</section>
<!-- ====== 6. FINANCIAL MODEL ====== -->
<section id="financial-model">
<h2><span class="n">6</span>Financial Model</h2>
<h3>6.1 Unit economics and cost of goods sold</h3>
<p>Costing assumption: 12,000 input tokens per scoring seat for a twenty-page proposal, roughly 40,000 characters, with the worker truncating above that; the synthesis gate reads roughly 20,000 input tokens. Per-seat cost is input rate times input tokens plus output rate times output budget. Dispatch is single-pass chat completion with no tool calling, which is the regime that makes a ten-seat panel cost cents rather than dollars. All margin guarantees below use the ceiling figure, which assumes every seat burns its full upper-bound output budget. The base figure is the typical case and is never used for a margin claim.</p>
<table>
<thead>
<tr><th>Roster</th><th>Seats</th><th>COGS ceiling per review</th><th>Loaded ceiling (x1.20)</th><th>COGS base per review</th></tr>
</thead>
<tbody>
<tr><td>Free reduced panel</td><td>5 model calls</td><td>$0.15</td><td>$0.18</td><td>$0.10</td></tr>
<tr><td>Standard panel</td><td>10</td><td>$0.36</td><td>$0.43</td><td>$0.25</td></tr>
<tr><td>White-Label premium panel</td><td>11</td><td>$3.00</td><td>$3.60</td><td>$1.52</td></tr>
</tbody>
</table>
<p>The loaded figure applies a flat 20 percent infrastructure and overhead buffer covering the application host, the database, object storage, the PDF renderer, and email delivery.</p>
<h3>6.2 Gross margin at full allotment consumption</h3>
<p>Margin is computed at the pessimistic bound: every included review consumed, every seat at its ceiling output budget, loaded cost.</p>
<table>
<thead>
<tr><th>Tier</th><th>Revenue</th><th>Included reviews</th><th>Loaded COGS at full consumption</th><th>Gross margin</th></tr>
</thead>
<tbody>
<tr><td>Free</td><td>$0</td><td>1 lifetime</td><td>$0.18 one time</td><td>loss leader</td></tr>
<tr><td>One-Shot</td><td>$29</td><td>1</td><td>$0.43</td><td>98.5%</td></tr>
<tr><td>Pro</td><td>$119</td><td>8</td><td>$3.44</td><td>97.1%</td></tr>
<tr><td>Enterprise</td><td>$699</td><td>50</td><td>$21.50</td><td>96.9%</td></tr>
<tr><td>White-Label</td><td>$3,000</td><td>100</td><td>$360.00</td><td>88.0%</td></tr>
</tbody>
</table>
<p>Overage is itself high margin by construction. Pro overage at $18 and Enterprise overage at $16 both sit far above the $0.43 loaded standard cost, so overage carries better than 95 percent margin while still reading as a nudge toward the next tier. White-Label overage at $28 against $3.60 loaded carries roughly 87 percent margin.</p>
<p>Stress case: if both premium reasoning seats in the White-Label roster burn a full 12,000-token output budget, per-review ceiling reaches $3.87, or $4.64 loaded. One hundred such reviews cost $464.40 against $3,000 revenue, which is 84.5 percent gross margin. The worst realistic case on the most expensive tier still clears 84 percent.</p>
<p>The structural conclusion is that cost of goods sold is not the constraint on this business. Even two hundred Enterprise reviews in a month cost roughly $86 loaded against $699 revenue. Review allotments are therefore set by value anchoring and ladder logic, not by cost recovery, and pricing pressure can be absorbed without touching the panel.</p>
<h3>6.3 Revenue projection, floor and ceiling</h3>
<p>Two scenarios at month twelve post-launch, measured as monthly recurring revenue (MRR). Both are stated as assumption sets, not forecasts. Both assume every included review is consumed, which overstates cost and understates margin.</p>
<h4>Floor scenario, month 12</h4>
<table>
<thead>
<tr><th>Line</th><th>Accounts or volume</th><th>Monthly revenue</th><th>Monthly loaded COGS</th></tr>
</thead>
<tbody>
<tr><td>One-Shot</td><td>40 purchases per month</td><td>$1,160</td><td>$17.20</td></tr>
<tr><td>Pro</td><td>35 accounts</td><td>$4,165</td><td>$120.40</td></tr>
<tr><td>Enterprise</td><td>3 accounts</td><td>$2,097</td><td>$64.50</td></tr>
<tr><td>White-Label</td><td>0 accounts</td><td>$0</td><td>$0.00</td></tr>
<tr><td><strong>Total</strong></td><td></td><td><strong>$7,422 MRR</strong></td><td><strong>$202.10</strong></td></tr>
</tbody>
</table>
<p>Floor gross margin: 97.3 percent. Annual run rate at month twelve: $89,064.</p>
<h4>Ceiling scenario, month 12</h4>
<table>
<thead>
<tr><th>Line</th><th>Accounts or volume</th><th>Monthly revenue</th><th>Monthly loaded COGS</th></tr>
</thead>
<tbody>
<tr><td>One-Shot</td><td>150 purchases per month</td><td>$4,350</td><td>$64.50</td></tr>
<tr><td>Pro</td><td>180 accounts</td><td>$21,420</td><td>$619.20</td></tr>
<tr><td>Enterprise</td><td>14 accounts</td><td>$9,786</td><td>$301.00</td></tr>
<tr><td>White-Label</td><td>4 accounts</td><td>$12,000</td><td>$1,440.00</td></tr>
<tr><td><strong>Total</strong></td><td></td><td><strong>$47,556 MRR</strong></td><td><strong>$2,424.70</strong></td></tr>
</tbody>
</table>
<p>Ceiling gross margin: 94.9 percent. Annual run rate at month twelve: $570,672.</p>
<p>Free tier cost is a one-time charge per account rather than recurring, since Free grants one lifetime review. At $0.18 loaded per Free review, one thousand two hundred cumulative Free reviews cost $216 in total and six thousand cost $1,080 in total. Free is affordable at any signup volume the funnel can realistically produce, which is why the reduced panel exists rather than a time-limited trial.</p>
<p>Annual billing at $99, $582, and $2,499 per month trades 16.7 percent of headline revenue, two months free, for twelve months of committed cash and materially lower churn exposure. At the ceiling scenario, a fifty percent annual mix on Pro and Enterprise reduces month-twelve MRR by roughly $2,619 and converts roughly $156,000 of annualized revenue into prepaid commitment.</p>
<h3>6.4 What moves the model</h3>
<p>Sensitivity, ranked:</p>
<ol>
<li><strong>Pro account count.</strong> Pro is the volume tier and the largest single revenue line in both scenarios. It is the number to move.</li>
<li><strong>White-Label logos.</strong> Each White-Label account is worth roughly twenty-five Pro accounts. Landing one changes the shape of the revenue curve; landing four is the difference between the floor and the ceiling scenario.</li>
<li><strong>One-Shot to Pro conversion.</strong> One-Shot is priced as a bridge, and its value is mostly in what fraction of buyers subscribe after seeing the full ten-seat output once.</li>
<li><strong>Enterprise seat expansion.</strong> Enterprise is the highest-effort sale, and the Rules Engine and API are the features that make it defensible rather than a volume discount.</li>
<li><strong>Cost of goods sold.</strong> Last, and by a wide margin. A doubling of every model rate in the panel would still leave Pro above 94 percent gross margin.</li>
</ol>
</section>
<!-- ====== 7. RISK ASSESSMENT ====== -->
<section id="risk">
<h2><span class="n">7</span>Risk Assessment</h2>
<p>Ranked by expected impact on the product at launch, each with the control that is in place.</p>
<h3>7.1 Reviewer availability <span class="tag tag-red">High impact</span></h3>
<p>The panel depends on nine vendors, and any one of them can rate-limit, exhaust credit, or return transport errors. Controls: a pre-dispatch health probe runs one cheap call per rostered model before spend is committed; every seat carries a named fallback binding; a review completes on a documented reduced panel rather than failing when a seat cannot be filled, and any review that ran reduced is flagged as such on the report and in the corpus record. The live-grounding seat is the single most availability-sensitive seat in the standard roster and is provisioned with a direct vendor credential rather than a shared route, plus a same-vendor-class fallback that is already live in the panel.</p>
<h3>7.2 Model output integrity <span class="tag tag-red">High impact</span></h3>
<p>Reasoning models can truncate structured output at low token caps, and some models constrain sampling parameters. Controls: per-seat output budgets are sized above the truncation threshold for every reasoning seat rather than set to a global default; seats with sampling constraints carry an explicit per-seat parameter quirk in the roster configuration; every seat response is schema-validated before it enters synthesis, and a seat returning unparseable output is retried once and then fails over rather than silently contributing a null score. Models without a published per-token input cost are not seated in any cost-guaranteed tier at all.</p>
<h3>7.3 Cost verification <span class="tag tag-amber">Medium impact</span></h3>
<p>Two standard-roster seats bill through providers whose usage responses do not always carry a cost field, so their per-review contribution is computed from configured rates rather than reconciled against metered spend. Controls: those seats are provisioned with native vendor credentials so spend meters end to end; the margin guarantee uses the ceiling COGS across the whole roster, which absorbs a material rate change on any single seat; the combined ceiling contribution of the two affected seats is $0.0632 per review against a $0.36 total, so even a doubling of both moves loaded standard COGS from $0.43 to roughly $0.51 and leaves Pro above 96 percent margin. Base COGS figures are internal planning numbers and are not quoted externally.</p>
<h3>7.4 Sanitization and confidentiality <span class="tag tag-red">High impact if it fails</span></h3>
<p>A critique product handles unreleased strategy documents, and a leak of raw text or reviewer identity is an existential trust failure rather than a bug. Controls: the sanitization gate blocks rather than warns, and it covers the free-text explanation and remediation fields alongside structured fields; raw proposal text is schema-level ineligible for the corpus; corpus contribution is opt-in and defaults to false; the PDF pipeline extracts text from the finished file and asserts zero vendor and model identifiers plus the verbatim presence of the AI disclaimer before release; share tokens are unguessable, expirable, and revocable, and a revoked token returns not-found; tenant isolation is enforced on every corpus query and every scoped credential.</p>
<p>VerdictTank does not use submitted proposals to build its own products, train models, or inform its own proposals. A submission is processed only to produce that submitter's review, and is retained only for the submitter's own reference and legal record. Review processing does run through third-party AI providers under their own data-handling terms.</p>
<h3>7.5 Verdict liability <span class="tag tag-amber">Medium impact</span></h3>
<p>A submitter can act on a verdict and attribute an outcome to it. Controls: a versioned, non-removable AI disclaimer renders on every report and cannot be templated away; inter-seat agreement and the panel spread are published beside every score so confidence is visible rather than implied; the liability cap is the greater of $100 or twelve months of fees; the status page distinguishes VerdictTank incidents from upstream provider incidents so an outage is not misread as a product defect.</p>
<h3>7.6 Positioning drift <span class="tag tag-amber">Medium impact and slow</span></h3>
<p>The most likely way this product degrades is by drifting toward writing. Customers will ask for it, and a generated paragraph is easier to deliver than an honest score. Controls: the coach is architecturally forbidden from composing paragraphs, the Rules Engine is additive only and cannot suppress a dimension score, and no roadmap item shifts VerdictTank toward authorship. We critique them; we don't write them, and that is a product constraint, not a slogan.</p>
<h3>7.7 Concentration and capacity <span class="tag tag-amber">Medium impact</span></h3>
<p>v4.0 is built and operated by a solo developer plus an AI-agent build pipeline, and the review worker is serial at launch. Controls: the review state machine is durable and replayable, with per-seat evidence stored so a partial panel resumes rather than restarting; the scale path is a depth cap plus parallel workers, which is a configuration change and not a redesign; the full customer-facing stack and the review engine sit on a single host with one state machine, so there is no cross-host coordination to debug under load. At the ceiling scenario, month-twelve volume is roughly 2,690 reviews per month, which a serial worker at a sixty-second critical path clears with substantial headroom.</p>
<h3>7.8 Distribution <span class="tag tag-red">Highest impact overall</span></h3>
<p>The panel works and the margins are structurally excellent, which means the binding risk is that not enough submitters find the product. Controls: Free is a real full-loop demonstration on a reduced panel rather than a time-limited trial; One-Shot at $29 removes the subscription objection entirely; the coach is unlimited on every tier and is the widest part of the funnel; shareable report links put a branded verdict in front of the submitter's own investors and advisors; the API and the White-Label track make other people's distribution into ours.</p>
</section>
<!-- ====== 8. SUMMARY ====== -->
<section id="summary">
<h2><span class="n">8</span>Summary</h2>
<p>VerdictTank v4.0 ships the complete critique loop: coach the draft, submit a file or a URL, run ten seats across nine vendors, publish a Proposal Strength Score and an Investor Readiness Score across ten dimensions, explain every low dimension with the specific missing artifact, hand back a prioritized Fix-It plan, re-score the revision with a per-dimension delta, keep it all in a queryable corpus, and ship the verdict as a branded PDF, a shareable card, or an API response with a sanitization gate on every path out.</p>
<p>Five price points cover the range from a single honest read at $29 to a fully branded reseller platform at $3,000 per month, and every paid tier clears 88 percent gross margin at full consumption with the standard tiers above 96 percent. The economics are settled. The architecture is proven. What remains is the build, then distribution.</p>
<div class="positioning-statement">We critique them; we don't write them.</div>
</section>
</main>
<footer>
VerdictTank v4.0 - AI Proposal Review &amp; Scoring<br>
We critique them; we don't write them.
</footer>
</body>
</html>
+626
View File
@@ -0,0 +1,626 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VerdictTank v4.1 - AI Proposal Review &amp; Scoring</title>
<style>
:root{
--bg:#0b0e14;--panel:#131824;--panel2:#1a2030;--ink:#e6edf3;--muted:#8b97a8;
--line:#232b3a;--accent:#4da3ff;--accent2:#7ee787;--warn:#f0a45c;--bad:#ff6b6b;
--code:#0d1117;--codeink:#c9d1d9;--pass:#2ea043;--below:#d29922;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
header.hero{background:linear-gradient(135deg,#0b0e14,#131824 60%,#0f1a2e);
border-bottom:1px solid var(--line);padding:48px 0 36px}
.badge{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:4px 12px;margin-bottom:16px}
h1{font-size:34px;margin:6px 0 8px;letter-spacing:-.5px}
.sub{color:var(--muted);font-size:16px;max-width:760px}
.meta{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.meta span{font-size:12px;background:var(--panel2);border:1px solid var(--line);
border-radius:6px;padding:5px 10px;color:var(--muted)}
.meta b{color:var(--ink)}
nav.toc{position:sticky;top:0;z-index:20;background:rgba(11,14,20,.92);
backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 0}
nav.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px}
nav.toc a{color:var(--muted);text-decoration:none;padding:4px 9px;border-radius:6px;border:1px solid transparent}
nav.toc a:hover{color:var(--ink);border-color:var(--line);background:var(--panel)}
section{padding:40px 0;border-bottom:1px solid var(--line)}
h2{font-size:24px;margin:0 0 6px;letter-spacing:-.3px}
h2 .n{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:10px}
h3{font-size:17px;margin:26px 0 8px;color:var(--accent2)}
h4{font-size:14px;margin:18px 0 6px;color:var(--warn);text-transform:uppercase;letter-spacing:.06em}
p{margin:10px 0}
.lead{color:var(--muted);font-size:15.5px;margin-bottom:8px}
ul,ol{margin:10px 0;padding-left:22px}
li{margin:5px 0}
code{background:var(--code);color:var(--codeink);padding:2px 6px;border-radius:4px;
font:13px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,monospace}
pre{background:var(--code);color:var(--codeink);border:1px solid var(--line);border-radius:10px;
padding:16px;overflow:auto;font:12.5px/1.55 "SF Mono",ui-monospace,Menlo,Consolas,monospace;margin:14px 0}
pre.ascii{line-height:1.35;font-size:12px;color:#9fb3c8}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--panel2);color:var(--ink);font-weight:600}
td{background:var(--panel);color:var(--ink)}
/* Custom blocks */
.evolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
.evolution-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px}
.evolution-card--current{border-color:var(--accent);background:var(--panel2)}
.version-badge{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin-bottom:8px}
.version-badge--current{color:var(--accent)}
.breakthrough-label{font-size:12px;color:var(--accent2);font-weight:600;margin-bottom:6px}
.callout{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:20px 0}
.callout--proof{border-left:4px solid var(--accent)}
.defense-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}
.defense-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.positioning-statement{font-size:16px;color:var(--accent2);text-align:center;margin:28px 0;padding:16px;background:var(--panel2);border:1px solid var(--accent);border-radius:10px}
.comp-table__us td{background:#0f1a2e;color:var(--accent);font-weight:600}
.muted{color:var(--muted);font-size:12px}
.table-note{font-size:12px;color:var(--muted);margin:4px 0 14px}
.strategy-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}
.strategy-cols h4{text-transform:none;color:var(--accent);font-size:14px}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0}
.price-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;text-align:center}
.price-card--featured{border-color:var(--accent);background:var(--panel2);position:relative}
.ribbon{position:absolute;top:-10px;left:50%;transform:translateX(-50%);
background:var(--accent);color:#0b0e14;font-size:11px;font-weight:700;
padding:3px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}
.price{font-size:36px;font-weight:700;margin:8px 0}
.price span{font-size:16px;color:var(--muted);font-weight:400}
.price-card ul{list-style:none;padding:0;text-align:left;margin:12px 0}
.price-card li{margin:6px 0;font-size:13px}
.price-card li::before{content:"✓ ";color:var(--accent2);font-weight:700}
.price-purpose{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:12px}
.walkthrough{display:grid;gap:16px;margin:16px 0}
.wt-input{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.wt-proposal-text{font-style:italic;color:var(--muted);border-left:3px solid var(--warn);padding-left:14px;margin:10px 0}
.wt-context{font-size:12px;color:var(--muted);margin-top:8px}
.wt-scores{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.score-block{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.score-block--narrative{border-left:4px solid var(--accent)}
.score-block--compliance{border-left:4px solid var(--warn)}
.score-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.score-value{font-size:40px;font-weight:700;margin:4px 0}
.score-value span{font-size:16px;color:var(--muted);font-weight:400}
.score-block--narrative .score-value{color:var(--accent)}
.score-block--compliance .score-value{color:var(--bad)}
.wt-verdict{margin:8px 0}
.wt-fixit{margin:8px 0}
.fixit-list li{margin:12px 0;padding:0}
.fixit-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.fixit-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.fixit-tag--critical{background:rgba(255,107,107,.15);color:var(--bad);border:1px solid rgba(255,107,107,.3)}
.fixit-tag--high{background:rgba(240,164,92,.15);color:var(--warn);border:1px solid rgba(240,164,92,.3)}
.fixit-tag--medium{background:rgba(77,163,255,.15);color:var(--accent);border:1px solid rgba(77,163,255,.3)}
.fixit-delta{font-size:12px;color:var(--accent2);font-weight:600}
.wt-rescore{margin:8px 0}
.rescore-line{font-size:15px}
.timeline{margin:20px 0}
.timeline-phase{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:8px 0}
.timeline-phase--risk{border-color:var(--warn);background:var(--panel2)}
.tl-weeks{font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.method-list{margin:10px 0 20px}
.tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.tag-green{background:rgba(46,160,67,.15);color:var(--pass);border:1px solid rgba(46,160,67,.3)}
.tag-amber{background:rgba(210,153,34,.15);color:var(--below);border:1px solid rgba(210,153,34,.3)}
.tag-red{background:rgba(255,107,107,.15);color:var(--bad);border:1px solid rgba(255,107,107,.3)}
.highlight{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:16px 0}
.arch-box{background:var(--code);color:var(--codeink);border:1px solid var(--line);border-radius:8px;
padding:14px 16px;margin:12px 0;font:12.5px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,monospace}
footer{text-align:center;padding:40px 0 30px;border-top:1px solid var(--line);margin-top:40px;
font-size:12px;color:var(--muted);line-height:1.8}
footer a{color:var(--accent)}
a{color:var(--accent)}
/* New: wide-table scroll wrapper and 5-card pricing refinements */
.table-scroll{overflow-x:auto;margin:14px 0}
.table-scroll table{margin:0}
.price-card .price{font-size:28px}
.price-note{font-size:12px;color:var(--muted);margin-top:8px}
@media (max-width:768px){
.evolution-grid,.defense-grid,.strategy-cols,.pricing-grid,.wt-scores{grid-template-columns:1fr}
h1{font-size:28px}
.price{font-size:28px}
.score-value{font-size:30px}
}
</style>
</head>
<body>
<!-- ====== HERO ====== -->
<header class="hero">
<div class="wrap" style="text-align:center">
<div class="badge">v4.1 · Architecture-Proven · Pre-Revenue</div>
<h1 style="font-size:42px;letter-spacing:-1px">VerdictTank</h1>
<p class="positioning-statement" style="font-size:18px;margin:10px auto 20px;max-width:640px">
We critique them; we don't write them.
</p>
<p class="sub" style="font-size:18px;max-width:820px;margin:0 auto">
VerdictTank is a multi-vendor AI proposal review product. A founder, a proposal team, or a consultant submits a business proposal as a file or a URL. VerdictTank runs that document through a panel of ten independent AI reviewer seats spanning nine vendors, returns two separate scores across ten scored dimensions, explains in plain language exactly what is missing behind every low dimension, and hands back a structured Fix-It plan the submitter can execute.
</p>
<div class="meta" style="justify-content:center;margin-top:24px">
<span><b>Document</b> v4.1 Proposal (master narrative)</span>
<span><b>Status</b> Architecture-proven, pre-revenue</span>
<span><b>Date</b> 2026-08-18</span>
<span><b>Owner</b> Germaine Brown, product owner</span>
<span><b>Surfaces</b> verdicttank.com, my.verdicttank.com, api.verdicttank.com</span>
</div>
</div>
</header>
<!-- ====== TOC ====== -->
<nav class="toc">
<div class="wrap">
<ol>
<li><a href="#executive-summary">1. Executive Summary</a></li>
<li><a href="#journey">2. The Full Journey</a></li>
<li><a href="#features">3. Feature Set</a></li>
<li><a href="#pricing">4. Pricing</a></li>
<li><a href="#roadmap">5. Roadmap</a></li>
<li><a href="#financial-model">6. Financial Model</a></li>
<li><a href="#risk">7. Risk Assessment</a></li>
<li><a href="#summary">8. Summary</a></li>
</ol>
</div>
</nav>
<main class="wrap">
<!-- ====== 1. EXECUTIVE SUMMARY ====== -->
<section id="executive-summary">
<h2><span class="n">1</span>Executive Summary</h2>
<p>VerdictTank is a multi-vendor AI proposal review product. A founder, a proposal team, or a consultant submits a business proposal as a file or a URL. VerdictTank runs that document through a panel of ten independent AI reviewer seats spanning nine vendors, returns two separate scores across ten scored dimensions, explains in plain language exactly what is missing behind every low dimension, and hands back a structured Fix-It plan the submitter can execute. The submitter revises, re-submits, and re-scores, and the delta is shown dimension by dimension. Every review lands in a queryable corpus, and every public artifact leaves the system through a sanitization gate.</p>
<p>VerdictTank does not write proposals. It critiques them. That boundary is the product. A writing tool is incentivized to tell you the draft it produced is good. A critique tool is only valuable if it is willing to tell you the draft is not ready, name the reason, and quantify how far off it is. Every design decision in v4.1 follows from that boundary: the pre-submit coach asks structuring questions and never composes paragraphs, the panel scores independently before any synthesis, and the synthesis seat never scores at all.</p>
<p>The two scores are the reason a submitter trusts the output. A single blended number hides the most useful signal in proposal review, which is the gap between a strong idea in a weak document and a weak idea in a polished document. VerdictTank separates them:</p>
<ul>
<li><strong>Proposal Strength Score (0 to 100).</strong> How well the document makes its case: clarity, evidence, financial integrity, operating plan, compliance readiness.</li>
<li><strong>Investor Readiness Score (0 to 100).</strong> How well the underlying business survives scrutiny: market reality, differentiation, go-to-market, team fit, risk exposure.</li>
</ul>
<p>Ten dimensions feed those two scores, five to each. Every dimension carries a required, evidence-backed explanation sentence naming the specific missing artifact, not a grade with no reason attached.</p>
<p>The commercial model is five price points: Free at $0, One-Shot at $29, Pro at $119 per month, Enterprise at $699 per month, and White-Label at $3,000 per month. Standard-tier cost of goods sold is $0.36 per review at the ceiling, $0.43 loaded. White-Label, which seats four reserved premium models, is $3.00 per review at the ceiling, $3.60 loaded. Every paid tier clears 88 percent gross margin at its full included allotment, and the standard tiers clear 96 percent or better. Cost is not the binding constraint on this business; distribution is.</p>
</section>
<!-- ====== 2. THE FULL JOURNEY ====== -->
<section id="journey">
<h2><span class="n">2</span>The Full Journey</h2>
<p>VerdictTank is one continuous loop, not a scoring endpoint. The loop is the product.</p>
<h3>2.1 Pre-submit coach</h3>
<p>Before a submitter pays for anything, the coach is open and unlimited. It reads the draft in progress and asks structuring questions: where is the total addressable market (TAM) derivation, which competitor pricing is cited, what the operating plan assumes about hiring, which regulatory regime applies. It surfaces gaps. It never emits a score, and it never writes a full paragraph on the submitter's behalf. The submitter arrives at the review with a better draft, and the review is worth more because of it.</p>
<p>The coach is available on every tier including Free, and it is the top of the funnel. A submitter who has spent twenty minutes being asked hard questions about their own document already understands why the panel is worth paying for.</p>
<h3>2.2 Submit by file or URL</h3>
<p>Intake accepts DOCX, PDF, and TXT uploads, and it accepts pasted text. URL-to-Review accepts a link, extracts the page text, and converts it into the same canonical intake format a file upload produces, so a public pitch page or a hosted memo runs through the identical pipeline. Text is normalized to UTF-8, and a PII sanitizer redacts emails, phone numbers, and identifier-shaped patterns from the stored working text before any model call is dispatched. The original binary is preserved intact and separately.</p>
<h3>2.3 The ten-seat panel</h3>
<p>The standard panel is ten seats across nine vendors: nine independent scoring seats plus one synthesis and integrity gate that never scores. Every seat is dispatched in parallel against a single-pass contract, with a per-seat timeout and a per-seat fallback binding, and a pre-dispatch health probe runs against the rostered models before any spend is committed.</p>
<p>The nine scoring seats each own a distinct error class:</p>
<table>
<thead>
<tr><th>Seat</th><th>Error class it is built to catch</th></tr>
</thead>
<tbody>
<tr><td>Research Agent</td><td>grounding failures and context errors</td></tr>
<tr><td>Primary Reviewer</td><td>full-rubric anchor plus revenue arithmetic</td></tr>
<tr><td>Market-Reality</td><td>competitive mispositioning and TAM overstatement</td></tr>
<tr><td>Financial Integrity</td><td>revenue arithmetic and financial-model errors</td></tr>
<tr><td>Legal and Compliance</td><td>legal blockers and compliance gaps</td></tr>
<tr><td>Execution-Feasibility</td><td>execution infeasibility and timeline-scope errors</td></tr>
<tr><td>Team and Founder</td><td>team capacity and founder-fit gaps</td></tr>
<tr><td>Risk and Ethics Red-Team</td><td>safety-washing and overstated risk claims</td></tr>
<tr><td>Live Grounding</td><td>hallucinated facts and stale or uncited market data</td></tr>
</tbody>
</table>
<p>The tenth seat is the Synthesis and Integrity Gate. It reads all nine scoring outputs, reconciles them, computes the panel mean, median, and standard deviation per dimension, flags outliers at 1.5 sigma, records the spread between the anchor score and the cross-check scores, and issues the verdict. It has no scoring authority of its own, which is what makes it a gate rather than a tenth opinion.</p>
<p>Nine vendors are represented so that no single vendor's blind spots become the panel's blind spots. Vendor and model identity is server-side configuration only. It never appears on a customer-facing surface.</p>
<p>The panel is built for error detection density: the number of distinct material error classes surfaced per review, not the number of comments generated. A reviewer that produces forty stylistic notes and misses a broken revenue calculation has scored zero on the only metric that matters.</p>
<h3>2.4 Two scores across ten dimensions</h3>
<p>Each of the ten dimensions is tagged idea-facing or proposal-facing at generation time, and the two groups aggregate separately into the two published scores.</p>
<h4>Proposal Strength Score (proposal-facing, five dimensions)</h4>
<table>
<thead>
<tr><th>Dimension</th><th>What it measures</th></tr>
</thead>
<tbody>
<tr><td>Problem and Solution Clarity</td><td>whether the problem, the solution, and the causal link between them are stated without ambiguity</td></tr>
<tr><td>Evidence and Citation Quality</td><td>whether every load-bearing claim has a source, a date, and a derivation</td></tr>
<tr><td>Financial Model Integrity</td><td>whether the numbers reconcile, the unit economics close, and the assumptions are visible</td></tr>
<tr><td>Execution and Operating Plan</td><td>whether the plan has sequencing, owners, dependencies, and honest timelines</td></tr>
<tr><td>Compliance and Legal Readiness</td><td>whether the applicable regime is identified and the blockers are addressed</td></tr>
</tbody>
</table>
<h4>Investor Readiness Score (idea-facing, five dimensions)</h4>
<table>
<thead>
<tr><th>Dimension</th><th>What it measures</th></tr>
</thead>
<tbody>
<tr><td>Market Reality and Sizing</td><td>whether the market exists at the claimed size and the TAM is derived, not asserted</td></tr>
<tr><td>Competitive Differentiation</td><td>whether the moat survives contact with named, priced competitors</td></tr>
<tr><td>Go-to-Market and Traction</td><td>whether there is a repeatable path to the first and hundredth customer</td></tr>
<tr><td>Team and Founder Fit</td><td>whether the team can actually execute this plan at this scale</td></tr>
<tr><td>Risk and Ethics Exposure</td><td>whether the material risks are named honestly rather than minimized</td></tr>
</tbody>
</table>
<p>The two scores are published side by side with the disagreement delta between the anchor seat and the cross-check seats. The spread is signal, not noise: high panel agreement on a low dimension is a hard finding, and high disagreement is itself reported as a flag for the submitter to investigate.</p>
<h3>2.5 Explain the low score</h3>
<p>Every per-dimension score ships with a required explanation field. The field is evidence-backed and specific. A dimension score of 41 on Market Reality and Sizing does not return "market sizing is weak." It returns the concrete absence: no TAM calculation, no competitor pricing data, no source for the growth rate cited on page four. The explanation names the missing artifact, because a missing artifact is actionable and an adjective is not.</p>
<p>The explanation field is generated on the same pass as the score, so an explanation can never drift away from the number it justifies. Free tier receives the score summary; Pro and above receive the full per-dimension explanation set.</p>
<h3>2.6 The Fix-It plan</h3>
<p>After the verdict, VerdictTank generates a structured, prioritized, dimension-tagged remediation plan keyed to the lowest-scoring dimensions. Each item carries the finding, the specific fix, and where practical the instrument required to execute it: the formula to compute, the table template to fill, the citation target to obtain, the section to rewrite and what it must contain.</p>
<p>The plan is ordered by score impact, so a submitter with two hours works the top of the list rather than guessing. Pro and above receive the full structured plan. Free receives a one-paragraph summary, which is deliberate: the summary proves the plan exists and is specific, and the full plan is the upgrade.</p>
<h3>2.7 Revise and re-score</h3>
<p>The submitter revises against the Fix-It plan and re-submits through the re-score endpoint. A fresh panel runs, and the report shows a before-and-after delta per dimension along with both new scores. The original review is preserved as a historical version with full lineage, so the improvement trail is durable and auditable by the submitter. Re-scores are billed as reviews, which keeps the incentive honest: VerdictTank is paid to run panels, not to declare victory.</p>
<h3>2.8 Queryable review corpus</h3>
<p>Every review lands in a corpus record: both scores, all ten dimension scores, the explanation set, the findings, the conditions, the verdict, the remediation list, revision lineage, and the vertical classification. The corpus is the substrate for percentile context today and for outcome-calibrated scoring later.</p>
<p>Corpus handling is strict by construction. Raw proposal text is never corpus-eligible; the filter is enforced at the schema level, not by policy. Only structural and aggregate metadata is eligible, contribution is opt-in with the flag defaulting to false, identifiers are stripped, and any aggregate publication is gated behind a k-anonymity threshold. White-Label tenants are isolated: every corpus query filters by tenant, and a tenant-scoped credential cannot read across the boundary.</p>
<h3>2.9 Share, export, integrate</h3>
<p>The verdict leaves the system three ways, and all three pass the same gate.</p>
<ul>
<li><strong>Branded PDF report.</strong> A scripted pipeline renders the verdict record into the branded multi-section report with no manual steps, writes it to storage, and delivers it by authenticated download and by transactional email with a short-expiry link.</li>
<li><strong>Shareable report link.</strong> An opt-in, sanitized public score card behind an unguessable token, with optional expiry and immediate revoke. The card carries the verdict, the two scores, and the headline findings. It carries no raw proposal text and no vendor identity.</li>
<li><strong>Review-as-a-Service API.</strong> Submit, status, verdict, rescore, and export endpoints with scoped keys, so an accelerator or a proposal desk runs VerdictTank inside its own workflow.</li>
</ul>
<h3>2.10 The sanitization gate</h3>
<p>One gate governs every path out of the system. It strips personally identifiable information and it strips model and vendor identity from every public surface, including the free-text explanation and remediation fields where such identity is most likely to appear. It blocks deploys and it blocks artifacts; it is not an advisory scan. The PDF pipeline verifies the rendered output by extracting text from the finished file and asserting zero vendor names, zero model identifiers, and the presence of the non-removable AI disclaimer before the report is released.</p>
</section>
<!-- ====== 3. FEATURE SET ====== -->
<section id="features">
<h2><span class="n">3</span>Feature Set</h2>
<h3>3.1 Before the review</h3>
<div class="table-scroll">
<table>
<thead>
<tr><th>Feature</th><th>Free</th><th>One-Shot</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td>Pre-submit coach (unlimited)</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>File upload intake (DOCX, PDF, TXT, paste)</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>URL-to-Review intake</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
</tbody>
</table>
</div>
<h3>3.2 During the review</h3>
<div class="table-scroll">
<table>
<thead>
<tr><th>Feature</th><th>Free</th><th>One-Shot</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td>Panel size</td><td>4 scoring seats plus gate</td><td>10 seats</td><td>10 seats</td><td>10 seats</td><td>11 seats, premium models</td></tr>
<tr><td>Vendors represented</td><td>4</td><td>9</td><td>9</td><td>9</td><td>9</td></tr>
<tr><td>Two scores across ten dimensions</td><td>Single summary score</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Per-dimension explanations</td><td>Score summary only</td><td>Full</td><td>Full</td><td>Full</td><td>Full</td></tr>
<tr><td>Panel spread and outlier flags</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Vertical auto-classification</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Vertical templates</td><td>No</td><td>No</td><td>No</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Configurable Review Rules Engine</td><td>No</td><td>No</td><td>No</td><td>Yes</td><td>Yes</td></tr>
</tbody>
</table>
</div>
<h3>3.3 After the review</h3>
<div class="table-scroll">
<table>
<thead>
<tr><th>Feature</th><th>Free</th><th>One-Shot</th><th>Pro</th><th>Enterprise</th><th>White-Label</th></tr>
</thead>
<tbody>
<tr><td>Fix-It plan</td><td>1-paragraph summary</td><td>Full structured</td><td>Full structured</td><td>Full structured</td><td>Full structured</td></tr>
<tr><td>Re-score with per-dimension delta</td><td>No</td><td>No (re-purchase)</td><td>Yes, billed</td><td>Yes, billed</td><td>Yes, billed</td></tr>
<tr><td>Branded PDF report</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Shareable report link</td><td>No</td><td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Review-as-a-Service API</td><td>No</td><td>No</td><td>No</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Reviewer accuracy track record</td><td>Feeds data</td><td>Feeds data</td><td>Feeds data</td><td>Data plus dashboard</td><td>Data plus dashboard</td></tr>
<tr><td>White-Label track: domain, logo, email templates, portfolio console</td><td>No</td><td>No</td><td>No</td><td>No</td><td>Yes</td></tr>
</tbody>
</table>
</div>
<h3>3.4 Foundation, every tier</h3>
<table>
<thead>
<tr><th>Feature</th><th>Status</th></tr>
</thead>
<tbody>
<tr><td>Review corpus with two-score schema</td><td>All tiers</td></tr>
<tr><td>Sanitization gate on every public surface</td><td>All tiers, blocking</td></tr>
<tr><td>Automated PDF pipeline, zero manual steps</td><td>Paid tiers</td></tr>
<tr><td>Outcome-tracking cron at T+90, T+180, T+365</td><td>All tiers, accumulating</td></tr>
<tr><td>Tenant isolation on corpus and credentials</td><td>White-Label</td></tr>
<tr><td>Non-removable, versioned AI disclaimer on every report</td><td>All reports</td></tr>
</tbody>
</table>
<h3>3.5 Reviewer accuracy track record</h3>
<p>Every seat accumulates a track record from its own scores against later recorded outcomes. VerdictTank surfaces that track record on Enterprise and White-Label dashboards and continues accumulating it on every tier. v4.1 does not weight live verdicts by accuracy. A weighting scheme applied before the corpus can support it would be a confidence claim the data cannot back, so the track record is published and the verdict stays unweighted.</p>
</section>
<!-- ====== 4. PRICING ====== -->
<section id="pricing">
<h2><span class="n">4</span>Pricing</h2>
<p>Five price points. Monthly, with annual available on the three subscription tiers.</p>
<div class="table-scroll">
<table>
<thead>
<tr><th>Tier</th><th>Monthly</th><th>Annual (per month)</th><th>Included reviews</th><th>Panel</th><th>Implied per review</th><th>Overage</th></tr>
</thead>
<tbody>
<tr><td>Free</td><td>$0</td><td>n/a</td><td>1 lifetime</td><td>4 scoring seats plus gate</td><td>n/a</td><td>none</td></tr>
<tr><td>One-Shot</td><td>$29</td><td>none</td><td>1</td><td>Full 10-seat</td><td>$29.00</td><td>none</td></tr>
<tr><td>Pro</td><td>$119</td><td>$99</td><td>8 per month</td><td>Full 10-seat</td><td>$14.88</td><td>$18</td></tr>
<tr><td>Enterprise</td><td>$699</td><td>$582</td><td>50 per month</td><td>Full 10-seat</td><td>$13.98</td><td>$16</td></tr>
<tr><td>White-Label</td><td>$3,000</td><td>$2,499</td><td>100 per month</td><td>11-seat premium</td><td>$30.00</td><td>$28</td></tr>
</tbody>
</table>
</div>
<div class="pricing-grid">
<div class="price-card">
<div class="price-purpose">Free</div>
<div class="price">$0<span>/ lifetime</span></div>
<ul>
<li>One lifetime review</li>
<li>4 scoring seats plus gate</li>
<li>Single summary score</li>
<li>Unlimited pre-submit coach</li>
<li>Percentile context</li>
<li>One-paragraph Fix-It summary</li>
</ul>
<div class="price-note">A demonstration, not a workflow.</div>
</div>
<div class="price-card">
<div class="price-purpose">One-Shot</div>
<div class="price">$29<span>/ one review</span></div>
<ul>
<li>Full 10-seat panel</li>
<li>Both scores across ten dimensions</li>
<li>Full per-dimension explanations</li>
<li>Full structured Fix-It plan</li>
<li>Branded PDF report</li>
<li>Shareable report link</li>
</ul>
<div class="price-note">No overage. No annual plan. Revise and re-score by buying again or moving to Pro.</div>
</div>
<div class="price-card price-card--featured">
<div class="ribbon">Most popular</div>
<div class="price-purpose">Pro</div>
<div class="price">$119<span>/ month</span></div>
<ul>
<li>8 reviews per month</li>
<li>Full 10-seat panel</li>
<li>Both scores and full explanations</li>
<li>Full structured Fix-It plan</li>
<li>Re-score with per-dimension delta</li>
<li>Branded PDF and shareable link</li>
<li>Overage at $18</li>
</ul>
<div class="price-note">Annual: $99 per month. Implied per review: $14.88.</div>
</div>
<div class="price-card">
<div class="price-purpose">Enterprise</div>
<div class="price">$699<span>/ month</span></div>
<ul>
<li>50 reviews per month</li>
<li>Vertical templates</li>
<li>Configurable Review Rules Engine</li>
<li>Review-as-a-Service API</li>
<li>Accuracy dashboard</li>
<li>Overage at $16</li>
</ul>
<div class="price-note">Annual: $582 per month. Implied per review: $13.98.</div>
</div>
<div class="price-card">
<div class="price-purpose">White-Label</div>
<div class="price">$3,000<span>/ month</span></div>
<ul>
<li>100 reviews per month</li>
<li>11-seat premium panel, 4 reserved models</li>
<li>Custom domain, logo, email templates</li>
<li>Portfolio console</li>
<li>Tenant-isolated corpus</li>
<li>Overage at $28</li>
</ul>
<div class="price-note">Annual: $2,499 per month. Implied per review: $30.00.</div>
</div>
</div>
<h3>4.1 What each tier is for</h3>
<p><strong>Free, $0, one lifetime review on the reduced panel.</strong> Four scoring seats plus the gate, single summary score, percentile context, unlimited coach, and a one-paragraph Fix-It summary. It proves the panel is real without giving away the full ten-seat output. One review is lifetime, not monthly, so Free is a demonstration rather than a workflow.</p>
<p><strong>One-Shot, $29, one review on the full ten-seat panel.</strong> The bridge for the founder who needs one honest read and is not ready for a subscription. It runs the complete standard panel, both scores, the full per-dimension explanations, the full structured Fix-It plan, the branded PDF, and a shareable link. There is no overage, because a single purchase has nothing to exceed, and there is no annual plan, because it is not a subscription. The buyer who wants to revise and re-score buys again or moves to Pro.</p>
<p><strong>Pro, $119 per month, eight reviews.</strong> Eight reviews is a real iteration cadence: two per week, propose, review, revise, re-review. At $14.88 implied per review it prices below the one-off, so the subscription reads as the better deal for anyone actually iterating. Overage at $18 sits just above the included rate, which nudges heavy solo users toward the bundle they already have or up to Enterprise. Annual is $99 per month.</p>
<p><strong>Enterprise, $699 per month, fifty reviews.</strong> Roughly six times Pro's volume for roughly six times the price, so the ladder stays proportional and the upgrade is easy to justify. A team running multiple proposals and request-for-proposal (RFP) responses lands in the thirty to fifty range per month, so fifty is generous but bounded. Enterprise adds vertical templates, the Configurable Review Rules Engine, the API, and the accuracy dashboard. Overage at $16. Annual is $582 per month.</p>
<p><strong>White-Label, $3,000 per month, one hundred reviews.</strong> The reseller and consultancy tier. Custom domain, custom logo, branded email templates, a portfolio console, and tenant-isolated corpus segments, so a consultancy runs the panel entirely under its own brand. It is the only tier that seats the four reserved premium models, across eleven seats rather than ten: a premium primary reviewer, a premium execution-feasibility seat, a premium red-team seat, a premium synthesis gate, and a retained cross-check seat that preserves vendor diversity against the premium anchor. Per-review cost is roughly ten times standard, and the price carries it. Overage at $28 reflects the premium roster. Annual is $2,499 per month.</p>
<h3>4.2 Configurable Review Rules Engine</h3>
<p>Enterprise and White-Label administrators define additive custom checks through a no-code builder: compliance rules, brand-voice guidelines, internal investment criteria, mandatory sections. Custom rules layer on top of the fixed ten-dimension rubric. They never replace it and they never suppress a dimension score, so a tenant cannot configure away a finding it does not want to see. That constraint is what keeps a white-labeled verdict worth the same as a first-party one.</p>
</section>
<!-- ====== 5. ROADMAP ====== -->
<section id="roadmap">
<h2><span class="n">5</span>Roadmap</h2>
<h3>5.1 The v4.1 release track</h3>
<p>v4.1 is planned as five gated phases over twenty-four weeks, built by a solo developer plus an AI-agent build pipeline. The review engine and pipeline are proven in operation today; the client portal, billing, and API are the build. Each phase closes on a hard acceptance gate, and no phase closes on a self-report.</p>
<div class="table-scroll">
<table>
<thead>
<tr><th>Phase</th><th>Weeks</th><th>Deliverable</th><th>Closing gate</th></tr>
</thead>
<tbody>
<tr><td>0. Foundation and corpus</td><td>1 to 3</td><td>Blocking sanitization gate covering explanation and remediation fields; scripted PDF pipeline; corpus schema with two-score columns and reserved outcome columns; outcome cron scheduled</td><td>Zero manual sanitization steps in any public path; one review runs end to end into the corpus and out as a PDF with no manual step; cron logs its first run</td></tr>
<tr><td>1. Intake and scoring</td><td>4 to 8</td><td>Coach tier-wide; URL-to-Review alongside file upload; two scores as the panel's default output contract; per-dimension explanation as a required field; accuracy tracking begins</td><td>Every review emits two scores and a per-dimension explanation; coach and URL intake in production with zero gate failures; accuracy tracking records every seat on every review</td></tr>
<tr><td>2. Fix-It and reports</td><td>9 to 13</td><td>Structured Fix-It on Pro and above; shareable report links; vertical auto-classification and the first three vertical templates</td><td>Fix-It plan on 100 percent of Pro-and-above reviews; a shareable report passes the gate end to end; two of three vertical templates validated against known outcomes</td></tr>
<tr><td>3. Enterprise controls and API</td><td>14 to 18</td><td>Rules Engine to Enterprise and White-Label; Review-as-a-Service API to Enterprise; vertical templates to five</td><td>Rules Engine live with three Enterprise accounts; the API completes 100 reviews with zero gate failures</td></tr>
<tr><td>4. White-Label and GA</td><td>19 to 24</td><td>White-Label track live with custom domain, logo, email templates, portfolio console, tenant isolation; API generally available; five price points live on both surfaces</td><td>First White-Label pilot renews past month one; API generally available to Enterprise; marketing site and portal show the five price points with no stale pricing anywhere</td></tr>
</tbody>
</table>
</div>
<h3>5.2 What comes next</h3>
<p>v4.1 and beyond, in order of expected value:</p>
<ol>
<li><strong>Outcome-calibrated scoring.</strong> The outcome cron accumulates from launch day at T+90, T+180, and T+365, and the schema carries the outcome columns from day one, so no migration is required. Once the corpus clears a minimum-N threshold, the accuracy track record becomes a published dashboard and then a candidate weighting input.</li>
<li><strong>Competitive review comparisons.</strong> Full benchmarking of a new proposal against the corpus distribution, dimension by dimension and vertical by vertical, replacing the percentile context available today.</li>
<li><strong>Market simulation.</strong> Replaces the static financial table with a twelve-month trajectory model, adding a per-review cost that the Enterprise and White-Label price points absorb.</li>
<li><strong>Second-opinion audit agent.</strong> A dedicated blind-spot pass over the panel's own output, held until the corpus and accuracy data can measure its catch rate against a real baseline rather than an assumption.</li>
<li><strong>Adversarial red-team per vertical.</strong> Industry-specific attack vectors, sequenced after the vertical classifier has a proven accuracy record.</li>
</ol>
<h3>5.3 Explicit non-goals</h3>
<p>Scope is bounded on purpose:</p>
<ul>
<li>No community or peer-review surface of any kind. A public roast board carries moderation and abuse overhead with no revenue tie, and it dilutes the independent-panel identity that is the entire product.</li>
<li>No weighting of live verdicts by reviewer accuracy in v4.1. Track only.</li>
<li>No product-facing outcome dashboard in v4.1. The cron runs and accumulates; the dashboard follows the data.</li>
<li>No standard-tier access to the four reserved premium models.</li>
<li>No proposal ghostwriting, ever. The coach asks questions. The panel critiques. Neither one composes the submitter's argument for them.</li>
</ul>
</section>
<!-- ====== 6. FINANCIAL MODEL ====== -->
<section id="financial-model">
<h2><span class="n">6</span>Financial Model</h2>
<h3>6.1 Unit economics and cost of goods sold</h3>
<p>Costing assumption: 12,000 input tokens per scoring seat for a twenty-page proposal, roughly 40,000 characters, with the worker truncating above that; the synthesis gate reads roughly 20,000 input tokens. Per-seat cost is input rate times input tokens plus output rate times output budget. Dispatch is single-pass chat completion with no tool calling, which is the regime that makes a ten-seat panel cost cents rather than dollars. All margin guarantees below use the ceiling figure, which assumes every seat burns its full upper-bound output budget. The base figure is the typical case and is never used for a margin claim.</p>
<table>
<thead>
<tr><th>Roster</th><th>Seats</th><th>COGS ceiling per review</th><th>Loaded ceiling (x1.20)</th><th>COGS base per review</th></tr>
</thead>
<tbody>
<tr><td>Free reduced panel</td><td>5 model calls</td><td>$0.15</td><td>$0.18</td><td>$0.10</td></tr>
<tr><td>Standard panel</td><td>10</td><td>$0.36</td><td>$0.43</td><td>$0.25</td></tr>
<tr><td>White-Label premium panel</td><td>11</td><td>$3.00</td><td>$3.60</td><td>$1.52</td></tr>
</tbody>
</table>
<p>The loaded figure applies a flat 20 percent infrastructure and overhead buffer covering the application host, the database, object storage, the PDF renderer, and email delivery.</p>
<h3>6.2 Gross margin at full allotment consumption</h3>
<p>Margin is computed at the pessimistic bound: every included review consumed, every seat at its ceiling output budget, loaded cost.</p>
<table>
<thead>
<tr><th>Tier</th><th>Revenue</th><th>Included reviews</th><th>Loaded COGS at full consumption</th><th>Gross margin</th></tr>
</thead>
<tbody>
<tr><td>Free</td><td>$0</td><td>1 lifetime</td><td>$0.18 one time</td><td>loss leader</td></tr>
<tr><td>One-Shot</td><td>$29</td><td>1</td><td>$0.43</td><td>98.5%</td></tr>
<tr><td>Pro</td><td>$119</td><td>8</td><td>$3.44</td><td>97.1%</td></tr>
<tr><td>Enterprise</td><td>$699</td><td>50</td><td>$21.50</td><td>96.9%</td></tr>
<tr><td>White-Label</td><td>$3,000</td><td>100</td><td>$360.00</td><td>88.0%</td></tr>
</tbody>
</table>
<p>Overage is itself high margin by construction. Pro overage at $18 and Enterprise overage at $16 both sit far above the $0.43 loaded standard cost, so overage carries better than 95 percent margin while still reading as a nudge toward the next tier. White-Label overage at $28 against $3.60 loaded carries roughly 87 percent margin.</p>
<p>Stress case: if both premium reasoning seats in the White-Label roster burn a full 12,000-token output budget, per-review ceiling reaches $3.87, or $4.64 loaded. One hundred such reviews cost $464.40 against $3,000 revenue, which is 84.5 percent gross margin. The worst realistic case on the most expensive tier still clears 84 percent.</p>
<p>The structural conclusion is that cost of goods sold is not the constraint on this business. Even two hundred Enterprise reviews in a month cost roughly $86 loaded against $699 revenue. Review allotments are therefore set by value anchoring and ladder logic, not by cost recovery, and pricing pressure can be absorbed without touching the panel.</p>
<h3>6.3 Revenue projection, floor and ceiling</h3>
<p>Two scenarios at month twelve post-launch, measured as monthly recurring revenue (MRR). Both are stated as assumption sets, not forecasts. Both assume every included review is consumed, which overstates cost and understates margin.</p>
<h4>Floor scenario, month 12</h4>
<table>
<thead>
<tr><th>Line</th><th>Accounts or volume</th><th>Monthly revenue</th><th>Monthly loaded COGS</th></tr>
</thead>
<tbody>
<tr><td>One-Shot</td><td>40 purchases per month</td><td>$1,160</td><td>$17.20</td></tr>
<tr><td>Pro</td><td>35 accounts</td><td>$4,165</td><td>$120.40</td></tr>
<tr><td>Enterprise</td><td>3 accounts</td><td>$2,097</td><td>$64.50</td></tr>
<tr><td>White-Label</td><td>0 accounts</td><td>$0</td><td>$0.00</td></tr>
<tr><td><strong>Total</strong></td><td></td><td><strong>$7,422 MRR</strong></td><td><strong>$202.10</strong></td></tr>
</tbody>
</table>
<p>Floor gross margin: 97.3 percent. Annual run rate at month twelve: $89,064.</p>
<h4>Ceiling scenario, month 12</h4>
<table>
<thead>
<tr><th>Line</th><th>Accounts or volume</th><th>Monthly revenue</th><th>Monthly loaded COGS</th></tr>
</thead>
<tbody>
<tr><td>One-Shot</td><td>150 purchases per month</td><td>$4,350</td><td>$64.50</td></tr>
<tr><td>Pro</td><td>180 accounts</td><td>$21,420</td><td>$619.20</td></tr>
<tr><td>Enterprise</td><td>14 accounts</td><td>$9,786</td><td>$301.00</td></tr>
<tr><td>White-Label</td><td>4 accounts</td><td>$12,000</td><td>$1,440.00</td></tr>
<tr><td><strong>Total</strong></td><td></td><td><strong>$47,556 MRR</strong></td><td><strong>$2,424.70</strong></td></tr>
</tbody>
</table>
<p>Ceiling gross margin: 94.9 percent. Annual run rate at month twelve: $570,672.</p>
<p>Free tier cost is a one-time charge per account rather than recurring, since Free grants one lifetime review. At $0.18 loaded per Free review, one thousand two hundred cumulative Free reviews cost $216 in total and six thousand cost $1,080 in total. Free is affordable at any signup volume the funnel can realistically produce, which is why the reduced panel exists rather than a time-limited trial.</p>
<p>Annual billing at $99, $582, and $2,499 per month trades 16.7 percent of headline revenue, two months free, for twelve months of committed cash and materially lower churn exposure. At the ceiling scenario, a fifty percent annual mix on Pro and Enterprise reduces month-twelve MRR by roughly $2,619 and converts roughly $156,000 of annualized revenue into prepaid commitment.</p>
<h3>6.4 What moves the model</h3>
<p>Sensitivity, ranked:</p>
<ol>
<li><strong>Pro account count.</strong> Pro is the volume tier and the largest single revenue line in both scenarios. It is the number to move.</li>
<li><strong>White-Label logos.</strong> Each White-Label account is worth roughly twenty-five Pro accounts. Landing one changes the shape of the revenue curve; landing four is the difference between the floor and the ceiling scenario.</li>
<li><strong>One-Shot to Pro conversion.</strong> One-Shot is priced as a bridge, and its value is mostly in what fraction of buyers subscribe after seeing the full ten-seat output once.</li>
<li><strong>Enterprise seat expansion.</strong> Enterprise is the highest-effort sale, and the Rules Engine and API are the features that make it defensible rather than a volume discount.</li>
<li><strong>Cost of goods sold.</strong> Last, and by a wide margin. A doubling of every model rate in the panel would still leave Pro above 94 percent gross margin.</li>
</ol>
</section>
<!-- ====== 7. RISK ASSESSMENT ====== -->
<section id="risk">
<h2><span class="n">7</span>Risk Assessment</h2>
<p>Ranked by expected impact on the product at launch, each with the control that is in place.</p>
<h3>7.1 Reviewer availability <span class="tag tag-red">High impact</span></h3>
<p>The panel depends on nine vendors, and any one of them can rate-limit, exhaust credit, or return transport errors. Controls: a pre-dispatch health probe runs one cheap call per rostered model before spend is committed; every seat carries a named fallback binding; a review completes on a documented reduced panel rather than failing when a seat cannot be filled, and any review that ran reduced is flagged as such on the report and in the corpus record. The live-grounding seat is the single most availability-sensitive seat in the standard roster and is provisioned with a direct vendor credential rather than a shared route, plus a same-vendor-class fallback that is already live in the panel.</p>
<h3>7.2 Model output integrity <span class="tag tag-red">High impact</span></h3>
<p>Reasoning models can truncate structured output at low token caps, and some models constrain sampling parameters. Controls: per-seat output budgets are sized above the truncation threshold for every reasoning seat rather than set to a global default; seats with sampling constraints carry an explicit per-seat parameter quirk in the roster configuration; every seat response is schema-validated before it enters synthesis, and a seat returning unparseable output is retried once and then fails over rather than silently contributing a null score. Models without a published per-token input cost are not seated in any cost-guaranteed tier at all.</p>
<h3>7.3 Cost verification <span class="tag tag-amber">Medium impact</span></h3>
<p>Two standard-roster seats bill through providers whose usage responses do not always carry a cost field, so their per-review contribution is computed from configured rates rather than reconciled against metered spend. Controls: those seats are provisioned with native vendor credentials so spend meters end to end; the margin guarantee uses the ceiling COGS across the whole roster, which absorbs a material rate change on any single seat; the combined ceiling contribution of the two affected seats is $0.0632 per review against a $0.36 total, so even a doubling of both moves loaded standard COGS from $0.43 to roughly $0.51 and leaves Pro above 96 percent margin. Base COGS figures are internal planning numbers and are not quoted externally.</p>
<h3>7.4 Sanitization and confidentiality <span class="tag tag-red">High impact if it fails</span></h3>
<p>A critique product handles unreleased strategy documents, and a leak of raw text or reviewer identity is an existential trust failure rather than a bug. Controls: the sanitization gate blocks rather than warns, and it covers the free-text explanation and remediation fields alongside structured fields; raw proposal text is schema-level ineligible for the corpus; corpus contribution is opt-in and defaults to false; the PDF pipeline extracts text from the finished file and asserts zero vendor and model identifiers plus the verbatim presence of the AI disclaimer before release; share tokens are unguessable, expirable, and revocable, and a revoked token returns not-found; tenant isolation is enforced on every corpus query and every scoped credential.</p>
<p>VerdictTank does not use submitted proposals to build its own products, train models, or inform its own proposals. A submission is processed only to produce that submitter's review, and is retained only for the submitter's own reference and legal record. Review processing does run through third-party AI providers under their own data-handling terms.</p>
<h3>7.5 Verdict liability <span class="tag tag-amber">Medium impact</span></h3>
<p>A submitter can act on a verdict and attribute an outcome to it. Controls: a versioned, non-removable AI disclaimer renders on every report and cannot be templated away; inter-seat agreement and the panel spread are published beside every score so confidence is visible rather than implied; the liability cap is the greater of $100 or twelve months of fees; the status page distinguishes VerdictTank incidents from upstream provider incidents so an outage is not misread as a product defect.</p>
<h3>7.6 Positioning drift <span class="tag tag-amber">Medium impact and slow</span></h3>
<p>The most likely way this product degrades is by drifting toward writing. Customers will ask for it, and a generated paragraph is easier to deliver than an honest score. Controls: the coach is architecturally forbidden from composing paragraphs, the Rules Engine is additive only and cannot suppress a dimension score, and no roadmap item shifts VerdictTank toward authorship. We critique them; we don't write them, and that is a product constraint, not a slogan.</p>
<h3>7.7 Concentration and capacity <span class="tag tag-amber">Medium impact</span></h3>
<p>v4.1 is built and operated by a solo developer plus an AI-agent build pipeline, and the review worker is serial at launch. Controls: the review state machine is durable and replayable, with per-seat evidence stored so a partial panel resumes rather than restarting; the scale path is a depth cap plus parallel workers, which is a configuration change and not a redesign; the full customer-facing stack and the review engine sit on a single host with one state machine, so there is no cross-host coordination to debug under load. At the ceiling scenario, month-twelve volume is roughly 2,690 reviews per month, which a serial worker at a sixty-second critical path clears with substantial headroom.</p>
<h3>7.8 Distribution <span class="tag tag-red">Highest impact overall</span></h3>
<p>The panel works and the margins are structurally excellent, which means the binding risk is that not enough submitters find the product. Controls: Free is a real full-loop demonstration on a reduced panel rather than a time-limited trial; One-Shot at $29 removes the subscription objection entirely; the coach is unlimited on every tier and is the widest part of the funnel; shareable report links put a branded verdict in front of the submitter's own investors and advisors; the API and the White-Label track make other people's distribution into ours.</p>
</section>
<!-- ====== 8. SUMMARY ====== -->
<section id="summary">
<h2><span class="n">8</span>Summary</h2>
<p>VerdictTank v4.1 ships the complete critique loop: coach the draft, submit a file or a URL, run ten seats across nine vendors, publish a Proposal Strength Score and an Investor Readiness Score across ten dimensions, explain every low dimension with the specific missing artifact, hand back a prioritized Fix-It plan, re-score the revision with a per-dimension delta, keep it all in a queryable corpus, and ship the verdict as a branded PDF, a shareable card, or an API response with a sanitization gate on every path out.</p>
<p>Five price points cover the range from a single honest read at $29 to a fully branded reseller platform at $3,000 per month, and every paid tier clears 88 percent gross margin at full consumption with the standard tiers above 96 percent. The economics are settled. The architecture is proven. What remains is the build, then distribution.</p>
<div class="positioning-statement">We critique them; we don't write them.</div>
</section>
</main>
<footer>
VerdictTank v4.1 - AI Proposal Review &amp; Scoring<br>
We critique them; we don't write them.
</footer>
</body>
</html>
+8 -1
View File
@@ -56,6 +56,8 @@ td{background:var(--panel);color:var(--ink)}
.evolution-card--current{border-color:var(--accent);background:var(--panel2)}
.version-badge{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin-bottom:8px}
.version-badge--current{color:var(--accent)}
.superseded-banner{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:.75rem 1rem;margin:0 0 1.5rem;font-size:.85rem;text-align:center;color:#7c2d12}
.superseded-banner a{color:#b45309;font-weight:600}
.breakthrough-label{font-size:12px;color:var(--accent2);font-weight:600;margin-bottom:6px}
.callout{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:20px 0}
.callout--proof{border-left:4px solid var(--accent)}
@@ -158,6 +160,11 @@ a{color:var(--accent)}
</div>
</header>
<!-- SUPERSEDED BANNER (v5 error-detection direction deprecated 2026-08-18) -->
<div class="superseded-banner">
⚠ SUPERSEDED. This v5 error-detection direction was deprecated; its validation thesis failed (-0.40 delta). The current product is the v4 single-pass scoring panel. <a href="index-v4.1.html">Read the current proposal (v4.1)</a>
</div>
<!-- ====== NAVIGATION ====== -->
<nav class="toc">
<div class="wrap">
@@ -287,7 +294,7 @@ a{color:var(--accent)}
</p>
</div>
<div class="evolution-card evolution-card--current">
<div class="version-badge version-badge--current">v5 · Current</div>
<div class="version-badge">v5 · Superseded</div>
<h3 style="margin-top:0">Specialist Panel and the Integrity Gate</h3>
<div class="breakthrough-label">Breakthrough: disagreement as output</div>
<p>
+8 -1
View File
@@ -56,6 +56,8 @@ td{background:var(--panel);color:var(--ink)}
.evolution-card--current{border-color:var(--accent);background:var(--panel2)}
.version-badge{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin-bottom:8px}
.version-badge--current{color:var(--accent)}
.superseded-banner{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;padding:.75rem 1rem;margin:0 0 1.5rem;font-size:.85rem;text-align:center;color:#7c2d12}
.superseded-banner a{color:#b45309;font-weight:600}
.breakthrough-label{font-size:12px;color:var(--accent2);font-weight:600;margin-bottom:6px}
.callout{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:20px 0}
.callout--proof{border-left:4px solid var(--accent)}
@@ -161,6 +163,11 @@ a{color:var(--accent)}
</div>
</header>
<!-- SUPERSEDED BANNER (v5 error-detection direction deprecated 2026-08-18) -->
<div class="superseded-banner">
⚠ SUPERSEDED. This v5 error-detection direction was deprecated; its validation thesis failed (-0.40 delta). The current product is the v4 single-pass scoring panel. <a href="index-v4.1.html">Read the current proposal (v4.1)</a>
</div>
<!-- ====== NAVIGATION ====== -->
<nav class="toc">
<div class="wrap">
@@ -290,7 +297,7 @@ a{color:var(--accent)}
</p>
</div>
<div class="evolution-card evolution-card--current">
<div class="version-badge version-badge--current">v5 · Current</div>
<div class="version-badge">v5 · Superseded</div>
<h3 style="margin-top:0">Specialist Panel and the Integrity Gate</h3>
<div class="breakthrough-label">Breakthrough: disagreement as output</div>
<p>
+239
View File
@@ -0,0 +1,239 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VerdictTank v5.0 · Error Detection Density for Proposals</title>
<style>
:root{
--bg:#0b0e14;--panel:#131824;--panel2:#1a2030;--ink:#e6edf3;--muted:#8b97a8;
--line:#232b3a;--accent:#4da3ff;--accent2:#7ee787;--warn:#f0a45c;--bad:#ff6b6b;
--code:#0d1117;--codeink:#c9d1d9;--pass:#2ea043;--below:#d29922;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
header.hero{background:linear-gradient(135deg,#0b0e14,#131824 60%,#0f1a2e);
border-bottom:1px solid var(--line);padding:48px 0 36px}
.badge{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:4px 12px;margin-bottom:16px}
.badge--warn{color:var(--warn);border-color:var(--warn)}
h1{font-size:34px;margin:6px 0 8px;letter-spacing:-.5px}
.sub{color:var(--muted);font-size:16px;max-width:760px}
.meta{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.meta span{font-size:12px;background:var(--panel2);border:1px solid var(--line);
border-radius:6px;padding:5px 10px;color:var(--muted)}
.meta b{color:var(--ink)}
nav.toc{position:sticky;top:0;z-index:20;background:rgba(11,14,20,.92);
backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:10px 0}
nav.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:12.5px}
nav.toc a{color:var(--muted);text-decoration:none;padding:4px 9px;border-radius:6px;border:1px solid transparent}
nav.toc a:hover{color:var(--ink);border-color:var(--line);background:var(--panel)}
section{padding:40px 0;border-bottom:1px solid var(--line)}
h2{font-size:24px;margin:0 0 6px;letter-spacing:-.3px}
h2 .n{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:10px}
h3{font-size:17px;margin:26px 0 8px;color:var(--accent2)}
h4{font-size:14px;margin:18px 0 6px;color:var(--warn);text-transform:uppercase;letter-spacing:.06em}
p{margin:10px 0}
.lead{color:var(--muted);font-size:15.5px;margin-bottom:8px}
ul,ol{margin:10px 0;padding-left:22px}
li{margin:5px 0}
code{background:var(--code);color:var(--codeink);padding:2px 6px;border-radius:4px;
font:13px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,monospace}
pre{background:var(--code);color:var(--codeink);border:1px solid var(--line);border-radius:10px;
padding:16px;overflow:auto;font:12.5px/1.55 "SF Mono",ui-monospace,Menlo,Consolas,monospace;margin:14px 0}
pre.ascii{line-height:1.35;font-size:12px;color:#9fb3c8}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13.5px}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--panel2);color:var(--ink);font-weight:600}
td{background:var(--panel);color:var(--ink)}
/* Custom blocks */
.evolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
.evolution-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px}
.evolution-card--current{border-color:var(--accent);background:var(--panel2)}
.version-badge{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin-bottom:8px}
.version-badge--current{color:var(--accent)}
.breakthrough-label{font-size:12px;color:var(--accent2);font-weight:600;margin-bottom:6px}
.callout{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin:20px 0}
.callout--proof{border-left:4px solid var(--accent)}
.callout--fail{border-left:4px solid var(--bad)}
.callout--win{border-left:4px solid var(--accent2)}
.defense-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}
.defense-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.positioning-statement{font-size:16px;color:var(--accent2);text-align:center;margin:28px 0;padding:16px;background:var(--panel2);border:1px solid var(--accent);border-radius:10px}
.comp-table__us td{background:#0f1a2e;color:var(--accent);font-weight:600}
.muted{color:var(--muted);font-size:12px}
.table-note{font-size:12px;color:var(--muted);margin:4px 0 14px}
.strategy-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:16px 0}
.strategy-cols h4{text-transform:none;color:var(--accent);font-size:14px}
.pricing-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin:20px 0}
.price-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px;text-align:center}
.price-card--featured{border-color:var(--accent);background:var(--panel2);position:relative}
.ribbon{position:absolute;top:-10px;left:50%;transform:translateX(-50%);
background:var(--accent);color:#0b0e14;font-size:11px;font-weight:700;
padding:3px 12px;border-radius:999px;text-transform:uppercase;letter-spacing:.06em}
.price{font-size:36px;font-weight:700;margin:8px 0}
.price span{font-size:16px;color:var(--muted);font-weight:400}
.price-card ul{list-style:none;padding:0;text-align:left;margin:12px 0}
.price-card li{margin:6px 0;font-size:13px}
.price-card li::before{content:"✓ ";color:var(--accent2);font-weight:700}
.price-purpose{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:12px}
.walkthrough{display:grid;gap:16px;margin:16px 0}
.wt-input{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.wt-proposal-text{font-style:italic;color:var(--muted);border-left:3px solid var(--warn);padding-left:14px;margin:10px 0}
.wt-context{font-size:12px;color:var(--muted);margin-top:8px}
.wt-scores{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.score-block{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px}
.score-block--narrative{border-left:4px solid var(--accent)}
.score-block--compliance{border-left:4px solid var(--warn)}
.score-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.score-value{font-size:40px;font-weight:700;margin:4px 0}
.score-value span{font-size:16px;color:var(--muted);font-weight:400}
.score-block--narrative .score-value{color:var(--accent)}
.score-block--compliance .score-value{color:var(--bad)}
.fixit-list li{margin:12px 0;padding:0}
.fixit-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.fixit-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.fixit-tag--critical{background:rgba(255,107,107,.15);color:var(--bad);border:1px solid rgba(255,107,107,.3)}
.fixit-tag--high{background:rgba(240,164,92,.15);color:var(--warn);border:1px solid rgba(240,164,92,.3)}
.fixit-tag--medium{background:rgba(77,163,255,.15);color:var(--accent);border:1px solid rgba(77,163,255,.3)}
.fixit-delta{font-size:12px;color:var(--accent2);font-weight:600}
.timeline{margin:20px 0}
.timeline-phase{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:8px 0}
.timeline-phase--risk{border-color:var(--warn);background:var(--panel2)}
.tl-weeks{font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.tag-green{background:rgba(46,160,67,.15);color:var(--pass);border:1px solid rgba(46,160,67,.3)}
.tag-amber{background:rgba(210,153,34,.15);color:var(--below);border:1px solid rgba(210,153,34,.3)}
.tag-red{background:rgba(255,107,107,.15);color:var(--bad);border:1px solid rgba(255,107,107,.3)}
.highlight{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:16px 0}
.arch-box{background:var(--code);color:var(--codeink);border:1px solid var(--line);border-radius:8px;
padding:14px 16px;margin:12px 0;font:12.5px/1.5 "SF Mono",ui-monospace,Menlo,Consolas,monospace}
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;text-align:center}
.stat--hero{border-color:var(--accent2);background:var(--panel2)}
.stat .v{font-size:32px;font-weight:700;color:var(--accent);line-height:1.1}
.stat--hero .v{color:var(--accent2)}
.stat--bad .v{color:var(--bad)}
.stat .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:6px}
.errgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}
.errcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--bad);border-radius:10px;padding:14px 16px}
.errcard .n{font-size:26px;font-weight:700;color:var(--bad)}
.errcard .t{font-size:13px;font-weight:600;margin:4px 0}
.errcard .d{font-size:12.5px;color:var(--muted)}
footer{text-align:center;padding:40px 0 30px;border-top:1px solid var(--line);margin-top:40px;
font-size:12px;color:var(--muted);line-height:1.8}
footer a{color:var(--accent)}
a{color:var(--accent)}
@media (max-width:768px){
.evolution-grid,.defense-grid,.strategy-cols,.pricing-grid,.wt-scores{grid-template-columns:1fr}
.statgrid,.errgrid{grid-template-columns:1fr 1fr}
h1{font-size:28px}
.price{font-size:28px}
.score-value{font-size:30px}
}
</style>
</head>
<body>
<main class="wrap">
<!-- ====== HERO ====== -->
<header class="hero" style="text-align:center;padding:80px 0 60px">
<div class="badge">v5.0 · Pre-Revenue · Validation-Tested</div>
<h1 style="font-size:44px;letter-spacing:-1px">14 blind errors your solo model missed</h1>
<p class="sub" style="font-size:20px;max-width:840px;margin:0 auto">
A solo frontier model gives you a smooth, confident score. An 11-judge panel gives you the
14 things it was wrong about. VerdictTank does not sell you a higher number. It sells you
the errors that number was hiding.
</p>
<div class="meta" style="justify-content:center;margin-top:24px">
<span><b>Category:</b> AI Proposal Review &amp; Error Detection</span>
<span><b>Panel:</b> 11 seats · 9 vendors</span>
<span><b>Architecture:</b> <a href="architecture.html">Full technical document</a></span>
<span><b>Judge pool:</b> <a href="judge-pool-spec.md">Spec v2.3</a></span>
</div>
</header>
<!-- ====== NAVIGATION ====== -->
<nav class="toc">
<div class="wrap">
<ol>
<li><a href="#thesis">1. The Thesis</a></li>
<li><a href="#pipeline">2. Pipeline Story</a></li>
<li><a href="#validation">3. Validation Data</a></li>
<li><a href="#errors">4. The 14 Errors</a></li>
<li><a href="#panel">5. Judge Pool v2.3</a></li>
<li><a href="#worked">6. Worked Example</a></li>
<li><a href="#pricing">7. Pricing</a></li>
<li><a href="#competitive">8. Competitive Landscape</a></li>
<li><a href="#deployment">9. Deployment</a></li>
<li><a href="#legal">10. Legal &amp; Compliance</a></li>
</ol>
</div>
</nav>
<!-- ====== 1. THESIS ====== -->
<section id="thesis">
<h2><span class="n">01</span>The Thesis Changed, Because the Data Said So</h2>
<p class="lead">
VerdictTank v4.0 was sold on a claim we could not defend: that a multimodel panel produces a
better score than a single strong model. On 2026-08-12 we ran that claim against real proposals
and it failed. What we found instead is a stronger product.
</p>
<div class="statgrid">
<div class="stat stat--hero"><div class="v">14</div><div class="k">Material errors caught</div></div>
<div class="stat stat--bad"><div class="v">-0.40</div><div class="k">Aggregate score delta</div></div>
<div class="stat"><div class="v">3</div><div class="k">Real proposals scored</div></div>
<div class="stat"><div class="v">11</div><div class="k">Judge seats, 9 vendors</div></div>
</div>
<div class="callout callout--fail">
<h4 style="margin-top:0">What failed</h4>
<p style="margin-bottom:0">
The score-elevation thesis. Across three real proposals the panel mean came in
<strong>0.40 points below</strong> the solo baseline. The panel did not lift scores. On two
of three proposals it pushed them down. We are publishing that result rather than burying it,
because the reason it happened is the product.
</p>
</div>
<div class="callout callout--win">
<h4 style="margin-top:0">What worked</h4>
<p style="margin-bottom:0">
Error detection density. The same panel run surfaced <strong>14 material errors</strong> that
the solo baseline missed or underweighted: revenue arithmetic that was wrong by a factor of
seven, a funded direct competitor the solo pass never named, a launch-blocking compliance
cost larger than projected first-year revenue. None of those show up as a score. All of them
decide whether the proposal wins.
</p>
</div>
<div class="positioning-statement">
You do not buy VerdictTank to get a higher score.<br>
You buy it to find the $60K compliance hole and the broken contractor budget before you ship.
</div>
<h3>Why the spread is the signal</h3>
<p>
A single model scoring alone produces low variance. It reads the document once, forms one
coherent opinion, and every dimension it emits is downstream of that opinion. The result feels
authoritative precisely because nothing inside it disagrees.
</p>
<p>
An 11-seat panel of nine different vendors cannot produce that coherence, and the incoherence
is diagnostic. When a Financial Integrity judge scores a proposal 8.2 while an
Execution Feasibility judge scores the same document 2.8, that 5.4-point spread is not noise.
It is a precise statement: <em>the money works, the delivery plan does not</em>. A solo model
averages that tension away into a single confident 6.1 and tells you nothing actionable.
</p>
<div class="highlight">
<strong>Measured, not asserted:</strong> on every one of the three validated proposals, panel
spread exceeded solo spread. RFP Tank 3.7 vs 1.4. VentureBuilt 5.4 vs 2.4. CartMySupply
2.6 vs 1.8. Widening variance is the intended behavior, not a defect to tune out.
</div>
</section>
+177
View File
@@ -0,0 +1,177 @@
<!-- ====== 2. PIPELINE STORY ====== -->
<section id="pipeline">
<h2><span class="n">02</span>How We Found This: Four Generations and a Self-Review</h2>
<p class="lead">
VerdictTank is a proposal review engine, not a proposal writer. It ingests a finished document
and returns scored dimensions plus a ranked list of concrete Fix-It items. The pipeline was not
designed in the abstract. It was hardened across four architectural generations, and then it
was pointed at its own proposals.
</p>
<div class="evolution-grid">
<div class="evolution-card">
<div class="version-badge">v2</div>
<h3 style="margin-top:0">Single-Model Scorer</h3>
<div class="breakthrough-label">Breakthrough: the dual-axis rubric</div>
<p>
v2 established the core insight: a proposal has two independent quality axes. Narrative
quality (clarity, structure, persuasion) and compliance quality (does it actually answer
the scored requirements). One model scored both from one prompt. It proved the concept and
exposed the flaw: the axes bled together. A beautifully written section that missed a
mandatory requirement scored too high, because the same reasoning pass that admired the
prose also graded the compliance.
</p>
</div>
<div class="evolution-card">
<div class="version-badge">v3</div>
<h3 style="margin-top:0">Separated Scoring Passes</h3>
<div class="breakthrough-label">Breakthrough: axis isolation</div>
<p>
v3 split scoring into two independent passes with two purpose-built prompts. The narrative
pass never sees the compliance rubric. The compliance pass never rewards eloquence. This is
the decision that makes the dual score trustworthy: the two numbers can now disagree, and
their disagreement carries information. A 9/10 narrative next to a 4/10 compliance is a
proposal about to lose.
</p>
</div>
<div class="evolution-card">
<div class="version-badge">v4</div>
<h3 style="margin-top:0">Multimodel Adversarial Review</h3>
<div class="breakthrough-label">Breakthrough: cross-model verification</div>
<p>
A single model scoring in isolation is confidently wrong at a predictable rate. v4
introduced a multimodel pipeline: a fast model produces first-pass scores and Fix-It
candidates, then a stronger model reviews that output adversarially, challenging every
deduction and confirming each Fix-It maps to real proposal text. Scores stopped drifting
between runs. This is the generation that made the output defensible.
</p>
</div>
<div class="evolution-card evolution-card--current">
<div class="version-badge version-badge--current">v5 · Current</div>
<h3 style="margin-top:0">Specialist Panel and the Integrity Gate</h3>
<div class="breakthrough-label">Breakthrough: disagreement as output</div>
<p>
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.
The output is no longer a number. It is a number, a spread, an outlier list, and a ranked
set of material errors with the judge that caught each one.
</p>
</div>
</div>
<h3>The self-review that broke the old thesis</h3>
<p>
Before selling a review engine we ran the engine on our own work. We assembled the panel and
scored three real proposals, in full, with the same prompts and rubric a paying customer would
get. One of the three was VerdictTank's own sibling product. The panel returned a NO GO on it.
</p>
<p>
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.
</p>
<div class="callout callout--proof">
<strong>The pipeline is its own reference implementation.</strong> The full architecture is
documented in the companion
<a href="architecture.html">technical architecture document</a> to a standard where an engineer
can implement it from the spec alone. VerdictTank is pre-revenue. We make zero claims about
users, beta cohorts, or external validation. What we claim is narrower and verifiable: the
architecture is built, the pipeline runs, it was executed against three real proposals on
2026-08-12, and it failed its own headline thesis in public.
</div>
</section>
<!-- ====== 3. VALIDATION DATA ====== -->
<section id="validation">
<h2><span class="n">03</span>Validation Run: 3 Real Proposals, 8 Reporting Seats</h2>
<p class="lead">
Every figure in this section comes from the 2026-08-12 validation run. Nothing is modeled,
projected, or illustrative. The solo baseline is Claude Opus 5 scoring the same documents
against the same 10-dimension rubric.
</p>
<h3>Panel mean vs solo baseline</h3>
<table>
<thead>
<tr><th>Proposal</th><th>Panel mean</th><th>Solo baseline</th><th>Delta</th><th>Panel spread</th><th>Solo spread</th><th>Verdict</th></tr>
</thead>
<tbody>
<tr>
<td><strong>RFP Tank v1.0</strong></td><td>4.40</td><td>4.93</td>
<td style="color:var(--bad)">-0.53</td><td>3.7</td><td>1.4</td>
<td><span class="tag tag-red">NO GO</span></td>
</tr>
<tr>
<td><strong>VentureBuilt v2</strong></td><td>6.14</td><td>6.10</td>
<td style="color:var(--accent2)">+0.04</td><td>5.4</td><td>2.4</td>
<td><span class="tag tag-amber">CONDITIONAL GO</span></td>
</tr>
<tr>
<td><strong>CartMySupply</strong></td><td>4.29</td><td>5.00</td>
<td style="color:var(--bad)">-0.71</td><td>2.6</td><td>1.8</td>
<td><span class="tag tag-red">NO GO</span></td>
</tr>
<tr class="comp-table__us">
<td><strong>Aggregate</strong></td><td><strong>4.94</strong></td><td><strong>5.34</strong></td>
<td><strong>-0.40</strong></td><td colspan="2"><strong>Panel spread exceeded solo spread on all 3</strong></td>
<td><strong>THESIS FAIL</strong></td>
</tr>
</tbody>
</table>
<p class="table-note">
Thesis under test: the panel must show a greater than 0.5 point advantage over the solo mean to
justify premium pricing. Result: FAIL on all three proposals and FAIL in aggregate. Panel
composition for this run was 8 reporting judges (4 Band A, 4 Band B) out of 11 specified seats,
a 73% coverage rate.
</p>
<h3>Why the panel scored lower</h3>
<p>
The panel does not elevate scores. It sharpens error detection, and error detection on a flawed
document moves the number down. All three proposals contained severe cross-cutting defects that
additional specialist scrutiny exposed more precisely: fatal execution gaps, competitive
mispositioning, and legal blockers. The solo baseline was directionally correct on all three.
The panel added precision, not points.
</p>
<p>
That is the entire finding, and it inverts the sales pitch. If your proposal is sound, the panel
will roughly agree with a good solo model and cost you more. If your proposal has a hole in it,
the panel finds the hole and the solo model does not. You are not buying a score. You are buying
the probability that a specific, expensive, named mistake gets caught before an evaluator or an
investor finds it for you.
</p>
<h3>Specialist divergence, measured</h3>
<table>
<thead>
<tr><th>Observation</th><th>Evidence from the run</th><th>What it means</th></tr>
</thead>
<tbody>
<tr>
<td>Generalist seats run optimistic</td>
<td>Gemini Pro scored RFP Tank 6.7 as a Band A generalist and 3.0 as the Band B Market specialist. Same model, same document, 3.7 points apart.</td>
<td>Band A generalist scoring without specialist cross-check is systematically over-optimistic. The role, not the model, drives the score.</td>
</tr>
<tr>
<td>Role divergence beats model divergence</td>
<td>DeepSeek V4 Pro scored VentureBuilt 6.4 as Cross-Check C and 2.8 as Execution Feasibility. A 3.6 point split inside one vendor.</td>
<td>Panel diversity is not primarily about buying different vendors. It is about buying different questions.</td>
</tr>
<tr>
<td>One seat can flip a verdict</td>
<td>Remove the 2.8 Execution score from VentureBuilt and the panel averages 6.6, reading as a clean GO. With it, the verdict is CONDITIONAL GO with a named contractor-budget fix.</td>
<td>The lowest score in the panel is frequently the only one doing work. Averaging is what a solo model already does.</td>
</tr>
<tr>
<td>Tight clustering is also a signal</td>
<td>CartMySupply produced zero outliers beyond 1.5 sigma and the tightest spread of the three (sigma 0.89).</td>
<td>Unanimity across nine vendors on a low score is a far stronger NO GO than one model's low score.</td>
</tr>
</tbody>
</table>
</section>
+76
View File
@@ -0,0 +1,76 @@
<!-- ====== 4. THE 14 ERRORS ====== -->
<section id="errors">
<h2><span class="n">04</span>The 14 Errors: Every One Named</h2>
<p class="lead">
This is the product. Fourteen material errors the 8-judge panel caught that the solo baseline
missed or underweighted, grouped by failure class. Each is a real finding from the 2026-08-12
run against a real document.
</p>
<div class="errgrid">
<div class="errcard"><div class="n">3</div><div class="t">Revenue arithmetic errors</div><div class="d">Headline numbers that contradict the proposal's own inputs.</div></div>
<div class="errcard"><div class="n">4</div><div class="t">Competitive mispositionings</div><div class="d">Named, funded, shipping incumbents the document treated as absent.</div></div>
<div class="errcard"><div class="n">3</div><div class="t">Execution infeasibilities</div><div class="d">Build plans that cannot be delivered at the stated budget or timeline.</div></div>
<div class="errcard"><div class="n">2</div><div class="t">Legal compliance blockers</div><div class="d">Registration and privacy obligations that gate launch entirely.</div></div>
<div class="errcard"><div class="n">2</div><div class="t">Team capacity impossibilities</div><div class="d">Founder hour budgets that exceed the hours available.</div></div>
<div class="errcard" style="border-left-color:var(--warn)"><div class="n">14</div><div class="t">Total, across 3 documents</div><div class="d">Mean 4.7 material errors per proposal reviewed.</div></div>
</div>
<h3>RFP Tank v1.0 · panel 4.40 vs solo 4.93</h3>
<table>
<thead><tr><th style="width:180px">Class</th><th>Error the panel caught</th><th style="width:150px">Caught by</th></tr></thead>
<tbody>
<tr><td><span class="tag tag-red">Revenue</span></td><td>Three mutually inconsistent Year-1 revenue figures inside one document: $1.2M, $1.361M, and $372K. Plus a 22% MRR ramp inconsistency the narrative never reconciles.</td><td>Financial Integrity</td></tr>
<tr><td><span class="tag tag-red">Competitive</span></td><td>CLEATUS is a real, funded competitor at $4M seed with public product-led pricing of $39 to $250/mo, occupying the identical quadrant. The proposal does not name it. The Band A generalist seat actually cited CLEATUS pricing as a positive signal.</td><td>Market Reality</td></tr>
<tr><td><span class="tag tag-red">Competitive</span></td><td>GovEagle pricing referenced at a 15x inconsistency against the proposal's own comparison table.</td><td>Market Reality</td></tr>
<tr><td><span class="tag tag-red">Execution</span></td><td>Five of seven features marked TO BUILD at HIGH effort. The real-time Compliance Copilot alone needs 2 to 3 developers for 8 to 12 weeks. The plan allocates 4 weeks, solo.</td><td>Execution Feasibility</td></tr>
<tr><td><span class="tag tag-red">Team</span></td><td>A solo founder shipping a 7-feature AI SaaS in 10 weeks, with hiring contingent on revenue that requires the product to already exist. A closed loop with no entry point.</td><td>Team / Founder</td></tr>
<tr><td><span class="tag tag-red">Legal</span></td><td>No privacy policy and no terms of service, against FAR and CUI exposure, with ITAR implications on German-hosted infrastructure.</td><td>Legal / Regulatory</td></tr>
</tbody>
</table>
<p class="table-note">
Panel verdict: NO GO. Estimated rework 40+ hours. Recommendation is to cut scope to two features,
extend to 20 weeks, hire a second developer before month one, rebuild the financial model, and
address CLEATUS directly.
</p>
<h3>VentureBuilt v2 · panel 6.14 vs solo 6.10</h3>
<table>
<thead><tr><th style="width:180px">Class</th><th>Error the panel caught</th><th style="width:150px">Caught by</th></tr></thead>
<tbody>
<tr><td><span class="tag tag-red">Execution</span></td><td>Contractor budget broken by a factor of 4 to 7. The stated $1,500/mo implies $11 to $22 per hour against a market rate of $75 to $100. At real rates that budget buys 105 to 140 hours and leaves roughly 800 hours on the founder.</td><td>Execution Feasibility</td></tr>
<tr><td><span class="tag tag-red">Revenue</span></td><td>Year 2 stated on a run-rate basis rather than recognized revenue. Restated correctly, the healthy scenario loses roughly $11K to $18K.</td><td>Financial Integrity</td></tr>
<tr><td><span class="tag tag-red">Competitive</span></td><td>The uniqueness claim is contradicted by shipping products. LivePlan Plan Review and IdeaProof already occupy the space.</td><td>Market Reality</td></tr>
<tr><td><span class="tag tag-red">Team</span></td><td>37 engagements plus 950 hours plus an MSP day job. The three commitments cannot coexist in one calendar.</td><td>Team / Founder</td></tr>
</tbody>
</table>
<p class="table-note">
Panel verdict: CONDITIONAL GO with six named conditions. Estimated rework 15 to 20 hours. This is
the case that most clearly shows the value: the panel mean (6.14) and the solo mean (6.10) are
statistically tied, so on score alone the panel added nothing. What it added was a bimodal split,
Financial 8.2 against Execution 2.8, and the four errors above.
</p>
<h3>CartMySupply · panel 4.29 vs solo 5.00</h3>
<table>
<thead><tr><th style="width:180px">Class</th><th>Error the panel caught</th><th style="width:150px">Caught by</th></tr></thead>
<tbody>
<tr><td><span class="tag tag-red">Revenue</span></td><td>The $2.7M headline is wrong by 7x to 10x against the proposal's own inputs, which compute to $269K. Stripe fees understated by roughly $11K per year. CAC absent entirely.</td><td>Financial Integrity</td></tr>
<tr><td><span class="tag tag-red">Competitive</span></td><td>TeacherLists already solves the identical problem, free, across 2 million lists. Target ships native School List Assist. No technical moat is claimed or demonstrable.</td><td>Market Reality</td></tr>
<tr><td><span class="tag tag-red">Execution</span></td><td>Amazon PA-API 5 removed Cart API support. Target has no self-serve multi-item cart API. Walmart requires separate catalog matching. The core mechanic of the product does not have a supported integration path at any of the three named retailers.</td><td>Execution Feasibility</td></tr>
<tr><td><span class="tag tag-red">Legal</span></td><td>Charitable solicitation registration required in 40+ states at $30K to $75K, plus COPPA exposure and FTC penalty risk. Compliance cost of $60K to $150K exceeds projected Year-1 revenue of $3K to $14K by an order of magnitude.</td><td>Legal / Regulatory</td></tr>
</tbody>
</table>
<p class="table-note">
Panel verdict: NO GO, unanimous, zero outliers, tightest spread of the three. Estimated rework
60+ hours. The build estimate of 116 hours was independently judged 4x to 10x too low.
</p>
<div class="callout callout--win">
<strong>Read the legal row again.</strong> A $60K to $150K registration obligation against
$3K to $14K of projected revenue is not a scoring nuance. It is the difference between a
business and a fine. A solo model reading the same document returned a 5.0 and did not raise it.
That single finding is worth more than every point of score elevation the old thesis promised.
</div>
</section>
+203
View File
@@ -0,0 +1,203 @@
<!-- ====== 5. JUDGE POOL v2.3 ====== -->
<section id="panel">
<h2><span class="n">05</span>Judge Pool v2.3: 11 Seats, 9 Vendors, Zero Double-Ups</h2>
<p class="lead">
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
<a href="judge-pool-spec.md">judge pool specification v2.3</a>.
</p>
<h3>The roster</h3>
<table>
<thead><tr><th>Band</th><th>Seat</th><th>Model</th><th>Vendor</th><th>Scores</th></tr></thead>
<tbody>
<tr><td>0</td><td>Research Agent</td><td>Grok 4.5</td><td>xAI</td><td>No</td></tr>
<tr><td>A</td><td>Primary Reviewer</td><td>Claude Opus 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check A</td><td>DeepSeek V4 Flash</td><td>DeepSeek</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check B</td><td>Gemini Pro Latest</td><td>Google</td><td>Yes</td></tr>
<tr><td>A</td><td>Cross-Check C</td><td>DeepSeek V4 Pro</td><td>DeepSeek</td><td>Yes</td></tr>
<tr><td>A</td><td>Legal / Regulatory</td><td>Claude Sonnet 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>B</td><td>Financial Integrity</td><td>MiniMax-M3</td><td>MiniMax</td><td>Yes</td></tr>
<tr><td>B</td><td>Team / Founder</td><td>Claude Fable 5</td><td>Anthropic</td><td>Yes</td></tr>
<tr><td>B</td><td>Market Reality</td><td>Qwen3.7 Plus</td><td>Alibaba</td><td>Yes</td></tr>
<tr><td>B</td><td>Execution Feasibility</td><td>GPT-5.2 Pro</td><td>OpenAI</td><td>Yes</td></tr>
<tr><td>C</td><td>Synthesis &amp; Integrity Gate</td><td>Kimi K2.6</td><td>Moonshot</td><td>No</td></tr>
</tbody>
</table>
<p class="table-note">
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.
</p>
<h3>What changed in v2.3</h3>
<div class="defense-grid">
<div class="defense-item">
<h4 style="margin-top:0">Pre-flight health gate</h4>
<p>
Before any scoring begins, the orchestrator pings every rostered model with a 5-second
probe and writes the result to a per-model health file. Any model returning HTTP 400,
HTTP 429, or a no-healthy-deployments error is swapped for its pre-assigned failover before
a single scoring call is spent. The 2026-08-12 run burned roughly 12 dispatches discovering
dead models at runtime. That failure mode is now closed.
</p>
</div>
<div class="defense-item">
<h4 style="margin-top:0">Pre-baked failover roster</h4>
<p>
Every seat carries a named failover from a different vendor, resolved at gate time rather
than improvised mid-run. Failover selection preserves both the vendor-diversity ceiling and
the no-double-up rule, so a degraded panel is still a valid panel rather than an
accidentally correlated one.
</p>
</div>
<div class="defense-item">
<h4 style="margin-top:0">Credit-wall resilience</h4>
<p>
The provider credit exhaustion that cost two seats mid-run is now detected at the gate and
treated as an availability failure, not an error. Anthropic capacity has been restored and
the Primary Reviewer seat runs Claude Opus 5 as specified.
</p>
</div>
<div class="defense-item">
<h4 style="margin-top:0">Permanent exclusions</h4>
<p>
One frontier model family proved structurally incapable of running as a panel seat under
our orchestration and is permanently excluded from the roster, not merely deprioritized.
Excluded models cannot be selected as a failover target either.
</p>
</div>
</div>
<h3>Latency</h3>
<p>
v2.3 targets a critical path of roughly 113 seconds, against 218 seconds measured on the
v2.1 architecture. The improvement comes from band parallelism: Band A and Band B seats execute
concurrently rather than sequentially, and the Synthesis seat is the only stage that must wait
for all scoring seats to return.
</p>
<h3>The ten scored dimensions</h3>
<p>
Every scoring seat rates the proposal 1 to 10 on the same ten dimensions, so panel spread is
computed dimension by dimension and not only in aggregate:
</p>
<div class="arch-box">
Problem Clarity · Market Opportunity · Product Differentiation
Revenue Model Viability · Go-to-Market Strategy · Competitive Moat
Financial Projections · Team / Execution · Risk Mitigation · Legal / Compliance
</div>
<h3>The Synthesis and Integrity Gate</h3>
<p>
The Band C seat never scores. It reads all scoring output and performs a fixed checklist:
verify score arithmetic, compute panel means and per-dimension spread, compute the delta against
the solo baseline, flag every score more than 1.5 standard deviations from the panel mean with a
written rationale, and confirm the verdict follows from panel evidence rather than from the
Primary Reviewer alone. That gate is what turns eleven opinions into one auditable report.
</p>
</section>
<!-- ====== 6. WORKED EXAMPLE ====== -->
<section id="worked">
<h2><span class="n">06</span>Worked Example: VentureBuilt v2, Where the Score Said Nothing</h2>
<p class="lead">
This is the clearest case in the validation set, because it is the one where score elevation
delivered exactly zero and error detection delivered everything. Real scores from the
2026-08-12 run.
</p>
<div class="wt-scores">
<div class="score-block score-block--narrative">
<div class="score-label">Panel mean · 8 judges</div>
<div class="score-value">6.14<span>/10</span></div>
<p class="muted" style="margin-bottom:0">Median 6.45 · standard deviation 1.758 · spread 5.4 (min 2.8, max 8.2)</p>
</div>
<div class="score-block score-block--compliance" style="border-left-color:var(--muted)">
<div class="score-label">Solo baseline · Claude Opus 5</div>
<div class="score-value" style="color:var(--muted)">6.10<span>/10</span></div>
<p class="muted" style="margin-bottom:0">Spread 2.4 · delta +0.04 · statistically tied with the panel</p>
</div>
</div>
<h3>Individual seat scores</h3>
<table>
<thead><tr><th>Seat</th><th>Model</th><th>Score</th><th>Sigma from mean</th><th>Flag</th></tr></thead>
<tbody>
<tr><td>Band B · Financial Integrity</td><td>MiniMax</td><td><strong style="color:var(--accent2)">8.2</strong></td><td>+1.17</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band B · Market Reality</td><td>Gemini</td><td>7.7</td><td>+0.89</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band A · Primary Reviewer</td><td>Opus 5</td><td>6.9</td><td>+0.43</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band A · Legal / Regulatory</td><td>Qwen</td><td>6.5</td><td>+0.21</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band A · Cross-Check C</td><td>DeepSeek V4 Pro</td><td>6.4</td><td>+0.15</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band A · Cross-Check B</td><td>Gemini</td><td>6.2</td><td>+0.04</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band B · Team / Founder</td><td>Kimi</td><td>4.4</td><td>-0.99</td><td>Within 1.5 sigma</td></tr>
<tr><td>Band B · Execution Feasibility</td><td>DeepSeek V4 Pro</td><td><strong style="color:var(--bad)">2.8</strong></td><td>-1.91</td><td><span class="tag tag-red">OUTLIER</span></td>
</tr>
</tbody>
</table>
<div class="callout callout--fail">
<strong>The average is a lie of composition.</strong> A 6.14 reads as a solid, fundable
proposal with room to improve. The distribution says something completely different: the money
is excellent (8.2) and the delivery plan is close to unworkable (2.8). Those are not two
opinions about one thing. They are two accurate findings about two different things, and
averaging them produces a number that describes neither.
</div>
<h3>What the outlier actually found</h3>
<p>
The 2.8 was not a grumpy model. The Integrity Gate challenged it at 1.91 sigma and it survived
the challenge on evidence: a contractor budget broken 4x to 7x, an architecture that regressed
from v1 with no schema and no API contract, and a founder workload of 37 engagements plus 950
hours alongside an MSP day job. The Team seat (4.4) and the Band A generalists (6.2 to 6.9)
all acknowledged the same workload problem. They weighted it less severely. The Execution
specialist is the only seat that forced it into the verdict.
</p>
<div class="highlight">
Remove that one seat and the panel averages <strong>6.6</strong>, which reads as a clean GO and
ships a proposal with an 800-hour founder gap in it. The specialist seat cost a few cents of
inference and changed the verdict.
</div>
<h3>Fix-It items, ranked by materiality</h3>
<ol class="fixit-list">
<li>
<div class="fixit-head"><span class="fixit-tag fixit-tag--critical">Critical</span><span class="fixit-delta">Execution</span></div>
<strong>Fix the contractor budget or cut the scope.</strong> $1,500/mo buys 105 to 140 hours
at market rates, not the volume the plan assumes. Raise to roughly $7,500/mo or reduce scope
to fit the hours actually purchased.
</li>
<li>
<div class="fixit-head"><span class="fixit-tag fixit-tag--critical">Critical</span><span class="fixit-delta">Financial</span></div>
<strong>Restate Year 2 on a recognized-revenue basis.</strong> On run-rate the year looks
healthy. On recognized revenue it loses roughly $11K to $18K. Present both.
</li>
<li>
<div class="fixit-head"><span class="fixit-tag fixit-tag--high">High</span><span class="fixit-delta">Competitive</span></div>
<strong>Withdraw or qualify the uniqueness claim.</strong> LivePlan Plan Review and IdeaProof
already ship in this space. Reposition on a defensible axis.
</li>
<li>
<div class="fixit-head"><span class="fixit-tag fixit-tag--high">High</span><span class="fixit-delta">Team</span></div>
<strong>Name the contractor and the sourcing plan before Phase 2.</strong> A budget line with
no named person is not a capacity plan.
</li>
<li>
<div class="fixit-head"><span class="fixit-tag fixit-tag--medium">Medium</span><span class="fixit-delta">Go-to-market</span></div>
<strong>Map the Year 1 to Year 2 GTM bridge.</strong> Eight net-new signups per month appear
in the model with no acquisition mechanism behind them.
</li>
<li>
<div class="fixit-head"><span class="fixit-tag fixit-tag--medium">Medium</span><span class="fixit-delta">Legal</span></div>
<strong>Complete data protection and trademark clearance before Phase 0 to 1.</strong>
</li>
</ol>
<p class="table-note">
Panel verdict: CONDITIONAL GO. Estimated rework 15 to 20 hours. The solo baseline returned a
6.10 and none of the six conditions above.
</p>
</section>
+179
View File
@@ -0,0 +1,179 @@
<!-- ====== 7. PRICING ====== -->
<section id="pricing">
<h2><span class="n">07</span>Pricing: Priced Per Error Found, Not Per Point Gained</h2>
<p class="lead">
Three tiers. 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.
</p>
<div class="pricing-grid">
<div class="price-card">
<h3 style="margin-top:0">Free</h3>
<div class="price">$0</div>
<ul>
<li>1 full review</li>
<li>Top 3 Fix-It items</li>
<li>Panel score and spread</li>
<li>Reduced panel size</li>
</ul>
<div class="price-purpose">Purpose: prove it on one document</div>
</div>
<div class="price-card price-card--featured">
<div class="ribbon">Most popular</div>
<h3 style="margin-top:0">Pro</h3>
<div class="price">$79<span>/mo</span></div>
<ul>
<li>5 reviews per month</li>
<li>Full 11-seat panel</li>
<li>Complete Fix-It list, ranked</li>
<li>Panel spread and outlier flags</li>
<li>Solo-baseline delta comparison</li>
<li>Re-score loop with before and after</li>
</ul>
<div class="price-purpose">Purpose: the founder or solo bid writer</div>
</div>
<div class="price-card">
<h3 style="margin-top:0">Enterprise</h3>
<div class="price">$299<span>/mo</span></div>
<ul>
<li>Unlimited reviews</li>
<li>White-label branding</li>
<li>Multi-seat team workspaces</li>
<li>Configurable judge pool</li>
<li>Corpus isolation and data controls</li>
<li>Priority pipeline and support</li>
</ul>
<div class="price-purpose">Purpose: proposal teams running color reviews</div>
</div>
</div>
<h3>What a review costs us, and why the panel is affordable</h3>
<p>
The validation run cost approximately $150 in inference for three full proposals across eight
reporting seats, including retries against dead models before the health gate existed. That
burn is the honest anchor for panel economics: a clean 11-seat run on one proposal, with the
health gate preventing wasted dispatches, sits well inside single-digit dollars.
</p>
<p>
The reason a full 11-seat panel fits a $79 tier at five reviews per month is vendor mix. Only
a minority of seats run premium frontier models. The specialist Band B seats run strong
mid-tier models from five different vendors, which is where the error-detection value came from
in validation. Panel diversity is cheaper than panel depth, and diversity is what caught the 14.
</p>
<h3>Why the value question is not the score question</h3>
<table>
<thead><tr><th>Error class</th><th>Real example from validation</th><th>Cost of missing it</th></tr></thead>
<tbody>
<tr><td>Legal blocker</td><td>Charitable solicitation registration in 40+ states</td><td>$30K to $75K of registration, against $3K to $14K of projected revenue</td></tr>
<tr><td>Compliance total</td><td>Full first-year compliance load on the same proposal</td><td>$60K to $150K, exceeding Year-1 revenue by roughly 10x</td></tr>
<tr><td>Execution gap</td><td>Contractor budget short by 4x to 7x</td><td>Roughly 800 unbudgeted founder hours</td></tr>
<tr><td>Revenue arithmetic</td><td>$2.7M headline against $269K computed from the document's own inputs</td><td>Credibility with any investor who checks the math, which is all of them</td></tr>
<tr><td>Competitive blind spot</td><td>A $4M-seed funded direct rival never named in the document</td><td>The first question in the room, unanswered</td></tr>
</tbody>
</table>
<p class="table-note">
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.
</p>
<h3>Positioned against the authoring category</h3>
<table>
<thead><tr><th>Comparison</th><th>Their price</th><th>VerdictTank</th><th>Multiple</th></tr></thead>
<tbody>
<tr><td>Pro vs Bidara Starter</td><td>$499/mo</td><td>$79/mo</td><td><strong>6.3x cheaper</strong></td></tr>
<tr><td>Pro vs AutoRFP.ai Scale</td><td>$899/mo</td><td>$79/mo</td><td><strong>11.4x cheaper</strong></td></tr>
<tr><td>Enterprise vs Bidara Starter</td><td>$499/mo</td><td>$299/mo</td><td><strong>1.7x cheaper</strong></td></tr>
<tr><td>Enterprise vs AutoRFP.ai Scale</td><td>$899/mo</td><td>$299/mo</td><td><strong>3.0x cheaper</strong></td></tr>
</tbody>
</table>
<p>
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 without a second budget conversation. Pricing Pro at $79 makes VerdictTank an add-on
decision rather than a platform decision.
</p>
</section>
<!-- ====== 8. COMPETITIVE LANDSCAPE ====== -->
<section id="competitive">
<h2><span class="n">08</span>Competitive Landscape: Nobody Sells the Errors</h2>
<p class="lead">
Every AI-native player in this space is an authoring tool. They generate drafts. The nearest
substitute for what we do is not a competitor product at all. It is a single frontier model
and a prompt, and validation showed exactly what that substitute misses.
</p>
<table>
<thead>
<tr><th>Product</th><th>Category</th><th>Published price</th><th>Relationship to VerdictTank</th></tr>
</thead>
<tbody>
<tr><td><strong>AutogenAI</strong></td><td>Enterprise authoring</td><td>Custom, sales-led, no self-serve</td><td>Complementary. We find the errors in what it writes.</td></tr>
<tr><td><strong>Civio</strong></td><td>Gov RFP authoring</td><td>Custom, sales-led</td><td>Complementary. Downstream reviewer.</td></tr>
<tr><td><strong>Bidara</strong></td><td>Mid-market authoring</td><td>$499/mo Starter</td><td>Complementary. Transparent pricing, natural comparison anchor.</td></tr>
<tr><td><strong>AutoRFP.ai</strong></td><td>Response automation</td><td>$899/mo Scale</td><td>Complementary. Reviews its drafts.</td></tr>
<tr><td><strong>DeepRFP</strong></td><td>Lean-team authoring</td><td>$89/user/mo</td><td>Complementary. Lowest per-seat price in the category, natural partner.</td></tr>
<tr><td><strong>A solo frontier model</strong></td><td>DIY substitute</td><td>API cost only</td><td><strong>The real competitor.</strong> Measured: misses or underweights the material errors a panel catches.</td></tr>
<tr class="comp-table__us"><td><strong>VerdictTank</strong></td><td><strong>Panel error detection</strong></td><td><strong>Free / $79 Pro / $299 Enterprise</strong></td><td><strong>The only 11-seat, 9-vendor review panel with a published integrity gate</strong></td></tr>
</tbody>
</table>
<p class="table-note">
Competitor prices are vendors' own published rates as of July 2026. Tools without public pricing
are shown as sales-led. Every named product was verified to exist and to occupy the authoring
category.
</p>
<h3>Why the DIY substitute is the row that matters</h3>
<p>
Any buyer sophisticated enough to want proposal review can paste their document into a frontier
model and ask for a critique. That is the honest competitive threat, and it is the one we tested
against rather than around. The result is in section 3: the solo model returns a defensible,
directionally correct score, and it returned none of the six VentureBuilt conditions, none of
the CartMySupply compliance exposure, and none of the RFP Tank competitive reality.
</p>
<div class="defense-grid">
<div class="defense-item">
<h4 style="margin-top:0">1. Incumbents cannot sell honest criticism</h4>
<p>
Authoring tools sell the promise that they write your proposal. A brutal error list on the
output that same tool just produced is a direct admission the generated draft is losing. It
is structurally against their interest. We have no draft to defend. The verdict is the
product.
</p>
</div>
<div class="defense-item">
<h4 style="margin-top:0">2. Review is where the money is decided</h4>
<p>
Every serious bid already goes through a review gate, the color-team pass organizations run
manually by pulling senior staff off billable work. That labor is expensive, slow,
inconsistent between reviewers, and unavailable to the solo consultant. The demand is proven
by the existence of the manual process.
</p>
</div>
<div class="defense-item">
<h4 style="margin-top:0">3. Panel orchestration is a real moat</h4>
<p>
Nine vendors, health gating, pre-baked failover, no model double-ups, and an integrity gate
that challenges its own outliers is not a prompt. It is an operations problem, and the
2026-08-12 run is the evidence of what it costs to learn.
</p>
</div>
<div class="defense-item">
<h4 style="margin-top:0">4. An empty category sets its own price</h4>
<p>
A crowded category means the budget line exists and you fight for share. An empty review
category means we define the line and set the reference price, while remaining complementary
to every authoring tool in the table above.
</p>
</div>
</div>
<div class="positioning-statement">
The authoring tools write proposals. A solo model grades them smoothly.<br>
VerdictTank tells you the fourteen things both of them got wrong.
</div>
</section>
+228
View File
@@ -0,0 +1,228 @@
<!-- ====== 9. DEPLOYMENT ====== -->
<section id="deployment">
<h2><span class="n">09</span>Deployment Options</h2>
<p class="lead">
Two supported deployment shapes. Both are managed by IT Pro Partner below the application layer.
</p>
<div class="strategy-cols">
<div class="defense-item">
<h4 style="margin-top:0;text-transform:none;color:var(--accent);font-size:15px">Option A · ITPP-INFRA Shared</h4>
<p>
Runs on existing netcup RS 4000 infrastructure alongside IT Pro Partner operations. Same
Wasabi S3 backup pipeline, same Caddy reverse proxy, same monitoring stack (Prometheus and
Grafana). Zero new infrastructure cost. Suitable for launch through Series A.
</p>
<ul>
<li>netcup RS 4000 (app3), Docker Compose</li>
<li>Wasabi S3 daily backups plus 15-minute sync</li>
<li>Managed by the IT Pro Partner infrastructure team</li>
</ul>
</div>
<div class="defense-item">
<h4 style="margin-top:0;text-transform:none;color:var(--accent);font-size:15px">Option B · Dedicated</h4>
<p>
Dedicated netcup or Hetzner instances with a dedicated S3 bucket. Full isolation from ITPP
operational infrastructure. Recommended for post-Series A or enterprise white-label
deployments requiring independent compliance scope.
</p>
<ul>
<li>Dedicated netcup RS or Hetzner CPX instances</li>
<li>Dedicated Wasabi S3 bucket, separate backup schedule</li>
<li>Managed by IT Pro Partner below the application layer</li>
</ul>
</div>
</div>
<p class="table-note">
<strong>Shared responsibility:</strong> IT Pro Partner manages everything below the application
layer (OS, container runtime, networking, backups, monitoring) under both options. The
VerdictTank application and its model pipeline are the product team's responsibility.
</p>
<div class="highlight">
<strong>Panel-specific operational requirement.</strong> Under either option the orchestrator
must hold credentials for nine separate model vendors and must run the pre-flight health gate
before every panel dispatch. Vendor credential rotation and per-vendor spend ceilings are
application-layer concerns and sit with the product team, not with infrastructure.
</div>
</section>
<!-- ====== 10. LEGAL, PRIVACY, COMPLIANCE ====== -->
<section id="legal">
<h2><span class="n">10</span>Legal, Privacy &amp; Compliance</h2>
<p class="lead">
Trademark clearance, the Minimum Viable Legal framework, the controller and processor role map,
the sub-processor training guard, corpus confidentiality, and incident response. Carried forward
from v4.0 and updated for the nine-vendor panel.
</p>
<h3>10.1 USPTO trademark clearance: "VerdictTank"</h3>
<p>
<strong>Status: preliminary clearance only. This is not a substitute for a formal search.</strong>
This assessment was performed with open-web search tools only. USPTO TESS is a
JavaScript-rendered application and a static fetch returns only the search shell with no query
results. Before any trademark application is filed, a live interactive TESS search or a paid
clearance search through a trademark attorney is required.
</p>
<h4>Open-web common-law search results (performed)</h4>
<table>
<thead><tr><th>Search</th><th>Result</th><th>Assessment</th></tr></thead>
<tbody>
<tr><td>"VerdictTank" exact, web-wide</td><td>Only hit is verdicttank.com itself</td><td>No third-party commercial use found</td></tr>
<tr><td>"Verdict Tank" space variant</td><td>Two incidental unrelated hits, neither a business nor a registered mark</td><td>No competing commercial use. Matches are noise.</td></tr>
<tr><td>Trademarkia and Justia proxy queries</td><td>No results returned</td><td>Consistent with no existing registration, but not equivalent to direct TESS</td></tr>
<tr><td>Domain: verdicttank.com</td><td>Live, owned, serving the product</td><td><strong>Primary domain.</strong> Confirms operational use in commerce.</td></tr>
<tr><td>Domain: rfptank.com</td><td>Legacy holding, same naming convention</td><td><strong>Defensive only.</strong> Retained against a family-of-marks argument. Not a product surface.</td></tr>
</tbody>
</table>
<h4>Recommendation</h4>
<ul>
<li>Before Series A close or any public marketing scale-up, commission a formal USPTO clearance search for Classes 9, 42, 35 and 45.</li>
<li>File an intent-to-use application for VERDICTTANK as a standard character word mark, Class 42 primary and Class 9 secondary.</li>
<li>Do not file on the basis of this document alone. It is a preliminary desk review.</li>
</ul>
<h3>10.2 Minimum Viable Legal (MVL) framework</h3>
<p>
MVL is the internal gate name used in the architecture documents as the precondition for
onboarding white-label and enterprise customers. It is not one document. It is five interlocking
instruments that must all exist and be internally consistent before the white-label provisioning
gate turns green.
</p>
<table>
<thead><tr><th>Component</th><th>Purpose</th><th>Applies to</th><th>Status</th></tr></thead>
<tbody>
<tr><td>Terms of Service</td><td>Governs the contractual relationship with every direct user</td><td>All tiers</td><td>Drafting required</td></tr>
<tr><td>Privacy Policy</td><td>GDPR and CCPA compliant notice of collection and use</td><td>All tiers</td><td>Drafting required</td></tr>
<tr><td>Data Processing Addendum</td><td>Article 28 GDPR processor terms</td><td>Enterprise, white-label</td><td>Hard gate on white-label</td></tr>
<tr><td>AI Disclaimer (DISC-001)</td><td>Non-removable versioned notice: output is AI opinion, not professional advice</td><td>Every scored surface</td><td>Engineering spec complete, legal copy needs counsel sign-off</td></tr>
<tr><td>Limitation of Liability</td><td>Caps aggregate liability at the lesser of $100 or fees paid in the preceding 12 months</td><td>All tiers, embedded in ToS</td><td>Drafting required</td></tr>
<tr><td>Governing law and venue</td><td>Recommend Delaware law with Georgia venue, pending confirmation of incorporation state</td><td>All tiers</td><td>Pending counsel</td></tr>
<tr><td>GDPR readiness</td><td>Lawful basis mapped per role. Articles 28, 33 and 34. SCCs or IDTA for EU transfers.</td><td>Any EU user</td><td>Framework mapped, SCC execution pending white-label launch</td></tr>
<tr><td>CCPA and CPRA readiness</td><td>Service-provider contract terms and a consumer rights workflow</td><td>Any California resident</td><td>DSAR workflow build pending</td></tr>
</tbody>
</table>
<p class="table-note">
The Free, Pro and Enterprise tiers require Terms of Service, Privacy Policy and the AI Disclaimer
at minimum before any paid launch.
</p>
<h3>10.3 Controller and processor role map</h3>
<table>
<thead><tr><th>Data flow</th><th>Role</th><th>Legal basis</th><th>Agreements required</th></tr></thead>
<tbody>
<tr><td>Free tier submission and review</td><td>Controller</td><td>Contract plus legitimate interest</td><td>ToS, Privacy Policy</td></tr>
<tr><td>Enterprise org admin and org users</td><td>Joint controller</td><td>Performance of contract</td><td>ToS, Enterprise DPA (Art. 26 GDPR)</td></tr>
<tr><td>White-label tenant end-users</td><td>Processor</td><td>Tenant's instructions</td><td>DPA, SCCs or IDTA, published sub-processor list</td></tr>
<tr><td>Panel model API calls, all nine vendors</td><td>Controller of the vendor relationship. Each model vendor is a sub-processor.</td><td>Legitimate interest</td><td>Sub-processor training guard plus a DPA with each vendor</td></tr>
<tr><td>Corpus contribution (aggregate scores and structural metadata)</td><td>Controller, secondary-use basis</td><td><strong>Opt-in consent.</strong> Cannot ride on contract or legitimate interest under the purpose limitation principle, Art. 5(1)(b).</td><td>Explicit opt-in UI, anonymization pipeline, retention separate from the review record</td></tr>
</tbody>
</table>
<div class="callout">
<strong>The nine-vendor panel raises the sub-processor row from a formality to the primary
compliance surface.</strong> Every additional vendor seat is an additional sub-processor that
must carry a confirmable training opt-out before it can receive customer content. A vendor that
cannot satisfy the guard below cannot hold a panel seat, regardless of how well it scores.
</div>
<h3>10.4 Sub-processor training guard</h3>
<h4>Model clause for vendor DPAs</h4>
<div class="arch-box">
Vendor shall not use Customer Data (including all inputs, outputs, prompts, completions,
and any content submitted via the Vendor's API) to train, fine-tune, retrain, or otherwise
improve any machine learning model, except with Customer's prior written consent on a
per-instance basis. Vendor shall not retain Customer Data beyond the minimum period
technically necessary to provide the API response.
</div>
<p>
<strong>Enforcement rule:</strong> a vendor without a public, contractually confirmable training
opt-out is excluded from the panel roster entirely and cannot be selected as a failover target.
The only acceptable path for a non-compliant provider is a customer-side, explicit, revocable
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
re-run at each roster revision.
</p>
<h3>10.5 Corpus confidentiality</h3>
<p>
The corpus is VerdictTank's most valuable long-term asset and its highest confidentiality
exposure.
</p>
<table>
<thead><tr><th>Data type</th><th>Corpus-eligible</th><th>Rationale</th></tr></thead>
<tbody>
<tr><td>Dimension scores and panel spread statistics</td><td>Yes, opt-in</td><td>Structural, not identifying. Core signal.</td></tr>
<tr><td>Structural metadata (vertical, length bucket, revision count, deltas)</td><td>Yes, opt-in</td><td>Enables content and moat analytics</td></tr>
<tr><td>Raw proposal text</td><td><strong>Never</strong></td><td>Confidential business content plus potential third-party PII</td></tr>
<tr><td>Explanation and audit finding text</td><td><strong>Never</strong> in raw form</td><td>Critique text frequently quotes the submission verbatim</td></tr>
<tr><td>Chat refinement transcripts</td><td><strong>Never</strong> as transcript content</td><td>Highest incidental-PII risk of any input surface</td></tr>
</tbody>
</table>
<h4>Anonymization pipeline</h4>
<ol>
<li><strong>Source-content exclusion.</strong> Raw text fields excluded at the schema and ETL level.</li>
<li><strong>Structural extraction only.</strong> ETL reads scored and aggregated fields, never freeform text.</li>
<li><strong>Identifier stripping.</strong> Review, user and org identifiers replaced with a one-way surrogate key.</li>
<li><strong>Free-text quarantine.</strong> A stricter named-entity pass before any inclusion.</li>
<li><strong>k-anonymity floor.</strong> Public content published only when the cohort exceeds a minimum threshold.</li>
</ol>
<p class="table-note">
Corpus contribution is off by default and requires explicit, separate opt-in. It is not bundled
into ToS acceptance and is revocable at any time from account settings.
</p>
<h3>10.6 Incident response</h3>
<p>Structured around the six functions of NIST CSF 2.0.</p>
<table>
<thead><tr><th>Function</th><th>VerdictTank action</th></tr></thead>
<tbody>
<tr><td>Govern</td><td>Named incident commander. Breach classification criteria documented before any incident.</td></tr>
<tr><td>Identify</td><td>Asset inventory: transactional database, corpus database, credentials for all nine model vendors, white-label tenant segments.</td></tr>
<tr><td>Protect</td><td>Row-level-security multi-tenant isolation, sanitization gate, sub-processor training guard, per-vendor spend ceilings.</td></tr>
<tr><td>Detect</td><td>Alerting on anomalous data access, bulk export, and cross-org query attempts. Health-gate telemetry on every panel dispatch.</td></tr>
<tr><td>Respond</td><td>GDPR: 72-hour notification to the supervisory authority (Art. 33). CCPA: notification without unreasonable delay.</td></tr>
<tr><td>Recover</td><td>Post-incident review documented. White-label tenants notified per their individual DPA terms.</td></tr>
</tbody>
</table>
<h4>Wrong-verdict liability</h4>
<p>
<strong>Scenario:</strong> a customer submits a proposal, receives a favorable panel verdict,
acts on it, and the verdict was wrong in a way that led to a bad decision. This is primarily a
reputational risk. The liability cap bounds legal exposure and does nothing for reputation.
</p>
<ul>
<li><strong>Legal layer:</strong> the AI disclaimer fails closed on every surface, a $100 or 12-months-of-fees liability cap applies, and the terms explicitly instruct users not to rely on AI output for investment decisions.</li>
<li><strong>Confidence calibration:</strong> every verdict ships with panel spread, standard deviation, and outlier flags. A verdict with a 5.4-point spread is a materially different signal from a unanimous one, and the report says so on its face.</li>
<li><strong>The published FAIL:</strong> section 3 of this document is itself part of the defense. We publish the case where our own thesis failed, which is a stronger honesty posture than any disclaimer.</li>
<li><strong>Incident playbook:</strong> do not litigate merits publicly, point to the auditable disclaimer version shown to the user, offer a private re-review, and disclose plus correct any systematic flaw found.</li>
</ul>
<h4>Model provider outage disclosure</h4>
<ul>
<li><strong>Public status page</strong> distinguishing VerdictTank infrastructure incidents from upstream model provider incidents.</li>
<li><strong>Degraded-mode behavior:</strong> 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.</li>
<li><strong>SLA language:</strong> uptime commitments are qualified as dependent on upstream provider availability.</li>
</ul>
</section>
</main>
<footer>
<div class="wrap">
VerdictTank v5.0 · <a href="https://verdicttank.com">verdicttank.com</a> ·
<a href="architecture.html">Technical Architecture</a> ·
<a href="judge-pool-spec.md">Judge Pool Spec v2.3</a> ·
<a href="index-v4.0.html">Prior version (v4.0)</a><br>
Pre-revenue. Thesis revised on measured data from the 2026-08-12 validation run.
All domain references are <code>verdicttank.com</code>; <code>rfptank.com</code> is retained
as a defensive holding only.<br>
Every score, delta, spread and error count on this page comes from that run. Nothing is projected.
</div>
</footer>
</body>
</html>
+160
View File
@@ -0,0 +1,160 @@
# VerdictTank: Bottom-Up SAM Estimate and Competitive Landscape
*Prepared by Hermes Agent subagent. All data current as of 2026-08-18. Every figure carries a source URL; figures that are not publicly disclosed are explicitly labeled as estimates or "not disclosed."*
---
## 1. ICP (Ideal Customer Profile) Definition
VerdictTank critiques submitted business proposals and pitch decks via a panel of ~10 AI models acting as independent reviewers. It does NOT write proposals. The ICP is three segments, all US-based:
| Segment | Who | Why they buy | Willingness to pay |
|---|---|---|---|
| A. Startup founders | Pre-seed and seed founders preparing to raise (or raising) | Need a fast, cheap "mock investor panel" before they spend weeks pitching | High for a $29-$119 critique vs. a $5K-$25K consultant |
| B. Small proposal / RFP teams and independent consultants | Solo proposal writers, grant writers, 1-5 person bid teams | Need a "red team" second opinion on drafts before submission | Moderate; already pay for RFP software at $75-$899/mo |
| C. Investors / advisors | VCs, angels, accelerators, advisors reviewing inbound decks | Triage and screen inbound decks faster | Lower; adjacent, not core buyers |
---
## 2. Bottom-Up SAM Estimate
### 2.1 Addressable buyer count (US, annual)
**Segment A - Startup founders actively fundraising: ~20,000/year**
- Anchor: 5,049 US pre-seed and seed deals closed in 2025 (NVCA 2026 Yearbook).
- Funnel assumption: for every deal that closes, roughly 3 additional founders pitch but do not close in the same year (documented assumption, not sourced). This gives ~20,000 founders actively preparing investor materials in a given year.
- Cross-check: over 55,000 VC-backed companies are operating in the US (PitchBook Q1 2024); these founders re-raise periodically and refresh decks, but they are not all "actively raising" in any single year.
**Segment B - Proposal/RFP teams and independent consultants: ~50,000**
- Floor anchor: ~10,500 members of APMP (Association of Proposal Management Professionals), the main bid/proposal professional body, worldwide (APMP LinkedIn). The US portion is the majority.
- Broad anchor: ~1 million management consulting firms in the US (IBISWorld 2026), but only a single-digit percentage bid on formal RFPs/proposals regularly.
- Software-buyer anchor: the entire RFP response software category is served by a few thousand enterprise accounts (Loopio ~1,000 customers, Responsive larger). This implies the "software-paying proposal team" pool is in the tens of thousands, not millions.
- Estimate: 50,000 US proposal/bid professionals and small teams who would pay for a review tool. This is the softest segment; sensitivity shown below.
**Segment C - Investors / advisors: ~15,000**
- 3,417 US VC firms (NVCA Yearbook, end of 2023); "close to 8,500" individual US venture capitalists by 2024 (Ilya Strebulaev, Stanford, via LinkedIn).
- Add active angels and accelerator program managers (assumption, no clean single source).
- Only a minority would pay for a review tool, so this segment is treated as secondary.
**Total addressable buyers: ~85,000 US entities/year** (20,000 + 50,000 + 15,000).
### 2.2 Attach rate and blended ARPU
Attach rate (share of addressable buyers who become paying customers over a ~3-year horizon):
| Scenario | Attach rate | Paying accounts |
|---|---|---|
| Low | 1.0% | ~850 |
| Base | 1.5% | ~1,275 |
| High | 3.0% | ~2,550 |
Blended ARPU assumption (base case): ~$120/month. This is driven by Pro ($119/mo) as the dominant tier, with a small drag from one-shot $29 purchases and a small uplift from Enterprise ($699/mo) and White-Label ($3,000/mo). Rationale: the pre-set pricing ladder centers on Pro; White-Label and Enterprise are thin tails, not the median buyer.
### 2.3 SAM result (bottom-up, obtainable revenue)
| Scenario | Paying accounts | Blended ARPU | Annual SAM | Monthly SAM |
|---|---|---|---|---|
| Low | ~850 | $120/mo | ~$1.22M | ~$102K |
| Base | ~1,275 | $120/mo | ~$1.84M | ~$153K |
| High | ~2,550 | $120/mo | ~$3.67M | ~$306K |
**Headline: bottom-up SAM of roughly $1.2M-$3.7M per year, with a base case of ~$1.8M/year (~$153K/month).**
For context, the theoretical ceiling if 100% of the 85,000 addressable buyers converted at $120/mo would be ~$122M/year. That is a "SAM at full penetration" figure, not an obtainable target; the obtainable range above is the realistic planning number.
### 2.4 Sensitivity notes
- Segment B (proposal teams/consultants) is the widest and softest estimate. If it were 25,000 instead of 50,000, base-case SAM drops to ~$1.3M/year. If it were 100,000, base case rises to ~$2.7M/year.
- Blended ARPU is sensitive to Enterprise/White-Label mix. At a conservative $95/mo blended ARPU, base-case SAM is ~$1.45M/year; at $150/mo it is ~$2.3M/year.
- International expansion (EU/UK, India, Southeast Asia) is excluded; it would roughly double or triple the addressable pool but is not modeled here.
---
## 3. Competitive Table
Direct = critiques/feedback on pitch decks or proposals. Adjacent = writes or automates proposals/decks (competes for the same budget, different job).
| Competitor | What it does | Pricing (public) | Funding raised | ARR / revenue / traction | Position vs VerdictTank |
|---|---|---|---|---|---|
| **Preuve** (preuve.ai) | Single-report AI idea validation plus an investor package with a pitch deck. Multi-pass (not multi-model) verdict, TAM/SAM/SOM, competitor mapping, 60+ live sources. | Free Reality Check; Founder Report $29 one-time; packs 5x $95 / 10x $159; Investor-Ready $499; Radar Pro $19/mo; Lifetime $499-$999 | Bootstrapped, solo founder (Vincent Forat), no VC disclosed | 6,500+ ideas scanned; revenue-generating but ARR not disclosed | Closest single-report price anchor ($29). Critiques ideas more than decks; does not run a 10-model adversarial panel and does not critique client/business proposals. |
| **Evalyze** (evalyze.ai) | AI pitch deck analysis (1,000-point score, strengths/weaknesses, benchmark vs thousands of decks) plus investor matching and pitch coaching. | Free Starter; Pro $20/mo ($10/mo annual, $120/yr); Managed "Let's Talk" | Not disclosed (Singapore/SMU-adjacent early-stage) | Trained on "thousands" of decks; ARR not disclosed | Closest functional match on "critique a pitch deck." Bundles investor matching + coaching rather than a 10-model panel; no proposal/RFP critique, no white-label tier published. |
| **PitchGrade** (pitchgrade.com) | AI pitch deck generator plus deck feedback, SWOT, and business research. | Free; Pro $7.99/mo; Agent $49.99/mo (G2 AI marketplace) | Not disclosed | 10,000+ founders (marketing claim) | Low-price deck feedback and generation; single-model, no reviewer panel, no proposal critique. |
| **PitchBob** (pitchbob.io) | AI pitch deck generator (writes decks) plus AI Pitch Trainer for investor Q&A. | One-time $29.90 (Advanced) / $49.90 (Pro) / $99.90 (Super Pro) | Not disclosed | Not disclosed | Writes decks, does not critique; the Pitch Trainer is adjacent to a "mock investor" but is generation, not multi-model review. |
| **Loopio** (loopio.com) | RFP / security questionnaire / proposal response software (content library + AI drafting). Writes responses, does not critique. | Quote-based; Foundations tier ~$20K/yr entry (third party); ~$120/user/mo per Vendr; $11.7K-$55.7K/yr observed range | $9M Series A (OpenView, 2018) + $200M growth investment (Sumeru Equity Partners, 2021); ~$252M CAD total PE per Clay | ~$34.2M estimated ARR (GetLatka 2025); ~1,000 customers, ~311 employees | Enterprise incumbent for the proposal segment. Not a critique tool; validates the budget exists in the proposal workflow but does not compete on review. |
| **Responsive** (responsive.io, formerly RFPIO) | Strategic Response Management platform for enterprise RFPs/RFIs. | Quote-based (enterprise) | ~$27.1M raised over 4 rounds (CB Insights) | ~$67.1M estimated ARR (GetLatka 2025); claims $1T+ in managed opportunities | Largest enterprise RFP player. Same non-overlap as Loopio; shows the proposal-software budget ceiling. |
| **DeepRFP** (deeprfp.com) | AI RFP analysis, proposal drafting, compliance matrices, and review for small teams and consultants. | Pro $75/user/mo, Elite $125/user/mo (third party); site also cites $89/user/mo | Not disclosed | 5.0/5 Capterra, self-described "built by a proposal writer" | Has a "Proposal Reviews" feature but it reviews your own drafts against compliance/clarity, not a multi-model adversarial panel with scored verdicts. |
| **Free alternatives** (SeedAngels, OpenVC, Slidebean, SeedBlink, pitchleague.ai) | Free AI pitch deck scoring/feedback | $0 | n/a | n/a | Set the free floor. SeedAngels scores 34 criteria across 8 themes; OpenVC and Slidebean give free AI reviews. VerdictTank must sell depth (10-model panel, live grounding, per-dimension findings) above a zero-price baseline. |
### Notable data-quality flags
- **GetLatka funding figures are unreliable.** GetLatka lists Loopio at "$8.6M raised" (contradicted by Loopio's own $9M Series A plus $200M PE) and lists Responsive as "bootstrapped, $0 raised" (contradicted by CB Insights' $27.1M over 4 rounds). Funding figures above use Loopio's own announcements and CB Insights, not GetLatka.
- **Loopio and Responsive ARR are third-party estimates** (GetLatka), not audited figures. Treat as order-of-magnitude.
- **Loopio "$899+/mo" is not a current public price.** Loopio does not publish list pricing; the ~$20K/year entry figure is a third-party estimate. The $899/mo figure in the brief is closer to AutoRFP.ai's published "Scale" tier.
---
## 4. Positioning Observations
- **The "critique" niche is mostly served by free tools and adjacent generators.** The clear commercial competitors on "AI review of a pitch deck" are Evalyze ($10-$20/mo), PitchGrade ($7.99-$49.99/mo), and Preuve ($29 one-shot). None runs a 10-model adversarial panel with live grounding, and none covers business/RFP proposals.
- **The proposal side is dominated by writers, not reviewers.** Loopio, Responsive, DeepRFP, and AutoRFP.ai (Scale $899/mo, Accelerate $1,299/mo, per AutoRFP's own pricing) all generate or automate responses. A "red team" critique product slots into the workflow they already own, either as an add-on or as a wedge for smaller teams who cannot afford Loopio/Responsive.
- **White-label is a genuine differentiator.** No competitor found publishes a white-label/reseller tier. VerdictTank's $3,000/mo White-Label tier targets consultants and agencies (including Preuve's own "for consultants & agencies" audience), a segment no incumbent serves explicitly.
- **Pricing sits in a defensible gap.** $29 one-shot matches Preuve; $119/mo sits between free tools ($0) and the RFP suites ($75-$899/mo), and well below the $5K-$25K consultant benchmark Preuve itself cites.
---
## 5. Sources
Market size:
- Census Business Formation Statistics (July 2026: 578,926 business applications): https://www.census.gov/econ/bfs/current/index.html
- Commerce Institute, new businesses per year (2024: 5.2M applications): https://www.commerceinstitute.com/new-businesses-started-every-year/
- Finder new business statistics (2024: 5.48M applications): https://www.finder.com/small-business/new-businesses
- NVCA 2026 Yearbook (2025 US VC: 5,049 pre-seed/seed deals): https://nvca.org/2026-nvca-yearbook/
- PitchBook Q1 2024 (55,000+ VC-backed US companies): https://pitchbook.com/news/articles/venture-capital-trends-charts-q1-2024
- SSTI, state of US VC 2024 (~4,400 seed deals, $14.7B): https://ssti.org/blog/useful-stats-state-us-venture-capital-2024
- NVCA Yearbook (3,417 US VC firms end of 2023): https://nvca.org/nvca-yearbook/
- Ilya Strebulaev on US VC count (close to 8,500 by 2024): https://www.linkedin.com/posts/ilyavcandpe_the-number-of-us-venture-capitalists-has-activity-7388957379717144576-gSTj
- OpenVC, US VC landscape (2,500+ active firms): https://www.openvc.app/country/USA
- IBISWorld, Management Consulting in the US (1M businesses): https://www.ibisworld.com/united-states/industry/management-consulting/1421/
- APMP (membership ~10,500; $170/yr dues): https://www.linkedin.com/company/apmp and https://www.apmp.org/
- MBO Partners State of Independence 2024: https://www.mbopartners.com/state-of-independence/2024-report
- Grant Professionals Association: https://grantprofessionals.org/
Competitors:
- Preuve pricing: https://preuve.ai/pricing
- Preuve about (Vincent Forat, bootstrapped, 6,500+ ideas): https://preuve.ai/consultants/about
- Loopio pricing: https://loopio.com/pricing/
- Vendr, Loopio pricing (~$120/user/mo): https://www.vendr.com/marketplace/loopio
- AutoRFP, Loopio pricing breakdown (~$20K/yr entry): https://autorfp.ai/blog/loopio-pricing
- Responsive, Loopio pricing comparison ($11,682-$55,704/yr): https://www.responsive.io/glossary/compare/loopio-pricing
- Loopio $200M investment announcement ($9M Series A, $200M Sumeru): https://loopio.com/blog/loopio-200-million-investment/
- Clay, Loopio funding ($261M total): https://www.clay.com/dossier/loopio-funding
- GetLatka, Loopio ($34.2M est ARR, ~1,000 customers): https://getlatka.com/companies/loopio.com
- CB Insights, Responsive/RFPIO funding ($27.1M over 4 rounds): https://www.cbinsights.com/company/rfpio/financials
- GetLatka, Responsive ($67.1M est ARR): https://getlatka.com/companies/Responsive
- Responsive 2026 business update ($1T managed opportunities): https://www.responsive.io/news/2026-business-update
- Evalyze pitch deck analysis: https://www.evalyze.ai/pitch-deck-analysis
- Evalyze pricing (Free / $20 monthly / $10 annual / Managed): https://www.evalyze.ai/pricing
- PitchGrade (Free, Pro $7.99/mo, Agent $49.99/mo): https://ai.g2.com/marketplace/tools/pitchgrade and https://pitchgrade.com/
- PitchBob pricing ($29.90-$99.90): https://pitchbob.io/ and https://skywork.ai/skypage/en/PitchBob-Review-How-I-Used-AI-to-Create-an-Enterprise-SaaS-Sales-Slidedeck/1975014725831553024
- DeepRFP (Pro $75 / Elite $125 per user/mo): https://autorfp.ai/blog/best-rfp-software and https://deeprfp.com/
- AutoRFP pricing (Scale $899/mo, Accelerate $1,299/mo): https://autorfp.ai/blog/best-rfp-software
- SeedAngels free pitch deck analyzer (34 criteria): https://seedangels.ai/pitch-deck-analyzer
- OpenVC free AI pitch deck review: https://www.openvc.app/blog/pitch-deck-reviews-now-free-for-everyone
- Slidebean free AI pitch deck reviewer: https://slidebean.com/pitch-deck-reviewer
---
## 6. Explicit Assumptions (recap)
1. US-only ICP; international excluded.
2. Segment A = 5,049 seed/pre-seed deals (NVCA 2025) times a 4x pitching-funnel multiplier = ~20,000 founders/year. The 4x multiplier is an assumption, not a sourced figure.
3. Segment B = 50,000 proposal/consulting professionals, anchored on APMP (~10.5K members) and IBISWorld (~1M consulting firms), triangulated against a software-paying pool in the tens of thousands. Widest-error-bar segment.
4. Segment C = 15,000 investors/advisors, anchored on 3,417 US VC firms and ~8,500 individual VCs plus angels.
5. Attach rate 1.0%-3.0% over a ~3-year horizon (base 1.5%).
6. Blended ARPU ~$120/month, driven by Pro ($119/mo) as the median paid tier.
7. No ARR/revenue figure for Preuve, Evalyze, PitchGrade, PitchBob, or DeepRFP is public; where a traction signal exists (e.g., Preuve's 6,500+ ideas, PitchGrade's 10,000+ founders) it is a marketing claim, not audited data.
+42
View File
@@ -0,0 +1,42 @@
# VerdictTank Vendor Data-Retention and Training Facts
Prepared 2026-08-18. Internal reference behind the customer-facing `data-handling.html`
disclosure. Sources are the official docs/terms pages cited in each row. This file is the
legal record for Condition 4 of the v4.0 dogfood: "Execute zero data retention agreements
with all nine upstream vendors, or remove vendors without such agreements."
## Per-vendor fact table (standard v4.0 roster)
| Provider (seat model) | Trains on API input/output by default? | Default retention | ZDR / no-log option | Source |
|---|---|---|---|---|
| OpenAI (gpt-5.2, Execution-Feasibility) | No. API data not used to train since Mar 2023 unless opted in | Abuse logs up to 30 days | ZDR + Modified Abuse Monitoring, eligibility-gated (contact sales) | https://developers.openai.com/api/docs/guides/your-data |
| Google (gemini-pro-latest, Market-Reality) | No on paid tier; free tier may use content | "Limited period" (unpublished); Search/Maps grounding 30 days | ZDR per-project approval; feature restrictions | https://ai.google.dev/gemini-api/terms ; https://ai.google.dev/gemini-api/docs/zdr |
| Anthropic (claude-haiku-4-5, Risk/Ethics) | No. Never trains without express permission | Not retained by default; "Covered Models" (Fable 5, Mythos 5) force 30 days | ZDR per org via sales; HIPAA BAA separate | https://platform.claude.com/docs/en/manage-claude/api-and-data-retention |
| xAI (grok-4.3, Research) | No. "never trains without explicit permission" | 30 days encrypted-at-rest audit, then auto-delete | Self-serve team-level ZDR toggle in Console | https://docs.x.ai/developers/faq/security |
| Perplexity (sonar, Live Grounding) | No. "do not use customer data to train" | Zero retention (billing metadata only) | ZDR is the default, not an add-on | https://docs.perplexity.ai/docs/resources/privacy-security |
| Zhipu / z.ai (glm-5.2, Financial Integrity) | No. "will not use End User Content to develop or improve" | API content "not saved on our servers" (DPA) | Effectively zero-storage by default | https://docs.z.ai/legal-agreement/terms-of-use |
| Alibaba / Model Studio (qwen3.7-plus, Legal/Compliance) | No. "will never use your data for model training" | Not published | No ZDR tier published; no-training is default | https://www.alibabacloud.com/help/en/model-studio/privacy-notice |
| DeepSeek (deepseek-v4-pro, Primary Reviewer) | Not excluded. No "will not train" clause; privacy policy permits training/improvement use | Not published; data stored in PRC | None published | https://cdn.deepseek.com/policies/en-US/deepseek-open-platform-terms-of-service.html |
| Mistral (mistral-large-latest, Team/Founder + Synthesis Gate) | No. API pay-as-you-go data not used to train; no-train is default | Not published; EU processing | No-train is default on API (no opt-in needed); no self-serve ZDR published | https://legal.mistral.ai/terms/commercial-terms-of-service |
## Posture summary
- Eight providers commit no-training-on-API by default: OpenAI, Google (paid), Anthropic,
xAI, Perplexity, z.ai, Alibaba, Mistral.
- One provider fails the no-training standard:
- DeepSeek offers no no-training guarantee and stores data in mainland China. It seats the
Primary Reviewer (the anchor for revenue arithmetic).
- Moonshot (Kimi) was dropped 2026-08-18 (trained on API submissions by default, no opt-out);
its two seats (Team/Founder + Synthesis Gate) are now Mistral. See
`roster-sovereignty-parked.md` execution log.
- Retention among the eight: zero (Perplexity, z.ai), 30 days (OpenAI, xAI), default-none
with 30d only for "Covered Models" (Anthropic), unpublished/limited (Google, Alibaba, Mistral).
## Condition 4 decision point
Moonshot (Kimi) is removed (2026-08-18) — it was the harder case, holding two seats including
the synthesis gate, with the least favorable published terms of the nine. Remaining: DeepSeek
only. To fully clear the blocking condition, VerdictTank must either (a) execute a
zero-data-retention / no-training agreement with DeepSeek (no self-serve path published), or
(b) replace the Primary Reviewer seat. DeepSeek is currently HELD as the single disclosed
exception ("wait on deepseek"); see `roster-sovereignty-parked.md`.
+144
View File
@@ -0,0 +1,144 @@
#!/usr/bin/env python3
"""Verify VerdictTank index-v5.1.html against v5.1 rules."""
import re, sys
from html.parser import HTMLParser
F = "/root/projects/verdicttank/index-v5.1.html"
html = open(F, encoding="utf-8").read()
fail = []
print("=== FORBIDDEN TOKENS (all must be 0) ===")
forbidden = ["\u2014", "GPT-5.6", "unlimited", "Unlimited", "UNLIMITED",
"11 seats", "11-seat", "11 models", "11-judge", "9 vendors",
"9-vendor", "eleven", "nine vendors", "nine-vendor",
"nine rostered", "Three tiers", "$299"]
for pat in forbidden:
n = html.count(pat)
print(f" {pat!r:22} {n}")
if n:
fail.append(f"forbidden token present: {pat!r} x{n}")
# $79 as a standalone price (not $799)
n79 = len(re.findall(r"\$79(?!\d)", html))
print(f" {'$79 (standalone)':22} {n79}")
if n79:
fail.append(f"stale $79 price x{n79}")
print("\n=== REQUIRED TOKENS (all must be >0) ===")
required = ["6-seat", "6 seats", "5 vendors", "4-seat reduced", "$5.20",
"$249", "$799", "$1,499", "$207", "$666", "$1,249",
"$15/review", "$10/review", "Most popular", "Pre-Review Coach",
"v5.1", "verdicttank.com", "Moonshot AI", "Legal + Compliance",
"Financial + Market", "Synthesis + Gate", "Cross-Check"]
for pat in required:
n = html.count(pat)
print(f" {pat!r:22} {n}")
if not n:
fail.append(f"required token missing: {pat!r}")
print("\n=== COGS ARITHMETIC ===")
c = 5.20
for name, q, rev, claimed_cogs, claimed_m in [
("Pro", 5, 249, 26, 90), ("Enterprise", 30, 799, 156, 80),
("White-Label", 50, 1499, 260, 83)]:
cogs = q * c
m = (rev - cogs) / rev * 100
ok = abs(cogs - claimed_cogs) < 0.01 and abs(round(m) - claimed_m) <= 1
print(f" {name:12} {q:2} x ${c} = ${cogs:7.2f} on ${rev:5} -> {m:.1f}% "
f"(page claims ${claimed_cogs}/{claimed_m}%) {'OK' if ok else 'MISMATCH'}")
if not ok:
fail.append(f"COGS mismatch for {name}")
print(f" overage $15 / ${c} = {15/c:.2f}x COGS (page: roughly 3x)")
print(f" overage $10 / ${c} = {10/c:.2f}x COGS (page: roughly 2x)")
for base, ann in [(249, 207), (799, 666), (1499, 1249)]:
d = (1 - ann / base) * 100
ok = abs(d - 16.7) < 1.0
print(f" annual {base} -> {ann} = {d:.1f}% off {'OK' if ok else 'CHECK'}")
if not ok:
fail.append(f"annual discount off for {base}->{ann}: {d:.1f}%")
print(f" AutogenAI $30K / Ent $9,588/yr = {30000/(799*12):.2f}x (page: 3.1x)")
print(f" AutogenAI $30K / WL $17,988/yr = {30000/(1499*12):.2f}x (page: 1.7x)")
print("\n=== ANTHROPIC CONCENTRATION ===")
roster = re.search(r"<h3>The roster</h3>.*?</table>", html, re.S).group(0)
rows = re.findall(r"<tr><td>.*?</tr>", roster, re.S)
vendors = [re.findall(r"<td>([^<]*)</td>", r) for r in rows]
seats = [(v[1], v[2], v[3], v[4]) for v in vendors if len(v) >= 5]
print(f" total seats: {len(seats)}")
for s in seats:
print(f" {s[0]:20} {s[1]:18} {s[2]:12} scores={s[3]}")
vs = {}
for s in seats:
vs[s[2]] = vs.get(s[2], 0) + 1
print(f" distinct vendors: {len(vs)} -> {vs}")
anth = vs.get("Anthropic", 0)
print(f" Anthropic: {anth}/{len(seats)} = {anth/len(seats)*100:.0f}%")
if len(seats) != 6:
fail.append(f"roster has {len(seats)} seats, expected 6")
if len(vs) != 5:
fail.append(f"roster has {len(vs)} vendors, expected 5")
if anth != 2:
fail.append(f"Anthropic holds {anth} seats, expected 2")
print("\n=== HTML STRUCTURE ===")
VOID = {"br", "img", "meta", "link", "hr", "input", "area", "base", "col",
"embed", "source", "track", "wbr"}
class P(HTMLParser):
def __init__(self):
super().__init__(convert_charrefs=True)
self.st, self.err = [], []
def handle_starttag(self, t, a):
if t not in VOID:
self.st.append((t, self.getpos()))
def handle_endtag(self, t):
if t in VOID:
return
if not self.st:
self.err.append(f"stray </{t}> at {self.getpos()}")
return
if self.st[-1][0] != t:
self.err.append(f"mismatch </{t}> at {self.getpos()}, "
f"open <{self.st[-1][0]}> from {self.st[-1][1]}")
else:
self.st.pop()
p = P()
p.feed(html)
print(f" unclosed tags: {p.st or 'none'}")
print(f" structure errors: {p.err or 'none'}")
if p.st or p.err:
fail.append("HTML structure problems")
print("\n=== PRICING LAYOUT ===")
cards = len(re.findall(r'class="price-card', html))
print(f" price-card divs: {cards} (expected 4)")
if cards != 4:
fail.append(f"{cards} price cards, expected 4")
grid4 = "grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0" in html
print(f" .pricing-grid is 4-col: {grid4}")
if not grid4:
fail.append("pricing-grid not 4 columns")
ribbon = html.count('<div class="ribbon">Most popular</div>')
print(f" 'Most popular' ribbon: {ribbon} (expected 1)")
if ribbon != 1:
fail.append("ribbon count wrong")
# comparison table row labels
print("\n=== COMPARISON TABLE ROWS ===")
for label in ["Price", "Reviews per month", "Overage", "Panel", "Fix-Its",
"Re-score loop", "Pre-Review Coach", "White-label", "Workspaces",
"Corpus isolation", "Judge pool config", "Reseller model",
"Annual billing (16.7% off)"]:
present = f"<strong>{label}</strong>" in html
print(f" {label:30} {'OK' if present else 'MISSING'}")
if not present:
fail.append(f"comparison row missing: {label}")
print(f"\n file size: {len(html)} bytes")
print("\n" + "=" * 50)
if fail:
print(f"FAILED ({len(fail)}):")
for f_ in fail:
print(f" - {f_}")
sys.exit(1)
print("ALL CHECKS PASSED")