GO — PIVOTED SCOPE, GATEDComposite 7.5 / 10Full-platform bet: KILLED

The enrollment & billing ledger for per-location franchise marketing

Who is enrolled, at what tier, since when, what were they charged — and does it tie out. The one thing two live AC franchise clients need, no incumbent sells, and the dormant FranchisePromo codebase is closest to already being.

$51.5K
Billing errors caught BY HAND in one monthly close across two house accounts
$1.2–4K/mo
What Toastique franchisees already pay per location for marketing programs
82%
Of 4,000 US franchise brands have <100 units — the band incumbents price out
2% → 44%
Participation lift from one-click opt-in (Tropical Smoothie case)
1Discover7.5
2ValidatePASS
3FinancialGO*
4SentimentPRD
5Namingskip
6Brandingskip
7Buildgated
8Launch
9Advertise
10Metrics
Executive Summary

Three findings drive the verdict

The problem is an accounting problem wearing a marketing costume

Ad-fund opacity is the FTC top-12, actively-litigated pain of the category (Bojangles, Subway, Maaco, FAT Brands). Incumbents sell campaign execution; nobody sells the ledger.

The mechanic: one ledger both sides trust

Effective-dated enrollment, versioned rates, period close, reconciliation diff. Franchisor revenue KPI (participation) and platform revenue rise together. Execution tooling is the delivery vehicle; the ledger is the product.

The moat: AC already operates this business by hand

$2.67M/yr of franchise CTV under management, two live bespoke client portals edited daily, and a $222K monthly invoice reconciled manually. Competitors have features; AC has the operating scar tissue the product encodes.

Phase 1 — Discover

Market: an $18B fund pool with an unserved majority

845,000 US franchise establishments, $921.4B output (IFA 2026). National ad funds average ~2% of gross revenue; 55% of franchisors additionally mandate local spend. Only 5.3% of franchisors ever cross 100 units — and the incumbents all price for the ones who do.

CompetitorFocusPricing (3rd-party est.)ICPWeakness
SOCiSocial, listings, reviews, "Genius Agents"~$23K/yr avg ($15K–$62K)Enterprise, 50+ locationsPrices out sub-20-unit brands; desktop-first; mobile app weak
Ansira (BrandMuscle + SproutLoud)Co-op / ad-fund mgmt, brand compliance~$4,500/mo entryMid-market & enterprise networksThree merged legacy stacks; fund execution, not fund accountability
RallioFranchise social + reputation$50–$200/loc/moSMB franchiseSocial-only; reviewers flag poor mobile experience
HyperlocologyPer-location paid media automationUndisclosed100–10,000 locationsParameterized campaign assembly, commercially opaque
Tiger PistolLocal paid social at scaleUndisclosedQSR, resellersPaid social only; no ledger, no fund logic
ScorpionAgency-software hybrid$3–7K/mo + $5–50K setupService franchisesAgency cost structure, not SaaS
FranConnectFranchise ops suite$1–2K/mo realistic entryOps-led franchisors"UX is terrible… not intuitive at all" (verbatim review); marketing bolted on
AdplorerLocal marketing + ad-fund trust angleFrom ~€750/moAgencies, networksClosest conceptual rival to the ledger wedge — the one to watch

Pricing sourced from review aggregators and comparison sites, not vendor rate cards — mystery-shop before quoting in any deck.

Phase 2 — Validate

Pain: litigated externally, documented internally

External evidence says franchisees sue over exactly this. Internal evidence says AC hand-fights the same leak monthly, in two unrelated client systems.

Pain vs incumbent coverage (1 = unserved)

Ad-fund opacitycoverage 1/5

FTC top-12 complaint; Bojangles, Subway, Maaco, FAT Brands litigation

Per-location attributioncoverage 2/5

Meta + Google both claim the same conversion; no franchise-aware dedup

Mandated LSM spend unverifiedcoverage 1/5

1–3% of gross owed; verification manual or nonexistent

