# Graduation Alliance — Capture Coverage Audit (pre-analysis gate)

_2026-06-25. 5,794 clean records (18-month window, ≥2024-12-25; 1,639 stale dropped). Question: **competitive creative strategy for Graduation Alliance** vs Grad Solutions / Learn4Life / AHSA / ChanceLight._

**The headline finding is structural and already visible in the matrix: this is a CREATIVE-led category, not a review-led one.** The ad libraries are dense (1,110 live creatives) while consumer review/comment VOC per brand is thin — the inverse of an ecommerce VOC study (Bloomers). The demand-side voice lives almost entirely in the **category lens** (problem-phrase Reddit + YouTube), not in brand mentions.

## Coverage matrix (brand × platform, post-window record counts)

| Brand | Role | Meta ads | Google ads | YouTube | IG | TikTok | G-Maps | Own-site | Niche | GS | FB |
|---|---|---|---|---|---|---|---|---|---|---|---|
| **Graduation Alliance** | subject (B2B+adult direct) | **56** | **581** | 9 | 67 | — | **72** | 2 | 1 | — | 0* |
| **Grad Solutions** | direct B2C | 4 | 29 | 18 | 90 | 47 | 7 | 8 | — | — | 0* |
| **Learn4Life** | direct B2C | 14 | 242 | 9 | 85 | 65 | — | 20 | — | 0 | 0* |
| **AHSA** | direct B2C | 7 | 177 | 0 | 40 | — | — | 0 | 1 | 2 | — |
| **ChanceLight** | B2B→district | **0** | **0** | 0 | 0 | — | — | 0 | — | — | — |
| **Category lens** | buyer-problem | — | — | 418 | — | — | — | — | — | — | — | + **Reddit 3,723** |

\* FB recommendations WERE captured (GradSol 9, L4L 6) but all dated 2023 → excluded by the 18-month window (stale). Current third-party voice = Google Maps.

## Strengths (foundation is solid for a creative read)
- **Creative corpus is dense and complete-enough:** 1,029 Google + 81 Meta = **1,110 live creatives** with full copy (Meta incl. DCO `cards[]`), formats, media assets, destinations, run-dates. This is the deliverable's spine.
- **Category VOC is the gold:** Reddit 3,723 (buyer-problem posts: "I dropped out, what now", "GED vs diploma", "finish high school online") + YouTube 418 (393 comments from "GED coach" / "back to school as an adult" creators). This is the demand-side language for messaging.
- **GA's own third-party review voice is real:** 72 Google Maps reviews (sampled from 553), incl. the negative tail — the subject brand's actual customer sentiment.
- **Social creative covered:** IG 282 + TikTok 112 show each brand's organic creative angles.

## Gaps flagged for decision (before analysis)
1. **ChanceLight ≈ empty across consumer platforms (0 ads, 0 consumer VOC).** NOT a capture failure — it's the **whitespace finding**: the most institutionally credible competitor (240K students since 1975) is invisible in the consumer ad market (LinkedIn-recruiting only). Treat as a strategic finding, not a hole.
2. **GA Meta 56/102** — `--meta-shard` per-slice tail; the missing ~46 are near-duplicate per-state variants of captured templates. Distinct concepts are covered. Full literal set needs a `--deep` residential-proxy pass (not run; low marginal value).
3. **BBB unextractable** (JS/bot-walled API; 0 across brands) — **covered by Google Maps** (GA 72 ≫ BBB's 16).
4. **FB recs all pre-window (2023)** → excluded by the 18-mo rule. If the FB "recommend %" signal is wanted, it'd need the window relaxed for FB only.
5. **Niche PerimeterX-walled** — only 3 featured reviews/page accessible (AHSA, GA-American-Academy); the `/reviews/` subpages are PX-locked. Thin (directional only).
6. **AHSA YouTube = 0** (channel too thin for keyless InnerTube search; no channel-uploads endpoint). AHSA's creative is covered by its 177 Google + 7 Meta ads.
7. **ChanceLight IG de-scoped** (burner IG session died at ~200-post volume; `@chancelightcareers` is recruiting-only anyway).

## ⚠ BIAS-CORRECTION RAILS (load-bearing for the competitive lens)
- **Never compare review-star averages across sources or brands.** Own-site testimonials (curated, 100% positive — read as "claimed strengths," not satisfaction), Google Maps (real tail, e.g. GA 69×5★ + 2×2★ + 2×1★), Niche (3 featured = curated). These are NOT comparable. Compare **theme incidence** and **complaint-base to complaint-base**.
- **Reddit needs two integrity corrections (both applied/flagged in normalize):**
  - **r/dropout EXCLUDED (710 records).** It's the **Dropout.tv comedy-show fandom**, not a high-school-dropout community — pure off-topic noise. Auto-dropped by `is_contaminated()` (`community=="dropout"`). The genuine voice lives in GED / highschool / teenagers / findapath / Parenting / AdultEducation.
  - **r/Teachers is the EDUCATOR lens, not the buyer lens — and is thread-inflated.** ~2,100 records (≈37% of reddit) but driven by ~2 viral 500-comment-capped threads ("Not all kids deserve a diploma"). It reflects *teacher* sentiment about dropouts (relevant to GA's district/B2B side), NOT prospective-student/parent enrollment intent. **Do not read it as demand-side buyer voice.** Tier the subs by signal cleanliness:
    - **Cleanest enrollment-intent voice (lead the analysis here):** r/GED, r/highschool, r/AdultEducation, r/findapath, r/teenagers — prospective-student/at-risk-youth problem voice ("catch up on 7 years of missed school", "might not graduate despite 3.7 GPA").
    - **Adjacent / mixed (weight down):** r/Parenting (loose query-token matches pull off-topic threads — filter by topic before use), r/college (post-secondary, tangential).
    - **Educator lens (separate read):** r/Teachers — supply-side sentiment, relevant to GA's district/B2B angle only.
  - Tree pulls (Phase 3) recovered real comment depth, so the corpus is no longer post-only; but a few mega-threads dominate comment volume — prefer **thread/sub diversity** over raw comment counts when sizing a theme.
- **Window is aligned:** all sources now ≥2024-12-25, so within-18mo cross-source comparison is valid; do NOT trend over time beyond 18mo (data doesn't exist before the cutoff by design).
- **Ads kept by last-shown/active** (current-in-market), so a 2023-launched still-running evergreen is in — correct for a creative inventory, but don't read ad `created` dates as a "what's new" signal without checking `is_active`/`end`.

## GO / NO-GO for analysis
**GO.** The creative spine (1,110 ads) + category demand voice (4,100+ Reddit/YouTube) + GA's own Maps reviews are sufficient for the creative-strategy deliverable (angle/offer/format teardown × competitor + whitespace + recommended directions). The thin brand-review tail is a documented characteristic of the vertical, not a blocker.
