ADR 0018 SCOPING • VISUAL LOGIC CHAIN • 2026-04-21

Campaign Logic Chain

End-to-end map from brief input through cell selection, lander routing, tool completion, dynamic post-result monetization, and Stage R signal capture. Scopes the taxonomy expansion that invalidates ADR 0013’s 3-value monetization_path enum — this page is the scoping conversation for ADR 0018 (Expanded Monetization & Lander-Routing Taxonomy).

Why this exists

Today’s monetization_path enum (ADR 0013 Accepted 2026-04-19) has 4 values: affiliate_online / direct_school / content_only / hybrid. Operator 2026-04-21 clarification surfaces two material expansions: (1) the economic-endpoint enum needs 6 values, not 4, to distinguish aggregator-portal vs direct-online-school vs ping/post-marketplace vs organic-state-school vs content-only vs hybrid-dynamic; and (2) lander mode is a separate orthogonal axis with 3 values that describes how the ad enters the funnel, not where the money comes from. The current schema conflates these into a single dimension. This page visualizes the new two-axis model so ADR 0018 can be authored next session against a concrete picture, not against words.

Current state (active today)
Future state (partnership pending)
Organic-only (no paid traffic)
Always available (content/brand)
Not applicable / nonsensical combo
1 The Full Logic Chain
Brief → cell selection → copy+creative → lander → tool completion → dynamic monetization routing → Stage R. Color-coded by current vs future state. Persona-v2 tool-as-proof thesis holds at every routing node.
flowchart TD
  classDef input fill:#0d0d1a,stroke:#2a3a6a,color:#6a8cf7,stroke-width:1px
  classDef engine fill:#12121a,stroke:#4a2a4a,color:#af6adf,stroke-width:1px
  classDef stage fill:#0d1a0d,stroke:#1a3a1a,color:#4acf4a,stroke-width:1px
  classDef landing fill:#1a1a0d,stroke:#3a3a1a,color:#cfcf4a,stroke-width:1px
  classDef current fill:#0a2a0a,stroke:#1a4a1a,color:#4acf4a,stroke-width:2px
  classDef future fill:#1a1a0d,stroke:#3a3a1a,color:#cfcf4a,stroke-width:1px,stroke-dasharray:4 4
  classDef organic fill:#0d0d1a,stroke:#2a3a6a,color:#6a8cf7,stroke-width:1px,stroke-dasharray:4 4
  classDef always fill:#1a0d1a,stroke:#3a1a3a,color:#cf4acf,stroke-width:1px
  classDef signal fill:#1a0d0d,stroke:#3a1a1a,color:#cf8a4a,stroke-width:1px

  A["Campaign Brief
vertical_tag · intends_paid_traffic
projected_spend_usd · persona_segments · goal"]:::input A --> B["Strategy Engine — Cell Selection
32-cell corpus walk per ADR 0013 rule_12
For each selected cell, resolve:
• monetization_path (1 of 6)
• lander_mode (1 of 3) NEW
• archetype_tag (only for archetype_* modes)
• proof_mechanism_id (FK to tool_registry)
• paid_traffic_eligible (derived + persona AND school gate)"]:::engine B --> C["Stage 3 + 4 — Copy × Creative
Angle-per-cell copy matrix
Creative variants per angle × platform
Ads route to lander per lander_mode"]:::stage C --> D{"Lander Mode"}:::landing D -->|"content_site_tool_direct"| E["Tool on content site
Long-form content surrounds tool
Primary for organic + high-quality signal"]:::landing D -->|"archetype_tool_embedded"| F["Archetype lander
Tool embedded inline
Bridges between ad aggression + tool proof"]:::landing D -->|"archetype_prequalifier"| G["Archetype pre-qualifier
2-3 Q quick qualification
→ then routes to Tool"]:::landing E --> H F --> H G --> H H["Tool Completion — Dynamic Routing Decision
User sees RESULT + options
System evaluates:
• HHI · location · intent · vet status · credit · school preference
• Available partner routes (current state)
• Consent state (for ping/post compliance)"]:::engine H --> I1["★ affiliate_aggregator_portal
$35 CPL external partner
CURRENT primary revenue today"]:::current H --> I2["affiliate_direct_online_school
SNHU · Purdue Global · WGU · Strayer
FUTURE — pending direct deals"]:::future H --> I3["aggregator_marketplace_ping_post
Education Dynamics · Archer · LeadHoop · PX
FUTURE — multi-buyer with consent"]:::future H --> I4["organic_state_school_redirect
UT · OU · UF · UM · Bama · state flagships
ORGANIC ONLY (no paid traffic)"]:::organic H --> I5["content_only
Deep educational dive
ALWAYS AVAILABLE — brand + SEO moat"]:::always I1 --> S["Stage R — Signal Capture
Which monetization_path × lander_mode × archetype_tag × proof_mechanism_id combos converted?
Feeds Winners Vault + exploration vault
Closes the loop to next campaign's Strategy Engine"]:::signal I2 --> S I3 --> S I4 --> S I5 --> S S -.->|"winners_vault_readback v0.4.0"| B
Reading the chart: the dynamic routing decision at tool completion is the new load-bearing concept. In today’s ADR 0013 shape, each cell binds to exactly one monetization_path up-front. In the proposed shape, most cells are hybrid_dynamic — the cell emits a tool that gathers the data, and the routing-endpoint decision is deferred to tool-completion time based on that data. The operator called this out explicitly: “The tool produces the data that determines the routing.”
2 The Two-Axis Decision Matrix
monetization_path (6 values) × lander_mode (3 values) — which combinations are valid, which are strategically preferred, which are nonsensical. Current state vs future state labeled per cell.

2.1 — monetization_path (proposed 6 values)

Enum value Paid-traffic eligible State Description
affiliate_aggregator_portal Yes CURRENT Today's $35 CPL external partner (LeadAmplify-style matching portal that accepts a degree sub-param). Primary revenue channel.
affiliate_direct_online_school Yes FUTURE SNHU · Purdue Global · WGU · Strayer direct relationships. Cuts aggregator middleman, preserves paid-traffic eligibility, richer framing allowed (“matched with SNHU”).
aggregator_marketplace_ping_post Yes FUTURE Education Dynamics · Archer · LeadHoop · PX.com ping/post or host/post marketplaces. Multi-buyer lead distribution from our tools with explicit consent capture.
organic_state_school_redirect No (organic only) ACTIVE ORGANIC Texas State · OU · UF · UM · Alabama · state flagships. UTM-tracked outbound to school application portals. Brand-building + potential future direct rev-share.
content_only No ALWAYS AVAILABLE Deep educational article or tool with no immediate monetization hook. CPM-reduction on parallel paid campaigns + topical authority.
hybrid_dynamic Per sub-route OPERATIONAL TARGET Tool completes → result + dynamic options routed by HHI · location · intent · vet status · school preference. Most cells will live here.

2.2 — lander_mode (proposed 3 values, NEW orthogonal axis)

Enum value Entry point Tool placement Best for
content_site_tool_direct Ad → content-site tool page Tool IS the lander; surrounded by long-form educational content High-quality-signal campaigns · organic-path cells · state-school redirect · content-heavy audiences
archetype_tool_embedded Ad → archetype lander Tool embedded inline in the lander Bridges ad-aggression to tool-proof. Advertorial or authority-notice framing + tool below the fold.
archetype_prequalifier Ad → archetype pre-qualifier 2-3 quick questions → routes to tool Vet-eligibility gates · HHI disqualifier · employer-tuition filter · high-qualification-value campaigns

2.3 — monetization_path × lander_mode combinations

↓ monetization_path \ lander_mode → content_site_tool_direct archetype_tool_embedded archetype_prequalifier
affiliate_aggregator_portal ✓ CURRENTTool on site → $35 CPL partner after completion. Primary today. ✓ CURRENTArchetype advertorial/authority + tool inline → partner. Also primary today. ✓ Some cellsQuick qualifier (HHI/age) → tool → partner. Used for filtering.
affiliate_direct_online_school FUTUREPost direct deal: tool on site → SNHU/WGU branded flow. FUTUREBranded archetype + tool inline → direct school. FUTUREVA-eligibility or HHI qualifier → tool → matched direct school.
aggregator_marketplace_ping_post FUTUREPost-consent: tool collects data → ping/post to multi-buyer marketplace. ✓ Strongest fitArchetype lander with embedded tool + explicit TCPA/consent capture → ping/post. Pre-qualifier doesn't fit ping/post economics (marketplaces want full intake before buying).
organic_state_school_redirect ✓ Primary pathContent SEO + tool → UTM-tracked outbound to state school portal. Persona B traffic today. Archetype framing is overkill for organic; users arrive via SEO not paid. Organic doesn't need pre-qualification — user is already segmented by search intent.
content_only ✓ DefaultArticle or tool page with no monetization hook. CPM-reduction + authority. Archetype-style aggression doesn't fit brand-signal-only intent. No conversion endpoint to qualify for.
hybrid_dynamic ✓ Most flexibleTool on content site → result + dynamic routing per user profile. Default target. ✓ SecondaryArchetype lander + tool inline → dynamic routing at completion. ✓ When gating mattersPre-qualifier filters first → tool → dynamic routing. Adds friction but richer data.
Hot takes from the matrix: (a) content_site_tool_direct × hybrid_dynamic is the operational target for most cells going forward — it's the cleanest expression of the persona-v2 tool-as-proof thesis. (b) aggregator_marketplace_ping_post × archetype_tool_embedded is the only natural fit for ping/post because marketplaces price on full intake + consent, not on qualified-only leads. (c) organic_state_school_redirect is content-site-only by construction — no paid traffic means no archetype-lander use case. (d) content_only only exists in the content-site lane; it's an anti-pattern to wrap brand-signal content in an archetype lander.

2.4 — How this maps onto the current 32-cell corpus

Migration implication (non-binding, for ADR 0018 drafting): today all 32 cells carry monetization_path: affiliate_online post-ADR-0013 migration (except Persona B–targeted cells which flipped to direct_school or hybrid). Under the proposed expansion, the bulk of cells should reclassify as hybrid_dynamic × content_site_tool_direct, with select cells reclassified per the operator's persona/cell mapping work (BR-2 of ADR 0013 is the precedent). Worker 3.5-C scope amendments would land in a Phase 5 follow-up session.
3 Worked Examples
Three representative campaign briefs walked through the full chain — brief → cell → lander → tool → dynamic monetization → Stage R.

Example 1 — S1.F6 · Parent of HS senior · HHI $140K · TX resident

Brief: vertical_tag=edu, intends_paid_traffic=true, persona_segment includes Persona B (parent-of-HS-senior), goal=lead_gen. Operator reserves budget for exploration on parent segment. Cell selected: S1.F6 (aid-letter-decoder-adjacent). Strategy Engine resolves monetization_path: hybrid_dynamic, lander_mode: content_site_tool_direct, proof_mechanism_id: edu_efc_calculator. Copy + Creative: Stage 3 emits ad variants framing “see your actual combined aid in 2 minutes” with tool-backed credibility. Creative matches UGC library for parent demographic. Lander: Ad clicks to content_site_tool_direct — EFC Calculator tool page on degreesources.com, surrounded by long-form aid-decoding content. Tool completion: User enters HHI $140K, TX location, “kid attending traditional college” signal. Dynamic routing evaluates: HHI > $100K + TX + on-campus preference → NOT a fit for $35 CPL portal (portal doesn't serve this segment). Monetization routing: Tool result screen shows: (a) calculated aid breakdown + sources, (b) organic_state_school_redirect dynamic option to UT Austin / Texas State application portals (UTM-tracked), (c) optional “also consider an online program” path to the $35 CPL partner if user self-selects that. Stage R signal: Logs which sub-route converted (state-school click-out vs partner conversion vs content_only exit) — feeds Winners Vault per-cell readback.

Example 2 — S6.F8 · Post-9/11 veteran · exploring online graduate programs

Brief: vertical_tag=edu, persona_segment=Persona D (veteran), goal=lead_gen, intends_paid_traffic=true. Cell selected: S6.F8 (full veteran picture: Ch33 + MHA + Yellow Ribbon + VR&E + TEB). Strategy Engine resolves monetization_path: hybrid_dynamic, lander_mode: archetype_prequalifier, proof_mechanism_id: edu_gi_bill_calculator. Pre-qualifier filters VA status and service era before surfacing the calculator. Copy + Creative: Archetype lander with vet-identity-first framing; 2 pre-qual questions (“Post-9/11 status?” and “Active / discharged?”) route to tool. Lander + Tool: User answers qualifier → GI Bill Calculator computes MHA + Ch33 coverage + Yellow Ribbon match based on target school tier. Tool completion: Tool identifies Yellow Ribbon match with $18K annual gap coverage. Dynamic routing evaluates: veteran + graduate + Yellow Ribbon eligible + online preference. Monetization routing: Two sub-routes offered: (a) affiliate_direct_online_school if SNHU or Purdue Global graduate program matches (FUTURE — falls back to aggregator portal today), OR (b) organic_state_school_redirect to a TX State or Alabama Yellow Ribbon program if user prefers on-campus. Stage R signal: Logs which sub-route converted. Yellow Ribbon school attribute is captured separately from monetization_path — it's a SCHOOL attribute, not a path.

Example 3 — S7.F1 · Employer tuition reimbursement eligible

Brief: vertical_tag=edu, persona_segment=Persona C (career changer with employer benefits), goal=lead_gen. Cell selected: S7.F1 (dual-§127 household / employer tuition). Strategy Engine resolves monetization_path: hybrid_dynamic, lander_mode: content_site_tool_direct, proof_mechanism_id: edu_employer_tuition_checker. Copy + Creative: “See what your employer covers in 3 minutes” — §127 anchor tied to tool-backed proof. Lander + Tool: Tool on content site surrounded by employer-tuition explainer content. User enters employer, household status, spouse employer. Tool completion: Tool shows $10,500 combined cap (dual-§127 household stacking). Dynamic routing evaluates: employer benefit eligible + explicit “yes, I consent to being contacted” checkbox. Monetization routing: If consent captured + profile fits multiple buyers → aggregator_marketplace_ping_post to Education Dynamics / Archer / PX multi-buyer distribution (FUTURE — falls back to $35 CPL portal today). If user prefers direct-online path → affiliate_direct_online_school route instead. Stage R signal: Captures consent-state + which buyer(s) accepted the ping + final CPL distribution per buyer.
4 What Changes in the Research Layer
Concrete delta vs current state. This is the scope ADR 0018 would define — not implemented in this session.

4.1 — ADR footprint

4.2 — Schema bumps needed

4.3 — Skill implications

4.4 — Worker 3.5-C implications

Worker 3.5-C scope (the cell-reassignment worker that walks the 32-cell corpus post-ADR-0013): already scoped to walk each cell and set monetization_path based on persona target. Under ADR 0018, Worker 3.5-C expands to also set lander_mode per cell. Not a huge scope delta — same cell-walk, two fields to set instead of one — but the walker needs the new enum values locked before it runs. Block 3.5-C on ADR 0018 ruling.
5 Open Questions for Operator
Ambiguities the mapping exposes. Each one needs operator ruling before ADR 0018 can be drafted. Numbered for walkthrough.
OQ-1How is hybrid_dynamic routing logic itself defined per cell?
hybrid today (ADR 0013) uses a hybrid_routing block with paid_subset_segment_match[] and direct_school_subset_segment_match[] — a 2-way fork. hybrid_dynamic is an N-way fork across up to 4 active monetization paths plus a content-only fallback. Proposal: new dynamic_routing_rules[] array per cell where each entry is {predicate, target_monetization_path, priority} and the engine evaluates them at tool-completion time. Who owns authoring these rules? The cell-angle-rules author, or a separate per-tool routing config? (Recommend: per-tool because the tool knows what data it collects; operator decides cell overrides.)
OQ-2Does lander_mode live on the cell, or on the angle, or on both?
Cells can have multiple angles; angles could plausibly use different lander_modes (e.g., a “just-show-me-the-math” angle routes to content_site_tool_direct, while a “quick-qualifier” angle on the same cell uses archetype_prequalifier). Three options: (a) lander_mode is cell-level, all angles inherit; (b) lander_mode is angle-level, cell enumerates allowed set; (c) both — cell declares allowed set, angle picks one. Recommend (c) — matches how monetization_path already works on the cell with per-angle override potential.
OQ-3What's the consent/tracking model for organic_state_school_redirect?
ADR 0013 BR-4 established utm_source=degreesources · utm_medium=organic · utm_campaign=<cell_id> · utm_content=<tool_id> · utm_term=<persona_id> for direct-school outbound. Is that still correct for organic_state_school_redirect? And specifically: zero PII leaves our domain (pure UTM) or do we capture email on our side before redirect? Recommend zero PII + UTM only for organic path — preserves “we didn't sell your data” credibility that's structurally different from aggregator marketplace.
OQ-4Minimum volume threshold for aggregator_marketplace_ping_post to make sense?
Ping/post marketplaces typically require 100+ leads/month to open an account. Cells with sub-threshold volume shouldn't route here — they'd either fail account-opening or get deprioritized by marketplaces. Does the strategy engine need a min_monthly_volume_for_path[] config, or is this an operator-manual decision? Recommend config with default so the engine auto-flips to affiliate_aggregator_portal fallback when projected volume is below the marketplace threshold.
OQ-5Should affiliate_aggregator_portal and affiliate_direct_online_school coexist on the same cell, and if so, how does the engine choose?
A cell serving the adult-returner persona could route to either SNHU direct OR the $35 CPL portal, depending on whether direct partnerships are live. Options: (a) cell declares a single path, operator flips when direct deals close; (b) cell declares a preference order [direct, portal] and the engine uses whichever is active; (c) hybrid_dynamic swallows this naturally as sub-routes. Recommend (c) — this is exactly what hybrid_dynamic is for. Direct and portal are sub-routes, not separate monetization_path assignments.
OQ-6Yellow Ribbon as a school attribute — where does it live in the schema?
Operator clarified: Yellow Ribbon is a SCHOOL attribute (eligibility to participate in the YR program), not a monetization_path. Both online direct schools (SNHU, Purdue Global) and state/private universities can participate. Proposal: add yellow_ribbon_participant: boolean + yellow_ribbon_annual_gap_coverage_usd: integer|null to the direct-school-partners.json schema AND to a new state-school-partners.json schema. Routing logic reads the attribute at tool completion, not the monetization_path. Does this match operator intent, or should YR be its own sub-route type?
OQ-7Does content_only × content_site_tool_direct need a distinct label?
Matrix row shows content_only is only valid with content_site_tool_direct lander_mode. If the combination is unique, the two fields carry redundant information on content-only cells. Alternative: content_only implies content_site_tool_direct by default and the lander_mode field is null/inapplicable. Recommend allow null lander_mode on content_only cells + validator enforces the constraint. Clean schema; no redundant data.
OQ-8Where does the dynamic routing decision logic physically execute?
At tool completion, the system evaluates user profile + available partner routes + consent state and picks a monetization_path. This logic can live: (a) in the tool's JavaScript on the content site; (b) in a server-side /route endpoint on degreesources.com; (c) in FourthRight (the offer platform). Options trade off latency vs ops visibility vs A/B test control. Recommend (b) — server-side endpoint on our domain, with FourthRight ping/post happening downstream of that decision. Lets us log the decision + outcome for Stage R even when the final click leaves our domain.
OQ-9Naming: is the 6-value enum the right final shape, or should we collapse any pair?
Argument for collapsing affiliate_aggregator_portal + aggregator_marketplace_ping_post into one aggregator_* path with a sub-type: both go through aggregators, just different economic models. Counter: economics ARE materially different ($35 CPL single-buyer vs per-lead ping/post multi-buyer), compliance posture is different (portal: standard affiliate disclosure; ping/post: explicit TCPA + multi-buyer consent), and operational setup is different. Recommend keep separate — collapsing them loses the economic-regime distinction the enum exists to capture.
OQ-10Does hybrid_dynamic replace the current hybrid value, or coexist?
ADR 0013's hybrid is a 2-way fork (paid_subset vs direct_school_subset). hybrid_dynamic is N-way. Options: (a) rename hybridhybrid_dynamic and expand its semantics — clean migration, no dual concept; (b) keep both with hybrid as legacy 2-way fork and hybrid_dynamic as N-way — ugly but lossless. Recommend (a) — the 2-way fork is a degenerate case of the N-way fork.

Next action

Operator walks through OQ-1 through OQ-10, rules each one, then ADR 0018 is authored in a follow-up session against the ruled decisions. That ADR drives the schema bumps in §4.2, the skill amendments in §4.3, and expands Worker 3.5-C scope. Commit this page + flag in the Session Log on the main specs dashboard. No research-layer files are touched until ADR 0018 ships.