Franchisees never open the toolscoverage 2/5

Universal mobile-first gap across incumbent reviews

Tool sprawlcoverage 2/5

49% of franchisors report overspend from overlapping tools

Corporate request bottleneckcoverage 3/5

1 designer serving 180+ locations; 3-week turnarounds

Participation: the metric that decides franchise martech

% of locations participating in local marketing programs. Baseline tooling achieves 2%; one-click opt-in reached 44% (+31% weekly sales for participants). CHHJ today: 84 of 370+ (~25%) — 275 locations of headroom.

The decisive internal evidence

  • Toastique franchisees pay $1,500–$4,000/mo tiers via a Stripe link with a free-text location field — a product emulated by a form field
  • One CHHJ monthly close, by hand: ~$500 stale-tier overbill, 3 phantom-active locations, ~$51K understated retargeting
  • One Toastique tier move = 4 systems touched (Stripe, billing sheet, chat, email)
  • Caveat held honestly: WTP proven for programs, not yet for software
Phase 3 — Financial Viability

Economics: priced against participation, not seats

Two payer patterns discovered in AC's own book. Pattern B (franchisee-funded) has the flywheel: platform revenue and the franchisor's participation KPI optimize the same number.

Pattern A — brand-funded (CHHJ shape)

$2.5–6K/mo + $75–150/participating loc
  • CHHJ at 84 participants: ~$6.3–12.6K/mo
  • At full 370-location penetration: $27.7–55.5K/mo
  • Never stack %-of-spend on the media management fee (Item 11 optics)

Pattern B — franchisee-funded (Toastique shape, preferred)

$50–100 per active subscription/mo
  • Franchisor pays nothing; platform is the enrollment/billing rail
  • No merchant-account-cut optics; explainable to the paying franchisee
  • Cheap enough that the franchisor never considers building it
BEAR
$30K ARR

1 house account converted, 0 external. Product remains internal tooling that already pays for itself in recovered close-hours and caught billing errors.

BASE
$250K ARR

2 house accounts + 3 external systems, ~40 participating locations each. A real product line with two live references.

BULL
$900K ARR

2 house + 8 external; fund-transparency module pulls mid-market systems at $500–1,500/mo module pricing.

Why GO is cheap: the worst credible case — gates pass, build succeeds, zero external customers — still leaves AC with a reconciliation layer that already catches five figures of monthly billing errors currently found by eye. The downside is a useful internal tool. Build cost ≈ 100 agent-assisted hours, ~$0 marginal cash.

Phase 4 — Build-State Audit

What is actually there: real plumbing, fake origination

241 source files, ~60 pages, 55 tables, 22 edge functions. Every page queries live Supabase — but the only thing that ever populated performance data is a Math.random() seeder, and googleads.googleapis.com appears zero times in the repo.

Reports suite (5 report types + exec summary)
Proven against 8,621 performance rows
REAL
Programs + enrollment CRUD
Real writes, real financial rollups
REAL
Stripe billing (checkout, portal, invoicing)
create-bdf-invoice built, never wired to UI
REAL
AI functions (insights, exec summary, content)
Real Gemini calls via Lovable gateway
REAL
Realtime messaging hub
Best page in the app — presence + subscriptions
REAL
Compliance "automated check"
A 2-second setTimeout with a fabricated toast
PARTIAL
Reviews + social publishing
Status writes; nothing publishes anywhere
PARTIAL
Team invitations
"Invitation sent!" sends no email
PARTIAL
Google Ads deploy
Literal comment: "Actual Google Ads API calls would happen here"
MOCK
Meta Ads deploy
Identical stub; demo campaigns shown on live app
MOCK
Benchmarking
21 invented industry constants; rigged leaderboard
MOCK
Attribution model
Hardcoded 1.15 / 1.0 / 0.9 boost factors
MOCK

Security + trademark P0 (before ANY sales conversation)

