#!/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"

The roster

.*?", html, re.S).group(0) rows = re.findall(r".*?", roster, re.S) vendors = [re.findall(r"([^<]*)", 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 at {self.getpos()}") return if self.st[-1][0] != t: self.err.append(f"mismatch 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('
Most popular
') 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"{label}" 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")