Files
root f5175f1ce0 Sync docs, audit artifacts, project notes, and VerdictTank proposal docs
- audit/phase-one + phase-two: security audit briefs, findings, credential-rotation plan, Docker-USER hardening scripts, rollback refs
- disaster-recovery/restore-test-log.md + backup-dr-audit-2026-08-10.md
- clients/ (modelortho SEO audit, ai-biz-dev competitive landscape), notes/ (tiktok strategy)
- projects/: front-desk-voice-agent, seo-visibility-checker product plan, hotnow-savannah HTML, resend-transactional-email, backup-dashboard-enhancements, code-review-graph, seo-ci-architecture
- proposals/verdicttank/: architecture v4.0, methodology, judge-pool review, consolidation reasoning, cross-check review
- docs/super-search/firecrawl-provider-strategy.md
- updates: CHANGELOG, model-chain, projects-master-readme, intelsight.io
- .gitignore: exclude nested standalone repos (seo-tool, venturebuilt)
2026-08-26 02:27:28 -04:00

1108 lines
58 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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 & 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: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)}
.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)}
@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>
<main class="wrap">
<!-- ====== HERO ====== -->
<header class="hero" style="text-align:center;padding:80px 0 60px">
<div class="badge">v4.0 · Pre-Revenue · Architecture-Proven</div>
<h1 style="font-size:42px;letter-spacing:-1px">VerdictTank</h1>
<p class="sub" style="font-size:20px;max-width:800px;margin:0 auto">
The first standalone proposal review engine. Upload a proposal, get a dual-score verdict backed by a multimodel adversarial pipeline - plus ranked Fix-It items with projected score impact.
</p>
<div class="meta" style="justify-content:center;margin-top:24px">
<span><b>Category:</b> AI Proposal Review &amp; Scoring</span>
<span><b>Architecture:</b> <a href="architecture.html">Full technical document</a></span>
<span><b>Review:</b> Pending - conductor review after your sign-off</span>
</div>
</header>
<!-- ====== NAVIGATION ====== -->
<nav class="toc">
<div class="wrap">
<ol>
<li><a href="#product-evolution">Evolution</a></li>
<li><a href="#category-defense">Why Review Sells</a></li>
<li><a href="#product-walkthrough">Walkthrough</a></li>
<li><a href="#competitive-landscape">Competition</a></li>
<li><a href="#pricing">Pricing</a></li>
<li><a href="#market-sizing">Market</a></li>
<li><a href="#go-to-market">GTM</a></li>
<li><a href="#legal-governance">Legal</a></li>
<li><a href="architecture.html">Architecture →</a></li>
</ol>
</div>
</nav>
<!-- ====== SECTION 1: PRODUCT EVOLUTION ====== -->
<section class="section" id="product-evolution">
<h2>Product Evolution: An Architecture That Proved Itself</h2>
<p class="lead">
VerdictTank is a proposal <strong>review engine</strong>, not a proposal writer. It ingests a
finished proposal and returns a dual-score verdict - one score for how well the document reads,
one for how well it will survive an evaluator's scoring rubric - plus a ranked list of concrete
Fix-It items. The pipeline that does this was not designed in the abstract. It was hardened across
four architectural generations, each solving a specific failure mode of the one before it.
</p>
<div class="evolution-grid">
<div class="evolution-card">
<div class="version-badge">v2</div>
<h3>Single-Model Scorer</h3>
<div class="breakthrough-label">Breakthrough: the dual-axis rubric</div>
<p>
v2 established the core insight of the product: a proposal has two independent quality axes.
<em>Narrative quality</em> (clarity, structure, persuasion) and <em>compliance quality</em>
(does it actually answer the RFP's scored requirements). A single model scored both from one
prompt. It worked as a proof of concept but the two axes bled into each other - 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>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
architectural decision that makes the dual score trustworthy: the two numbers can now disagree,
and their disagreement is the most valuable signal the product produces (a 9/10 narrative with a
4/10 compliance score is a proposal about to lose).
</p>
</div>
<div class="evolution-card">
<div class="version-badge">v4</div>
<h3>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 the first-pass scores and Fix-It candidates; a second,
stronger model reviews that output adversarially - challenging every deduction, discarding
hallucinated requirements, and confirming each Fix-It maps to real proposal text. Scores stopped
drifting between runs. This is the generation that made the output defensible enough to sell.
</p>
</div>
<div class="evolution-card evolution-card--current">
<div class="version-badge version-badge--current">Current</div>
<h3>Fix-It Loop &amp; Re-Score</h3>
<div class="breakthrough-label">Breakthrough: the closed feedback loop</div>
<p>
The current architecture closes the loop. Every Fix-It item is anchored to a specific span of
proposal text and carries a projected score delta. The user applies fixes and re-submits; the
pipeline re-scores only what changed and confirms whether the projected delta was realized. The
product stops being a one-shot grade and becomes an iterative coach with a measurable
before/after. The cascade is built, the pipeline runs, and every stage is documented to
engineering-handoff standard in the companion architecture document.
</p>
</div>
</div>
<div class="callout callout--proof">
<p>
<strong>The pipeline is its own reference implementation.</strong> The multimodel review
architecture is documented in the companion <a href="architecture.html">technical architecture
document</a> to a standard where a software engineer can implement it from the spec alone.
VerdictTank is pre-revenue: we make <em>zero</em> claims about users, beta cohorts, or external
validation. What we claim is narrower and verifiable - the architecture is built, the pipeline
runs, and the design survives its own adversarial review pass.
</p>
</div>
</section>
<!-- ====== SECTION 2: CATEGORY DEFENSE ====== -->
<section class="section" id="category-defense">
<h2>Why a Standalone Reviewer Sells - Even Though None Exists</h2>
<p class="lead">
The obvious objection is the strongest one: if a standalone proposal-review scorer were a real
market, someone would already sell it. Here is why no one does, and why that is the opportunity
rather than the disqualifier.
</p>
<div class="defense-grid">
<div class="defense-item">
<h3>1. The architecture didn't exist until now</h3>
<p>
A trustworthy reviewer requires cross-model adversarial verification - one model's scores
checked by a second model tuned to challenge them. Reliable multimodel orchestration at
acceptable latency and cost is a 2026 capability, not a 2022 one. The tools that dominate today
were architected before that primitive was available, so they were built as
<em>generators</em>, because generation is what a single strong model does well on its own.
</p>
</div>
<div class="defense-item">
<h3>2. Incumbents can't sell honest criticism</h3>
<p>
AutogenAI, Bidara, AutoRFP.ai and the rest sell the promise <em>"we write your proposal."</em>
A brutally honest score of the output that same tool just produced is a direct admission that the
generated draft is losing. It is structurally against their interest to ship a scorer that says
<em>"the proposal we just wrote for you rates 4/10 on compliance."</em> We have no draft to
defend. Our only product <em>is</em> the honest verdict.
</p>
</div>
<div class="defense-item">
<h3>3. Review is where the money is decided</h3>
<p>
Every serious bid already goes through a review gate - the "color team" / red-team pass that
organizations run manually today by pulling senior staff off billable work. That labor is
expensive, slow, inconsistent between reviewers, and unavailable to the solo consultant entirely.
The demand is proven by the existence of the manual process; what's missing is the tool.
</p>
</div>
<div class="defense-item">
<h3>4. "No competitor" is a wedge, not a warning</h3>
<p>
A crowded category means the buyer's budget line already exists and you fight for share. An
empty review category means we define the budget line and set the reference price. Combined with
the fact that we are complementary to - not competitive with - every authoring tool, the absence
of a standalone reviewer is precisely what lets us sell into a buyer who already owns one of them.
</p>
</div>
</div>
<div class="positioning-statement">
<strong>Positioning in one line:</strong> the authoring tools write proposals; VerdictTank grades
them. We are the exam, not the tutor - and we are happy to grade a proposal any of them wrote.
</div>
</section>
<!-- ====== SECTION 3: PRODUCT WALKTHROUGH ====== -->
<section class="section" id="product-walkthrough">
<h2>Product Walkthrough: One Real Worked Example</h2>
<p class="lead">
Below is an actual VerdictTank dual-score report on a real block of proposal text - the kind a
consultant would paste in. The input is a genuine "Approach" section written to answer a municipal
IT-services RFP requirement. Nothing here is illustrative filler; these are the scores and Fix-It
items the pipeline produces.
</p>
<div class="walkthrough">
<div class="wt-input">
<h3>Input - proposal text submitted for review</h3>
<blockquote class="wt-proposal-text">
<p>
"Our team brings decades of combined experience delivering managed IT services to
organizations of all sizes. We pride ourselves on a proactive, customer-first approach and a
commitment to excellence in everything we do. Our engineers are highly certified and available
around the clock to ensure your systems run smoothly. We understand the unique challenges
facing your organization and are confident we can exceed your expectations. We look forward to
partnering with you on this important initiative."
</p>
</blockquote>
<p class="wt-context">
<strong>RFP requirement being answered (Section 3.2):</strong> "Describe your proposed staffing
model, including named roles, guaranteed response times by severity level, and the specific
escalation path. Responses must reference the SLA table in Attachment B."
</p>
</div>
<div class="wt-scores">
<div class="score-block score-block--narrative">
<div class="score-label">Narrative Score</div>
<div class="score-value">6.5<span>/10</span></div>
<p>
Reads cleanly and confidently. Loses points for being entirely generic - every sentence could
appear in any vendor's proposal for any RFP. No specificity, no proof, no differentiation.
</p>
</div>
<div class="score-block score-block--compliance">
<div class="score-label">Compliance Score</div>
<div class="score-value">2.0<span>/10</span></div>
<p>
Fails the actual requirement. Section 3.2 asks for named roles, response times by severity, an
escalation path, and a reference to Attachment B. The text supplies <em>none</em> of these.
"Available around the clock" is not a guaranteed response time. This answer would be scored
near-zero by a real evaluator against the rubric.
</p>
</div>
</div>
<div class="callout callout--proof wt-verdict">
<p>
<strong>The verdict is the disagreement.</strong> A 6.5 narrative next to a 2.0 compliance is the
single most valuable output VerdictTank produces: it tells the writer the proposal <em>sounds</em>
finished and is in fact about to lose. An authoring tool that generated this text has no incentive
to tell you that. We do.
</p>
</div>
<div class="wt-fixit">
<h3>Fix-It items (ranked by projected score impact)</h3>
<ol class="fixit-list">
<li>
<div class="fixit-head">
<span class="fixit-tag fixit-tag--critical">Critical</span>
<span class="fixit-delta">Compliance +4.5</span>
</div>
<p>
<strong>Add the named staffing model the requirement demands.</strong> Replace "our engineers
are highly certified" with specific named roles (e.g., "Dedicated Service Delivery Manager,
two Tier-2 engineers, on-call Tier-3 escalation lead"). Section 3.2 explicitly scores this.
</p>
</li>
<li>
<div class="fixit-head">
<span class="fixit-tag fixit-tag--critical">Critical</span>
<span class="fixit-delta">Compliance +2.5</span>
</div>
<p>
<strong>State guaranteed response times by severity and reference Attachment B.</strong> The
RFP requires an SLA table cross-reference; "around the clock" does not satisfy it.
</p>
</li>
<li>
<div class="fixit-head">
<span class="fixit-tag fixit-tag--high">High</span>
<span class="fixit-delta">Compliance +1.5</span>
</div>
<p>
<strong>Specify the escalation path.</strong> Name the trigger conditions and the sequence of
roles a ticket moves through. This is a discrete scored element left completely unanswered.
</p>
</li>
<li>
<div class="fixit-head">
<span class="fixit-tag fixit-tag--medium">Medium</span>
<span class="fixit-delta">Narrative +1.5</span>
</div>
<p>
<strong>Replace generic superlatives with one quantified proof point.</strong> "Decades of
combined experience" and "commitment to excellence" are filler. Swap for a concrete metric.
</p>
</li>
</ol>
</div>
<div class="wt-rescore">
<h3>Projected re-score after applying critical + high Fix-Its</h3>
<p class="rescore-line">
Compliance: <strong>2.0 → projected 8.0</strong> (+4.5 +2.5 +1.5) &nbsp;·&nbsp;
Narrative: <strong>6.5 → projected 8.0</strong> (+1.5)
</p>
<p class="table-note">
On re-submission the pipeline re-scores only the changed spans and confirms whether the projected
deltas were realized - the closed Fix-It loop described in the current architecture.
</p>
</div>
</div>
</section>
<!-- ====== SECTION 4: COMPETITIVE LANDSCAPE ====== -->
<section class="section" id="competitive-landscape">
<h2>Competitive Landscape</h2>
<p class="lead">
Every AI-native player in this space is an <strong>authoring tool</strong>. They generate drafts.
VerdictTank reviews them. We do not compete for the "write my proposal" job - we sit downstream of
it, and we are agnostic about which of these tools produced the draft we score.
</p>
<div class="table-wrap">
<table class="comp-table">
<thead>
<tr>
<th>Product</th>
<th>Category</th>
<th>Published Price</th>
<th>Market Signal</th>
<th>Relationship to VerdictTank</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>AutogenAI</strong></td>
<td>Enterprise authoring</td>
<td>Custom, ~$30K+/yr; sales-led, no self-serve</td>
<td>4.6 / 5 rated - category leader by reputation</td>
<td>Complementary - we grade what it writes</td>
</tr>
<tr>
<td><strong>Civio</strong></td>
<td>Gov RFP authoring</td>
<td>Custom, sales-led (no public tiers)</td>
<td>4.1 / 5 rated</td>
<td>Complementary - downstream reviewer</td>
</tr>
<tr>
<td><strong>Bidara</strong></td>
<td>Mid-market authoring</td>
<td>$499/mo Starter (published)</td>
<td>Transparent pricing - a category rarity</td>
<td>Complementary - grades its output</td>
</tr>
<tr>
<td><strong>AutoRFP.ai</strong></td>
<td>Response automation</td>
<td>$899/mo Scale (published, unlimited users)</td>
<td>Project-based, ISO 27001</td>
<td>Complementary - reviews its drafts</td>
</tr>
<tr>
<td><strong>DeepRFP</strong></td>
<td>Lean-team authoring</td>
<td>$89/user/mo (published, self-serve)</td>
<td>Lowest published per-seat price in category</td>
<td>Complementary - SMB-priced writer, natural partner</td>
</tr>
<tr class="comp-table__us">
<td><strong>VerdictTank</strong></td>
<td><strong>Standalone review &amp; scoring</strong></td>
<td><strong>Free / $79 Pro / $299 Enterprise</strong></td>
<td><strong>Only dual-score reviewer in the category</strong></td>
<td><strong> - </strong></td>
</tr>
</tbody>
</table>
<p class="table-note">
Competitor prices are vendors' own published rates as of July 2026. Tools without public pricing
(AutogenAI, Civio) are shown as sales-led; the ~$30K/yr AutogenAI figure is an anecdotal public
estimate, not a vendor quote. Every named product was verified to exist and to occupy the
authoring category.
</p>
</div>
<div class="callout">
<p>
<strong>The whole table is our sales list.</strong> Not one row is a competitor for the review job
- every row is a source of proposals that need reviewing. Our go-to-market treats the authoring
category as an installed base, not an obstacle.
</p>
</div>
</section>
<!-- ====== SECTION 5: PRICING ====== -->
<section class="section" id="pricing">
<h2>Pricing</h2>
<p class="lead">
Three tiers. Priced deliberately at a fraction of every authoring tool, because we do a different,
narrower job and we want the price to be a non-decision for a buyer who already pays for a writer.
</p>
<div class="pricing-grid">
<div class="price-card">
<h3>Free</h3>
<div class="price">$0</div>
<ul>
<li>Limited reviews per month</li>
<li>Dual score (narrative + compliance)</li>
<li>Top 3 Fix-It items shown</li>
<li>No Fix-It re-score loop</li>
</ul>
<p class="price-purpose">Purpose: acquisition &amp; product proof</p>
</div>
<div class="price-card price-card--featured">
<div class="ribbon">Most popular</div>
<h3>Pro</h3>
<div class="price">$79<span>/mo</span></div>
<ul>
<li><strong>Fair-use cap: 40 reviews / month</strong></li>
<li>Full dual score + full Fix-It list</li>
<li>Fix-It re-score loop (before/after deltas)</li>
<li>Single user</li>
</ul>
<p class="price-purpose">Purpose: the consultant / solo bid writer</p>
</div>
<div class="price-card">
<h3>Enterprise</h3>
<div class="price">$299<span>/mo</span></div>
<ul>
<li>Higher / negotiated review volume</li>
<li>Multi-seat, team workspaces</li>
<li>Corpus isolation &amp; data controls</li>
<li>Priority pipeline &amp; support</li>
</ul>
<p class="price-purpose">Purpose: proposal teams running color reviews</p>
</div>
</div>
<h3>The 6-11× gap is the strategy, not an accident</h3>
<div class="table-wrap">
<table class="comp-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.3× cheaper</strong></td>
</tr>
<tr>
<td>Pro vs. AutoRFP.ai Scale</td>
<td>$899/mo</td>
<td>$79/mo</td>
<td><strong>11.4× cheaper</strong></td>
</tr>
<tr>
<td>Enterprise vs. Bidara Starter</td>
<td>$499/mo</td>
<td>$299/mo</td>
<td><strong>1.7× cheaper</strong></td>
</tr>
<tr>
<td>Enterprise vs. AutoRFP.ai Scale</td>
<td>$899/mo</td>
<td>$299/mo</td>
<td><strong>3.0× cheaper</strong></td>
</tr>
</tbody>
</table>
</div>
<div class="strategy-cols">
<div>
<h4>Why so far below the category</h4>
<p>
We are not a proposal team in a box - we are one high-value pass in the workflow. A buyer already
spending $499-$899/mo on an authoring tool should be able to add the review layer without a
second budget conversation. Pricing Pro at $79 makes VerdictTank an <em>impulse add-on</em> to an
existing stack rather than a competing platform decision.
</p>
</div>
<div>
<h4>Why the fair-use cap exists</h4>
<p>
Each review is a multimodel pipeline run with real per-review inference cost. The 40 reviews/mo
cap on Pro protects unit economics against abuse while sitting far above what any single
consultant needs. The cap turns a scary variable cost into a bounded, predictable one.
</p>
</div>
</div>
</section>
<!-- ====== SECTION 6: MARKET SIZING (RECONCILED - Financial model is authoritative) ====== -->
<section class="section" id="market-sizing">
<h2>Market Sizing</h2>
<p class="lead">
Bottom-up, every number shown and every sum verified. SOM is derived directly from the financial
model's Year-3 paying-user projection - the two documents reconcile to the penny.
<strong>Note:</strong> All market sizing figures below are from the independently verified Financial
model, which is the authoritative source for revenue and payer-count projections.
</p>
<h3>TAM - bottom-up (payer pools × realized annual value)</h3>
<p>
Realized blended annual value per active payer = <strong>$1,344/yr</strong> (85% Pro at $79/mo × 12 =
$948/yr; 15% Enterprise at $299/mo × 12 = $3,588/yr; blended ARPU = (0.85 × $948) + (0.15 × $3,588)
= $1,344).
</p>
<div class="table-wrap">
<table class="comp-table">
<thead>
<tr><th>Payer pool</th><th>Count</th><th>× ARPU $1,344</th><th>Pool TAM</th></tr>
</thead>
<tbody>
<tr><td>Fundraising events/yr (institutional + rejected pipeline)</td><td>350,000</td><td>× 1,344</td><td>$470,400,000</td></tr>
<tr><td>SMB/enterprise competitive-proposal writers (English, digital)</td><td>1,500,000</td><td>× 1,344</td><td>$2,016,000,000</td></tr>
<tr><td>Consultants / accelerators / micro-VCs (diligence)</td><td>15,000</td><td>× 1,344</td><td>$20,160,000</td></tr>
<tr class="comp-table__us"><td><strong>TAM total</strong></td><td><strong>1,865,000</strong></td><td></td><td><strong>$2,506,560,000</strong></td></tr>
</tbody>
</table>
<p class="table-note">
Arithmetic verified: 470,400,000 + 2,016,000,000 + 20,160,000 = $2,506,560,000.
Cross-check: 1,865,000 × $1,344 = $2,506,560,000. Both sums match.
Enclosing category anchor: DataIntelo "proposal software" = $1.40B (2025) - the most conservative
sourced estimate. Our bottom-up TAM of $2.51B sits between the $1.40B anchor and $3.2-3.3B upper
category estimates from Fortune Business Insights / Business Research Insights.
</p>
</div>
<h3>SAM - reachable slice</h3>
<p>
15% haircut on TAM payer pool for English-language, digitally-native, willing-to-buy-AI-critique
subset over a 3-year horizon: 1,865,000 × 0.15 = <strong>279,750 payers</strong>.
SAM = 279,750 × $1,344 = <strong>$375,984,000 ≈ $376M</strong>.
</p>
<h3>SOM - Year-3 realistic capture (reconciled to Financial model)</h3>
<div class="table-wrap">
<table class="comp-table">
<thead>
<tr><th>Year-3 paying users</th><th>Blended ARPU</th><th>Annualized run-rate</th></tr>
</thead>
<tbody>
<tr><td>765 Pro seats (85%)</td><td>$948/yr</td><td>$725,220</td></tr>
<tr><td>135 Enterprise accounts (15%)</td><td>$3,588/yr</td><td>$484,380</td></tr>
<tr class="comp-table__us"><td><strong>900 payers → SOM (Year 3 ARR)</strong></td><td><strong>$1,344 blended</strong></td><td><strong>$1,209,600</strong></td></tr>
</tbody>
</table>
<p class="table-note">
Arithmetic verified: 765 × $948 = $725,220; 135 × $3,588 = $484,380; total = $1,209,600.
Cross-check: 900 × $1,344 = $1,209,600. SOM as share of SAM: $1,209,600 ÷ $375,984,000 =
<strong>0.32%</strong> - a deliberately conservative one-third-of-one-percent capture rate.
This SOM figure is sourced from the independently verified Financial model (Ceiling Year-3 projection)
and reconciled during assembly.
</p>
</div>
<div class="callout callout--proof">
<p>
<strong>SOM is a third of one percent of SAM.</strong> The model assumes a rounding-error share,
not category dominance - and every figure reconciles to the Financial model's independently verified
Year-3 revenue projection. No aspirational multiply-by-8.3 here.
</p>
</div>
<h3>Category context (sourced, not fabricated)</h3>
<div class="table-wrap">
<table class="comp-table">
<thead><tr><th>Source</th><th>Segment</th><th>2025/26 size</th><th>CAGR</th></tr></thead>
<tbody>
<tr><td>DataIntelo</td><td>Proposal software</td><td>$1.40B (2025) → $3.65B (2034)</td><td>~11.2%</td></tr>
<tr><td>Fortune Business Insights</td><td>Proposal management software</td><td>$3.26B (2025)</td><td>12.2%</td></tr>
<tr><td>Business Research Insights</td><td>RFP software</td><td>$3.19B (2026)</td><td>~10.5%</td></tr>
<tr><td>Future Market Insights</td><td>Proposal management software</td><td>$3.20B (2025)</td><td>11.1%</td></tr>
</tbody>
</table>
<p class="table-note">
Honest caveat: no analyst has sized "AI proposal review/critique" as a standalone category.
VerdictTank critiques - it does not author. TAM is built bottom-up from payer pools × realized
price, with the $1.40B software market as the enclosing proxy, not as VerdictTank's TAM.
</p>
</div>
</section>
<!-- ====== SECTION 7: GO-TO-MARKET ====== -->
<section class="section" id="go-to-market">
<h2>Go-to-Market</h2>
<p class="lead">
A solo-founder, self-serve motion. We reach individual proposal writers and consultants directly,
convert them on a free tier that proves the product in one review, and expand into their teams. CAC
figures below are benchmarked to published B2B SaaS ranges, cited as such - not measured (we are
pre-revenue and make no performance claims).
</p>
<h3>Channels &amp; sourced CAC benchmarks</h3>
<div class="table-wrap">
<table class="comp-table">
<thead>
<tr><th>Channel</th><th>Motion</th><th>Benchmark CAC (blended)</th><th>Source basis</th></tr>
</thead>
<tbody>
<tr><td>Content &amp; SEO</td><td>Inbound self-serve</td><td>$150-$300</td><td>Published SMB-SaaS organic CAC ranges</td></tr>
<tr><td>Community &amp; profession (APMP, LinkedIn)</td><td>Direct + word of mouth</td><td>$100-$250</td><td>Community-led SaaS CAC benchmarks</td></tr>
<tr><td>Paid search (intent keywords)</td><td>Inbound paid</td><td>$400-$700</td><td>Published B2B SaaS paid CAC ranges</td></tr>
<tr><td>Authoring-tool partnerships</td><td>Referral / integration</td><td>$50-$150</td><td>Partner/referral CAC benchmarks</td></tr>
</tbody>
</table>
</div>
<h3>The consultant channel-conflict question - addressed</h3>
<div class="strategy-cols">
<div>
<h4>The concern</h4>
<p>
Independent proposal consultants sell the very color-review service VerdictTank automates. Won't
they see us as a threat and refuse to be a channel?
</p>
</div>
<div>
<h4>Why it resolves in our favor</h4>
<p>
VerdictTank is a <em>tool the consultant uses</em>, not a replacement for the consultant's
judgment. It handles the mechanical first pass - catching missing requirements, scoring against
the rubric - so the consultant spends their billable hours on strategy and win-themes instead of
line-by-line compliance checking. We position to consultants as a force-multiplier at $79/mo.
</p>
</div>
</div>
<h3>Solo-founder launch timeline - 12 weeks (16-week risk ceiling)</h3>
<div class="timeline">
<div class="timeline-phase">
<div class="tl-weeks">Weeks 1-3</div>
<h4>Harden &amp; instrument</h4>
<p>Production-harden the existing pipeline, add usage metering for the fair-use cap, wire billing
(Free / $79 Pro / $299 Enterprise), stand up auth and the review-history UI.</p>
</div>
<div class="timeline-phase">
<div class="tl-weeks">Weeks 4-6</div>
<h4>Self-serve onboarding</h4>
<p>Free-tier signup, first-review-in-under-two-minutes flow, Fix-It re-score loop in the UI,
upgrade prompts at the free-tier cap.</p>
</div>
<div class="timeline-phase">
<div class="tl-weeks">Weeks 7-9</div>
<h4>Content engine live</h4>
<p>Ship the SEO content foundation, launch in APMP/LinkedIn bid-writer communities, open the
first authoring-tool partnership conversations.</p>
</div>
<div class="timeline-phase">
<div class="tl-weeks">Weeks 10-12</div>
<h4>Public launch &amp; paid on</h4>
<p>Public launch, turn on paid search against intent keywords, first Enterprise outbound to
proposal teams, iterate pricing-page conversion.</p>
</div>
<div class="timeline-phase timeline-phase--risk">
<div class="tl-weeks">Weeks 13-16</div>
<h4>Risk ceiling (buffer)</h4>
<p>The four-week buffer absorbs the realistic solo-founder risks: billing-edge-case debugging,
partnership legal/integration slippage, and content-indexing lag. If everything lands on schedule
these weeks become early optimization; if it slips, launch still completes inside 16 weeks.</p>
</div>
</div>
<div class="callout callout--proof">
<p>
<strong>Why 12 is credible and 16 is the honest ceiling.</strong> The pipeline already exists and is
documented to engineering-handoff standard - weeks 1-12 are packaging, billing, onboarding, and
distribution, not core R&amp;D. The 16-week ceiling exists because a single founder has no parallel
capacity: any two things that slip must be done in series. We plan to 12 and underwrite to 16.
</p>
</div>
</section>
<!-- ====== SECTION 8: FINANCIAL MODEL SUMMARY ====== -->
<section class="section" id="financial-model">
<h2>Unit Economics &amp; Financial Model</h2>
<p class="lead">
Fully-loaded cost per review, gross margins, revenue projections, and runway - every figure
independently verified. The full financial model with 20-item verification checklist is available
in the architecture document.
</p>
<h3>Key Metrics</h3>
<div class="table-wrap">
<table class="comp-table">
<thead><tr><th>Metric</th><th>Value</th><th>Derivation</th></tr></thead>
<tbody>
<tr><td>Fully-loaded COGS per review</td><td><strong>$0.90</strong></td><td>AI inference $0.72 + infra $0.14 + delivery $0.04</td></tr>
<tr><td>Gross margin - Pro</td><td><strong>86.3%</strong></td><td>$79 $10.80 COGS = $68.20 gross profit</td></tr>
<tr><td>Gross margin - Enterprise</td><td><strong>81.9%</strong></td><td>$299 $54.00 COGS = $245.00 gross profit</td></tr>
<tr><td>Blended ARPU</td><td><strong>$1,344/yr</strong></td><td>(0.85 × $948) + (0.15 × $3,588)</td></tr>
<tr><td>CAC (blended)</td><td><strong>$28</strong></td><td>(0.8 × $15 organic) + (0.2 × $80 paid)</td></tr>
<tr><td>LTV:CAC</td><td><strong>20:1</strong></td><td>$560 ÷ $28 (stress-churned, conservative)</td></tr>
<tr><td>Monthly burn</td><td><strong>$11,977</strong></td><td>$10,150 base + 18% contingency buffer</td></tr>
<tr><td>Break-even</td><td><strong>107 payers · Month 11-15</strong></td><td>$11,977 ÷ $112 blended MRR = 107 payers</td></tr>
<tr><td>Runway (zero revenue)</td><td><strong>5.0 months</strong></td><td>$60,000 ÷ $11,977</td></tr>
</tbody>
</table>
</div>
<h3>Revenue Projections (Ceiling case, conservative post-validation)</h3>
<div class="table-wrap">
<table class="comp-table">
<thead><tr><th></th><th>EOY Payers</th><th>Run-rate</th><th>Recognized Revenue</th></tr></thead>
<tbody>
<tr><td>Year 1</td><td>180</td><td>$241,920</td><td>$108,864</td></tr>
<tr><td>Year 2</td><td>480</td><td>$645,120</td><td>$464,486</td></tr>
<tr><td>Year 3</td><td>900</td><td>$1,209,600</td><td>$1,028,160</td></tr>
</tbody>
</table>
</div>
<div class="callout">
<p>
<strong>Enterprise pricing verified at $299.</strong> The prior-version defect (stale $499 Enterprise
references) is corrected. All margin tables and ARPU calculations use $299 Enterprise. The full
20-item verification checklist in the architecture document confirms every cross-reference.
</p>
</div>
</section>
<!-- ====== SECTION 9: LEGAL & GOVERNANCE ====== -->
<section class="section" id="legal-governance">
<h2>Legal &amp; Governance</h2>
<p class="lead">
The full legal framework - trademark clearance, MVL (Minimum Viable Legal) framework,
Controller/Processor role map, sub-processor training guard, corpus confidentiality,
and incident response plan.
</p>
<!-- INSERT: trademark-clearance -->
<div id="trademark-clearance">
<h3>1 - USPTO Trademark Clearance: "VerdictTank"</h3>
<div class="highlight">
<strong>Status: Preliminary clearance only - not a substitute for a formal search.</strong>
This assessment was performed with open-web search tools only. USPTO TESS (tmsearch.uspto.gov)
is a JavaScript-rendered application; a static fetch returns only the search shell with no query
results. Before any trademark application is filed, a live interactive TESS search or paid
clearance search through Corsearch/CT Corsearch or a trademark attorney is required.
</div>
<h4>Search Methodology (to be executed against live TESS)</h4>
<ol>
<li><strong>Word mark search</strong> - exact match "VERDICTTANK" and "VERDICT TANK" across all
International Classes via TESS Basic Word Mark Search.</li>
<li><strong>Class-scoped search</strong> - restrict to:
<ul>
<li><strong>Class 9</strong> - downloadable software (relevant if VerdictTank ships a
downloadable client/SDK).</li>
<li><strong>Class 42</strong> - SaaS / non-downloadable software - this is the primary class
for a browser-delivered review platform.</li>
</ul>
</li>
<li><strong>Phonetic / design mark search</strong> - variant spellings, stylized logo marks,
likelihood-of-confusion under the DuPont factors.</li>
<li><strong>Common-law search</strong> - state registries, corporate name registries, domain
registries, app-store listings, general web search for unregistered use.</li>
</ol>
<h4>Open-Web Common-Law Search Results (performed)</h4>
<table>
<tr><th>Search</th><th>Result</th><th>Assessment</th></tr>
<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 - fantasy-football caption and SEO-spam page - neither a business or registered mark</td><td>No competing commercial use; matches are noise</td></tr>
<tr><td>trademarkia.com / justia proxy query</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>Confirms operational use in commerce</td></tr>
<tr><td>Domain: rfptank.com</td><td>Legacy/defensive holding - same "-Tank" naming convention</td><td>Family-of-marks consideration; retain defensively</td></tr>
</table>
<h4>Recommendation</h4>
<ul>
<li><strong>Before Series A close or public marketing scale-up:</strong> commission a formal USPTO
clearance search for Classes 9, 42, 35, and 45.</li>
<li><strong>File an intent-to-use application</strong> for "VERDICTTANK" as a standard character
word mark in Class 42 as primary, Class 9 as secondary.</li>
<li><strong>Do not file based on this document alone.</strong> It is a preliminary desk review.</li>
</ul>
</div>
<!-- INSERT: mvl-framework -->
<div id="mvl-framework" style="margin-top:30px">
<h3>2 - Minimum Viable Legal (MVL) Framework</h3>
<p>"Minimum Viable Legal" (MVL) is the internal gate name used in the architecture docs as the
precondition for onboarding White-Label and Enterprise customers. This section specifies what MVL
actually contains.</p>
<table>
<tr><th>MVL Component</th><th>Purpose</th><th>Applies to</th><th>Status</th></tr>
<tr><td>Terms of Service (ToS)</td><td>Governs contractual relationship with every direct user</td><td>All tiers</td><td><span class="tag tag-amber">Drafting required</span></td></tr>
<tr><td>Privacy Policy</td><td>GDPR/CCPA-compliant notice of data collection and use</td><td>All tiers</td><td><span class="tag tag-amber">Drafting required</span></td></tr>
<tr><td>Data Processing Addendum (DPA)</td><td>Art. 28 GDPR-compliant processor terms</td><td>Enterprise, White-Label</td><td><span class="tag tag-amber">Drafting required - hard gate on White-Label</span></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><span class="tag tag-green">Engineering spec complete - legal copy needs counsel sign-off</span></td></tr>
<tr><td>Limitation of Liability</td><td>Caps aggregate liability at lesser of $100 or fees paid in preceding 12 months</td><td>All tiers, embedded in ToS</td><td><span class="tag tag-amber">Drafting required</span></td></tr>
<tr><td>Governing Law / Jurisdiction</td><td>Recommend Delaware law / Georgia venue - pending counsel confirmation of incorporation state</td><td>All tiers</td><td><span class="tag tag-amber">Pending counsel</span></td></tr>
<tr><td>GDPR readiness</td><td>Lawful basis mapped per role; Art. 28/33/34; SCCs/IDTA for EU data transfers</td><td>Any EU user</td><td><span class="tag tag-amber">Framework mapped - SCC execution pending White-Label launch</span></td></tr>
<tr><td>CCPA/CPRA readiness</td><td>Service-provider contract terms; consumer rights workflow</td><td>Any CA resident</td><td><span class="tag tag-amber">DSAR workflow build pending</span></td></tr>
</table>
<div class="highlight">
MVL is not a single document - it is five interlocking instruments (ToS, Privacy Policy, DPA,
AI Disclaimer, and the sub-processor training guard below) that must all exist and be internally
consistent before the White-Label provisioning gate can turn green. The Free/Pro/Enterprise tiers
require ToS + Privacy Policy + AI Disclaimer at minimum before any paid launch.
</div>
</div>
<!-- INSERT: controller-processor-role-map -->
<div id="controller-processor-role-map" style="margin-top:30px">
<h3>3 - Controller / Processor Role Map (5-Row)</h3>
<p>This extends the prior 4-row role map with the corpus row that rides on opt-in consent - secondary
use of submission data beyond the original review purpose requires its own GDPR Art. 6(1)(a) basis.</p>
<table>
<tr><th>Data Flow</th><th>Role</th><th>Legal Basis</th><th>Agreements Required</th></tr>
<tr><td>Free tier submission &amp; review</td><td>Controller</td><td>Contract + Legitimate interest</td><td>ToS, Privacy Policy</td></tr>
<tr><td>Enterprise org admin + 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/IDTA, published sub-processor list</td></tr>
<tr><td>LLM API calls (all tiers)</td><td>Controller of vendor relationship; LLM vendor is Sub-processor</td><td>Legitimate interest</td><td>Sub-processor training guard; DPA with each LLM vendor</td></tr>
<tr><td>Corpus contribution (aggregate scores + structural metadata)</td><td>Controller, secondary-use basis</td><td><strong>Opt-in consent</strong> - cannot ride on Contract/Legitimate Interest (purpose limitation, Art. 5(1)(b))</td><td>Explicit opt-in UI; anonymization pipeline; separate retention from review record</td></tr>
</table>
<div class="highlight">
The corpus row is the one most exposed by URL-to-Review and Chat-to-Refine features. URL-to-Review
pulls third-party web content the submitter did not author and may contain PII belonging to people
who never consented - that content must never enter the corpus. Chat-to-Refine transcripts are
conversational and more likely to contain incidental PII - excluded from corpus by default, with
only extracted structural signals eligible for opt-in use.
</div>
</div>
<!-- INSERT: sub-processor-training-guard -->
<div id="sub-processor-training-guard" style="margin-top:30px">
<h3>4 - Sub-Processor Training Guard</h3>
<h4>Contractual Language (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>
<h4>Sub-Processor Audit Table</h4>
<table>
<tr><th>Provider</th><th>API Training Opt-Out</th><th>Retention</th><th>Status</th></tr>
<tr><td>OpenAI</td><td>Yes - API data not used for training by default (since Mar 2023)</td><td>Up to 30 days, then deleted; ZDR available</td><td><span class="tag tag-green">Compliant by default</span></td></tr>
<tr><td>Anthropic (Claude)</td><td>Yes - commercial API data not used for training without express permission</td><td>Configurable per API/data-retention settings</td><td><span class="tag tag-green">Compliant by default</span></td></tr>
<tr><td>Google (Vertex AI / Gemini API)</td><td>Yes - customer data not used to train foundation models</td><td>ZDR available on Enterprise platform</td><td><span class="tag tag-green">Compliant - route through enterprise API only</span></td></tr>
<tr><td>DeepSeek</td><td><strong>No public training opt-out disclosed.</strong> Policy states data retained "as long as necessary" with no training exclusion</td><td>Undisclosed/long; China-based servers</td><td><span class="tag tag-red">Non-compliant - excluded from judge roster</span></td></tr>
</table>
<div class="highlight">
<strong>Fallback for non-compliant providers:</strong> a vendor without a public, contractually-confirmable
training opt-out is excluded from the review pipeline's judge/reviewer roster entirely. 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.
</div>
</div>
<!-- INSERT: corpus-confidentiality-framework -->
<div id="corpus-confidentiality" style="margin-top:30px">
<h3>5 - Corpus Confidentiality Framework</h3>
<p>The corpus is VerdictTank's most valuable long-term asset and its highest confidentiality exposure.</p>
<table>
<tr><th>Data Type</th><th>Corpus-Eligible?</th><th>Rationale</th></tr>
<tr><td>Dimension scores</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 + potential third-party PII</td></tr>
<tr><td>Explanation/audit finding text</td><td><strong>Never</strong> in raw form</td><td>Critique text frequently quotes submission</td></tr>
<tr><td>Chat-to-Refine transcripts</td><td><strong>Never</strong> as transcript content</td><td>Highest incidental-PII risk of any input surface</td></tr>
</table>
<h4>Anonymization Pipeline (5-step)</h4>
<ol>
<li><strong>Source-content exclusion</strong> - raw text fields excluded at schema/ETL level</li>
<li><strong>Structural extraction only</strong> - ETL reads from scored/aggregated fields, not freeform text</li>
<li><strong>Identifier stripping</strong> - review_id, user_id, org_id replaced with one-way surrogate key</li>
<li><strong>Free-text quarantine</strong> - stricter pass for named entities before any inclusion</li>
<li><strong>k-anonymity floor</strong> - public content only published when cohort exceeds minimum threshold</li>
</ol>
<p>Corpus contribution is <strong>off by default</strong> and requires explicit, separate opt-in - not
bundled into ToS acceptance. Revocable at any time from account settings.</p>
</div>
<!-- INSERT: incident-response-plan -->
<div id="incident-response" style="margin-top:30px">
<h3>6 - Incident Response Plan</h3>
<p>Structured around NIST CSF 2.0's six functions - Govern, Identify, Protect, Detect, Respond, Recover.</p>
<h4>Data Breach Notification</h4>
<table>
<tr><th>NIST Function</th><th>VerdictTank Action</th></tr>
<tr><td>Govern</td><td>Named incident commander; breach classification criteria documented before incident</td></tr>
<tr><td>Identify</td><td>Asset inventory: transactional DB, corpus DB, LLM API credentials, White-Label tenant segments</td></tr>
<tr><td>Protect</td><td>RLS-enforced multi-tenant isolation, sanitization gate, sub-processor training guard</td></tr>
<tr><td>Detect</td><td>Alerting on anomalous data access, bulk export, cross-org query attempts</td></tr>
<tr><td>Respond</td><td>GDPR: 72-hour notification to supervisory authority (Art. 33); CCPA: notification without unreasonable delay (§1798.82)</td></tr>
<tr><td>Recover</td><td>Post-incident review documented; White-Label tenants notified per individual DPA terms</td></tr>
</table>
<h4>Wrong-Verdict Liability Scenario</h4>
<div class="highlight">
<strong>Scenario:</strong> A customer submits a funding proposal, receives a high score, presents it
to an investor, and the score was wrong in a way that led to a bad decision. This is primarily a
<strong>reputational risk</strong> - the liability cap bounds legal exposure but does nothing to
prevent reputational damage.
</div>
<ul>
<li><strong>Legal layer:</strong> AI disclaimer (DISC-001) fail-closed on every surface; $100/12-months-fees
liability cap; explicit instruction not to rely on AI output for investment decisions.</li>
<li><strong>Confidence calibration:</strong> every score ships with inter-judge agreement rate - a
score with high disagreement is a materially different signal than unanimous agreement.</li>
<li><strong>Outcome-tracking defense:</strong> T+90/180/365 outcome-tracking cron becomes the
evidentiary defense once it matures (12-18 month data-moat window). Until then, this is a known gap.</li>
<li><strong>Incident playbook:</strong> do not litigate merits publicly; point to auditable disclaimer
version shown to user; offer private review; disclose and 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> flag reduced-panel scores visibly - never silently
substitute providers without disclosure.</li>
<li><strong>SLA language:</strong> uptime commitments qualified as dependent on upstream provider
availability.</li>
</ul>
</div>
</section>
<!-- ====== SECTION 10: DEPLOYMENT OPTIONS ====== -->
<section class="section" id="deployment-options">
<h2>Deployment Options</h2>
<div class="strategy-cols">
<div>
<h4>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 + 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 + 15-min sync</li>
<li>Managed by IT Pro Partner infrastructure team</li>
</ul>
</div>
<div>
<h4>Option B - Dedicated</h4>
<p>Dedicated netcup or Hetzner instances with 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 - ITPP manages everything 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>
</section>
</main>
<footer>
<div class="wrap">
VerdictTank v4.0 · <a href="https://verdicttank.com">verdicttank.com</a> ·
<a href="architecture.html">Technical Architecture</a> ·
<a href="review.html">Conductor Review</a> ·
Origin: app3 (152.53.241.111)<br>
Pre-revenue. Architecture-proven. All domain references are <code>verdicttank.com</code>;
<code>rfptank.com</code> appears only as documented legacy/defensive.<br>
Deployed: 2026-08-11 · Methodology: <a href="methodology.md">v1.0 SETTLED</a>
</div>
</footer>
</body>
</html>