Franchise Investment Data — FDD Costs, Fees & Unit Counts avatar

Franchise Investment Data — FDD Costs, Fees & Unit Counts

Pricing

from $5.00 / 1,000 franchise brand records

Go to Apify Store
Franchise Investment Data — FDD Costs, Fees & Unit Counts

Franchise Investment Data — FDD Costs, Fees & Unit Counts

Returns one structured record per US franchise brand: initial investment range, franchise fee, royalty and ad-fund rates, unit counts and 3-year growth, FDD Item 19 revenue, and derived payback, fee-burden and health scores. 171 brands read out of filed Franchise Disclosure Documents. No PII.

Pricing

from $5.00 / 1,000 franchise brand records

Rating

0.0

(0)

Developer

Jake Mac

Jake Mac

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Franchise Investment Data — 171 US Brands, Straight From Their FDDs

Actor status

What it costs to open, what it costs to run, how big the system is, and what a unit earns — for 171 US franchise brands, in one comparable schema, read out of the Franchise Disclosure Documents those franchisors filed with state regulators.

Every other franchise dataset on the market is a scrape of a listing site: brand name, a marketing blurb, and an "investment from $X" figure the franchisor chose to advertise. This one is built from the source document franchisors are legally required to file — so it carries the numbers the brochure leaves out: the full Item 7 startup range, the royalty and ad-fund percentages, the three-year outlet table showing whether the system is opening or closing units, and the Item 19 earnings claim where one exists.

Nothing is fetched at run time. The pack ships inside the Actor, so a run finishes in seconds, cannot half-fail on a blocked site, and answers your question on the first call — there is no baseline round that returns nothing useful.

What you get

  • 171 brands across 16 categories — QSR, home services, fitness, automotive, education, senior care, pet, personal services, real estate, hospitality and more
  • Cost to open — franchise fee range and the full FDD Item 7 initial investment range, with the line-item breakdown (real estate, equipment, signage, inventory, working capital) available on request
  • Cost to run — royalty rate and basis, ad-fund rate, technology fee, transfer and renewal fees, plus every other recurring fee named in Item 6
  • System size and direction — franchised, company-owned and total units, openings, closures, net change, states operating, and the three-year outlet history from Item 20
  • What a unit earns — Item 19 average and median gross revenue, average net income, sample size and reporting period, for the 150 of 171 brands that disclose one
  • Derived comparables — payback period, net growth rate, total fee burden, a 0–100 health score, and a rank within category so a number means something next to its peers
  • Per-record provenance and caveats — see below. This is the part nobody else ships.

Why this one

  1. Primary-source data, not a listings scrape. Item 5, 6, 7, 19 and 20 figures come from the filed FDD. All 171 records have their source filing retained on disk — the field source_filing_retained says so per record.
  2. One schema across every brand. FDDs are 200–900 page PDFs with no common layout. Normalising them into comparable fields is the expensive part, and it is done.
  3. The caveats travel with the data. Every known risk on a record is attached to that record as a machine-readable code — not buried in a footnote nobody reads.
  4. Named, honest provenance. These figures were machine-read from real filings. The provenance block says exactly that, field group by field group, and names the verification suite that keeps it honest.
  5. Agent-ready. Sparse input works, runs are bounded, output is flat, and the dataset schema is declared so an LLM tool call can read the shape without guessing.

How it works

  1. Leave the input empty and run it — you get the 50 strongest systems by health score.
  2. Filter to what you are actually shopping for: maxInvestmentUsd: 250000, categories: ["Home Services"], requireItem19: true.
  3. Or name the brands you are comparing: brands: ["dunkin", "Great Clips", "Chick-fil-A"]. A named request is never truncated by the limit.
  4. Turn on includeInvestmentBreakdown when you need the startup cost line items, and includeUnitHistory when you need the growth trend.
  5. Export to CSV/Excel/JSON, or read the dataset straight from the API.

Input examples

Everything I can open for under $150k that discloses earnings:

{
"maxInvestmentUsd": 150000,
"requireItem19": true,
"sortBy": "payback_period",
"limit": 25
}

Head-to-head on three brands, with full cost breakdown:

{
"brands": ["dunkin", "subway", "jersey-mikes"],
"includeInvestmentBreakdown": true,
"includeFeeSchedule": true
}

Every home-services brand, biggest systems first:

{ "categories": ["Home Services"], "sortBy": "total_units", "limit": 0 }

Output record

One record per brand. Abridged (heavy arrays omitted — they are opt-in):

{
"brand": "Dunkin'",
"slug": "dunkin",
"category": "QSR",
"subcategory": "coffee-and-donuts",
"fdd_year": 2025,
"fdd_filing_state": "MN",
"source_filing_retained": true,
"franchise_fee_usd_low": 40000,
"franchise_fee_usd_high": 90000,
"initial_investment_usd_low": 532400,
"initial_investment_usd_high": 1832500,
"royalty_type": "percentage",
"royalty_pct": 5.9,
"royalty_basis": "weekly_gross_sales",
"ad_fund_pct": 5,
"total_units": 8499,
"franchised_units": 8465,
"company_owned_units": 34,
"net_unit_change_last_year": 202,
"has_item19": true,
"average_gross_revenue_usd": 1304217,
"item19_sample_size": 7190,
"payback_period_years": 7.6,
"fee_burden_pct": 10.9,
"health_score": 84,
"category_rank": 6,
"category_size": 32,
"risk_flags": [],
"extraction_confidence": { "initial_investment": 0.93, "unit_data": 0.95 },
"data_caveats": [],
"provenance": { "initial_investment": "ai_extracted", "health_score": "derived" },
"fvs_brand_url": "https://franchisevs.com/franchise/dunkin",
"status": "brand_record",
"retrievedAt": "2026-07-19T21:11:27.084Z"
}

