Franchise Investment Data — FDD Costs, Fees & Unit Counts
Pricing
from $5.00 / 1,000 franchise brand records
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Franchise Investment Data — 171 US Brands, Straight From Their FDDs
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
- 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_retainedsays so per record. - 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.
- 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.
- Named, honest provenance. These figures were machine-read from real filings. The
provenanceblock says exactly that, field group by field group, and names the verification suite that keeps it honest. - 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
- Leave the input empty and run it — you get the 50 strongest systems by health score.
- Filter to what you are actually shopping for:
maxInvestmentUsd: 250000,categories: ["Home Services"],requireItem19: true. - Or name the brands you are comparing:
brands: ["dunkin", "Great Clips", "Chick-fil-A"]. A named request is never truncated by the limit. - Turn on
includeInvestmentBreakdownwhen you need the startup cost line items, andincludeUnitHistorywhen you need the growth trend. - 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:
| Code | What it means |
|---|---|
investment_line_items_do_not_reconcile | The 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_cohort | The 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_entity | Unit 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_format | The filing covers a non-standard format (express, in-line, non-traditional) rather than the standalone unit most people picture. |
duplicate_slug_family | The 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 run | Records | Cost |
|---|---|---|
| Default run (top 50 by health score) | 50 | $0.25 |
The whole dataset (limit: 0) | 171 | $0.86 |
| One category, e.g. Home Services | 33 | $0.17 |
| Head-to-head on 3 brands | 3 | $0.02 |
| Monthly re-sync of the full set | 171 | $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
| Event | Price | When |
|---|---|---|
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 Data | Listing-site scrapers | State registry scrapers | |
|---|---|---|---|
| Source | Filed FDDs | Marketing listings | Registration filings |
| Initial investment range | Full 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 changes | Never — nothing is fetched | Often | Often |
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.