Live RLS policy lets any authenticated user self-insert as super_admin of any brand, on a publicly-published app with API-level open signup — which currently contains a real client's franchisee roster and live trademark as demo data. Fix list: audit items 3–9 (~2 weeks) + fictional demo brand (hours). Non-negotiable, and independent of the GO/KILL vote.

Strategy

The wedge: be the rail, not the platform

Three wedge options were evaluated. C (AI campaign factory) is the most crowded square on the board — killed. B (fund transparency) is the differentiating module, not the lead. A, narrowed to the ledger, is the motion.

WEDGE A — LEAD

Agency-led enrollment & billing rail

Dogfood via strangler-fig: build the ledger spine, migrate Toastique's enrollment/billing module first (bounded, franchisee-funded, failure contained to a billing-sheet diff), CHHJ second. Two live references, then external systems.

WEDGE B — MODULE

Fund participation & spend ledger

Sold as participation/spend visibility and FDD-risk reduction — never as an "audit" (AC spends the fund; independence would be compromised). $500–1,500/mo module. Excellent third customer, terrible first.

WEDGE C — KILLED

AI campaign factory per location

Feature-parity race against funded specialists (Tiger Pistol, Evocalize, Hyperlocology) judged on ad-platform integration depth. Four months of zero deployments against a fully-built schema is the market's answer.

ICP priority stack

TIER 1 — CONVERT

CHHJ + Toastique (house accounts)

Migration, not sale. Data-rights permission required first.

TIER 2 — PARTNER-SOURCED

Franchise CTV advertisers via MNTN; AC pipeline franchise prospects

Warm, evidence-led, agency-attached.

TIER 3 — EXPANSION

Emerging franchisors, 10–80 units, optional local co-op on mandatory national fund

Where the ledger must be defensible and nobody has one. Requires agency-neutrality policy decision.

Annual cost vs incumbents (illustrative, USD)

FP figures are revenue potential at participation-aligned pricing, not cost to a single buyer — the point is the model monetizes participation growth, which incumbents charge for regardless of adoption.

Franchise-Native Thesis

Eight primitives. Five unserved by the entire field.

Two agents mapped the franchise-specific primitives against our live schema and against ~35 incumbent vendors. SOCi and peers are built for multi-location businesses generally — retail chains, bank branches and franchises all get the same product. None of them model the franchise agreement itself.

PrimitiveOur schemaField coverageBuildVerdict
1. Two-party trustPARTIALUnserved by allLPrerequisite — everything else is theater without it
2. Fund structureABSENTUnserved (Ansira reversed-flow; EmLedger GL-only)XL → MThe moat. M at Toastique via existing POS feed
3. Participation & enrollmentMODELEDSurface onlyMLead feature. 174 real rows, best ratio in the set
4. Territory rightsPARTIALUnserved as a runtime constraintM9,125 real zips — an asset you would pay to acquire
5. Lifecycle eventsABSENTUnserved on the marketing sideLEasiest beachhead for new logos
6. Compliance teethPARTIALUnserved (all do pre-publication policing)LCore unserved cluster; dispute-grade trail
7. Benchmark suppressionPARTIALSOLVED — in accounting toolsMTable stakes. Build for credibility, never price on it
8. Multi-payer billingPARTIALReal prior art (Franify, Tiger Pistol)LMechanics commoditized; the standing is not

Ansira's fund engine points the wrong way

BrandMuscle + SproutLoud ($7B in funds, 500+ brands) is dealer MDF: corporate allocates dollars down, partners claim reimbursement. A franchise fund flows the opposite way — franchisees contribute upward into a pool held in trust. Ansira has no contribution object because their partner never contributes. Reversed money flow, not a feature gap.

The moat's blocker is already solved at Toastique

Fund obligations are a % of gross sales, and there is no sales data in any of our 55 tables — which made fund accounting XL and blocked. But AC already ingests Toastique POS data from Snowflake for the report fleet. The hardest dependency in the most defensible primitive exists today at one house account, putting the moat in the pilot rather than in year two.