Ask for a brand that is not in the dataset and you get an explicit brand_not_found row rather than a silently shorter result — so a caller who requested 20 and received 17 can see which three and why.

Data honesty — the caveats are machine-readable

These figures were machine-read from real filings. That is not the same as hand-checked, and it is not the same as invented. The provenance block on every record states which: ai_extracted for figures read out of the FDD, derived for anything computed from them, sourced for the filing pointer itself, observed for the caveats. The block carries its own legend and names the verification suite — spot-checks against raw PDF text, render-verification, independent re-extraction, and cross-item regression tests — that makes publishing machine-read data defensible in the first place.

On top of that, every record carries data_caveats, and every code in it is computed from the data, not promised in prose:

CodeWhat it means
investment_line_items_do_not_reconcileThe Item 7 line items do not sum to the stated total within 5%. Trust the total; treat the breakdown as indicative.
item19_may_be_a_sub_cohortThe Item 19 sample is a small fraction of the system. Multi-cohort FDDs publish tenure or format sub-tables next to the system-wide row; verify before quoting it as a system average.
unit_count_is_single_fdd_entityUnit counts are the filing entity's franchised outlets, not the brand-wide count in marketing material. Affects several hotel and real-estate brands.
investment_reflects_a_specific_formatThe filing covers a non-standard format (express, in-line, non-traditional) rather than the standalone unit most people picture.
duplicate_slug_familyThe brand appears under more than one slug from different filings. Deduplicate before aggregating.

18 of 171 brands carry at least one. The other 153 carry an empty array — which is a statement, not an omission.

extraction_confidence adds a second dimension: the extractor's own 0–1 score per block. A contract_terms confidence of 0 means those fields were not reliably recoverable from that filing, and they are null rather than guessed.

How much does it cost to pull franchise investment data?

Pay per record returned. Filtered-out brands are free — you are charged for answers, not for the search.

What you runRecordsCost
Default run (top 50 by health score)50$0.25
The whole dataset (limit: 0)171$0.86
One category, e.g. Home Services33$0.17
Head-to-head on 3 brands3$0.02
Monthly re-sync of the full set171$0.86/month

Plus Apify platform usage, which is fractions of a cent here because nothing is fetched — a full 171-brand run finishes in seconds.

For comparison: a single FDD costs $50–$220 to buy from a commercial provider, and reading one takes an afternoon. The whole 171-brand set costs less than a dollar.

Pricing

EventPriceWhen
brand-record$0.005 ($5 / 1,000)One per brand record returned

Records marked brand_not_found are not charged.

How does this compare vs. a franchise-listing scraper?

Franchise Investment DataListing-site scrapersState registry scrapers
SourceFiled FDDsMarketing listingsRegistration filings
Initial investment rangeFull Item 7, low + high"From $X" headline
Royalty / ad fund %Rarely
Unit counts + 3-year trend✓ (Item 20)Current count if lucky
Franchisee earnings✓ (Item 19, 150 brands)
Comparable across brands✓ one schema✗ per-site shape✓ but only names/dates
Caveats + confidence per record
Breaks when the source site changesNever — nothing is fetchedOftenOften

Use a registry scraper to find out who is registered where. Use this to find out what it costs and what it earns.

Other Actors by jakedata

  • US Liquor Licensing Watch — what a liquor licence costs and requires in all 51 states, plus the city permit overlay, with change detection on the state boards.
  • AI Change Monitor — watch any list of URLs for meaningful change, with optional AI significance summaries.

FAQ

Where does the data come from? Franchise Disclosure Documents — the disclosure franchisors must deliver to prospective franchisees, and file with registration states. They are filed with state regulators and routinely published by them. The figures here were extracted from those filings; the compilation, normalisation and derived metrics are ours.

Is it legal to publish this? The underlying FDDs are regulatory filings, and factual data drawn from them — fees, ranges, unit counts — is not itself copyrightable. What is ours is the compilation: the schema, the normalisation, the derived metrics and the caveat layer. Nothing here is personal data.

How current is it? 167 of 171 records come from 2025 or later filings; every record carries fdd_year so you can judge for yourself rather than trust a "fresh!" badge. FDDs are refreshed annually, so the dataset is rebuilt as new filings are extracted. Use updatedSince to pull only what has been refiled since your last sync.

Why only 171 brands? Because 171 is the number whose source filing we actually hold. A larger set exists with estimated figures and no retained document behind them; shipping it here would mean selling estimates as extracted data. If a brand is absent, it is because we have not extracted its FDD — not because it does not franchise.

Is there personal data in it? No. Brands, corporate entities, fees and unit counts only. No individuals, no contacts.

Can I use this for a report or a model? Yes. Read the data_caveats and extraction_confidence fields first, and do not quote an Item 19 figure carrying item19_may_be_a_sub_cohort as a system-wide average without checking the filing.

What if I need a brand you do not have? Run it with the brand named — you will get a brand_not_found row confirming the gap. Tell us which brands matter and they go to the front of the extraction queue.


Built by jakedata. Openly AI-built and human-supervised: the extraction is machine-read from primary documents, the verification suite is real, and the provenance block on every record says which is which.