// CHANGELOG
What just shipped.
Latest releases. Each entry covers a milestone batch — what landed, when, and what it changed for you.
v5.31Jul 2, 2026Follow-up hardening and polish on the 5.30 batch.
- —Low-scoring Quick Check reports now point you at the Deep Dive — a small card after the fixes list when there's clearly more to find.
- —Shared-report social cards render once and cache, instead of re-rendering on every request.
- —If our rate-limit store ever has an outage, anonymous scans now pause safely instead of running unmetered — signed-in users are unaffected.
- —Fixed a wording bug on the agencies industry page ('marketing agencie').
v5.30Jul 2, 2026Try it with zero friction — plus richer share cards and 15 new industry pages.
- —Your first Quick Check now runs with no email and no sign-up — exactly as the homepage always promised. Sign-up is only asked for when you come back for more.
- —Shared report links now unfurl with a custom card showing the ad's score and grade, and visitors who open a shared report get a one-click path to score their own ad.
- —The homepage headline renders instantly (no more blank first paint) and now mentions the Account Value Score, with the free daily limit stated up front.
- —15 new industry pages — fitness, supplements, skincare, apparel, SaaS, gaming, and more — each with tailored guidance on what short-form ads in that category get wrong.
- —One consistent story everywhere: pricing, help, and methodology now describe the same scoring rubric, the Free plan vs. no-account trial is spelled out, and Pro/Agency perks (including unlimited Submissive Chicken) are listed on pricing.
- —Under the hood: the sitemap's learning-library entries are generated automatically so new articles always get indexed, and the Account Value Score warm-up runs leaner.
v5.29Jun 16, 2026Accessibility pass — WCAG 2.1 AA + a public accessibility statement.
- —The whole site now meets WCAG 2.1 Level AA color contrast — every primary button switched to high-contrast text, and the Submissive Chicken's accent reds were lightened so they're readable.
- —Added a 'Skip to main content' link and consistent main-content landmarks on every page, so keyboard and screen-reader users can jump straight past the navigation.
- —Errors and results now announce themselves to screen readers, and the chicken page gained a proper page heading.
- —New /accessibility statement page (linked in the footer) — states our WCAG 2.1 AA commitment, what we've built in, the known gaps we're honest about, and how to report a barrier.
v5.28Jun 16, 2026Account Value Score accuracy + reliability, site polish.
- —Account Value Score is far more accurate for established YouTube channels — older long-form back-catalog views are no longer mis-priced at the Shorts ad floor, so big channels read realistically (e.g. a measured-delta channel jumped from ~$600 to ~$19K/mo, in line with public benchmarks).
- —Clearer Account Value Score errors — when YouTube data genuinely can't load it now says so plainly instead of always blaming 'quota'.
- —Copy + SEO polish — removed a stale Deep Dive feature mention, fixed the shirt color wording (Graphite), and added proper social-share cards to the Methodology and Security pages.
- —Behind the scenes: abuse/cost hardening on the Account Value Score endpoint and a unified internal dev protocol.
v5.27Jun 14, 2026Chicken: About page, cleaner nav, honest free copy.
- —New Submissive Chicken About page — what it is, how it works, and who made it.
- —Chicken nav tidied up: About · Get The Shirt · The Ad Bench.
- —The Terms/Privacy footer no longer floats over the page when you scroll.
- —Dropped the misleading "10 free commands a day" — it's just free, with a fair-use limit; subscribers are unlimited.
- —The chicken promo banner no longer shows on the chicken's own pages.
- —Behind the scenes: cost/abuse hardening and roughly half the voice synths on shared clips.
v5.26Jun 14, 2026Sign in with Google & Apple, unlimited chicken for subscribers.
- —Sign in with Google or Apple — one tap, no password to remember.
- —Submissive Chicken is now unlimited for Pro and Agency subscribers.
- —Chicken reliability — a rate-limit or hiccup is shown as plain text instead of being read aloud as if it were the chicken's answer, and your command stays put for a retry.
- —The chicken now remembers your mute and caption choices between visits.
- —Long Easter-egg responses are shareable again, and expired clip links land on a friendly page instead of a dead end.
- —Security and abuse hardening across the chicken endpoints.
v5.25Jun 12, 2026Security improvements, SEO fixes, share-page audio fixed.
- —Security improvements across the stack.
- —Share-page audio fix — clicking ↺ play again on a /c/ share URL no longer double-plays audio.
- —AI corpus fixes — every URL in llms.txt and llms-full.txt was broken in production; all links now resolve correctly.
- —FAQ rich results on /methodology and /security — Google can now show Q&A cards for both pages in search.
- —Chicken rich result image — the Submissive Chicken WebApplication schema now includes an image, making it eligible to show a visual in Google SERP.
v5.24Jun 11, 2026Voice everywhere, email fixed, chicken hero stills.
- —Mobile voice fix — the chicken's voice now plays on your FIRST command on phones, not just on replay.
- —Share-page voice fix — /c/ clip links play the voice after your first tap; previously they could sit silent.
- —Sign-in and password-reset emails fixed — sends from no-reply@theadbench.ai were being rejected; the root cause (sender-domain authorization) is resolved.
- —Clearer sign-in errors — if an email genuinely can't send, the login page now shows the actual reason and a working Report-a-bug link.
- —Friendlier sign-in rate limit — 20 attempts/hour (was 5), and failed sends no longer eat your quota.
- —Chicken stills on the Ad Creative Score and Account Value Score pages — the bench has a mascot now.
- —Chicken SEO — FAQ rich results on /chicken, terms + privacy in the sitemap, full Submissive Chicken section for AI answer engines.
- —Ender tune-up — two clips retired after review; roast responses now end on the almost-puke clip.
v5.23Jun 10, 2026Submissive Chicken — lip sync, beat emotions, ender polish.
- —Talking lip-sync clip — the chicken now moves his head and hands while he speaks, anchored to THE RESTING FRAME so crossfades are seamless.
- —Beat-driven voice emotions — roast and refusal responses are sharper and more variable; existential responses are flat and dead inside; advice is tired like he's said it a thousand times.
- —One-time spoken greeting — on your first real keypress the chicken delivers a quick dry line, voiced through the same CRT speaker filter.
- —Visual talking during the gate line — 'Fine. You're on the list. Go on then.' now plays with the gesture clip.
- —Word-by-word animated captions paced to the voice audio duration.
- —'Play all your enders' marathon Easter egg — exact command only; plays all 25 enders back to back with a live counter, zero API calls.
- —Enders 10, 12, 20, 21 retired; heading chromatic shadow removed from all H1s.
v5.22Jun 10, 2026Submissive Chicken — share anywhere, session fixes, Easter eggs.
- —Platform share strip under the video — copy the short link or share straight to X, Facebook, WhatsApp, Reddit, Telegram, LinkedIn, Bluesky, Threads, or email, with the chicken's line pre-filled wherever the platform allows.
- —Native share on mobile — one tap opens your phone's share sheet so the clip can go to any installed app, quote and link included.
- —Share links are only created when you actually share — and replaying a response or viewing a shared clip no longer counts against your daily commands.
- —Session fix — a long response no longer breaks the commands that follow it.
- —Page polish — white GET THE SHIRT, red subhead, Terms and Privacy moved to a footer at the very bottom.
v5.21Jun 10, 2026Submissive Chicken shirt store — Printify integration + USPS shipping.
- —Shirt store live at /chicken/shirt — Comfort Colors 1717 garment-dyed tee, $35, Graphite colorway.
- —Printify print-on-demand integration — completed Stripe checkout auto-triggers a Printify order; ships directly to the customer within 4–8 business days.
- —USPS $5 shipping added to Stripe Checkout as a separate line item.
- —Stripe webhook wired to checkout.session.completed with shirt metadata — zero manual fulfillment steps.
v5.20Jun 8, 2026Sample report, site polish, and affiliate program restructure.
- —Sample report — visit /sample-report to see a full Deep Dive on a real beauty/skincare TikTok before submitting your own ad. All sections populated: rubric, top issues, hook/caption/CTA rewrites, predicted metrics, algorithm signals, storyboard, cultural fluency, hooks used, tropes, and production craft.
- —Trust bar — four factual signals (Anthropic AI · 2026 benchmarks · ~60 seconds · no sign-up) now appear between the nav and the homepage hero on every visit.
- —Homepage audience routing — four cards route paid-social, affiliate, agency, and creator-value visitors directly to their most relevant surface, replacing the full pricing grid on the homepage.
- —Affiliate program page — /affiliate is now a dedicated program page (30% Pro / 20% Agency recurring commission) with CTAs to /refer. The 8-check affiliate scoring rubric moved to /learn/affiliate-advertising.
- —CTA routing fixed — all 'score an ad' links across 10 pages now go to /ad-creative-score instead of the stale /#analyze homepage anchor.
- —Rewrites, ready to use — the WhatItScores section now accurately describes what ships: three hook variants, a new caption, and three CTA options, plus shot-list edits. Replaces the retired 'Money math' card.
- —Agency API key cap corrected — the Agency dashboard and overview now show the correct 1,000/day per Bearer key (was showing 100, which is the shared team browser quota).
- —SEO hygiene — canonical tags added to /terms, /privacy, /help, and /docs/api; /contact and /learn/gmv-max added to the sitemap; /docs/api sitemap exclusion removed.
v5.19Jun 7, 2026Report depth signals — hooks, tropes, cultural fluency, clip detection, and policy notes.
- —Five new Deep Dive sections: Hooks Used (recognized copywriting formulas with quoted evidence), Tropes (earned vs. lazy creative executions), Cultural Fluency (native / reaching / cringe voice verdict), Clip Detection (assets cut off or extending beyond frame edges), and Policy Notes (FTC disclosure gaps, unverified testimonials, vague legalese).
- —Quick Check now surfaces a compact Insights card showing hook chips and a clip-detection status.
- —Reading-level signal — a Flesch-Kincaid grade chip now appears on Deep Dive reports, giving a quick legibility read on ad copy.
- —Mailchimp preview-deploy isolation — setting MAILCHIMP_TEST_LIST_ID in Vercel routes subscribe calls on preview deploys to a test audience instead of polluting the production list.
- —AVS mobile layout fix — the channel stats grid now stacks to a single column on narrow phones instead of cramming two wide columns.
v5.18Jun 6, 2026Production QA fixes — AVS cold-start reliability and sitemap cleanup.
- —AVS cold-start 503s fixed — a Vercel warm-up cron now hits the Account Value Score function every 5 minutes so it's never fully cold when a real user arrives. On the rare kill that slips through, the retry no longer hangs for 5 minutes: the stale-lock polling ceiling dropped from 280 seconds to 60, and on timeout the server refunds the daily quota charge and releases the lock so the next submit can proceed immediately.
- —Sitemap cleaned up — four homepage fragment anchors (#analyze, #how-it-works, #what-it-scores, #privacy) were listed as separate URLs. Google ignores fragments in sitemaps; the entries added noise without any indexing benefit.
v5.17Jun 6, 2026Sharper YouTube AVS estimates, a fixed Social Blade shortcut, a taller channel banner, and the usual round of behind-the-scenes hardening.
- —More accurate YouTube revenue estimates for established channels — the format detector that decides whether a video earns at the Shorts $0.04–0.10/1k floor or at standard AdSense was too aggressive, tagging horizontal keynote and podcast clips up to 3 minutes as Shorts. The threshold is now 60 seconds, which matches where most actual Shorts still live and stops back-catalog clips from getting unfairly floored. High-velocity creators with deep archives (the QA case was @GaryVee) should now see estimates closer to what Social Blade measures.
- —Social Blade shortcut on the report now actually scrolls to the form — the "Jump to the form ↑" button on the Social Blade nudge was a dead anchor on the public share page (the form lives on a different URL). Now navigates back to the form and lands on the views input.
- —Taller channel banner on Account Value Score reports — the YouTube channel banner image at the top of the report is now visually larger and sits flush against the report header and the verdict, reading as one continuous identity block.
- —Behind the scenes — rate limits added to four public endpoints (bug-report, OAuth callbacks, magic-link verify) so a flood can't drain email or session-storage quota; report-history indexes are now capped so they can't grow without bound; share-view counters now expire alongside the reports they count; image and frame upload URLs include random tokens so siblings can't be brute-forced from one URL.
v5.16Jun 5, 2026Account Value Score accuracy upgrade — live follower counts for TikTok and Instagram, confidence calibration, and a Social Blade shortcut for YouTube.
- —TikTok and Instagram scores now anchor on real followers — the score used to guess follower counts for non-YouTube profiles, which could be off 150× or more. The server now fetches the public profile page to read the actual number before running the estimate.
- —Confidence labels match the data quality — YouTube reports on a 'lifetime average' or 'recent uploads' estimate (not a measured snapshot) no longer claim high confidence or a tight anchor. The language now reads 'directional' or 'modeled' to match what the data actually supports.
- —Social Blade shortcut on YouTube reports — if your estimate came from a model-inferred view count rather than a measured one, a one-click nudge now links directly to Social Blade and back to the monthly-views field. Pasting in the real 30-day number collapses the revenue band from ±5× to ±20%.
- —Growth milestones stay in the future — the report no longer lists subscriber milestones the channel has already passed, and avoids projecting milestones at all when no verified follower count is available.
v5.15Jun 4, 2026Stuck-on-YouTube fix — Account Value Score scans of long-running YouTube channels no longer hang.
- —Long-running YouTube channels finish — scanning a creator with a deep upload history (think 10+ years of weekly videos) could leave the Account Value Score sitting for minutes without returning. The recent-videos walk now caps its total wall-clock budget at 30 seconds and degrades gracefully to whatever it has, so the report comes back instead of timing out.
- —Behind the scenes — every Account Value Score POST now writes a server log line on entry, so the next stuck scan (YouTube or otherwise) is visible immediately instead of going dark.
v5.14Jun 4, 2026One email modal, everywhere — the analyzer's signed-out gate is now the same polished modal the header and pricing pages use.
- —Smoother first scan when signed out — the analyzer no longer asks for your email in a small inline box on the form. The first time you submit, you get the same email modal the header / pricing 'Start free' button uses: instant access, no inbox round-trip, and your next scan in the same session skips the prompt.
- —Same component on every surface — the Ad Creative Score page, the home analyzer, and the embedded analyzer on /account all share one component, so the gate behavior is consistent everywhere.
v5.13Jun 3, 2026Honest progress copy + honest errors + the Mailchimp reconnect — and one fewer report section nobody could read.
- —Honest errors when a platform blocks the fetch — when TikTok, Facebook, or Instagram refuses our request, the error message now leads with 'we got blocked' (usually bot detection rejecting datacenter IPs) instead of immediately blaming the post as private / age-restricted / region-locked. Both the video-ingest path and the cover-frame fallback got the same treatment.
- —Clearer progress copy on every submit — Quick Check on a URL no longer sits on 'Fetching the video…' for the whole run; every path lands on 'Analyzing your ad…' once the actual model call starts. Image and script submits show the same beat from the start.
- —Cover-only fallback announces itself — when a browser-decodable codec breaks during frame extraction, the submit now reads 'Couldn't extract frames — analyzing the cover frame instead…' so a degraded report doesn't look identical to a 4-keyframe Deep Dive.
- —Stay signed in across navigations — a Redis blip during /api/auth/session could silently log you out for one request. The session is now resilient to a transient plan-lookup failure.
- —Transactional email rebrand — magic-link / verification / error-notification emails now read 'The Ad Bench <no-reply@theadbench.ai>' instead of 'TokBench <auth@tokbench.ai>'.
- —Mailchimp reconnect — every signup now subscribes to 'The AdBench AI' audience with the matching tier tag (theadbench-freebie / -pro / -agency), the AVS gate / contact form / lead capture each add a per-surface tag, and a plan upgrade retires the lower-tier tag automatically.
- —Business projections removed — the CPM / CPC / CVR brackets + creative lifespan box on the Deep Dive report is gone end-to-end (the model no longer generates it either, so every Deep Dive is slightly faster and cheaper).
- —Behind the scenes — final TokBench / tokbench.ai cleanup across every user-visible surface, /account loaded with source maps so the recurring hydration error is finally diagnosable, and the Mailchimp audience name lives in /api/health for fail-loud config detection.
v5.12Jun 3, 2026Consistent scores + a smoother first paint — re-running the same ad now returns the same numbers.
- —Deterministic scores — running the same ad twice used to return slightly different numbers (the model samples its scores). Identical inputs now return the same scores; the verdict wording still varies, and a scoring-rubric update naturally refreshes the numbers.
- —Smoother first paint — the status-bar clock no longer flashes a placeholder, and the Ad Creative Score page no longer flashes the signed-out UI for a beat before showing your real plan.
- —Behind the scenes — added a one-off tool to clean up the handful of duplicate reports left by the old cold-start retry bug (the fix for that shipped in 5.11); old share links keep working.
v5.11Jun 3, 2026Production QA hardening — one report per submit, accurate scores + source labels, a cleaner voice, and a webhook-header rename.
- —One report per submit — a cold-start retry used to quietly save the same analysis two or three times (burning your daily quota and cluttering My Reports). Each submit now collapses to a single analysis, a single saved report, and a single quota charge.
- —Accurate numbers — the revenue projector on a saved Quick Check now reads the same comprehensive score the verdict shows, and a pasted link is labeled 'Source: URL' (with the link) instead of 'Video Upload'.
- —Smarter format read — a vertical (9:16) social image is no longer mistaken for a landing page.
- —Cleaner voice — dropped SaaS-filler words ('unlock', 'leverage', and friends) from the copy AND from the model-written report text, fixed the AVS headline, and standardized 'Social Blade'.
- —Privacy + links — the footer 'Privacy choices' control opens the consent dialog again, the privacy policy now lists the 90-day Account Value Score retention, /plans redirects to /pricing, and the /for/* pages show 'TikTok' / 'DTC' correctly.
- —Report titles — shared report tabs now read 'Quick Check Report — @handle' instead of a generic title, and the Account Value Score avatar falls back to the platform's logo.
- —Webhooks — deliveries sign with an X-AdBench-Signature header (HMAC-SHA256 over t.rawBody).
v5.10Jun 2, 2026Report honesty + reading polish — Brand Kit reports say so, the revenue projector reads the right score, read-stars only count a finished article, and X/Twitter is no longer listed as a supported platform.
- —Agency Brand Kit, disclosed — when your team's Brand Kit shaped a report, the report now says so: a small '// AGENCY · BRAND KIT' note lists which parts applied (vertical, voice, banned words, compliance, weights) and the Brand-fit line is tagged 'Per your Brand Kit'. Free and Pro reports show nothing.
- —Revenue projector reads the comprehensive score — the Deep Dive projector's 'at your current score' now uses the same comprehensive score the verdict leads with, instead of the hook number, so the two always agree.
- —Read-stars are honest — an article's star is earned only when you actually scroll to the end (not on load, not partway), and the Learning Library hub now shows a filled star on articles you've read and a filled heart on the ones you've favorited.
- —Chromatic-glitch headlines fixed on wrapping titles — multi-line display headlines no longer smear the green/pink extrude over the next line.
- —X / Twitter is no longer offered as an analysis platform — removed from the platform picker, the Account Value Score form, and the supported-platform copy across the site (educational references remain).
v5.9Jun 2, 2026Site-wide polish — a dedicated Ad Creative Score page, a reorganized Help, Learning Library gamification, honest hedged value estimates, and a chromatic-glitch headline look.
- —Ad Creative Score gets its own page — the analyzer now lives at its own destination (/ad-creative-score) with a plan-aware header, matching the Account Value Score page. (The nav link no longer scrolls a home anchor, fixing a stray URL bug.)
- —Help, reorganized — two tabs (Free & Pro / Agency), every section is collapsible, the basics stay at the top, and the cookie/privacy disclosure is now accurate: one necessary session cookie plus consent-gated Google Analytics 4, which you can opt out of anytime (or via Global Privacy Control).
- —Learning Library gamification — read an article to the end to earn a star, favorite the ones you love with a heart, and see your read count on the hub. Every article's sections are now collapsible too.
- —Honest, hedged value estimates — the Account Value Score now says a creator 'could be earning' rather than 'is earning,' because it's an estimate from public signals, not their real numbers. Your real plan's daily AVS limit also shows in the header.
- —My Reports — Account Value Scores and Ad Creative Scores are collapsible sections that lead with the account/creative (not the score) and show a friendly 'run one' prompt when empty.
- —Format-aware scoring — the analyzer classifies the medium up front (out-of-home, print, email, marketplace, search, and more) and scores it against that format's own rubric instead of short-form-video terms.
- —'What would the legends say?' — the cross-discipline panel is renamed, and the roast is now one saved roast per report, from a voice that isn't on the panel, shorter and shown bigger, with a clear 'AI impression, not their real words' note.
- —Wrong-file handoff — drop an image on the Video tab (or a video on the Image tab) and one tap moves it to the right tab with your file carried over.
- —Chromatic-glitch headlines — display headlines now carry the brand's green-right / pink-down extrude, matching the [ TheAdBench.ai ] mark (and respecting reduced-motion).
- —Plus: American English everywhere, the Done-For-You rewrite service retired, a navigation reorder (Agency after My Reports, Plans last), and a richer, example-packed performance-marketing guide.
v5.8Jun 2, 2026Shareability + brand matchmaking — Legend Reveal, Roast This Report, AVS brand-fit, a My Reports overhaul, and format-aware scoring.
- —Legend Reveal — every Quick Check now ends with three short critiques of your ad, each from a different legendary voice across advertising, film, literature, music, and psychology (Ogilvy on the headline, Kubrick on the frame, Hemingway on what to cut). Three at random per load — reload for a fresh panel. Each voice is introduced by who they actually are, not as a fake 'ad legend'.
- —Roast This Report — a one-click button that picks one random legend to deliver a brutal, funny roast of your ad. Verbal only: it's never scored, graded, or part of the verdict — pure entertainment in the margin. Hit 'Roast again' for another voice.
- —Brand matchmaking in Account Value Score — AVS now answers who a creator should work with, not just what they're worth: a grouped shortlist of real brands by category, each with a one-line reason it fits the content and audience (a guitar channel surfaces instrument makers and audio gear; a fitness channel surfaces matching apparel and supplement names).
- —My Reports overhaul — the saved-reports page gains a card/list view toggle, select-all with bulk delete, and a higher per-page count, so cleaning up a long history is no longer one-at-a-time.
- —Format-aware scoring — non-feed creative (out-of-home, print, email, display) is no longer judged in short-form-video terms. The analyzer drops feed-video jargon (thumb-stop, scroll-stop, hook rate) for formats where it doesn't apply and reads the CTA in that channel's own language (logo, URL, QR).
- —Platform-aware revenue projector — the TikTok-Shop revenue projector no longer appears on unknown-platform ads where its affiliate math doesn't apply.
- —Icons throughout — the top navigation, analyzer tabs, report chrome, and the '?' info tooltips now carry inline icons, and Instagram/Facebook reports without a cover image show a muted platform glyph instead of a blank placeholder.
- —AVS mobile + copy polish — the Account Value Score report header no longer overflows on phone-width screens, and a copy pass tightened stale labels (e.g. 'Avg views / recent video' now says plainly that it's the recent-window average).
v5.7Jun 2, 2026Scoring reliability — cold-start auto-retry, Instagram/Facebook URL fixes, and clearer report messaging.
- —Cold-start auto-retry — the first scan after a quiet period sometimes failed and needed a manual retry while the server woke up. The analyzer now retries automatically (with a short, growing delay) and shows a 'Still working — retrying…' status, only surfacing an error if it genuinely can't complete.
- —Instagram & Facebook post URLs scan again — a recent change had these dead-ending on a 'download the video' prompt. They now score from the caption and available text, with the upload option kept as an optional route for a fuller read.
- —Facebook URL error fixed — pasting a Facebook (or X / Snapchat) post URL could return an 'Invalid option' error instead of a report. Fixed.
- —Longer scripts no longer error — some detailed scripts (especially promo scripts with discount codes) could fail a Quick Check with a server error because the response ran past its limit. The limit was raised and a clean fallback added.
- —Clearer 'no cover image' note — Instagram and Facebook reports that can't show a cover frame now say plainly that Meta restricts pulling those thumbnails, so it reads as a known platform limitation rather than a glitch. The review still runs on the caption and text.
- —Menu rename — 'Score Creative' is now 'Ad Creative Score' in the top navigation, matching the 'Account Value Score' naming.
v5.6Jun 1, 2026AVS depth upgrade — channel trajectory, creator context, revenue evidence signals, and unified share controls.
- —Channel trajectory signal — Account Value Score reports now surface a named velocity signal (On the rise / Growing / Steady-state / Softening / Declining) derived from the ratio of recent-upload view velocity to lifetime average. Shown on first scans and estimate-based reports so you can see whether a channel is accelerating or cooling off.
- —YouTube Shorts cadence fix — channels that post 20+ Shorts per day were having their upload frequency severely underestimated because the playlist fetch only covered ~10 days of content. Now uses span-aware extrapolation: the actual time window of the fetched videos is measured and the weekly cadence is extrapolated from that real span, not a fixed 30-day assumption.
- —Creator context — AVS reports now include a web-sourced context panel (bio, location, brand partnerships, courses, and key topics) pulled via search and summarised by AI. Soft-fail: if the search key isn't set or the result is ambiguous the section simply doesn't appear. Results cache for 7 days.
- —Revenue evidence gating — the five main revenue stream estimates (affiliate/link-in-bio, brand sponsorships, courses/coaching, memberships/Patreon, merch) each show a detected-evidence badge ('affiliate link detected', 'course landing page found', etc.) when there's a real signal, and an honest 'estimated — no confirmed signal' note when there isn't. No more presenting inferred numbers as confirmed.
- —Channel-aware Social Blade comparison — the Social Blade estimate section now references the actual channel's size tier instead of boilerplate language, so the comparison reads as a check on this creator's numbers rather than a generic disclaimer.
- —Provenance tooltips on all AVS stats — every data point in the report (live stats, estimated values, inferred figures) now has a hover/tap tooltip that names the source and explains how the number was derived.
- —Unified share control — Quick Check, Deep Dive, and AVS reports now all use the same ShareLinkBox component in the report header, giving consistent one-click share-link copy across every report type.
- —URL-path analyze fix — a path-parsing edge case in the post-oEmbed analyze flow that produced intermittent 500s is resolved.
v5.5.1Jun 1, 2026AVS cold-start reliability fix — first scan of every YouTube channel now succeeds on the first try.
- —Cold-start timeout fixed (PR #359) — Account Value Score runs on uncached YouTube channels were being silently killed by the platform before the catch block ran, so users saw a dropped request with no error message and had to retry 2–3 times. Root cause: the sequential fetch chain (handle resolution → channel stats → uploads playlist pagination → two model calls) was exceeding the 90s function budget on cold paths. Fixed by: raising maxDuration 90 → 300s; merging the two sequential channels.list calls (stats + contentDetails) into one round-trip, cutting up to 8s from the cold path.
- —AVS form progress feedback — the Estimate button now shows a status line while the run is in flight ('Fetching channel data — this can take 30–60 seconds on the first run') so a slow cold-path run reads as working rather than frozen.
- —AVS client auto-retry — on a transient failure (503 or dropped connection), the form automatically retries once after a 2s delay with a 'Still working — retrying…' status before surfacing an error. Sign-in prompts and hard errors (bad input, daily cap) never retry.
- —Channel banner on AVS reports — YouTube channel banners (brandingSettings.image.bannerExternalUrl) now appear as a full-width strip above the report header. Stale or dead CDN URLs self-hide; reports without a banner degrade gracefully.
v5.5May 24, 2026AVS reports rebuilt with growth milestones, untapped opportunities, and a redesigned verdict. Source attribution on shared reports.
- —AVS report redesigned to match Quick/Deep — opens with an identity header (avatar, handle, platform), then a 3-box verdict: Account Value Score with letter grade and gauge, estimated monthly revenue with low→high range, and number of revenue streams.
- —Growth milestone projections — AVS reports now show estimated monthly earnings at key subscriber thresholds (50k, 100k, 250k, 500k, 1M), with the assumptions behind each projection explained in plain language.
- —Untapped monetization opportunities — a new section identifies revenue streams the account hasn't enabled yet, ranked by effort: Quick win (can set up today), Medium effort (requires content changes), or Long-term (needs audience growth first). Each entry includes a +$/mo estimate at current scale.
- —Revenue contribution breakdown — when a report has two or more revenue streams, a bar chart shows each stream's share of total estimated monthly revenue.
- —Platform dropdown in the AVS form — the form now auto-detects the platform from the URL you paste (YouTube, TikTok, Instagram, Facebook, X) and shows a dropdown you can override. YouTube accounts pull live channel stats automatically, so the manual metric fields hide themselves — no double-entry.
- —Source attribution on shared reports — the report title on shared /r/[id] pages now includes a Source chip: Script, URL, Video Upload, Image Upload, or Photograph of Billboard (for OOH/print). Makes it immediately clear what kind of creative was reviewed.
v5.4May 23, 2026Report UI polish — verdict boxes + predicted metrics on Quick reports, responsive metrics grid, full-width score bars, dynamic aspect ratios, plan-aware pricing buttons.
- —Verdict boxes on Quick reports — Quick Check reports now show the same 3-box verdict section (Comprehensive / Hook / Engagement scores) as Deep Dive reports, positioned at the top with matching cyan-accented styling.
- —Predicted metrics on Quick reports — Quick Check reports now display predicted performance metrics (hook rate, hold rate, completion rate, engagement rate, etc.) directly under the verdict section, matching Deep Dive layout. For short-form video, the model generates all 10 predicted metrics; for non-short-form formats, format-specific metrics display when available.
- —Responsive metrics grid — Predicted performance metrics use a responsive grid layout (2 cols mobile → 3 cols sm → 5 cols lg) so metric boxes fit cleanly across all viewport sizes without awkward wrapping.
- —Full-width score bars — refactored ScoreBar component to stack label/number above the progress bar, allowing bars to stretch full-width without fixed-width label constraints. Brings Deep report rubric bars in line with Quick report styling.
- —Dynamic preview aspect ratios — Preview card now adapts to content aspect ratio (YouTube 16:9, TikTok/Reels 9:16, uploads use detected ratio) instead of forcing all previews to portrait. Uses platform-specific defaults for URL inputs and actual aspect ratio from image/video uploads.
- —Plan-aware pricing buttons — Pricing cards now show context-aware CTAs based on user login status and plan tier. Not logged in: 'START FREE' / 'SUBSCRIBE'. Free tier: hide Free button, show upgrades. Pro tier: hide Free/Pro, show Agency upgrade. Agency: hide upgrades, show 'Your current plan'. Applied consistently to home page #pricing section and /pricing page.
v5.3May 22, 2026AVS score + share, pricing on home, YouTube video ingestion, one-click copy on rewrites.
- —Account Value Score now has a 0–100 score + F–A+++ letter grade — derived from monetization breadth (number of revenue streams) and value tier (monthly estimate). Displayed in the verdict alongside the monthly value.
- —AVS share button is now consistent — appears on both the just-run result and the public share page, matching the report share style.
- —Pricing cards now appear on the home page — so new visitors see plans without navigating away.
- —YouTube Shorts URL ingestion — pasting a YouTube Shorts or video URL now attempts to fetch the real clip (multi-frame + voiceover), the same as TikTok. Falls back to the cover frame if ingestion fails so the review can only improve.
- —One-click copy on every rewrite — Copy buttons on all hook variants, caption, CTA variants, and shot list edits so assets are grab-and-go.
- —Score-lift estimates on fixes — each issue in a Deep Dive report now shows a predicted score range (+2-5, +5-10, +10-15 pts) so you know which fix is worth doing first.
- —Re-analyze button — an 'Analyze again' button appears after any result so you can re-run the same input without scrolling back up.
v5.2May 22, 2026Report UI polish — filmstrip, jump-nav, biggest-lever callout, score gauges. GA4 tag detection fixed.
- —Frame filmstrip — video reports now show the 4 analyzed keyframes (open / ~33% / ~67% / close) in a strip at the top of the report so you can see exactly what the AI looked at.
- —Jump-nav — Deep Dive reports have section chips (Scores · Fixes · Rewrites · Storyboard · Revenue · When to post) so you can skip straight to what you need.
- —Biggest lever — the single highest-impact fix is called out front-and-center before the full breakdown.
- —Score gauges — a thin color-coded bar appears under each verdict score (Comprehensive / Hook / Engagement) for an instant at-a-glance read.
- —GA4 tag detection fixed — Google's tag checker ("Your Google tag wasn't detected") was failing because the GA scripts lived inside a client component and only loaded after hydration, making them invisible to crawlers. Scripts now render in the server-side HTML so the tag is detected correctly.
v5.1May 21, 2026Review any ad format, plainer reports with hover-to-define tooltips, large-image uploads, account closure.
- —Format-adaptive analysis — drop in ANY ad creative (static social, display, marketplace like Amazon, search, email, OOH, or short-form video) and it's reviewed on that format's terms instead of judged as a failed TikTok ad. Short-form (TikTok / Reels / Shorts) keeps its calibrated read. Non-short-form reports now show the predicted metrics that fit the format (click-through, conversion, open rate, viewability, view-through) instead of the short-form ones (hook/hold/completion/FYP) that don't apply.
- —Plainer reports — every report is written in plain language, and a "?" next to each score, metric, and term explains it in everyday words (on Quick Check, Deep Dive, and Account Value Score). Full glossary at /learn/glossary.
- —Large image uploads — photos and screenshots are downscaled in the browser before upload, so a multi-MB billboard shot or app screenshot analyzes instead of erroring out. Image reports now keep a thumbnail in My Reports.
- —Mobile modals fixed — the sign-up, daily-cap, and cookie dialogs always fit and scroll on phones now (an iOS viewport bug had been pushing them partly off-screen).
- —Cancel my account — a self-serve account-closure button in the account Danger Zone: cancels any active subscription, deletes your data, and signs you out.
- —Stability — fixed a shared-report render crash, quieted false error alerts on private/blocked URLs, and fixed two hydration crashes: an account-page date glitch, and an analytics-consent mismatch that was throwing an error on every page for visitors who'd declined analytics.
- —theadbench.ai now 301-redirects to theadbench.ai — the legacy-domain cutover is complete.
v5.0May 20, 2026Account Value Score, full rebrand, GA fix, copy overhaul — Build 5.0.
- —Free Account Review renamed to Account Value Score — shareable results, updated across every surface.
- —GA4 measurement ID fixed — production was silently routing to the old The Ad Bench property (G-T2PTS4KRKT); now correctly sends to The Ad Bench production stream (G-8Q92YFW90B).
- —Email rebrand complete — @theadbench.ai contact addresses everywhere; Tier → Plan copy site-wide.
- —Learn platform tags — TikTok / Meta / YouTube / Snapchat etc. as filterable chips on /learn.
- —Copy inventory audit (#229) — pricing/credits contradiction fixed, API key prefix sk_tok_ → sk_tab_, agency waitlist framing removed.
- —Home page de-TikTok-ed — platform-neutral marketing copy; supported-platform list + SEO intact.
- —Claude Code continuity system added — docs/claude/ session handoff guide + STATUS.md.
v3.34May 11, 2026Deep Dive narrative layer, share + render-crash hardening, conservative speed language, scroll-on-analyze.
- —Deep Dive narrative layer (PR #187) — seven new outputs on every Deep analysis: vertical archetype + gap (e.g., 'hair = reflective-texture-reveal; yours sits on product hold'), emotional positioning (surface need vs deep need + reframe), hook valence (confession / warning / transformation / etc.), production craft direction (lighting / cuts / detail shots / sensory), 3–6 macro-shot prescriptions with placement timestamps, and a 4–6 beat storyboard rebuild. Six new section components in Report.tsx, all null-safe so older saved reports decode identically.
- —Site-wide "Score an ad now" pill banner (PR #184) — replaces the old full-width strip; reads as an obvious CTA on every route.
- —Conservative speed language (PR #184) — Quick mode standardizes on "about 60 seconds"; Deep dive drops specific timing claims entirely. Touched /, /affiliate, /for/[vertical], /learn, /library/hooks, /help, /docs/api, /with/[partner], Agency FAQ, llms.txt, llms-full.txt, root metadata.
- —iOS share crash fix (PR #184) — ShareButton.encodePayload now uses TextEncoder + btoa instead of Node's Buffer (which Next 16 doesn't polyfill in client components and was dropping iOS Safari users onto error.tsx mid-click).
- —Share preview fix (PR #184) — stripped the trailing https://theadbench.ai from the marketing line so iMessage / Slack / X unfurl the report URL, not the home page.
- —Render-boundary error logging (PR #184 + #186) — error.tsx now POSTs mid-render crashes to /api/log-error via sendBeacon, and the structured log line emits a queryable summary first ("[err] client/boundary dig=<hash> msg=...") so future boundary crashes are greppable by digest in Vercel runtime logs.
- —Defensive guards on report-render arrays (PR #186) — QuickReport.feedback, Report.topIssues / .rewrites / .risks all default to empty so a partial API response surfaces blanks instead of crashing to error.tsx.
- —Scroll-on-analyze (PR #185) — the ThinkingAnimation now smooth-scrolls into view (block: center) as soon as `loading` flips true, so users see the work happening instead of staring at the upload card. Honors prefers-reduced-motion.
- —Issue hygiene: closed 11 stale GitHub issues (#82, #169, #170, #47, #140, #165, #103, #41, #22, #61, #42) where code shipped or work is operational-only. Open list now reflects engineering reality — 19 issues, all genuinely future work.
v2.5.0May 6, 2026Hero refactor, /learn library, modal email forms, partner program direction.
- —Two-column report hero — cover frame on the left, share + caption/transcript + verdict stacked on the right (lg+); stacks vertically below. Same layout on / (after analyze) and /r/[id] (recipient view).
- —/learn — new educational hub at /learn with 7 cards. New articles: What is performance marketing?, The 6-category rubric, Designing for sound-off, CTA architecture, What the FYP rewards. Existing /library/hooks and /affiliate now linked from the hub.
- —TopNav simplified — drops AFFILIATE / HOOKS / ANALYZE_AD CTA in favor of // LEARN · // PLANS · // HELP · ACCOUNT (single cyan-bordered CTA).
- —Email signup forms now open in modals — partner application, DFY review-request, and other email-capture surfaces all open via <EmailFormButton> instead of rendering inline.
- —Saved-reports listing (/account/reports) — every card grows a footer row with the share URL + a one-click COPY button. Date label adds time. No-thumbnail cards get a // NO_PREVIEW placeholder.
- —/refer reframed as Coming Soon, partner program will run through TikTok's creator + affiliate ecosystem (TikTok-native attribution + payouts).
- —/pricing template aligned with the rest of the site — same status strip, container width, header treatment as /help, /privacy, /refer, /learn.
- —Footer link row trimmed — drops HOOK LIBRARY, PARTNERS, CHANGELOG.
- —/changelog page now Releases-only — drops the rolling git-log feed and all GitHub commit links.
- —Hotfix: /r/[id] 500 fixed — TranscriptCard was missing 'use client' so onClick handlers couldn't serialize when rendered from the server tree. Latent since PR #51, surfaced when shares with a transcript payload appeared.
v2.2.0May 6, 2026Email architecture, privacy stack, AEO, and report-column polish.
- —POST /api/review-request — DFY card now fires a real Resend operator notification with full report context (mode, score, vertical, hook formula, top issue, share link), plus Mailchimp tag + optional REVIEW_WEBHOOK_URL fan-out. Awaited end-to-end (no fire-and-forget).
- —New shared lib modules: lib/server/mailchimp.ts (subscribeToMailchimp), lib/server/resend.ts (sendEmail), lib/server/review-request.ts (orchestrator).
- —Privacy stack: /.well-known/security.txt (RFC 9116) + /.well-known/gpc.json (Global Privacy Control). New /privacy sections — Cookies, Your data rights (DSAR), Do not sell or share.
- —AEO: /llms.txt + /llms-full.txt per llmstxt.org for AI answer-engine ingestion (Claude / ChatGPT / Perplexity / Google AI Overviews).
- —Share payload now carries the 4-frame video preview strip + voiceover transcript so /r/<id> recipients see the same context the original viewer did.
- —Preview card: 4 evenly-spaced frames horizontal row (was 2x2). Metadata above. URL/image flows show single thumbnail in same row container.
- —Report column reorder on the home page: SHARE → FRAMES → VO TRANSCRIPT → VERDICT → GMV → body → DFY.
- —CSP hotfix: connect-src now allows vercel.com so @vercel/blob/client's upload-handshake doesn't get blocked. Video uploads work in production again.
- —Pricing-integrity audit (#24): Free-tier day caps fixed to match real rate-limit shape. Pro 'Priority queue' bullet removed. Agency unshipped bullets flagged '(in development)'.
- —Stripped user-facing 'Claude' references in favor of neutral copy. Server-side model IDs unchanged (still required by SDK).
- —Lint cleanup sweep (#45): 21 errors → 0, 26 unused eslint-disable directives removed.
- —Docs: docs/email.md + docs/mailchimp.md added; README rewritten end-to-end to current 2.2.β state; /help gains four new sections (Cookies, Your data rights, Done-For-You, Security disclosures, AI answer engines).