SOCi will not follow — incentive, not architecture

They could buy a fund engine and copy suppression in a sprint. What they cannot do is sell corporate a product whose purpose is to let franchisees audit corporate. Their permission model is delegation from corporate — a grant corporate can revoke — which is exactly what makes the numbers non-dispute-grade. Their current pitch is "100% adoption, zero training" via agents: a bet on removing the franchisee from the loop entirely.

The key negative result: across ~35 vendors checked, no product scores on more than two of the five franchise-model primitives, and none combines franchisee-paid billing with fund accounting and participation. The closest — Franify, launched 8 April 2026 and purpose-built for franchise marketing — shipped with exactly one of the eight. Zero seed or Series A funding events for franchise marketing software surfaced across 2024–2026. The category is consolidating, not attracting entrants.

Corrections we made to our own analysis

  • Benchmarking demoted to table stakes. Qvinci, Fathom and Fran Metrics have shipped identity suppression for years in Item 19 reporting. Build it for credibility; never price on it.
  • Multi-payer billing demoted. Franify and Tiger Pistol already do franchisee-paid checkout. What is still unserved is the franchisee's standing — a view corporate cannot revoke.
  • bdf_transactions is not a fund model. A flat ledger with no pool, balance, contractual rate or fiscal period. It survives as the layer beneath one.

Positioning

The operating system for franchise marketing, built for the 82% of brands SOCi will not serve — entered through the money, not the megaphone.

  • 48% of brands rely on an honor system for local marketing spend they contractually require (AFMR 2025)
  • The FTC Rule requires disclosing whether the fund is audited — "no" is a compliant answer
  • ~$35B of the ~$70B annual co-op pool goes unused yearly; root cause #1 is lack of transparency
Phase 7 preview — Build

MVP scope: ~100 gated hours, one bounded module

Success criterion: the September Toastique tier changes are executed once, in-product, and propagate to Stripe and the billing sheet without the four-system manual sequence.

MUST
  • Location registry + alias resolution
  • Versioned tier/rate catalog
  • Effective-dated append-only enrollment ledger
  • Multi-account Stripe adapter + validated location picker
  • Reconciliation diff view
  • Period close + lock
SHOULD
  • Honest pause semantics
  • Per-brand benchmark display rules (count suppression)
  • Fictional demo brand
  • Franchisee mobile ledger view
V2
  • CTV (MNTN/Looker) ingestion
  • Fund-transparency franchisee statements
  • CHHJ ledger migration
  • Real Google/Meta ads integration
WON'T
  • Social publishing
  • Review ingestion + response
  • GBP management
  • AI campaign factory
  • Marketplace/agency network
LayerChoice
FrontendReact + Vite (existing Lovable app)
BackendSupabase Postgres + edge functions (existing, 55 tables)
AuthSupabase Auth — RLS rebuilt per audit P0b
BillingStripe multi-account (Connect-style)
Ingestionwebhook-receiver (already real) + CSV import
ReportingExisting report suite (proven on 8,621 rows)
AIExisting Gemini edge functions (insights, summaries)
HostingLovable Cloud (existing)
AnalyticsGA4 + PostHog on product surfaces
Dev motionClaude Code + Lovable MCP agent-assisted
Phase 8 preview — Launch

Distribution: warm on all six channels

House accounts
CHHJ + Toastique convert by migration, not sale
MNTN partner referrals
Franchise CTV advertisers, partner-sourced
FDD/Item 11 angle
Franchise attorneys + CFO content on fund defensibility
Agency network
AC/Nativz franchise prospects via existing pipeline
Franchisee pull
Owners demand the ledger their peers show them
Benchmark content
Participation-rate benchmarks (count-suppressed) as SEO/AEO surface

Ad plan note: no paid acquisition in year one. This is an agency-led, migration-first motion; the AC O1–O4 funnel applies only if Tier 3 expansion opens, and any campaigns deploy PAUSED per house rule.

Phase 10 preview — Control

Metrics that decide the next verdict

KPIDefinition / baseline
Ledger accuracyInvoice number = app number, zero manual reconciliation
Participation rateEnrolled / total locations per system (the buyer KPI)
Billing error catch rate$ caught by reconciliation diff (baseline: $51.5K/mo found by hand)
Close timeHours from period end to locked, billable ledger
Franchisee MAUSecond-user problem: >1 real login is milestone zero
Tier-change latencyRequest → propagated to Stripe + sheet (baseline: days, 4 systems)
Net revenue retentionParticipation growth inside existing systems
External logosSystems not managed by AC media (agency-neutrality test)
Stress Test

Shark Tank: five challenges, five answers

The exec panel challenged the pitch adversarially. Verdicts recorded verbatim.

H
HamletFinance shark

Challenge: Nobody has paid FranchisePromo a dollar in four months of existence. Why is willingness-to-pay anything but a hypothesis?

Response: Toastique franchisees pay $1,200–$4,000/mo for programs today, enrolled through a free-text Stripe field. CHHJ corporate pays a $222K monthly invoice reconciled by hand. WTP is proven for the programs; the software monetizes the ledger both sides already depend on.

Verdict: Conceded, with the caveat that program-WTP ≠ software-WTP priced into the bear case.

A
AtlasMarket shark

Challenge: SOCi has 300,000 deployed agents and a category narrative. You have 55 tables and one user. Why does this not get steamrolled?

Response: SOCi sells campaign execution to 50+ location enterprises at a $15–20K floor. The ledger wedge sells fund accountability to the 82% of brands under 100 units that SOCi explicitly does not serve. Different buyer, different job, different price point — and Ansira consolidating enterprise proves the low end stays open.

Verdict: Accepted for the wedge; rejected for any future "full platform" repositioning without new evidence.

P
PiperQA shark

Challenge: The audit found fake buttons, a broken demo, and critical RLS holes on a public app holding a real client roster. Why should anyone trust this team with franchise billing data?

Response: The audit was ours, unprompted, and its P0 list is the plan: security hardening lands before any design-partner data, the College Hunks demo brand is replaced with a fictional one, and every fake action is deleted or rebuilt. The ledger scope is 8 tables done correctly, not 55 done loosely.

Verdict: Conditional pass — gated on the P0b security list shipping first. Non-negotiable.

S
SageDesign shark

Challenge: Every incumbent is desktop-first and unloved. What makes this one the tool a franchise owner actually opens?

Response: The primary persona is an owner on a phone between shifts. The product ships mobile-first with exactly three screens that matter: what am I enrolled in, what did I pay, what did it produce. One vendor saw 176% login lift from mobile alone — the bar is embarrassingly low.

Verdict: Passed, contingent on the mobile ledger being the first designed surface, not an afterthought.

J
JosieGrowth shark

Challenge: This has been parked twice. Why is the third run different?

Response: Because the scope collapsed from "platform" to one bounded module with a falsifiable success test: September Toastique tier changes executed once, in-product, propagating to Stripe and the billing sheet. 9 hours of gates decide whether the 100 hours happen at all. Parking a gated 100-hour module is hard; parking an open-ended platform was easy.

Verdict: Passed. The gate structure is the answer to the parking history.

Kill Gates

Three named failure modes, three cheap tests

~9 hours of gates decide whether the 100 hours happen at all. Failing a gate is a success of the process, not a failure of the idea.

Schema-fit failure

If one enrollment ledger cannot cover CHHJ and Toastique without per-client special cases in core tables (4-hour test), the one-product thesis is dead. PARK.

Client permission failure

No written data-rights from CHHJ/Toastique, or no permission to operate Toastique Stripe programmatically → the wedge loses its proof points. Hours go to RankPrompt instead.

The third parking

If the 100 hours stall past 60 days, the honest verdict is that AC attention is the constraint, not the market. Convert to internal tooling and stop calling it a product.