Danny DeVito is mentioned 4 times in Jersey Mike's S-1
We ran the whole S-1 through bem, built a knowledge graph, and counted. The sandwiches check out too: 3,300 locations, $4.3B systemwide sales, a 45%-plus Adjusted EBITDA margin, and the Predecessor/Successor accounting from Blackstone's buyout.

Jersey Mike's filed its S-1 this morning, so we ran the whole thing through the bem V3 API. bem Parse read the prospectus and returned a knowledge graph of every entity and relationship in it. One of those entities is Danny DeVito. Parse tagged him as a person, resolved his role, and counted his appearances: `mention_count: 4`. On top of the graph, typed Extract functions pulled the financials and anchored every number to its place on the page. The whole run took about three and a half minutes.
So, first things first.
1. Danny DeVito, four times
Interactive: the real bem Parse output. Drag the nodes, scroll to zoom, and click any node for its relationships and the evidence quote. Danny DeVito carries a 4x mention badge.
He shows up on pages 25, 66, 138, and 149, and every time he is doing the same job: being a Jersey Mike's brand ambassador. Parse resolved the relationships without being told to look for them:
- Danny DeVito is a brand ambassador for Jersey Mike's, and stars in advertising for Jersey Mike's.
- Eli Manning carries the exact same two edges. The filing calls the pair its "Jersey Icons."
Three of the four mentions are the company bragging, in the summary and the business section, about brand strength: ambassadors like DeVito and Manning, the "Official Sub Sandwich Partner of the NFL" designation, a best-in-class Net Promoter Score. The fourth mention is the funny one. It is in the risk factors, where DeVito is named as a thing that could go wrong:
> "...negative publicity related to a spokesperson (e.g., Danny DeVito or Eli Manning), our suppliers or vendors, or franchise owners..."
That is the whole point of a knowledge graph over a filing. The same entity appears as an asset three times and a liability once, and the graph holds both without blinking. Now the actual business, which is a good one.
2. The franchise engine
Jersey Mike's is a franchisor, and the S-1 makes the model obvious the moment you read the revenue lines. From bem's extract of the statements of operations, in millions of USD:
| Revenue component | FY2024 | 2025 (successor) | Q1 2026 |
|---|---|---|---|
| Royalties and other | 434 | 464 | 122 |
| Advertising fees | 183 | 196 | 51 |
| Company-owned store sales | 36 | 36 | 12 |
| Total revenue | 653 | 696 | 185 |
Company-owned stores are a rounding error. The business is royalties and advertising fees collected from ~3,300 franchised locations, which is a high-margin, capital-light model that shows up in the headline metrics the company leads with:
- 3,256 stores across all 50 states (and Canada), roughly $4.3 billion of systemwide sales.
- $1.4 million average unit volume (AUV) and a 16% store-level margin after royalties and advertising.
- 50% cumulative same-store sales growth across 2020 to 2025. Not annual. Cumulative, and still.
- 12.5 million active MyMike's loyalty members in 2025, up from ~7.9 million.
- $166 million donated through the annual Month of Giving since 2011.
The profitability lines follow from the model. Operating income and Adjusted EBITDA, same units:
| Line | FY2024 | 2025 (successor) | Q1 2026 |
|---|---|---|---|
| Operating income | 57 | 151 | 12 |
| Adjusted EBITDA | 263 | 327 | 84 |
| Net income (loss) | 5 | 59 | (24) |
A 45%-plus Adjusted EBITDA margin is what a mature franchisor looks like. Which brings up the two things an analyst has to reconcile: why net income is so far below Adjusted EBITDA, and why the columns do not line up cleanly year to year.
3. Read the fine print: Predecessor vs Successor
The reason you cannot just put 2024 next to 2025 is on page 43. On January 16, 2025, Blackstone acquired a majority interest in Jersey Mike's, and that created a new basis of accounting. Everything before that date is the Predecessor; everything after is the Successor, with assets and liabilities stepped up to fair value on the closing date.
That step-up is most of the gap between Adjusted EBITDA and net income. Purchase accounting loads the successor periods with amortization of acquired intangibles, and the acquisition itself put leverage on the balance sheet, so interest expense climbs. The Q1 2026 stub is a $(24) million net loss against $84 million of Adjusted EBITDA for exactly these reasons: the operating business throws off cash, and the capital structure from the buyout eats the bottom line. Anyone modeling Jersey Mike's has to bridge Adjusted EBITDA to GAAP through the acquisition accounting, not wave it away.
4. The structure: Blackstone, an Up-C, and a controlled company
This is a sponsor-monetization IPO. Jersey Mike's Subs Inc. will list on the NYSE under the ticker "JMKE" with Morgan Stanley, Jefferies, and J.P. Morgan leading. It is organized as an Up-C: Class A shares carry economic rights and one vote; Class B shares carry no economic rights, one vote each, and sit with the Continuing Unitholders who hold their economics down in the partnership. Blackstone will hold a majority of the voting power after the offering, so Jersey Mike's will be a controlled company under NYSE rules.

Filing-front facts from `jm-issuer-extract`: registrant, Delaware incorporation, SIC 5812, Blackstone as sponsor, proposed ticker JMKE, NYSE, and Simpson Thacher as issuer counsel, each anchored on the cover.
The founder story is the one worth knowing: Peter Cancro bought the original sub shop in Point Pleasant, New Jersey at age 17 in 1975 and still runs it as CEO. The Blackstone deal that valued the chain at roughly $8 billion in 2024 is what this offering monetizes.

The dual-class Up-C structure from `jm-offering-extract`. Class B stock has no economic rights and exists to carry votes for the Continuing Unitholders, anchored to the page.
5. The brand engine (where DeVito actually earns his four mentions)
The reason a sub chain has a Hollywood actor in its risk factors is that marketing is a real line of the strategy. bem's brand extract pulled it cleanly: the Jersey Icons ambassador program (DeVito and Manning), the NFL "Official Sub Sandwich Partner" designation, the loyalty program, and the Month of Giving. We also ran an Enrich step that joined each extracted ambassador against a small collection of brand assets we maintain, so "Danny DeVito" and "Eli Manning" come back attached to their role and campaign context rather than as bare strings.
The advertising fee line in section 2 is the other side of this. Franchisees pay into a national advertising fund, and that fund is what buys the Super Bowl airtime DeVito shows up in. The ambassadors are a revenue mechanic, not a vanity line, which is why they sit in both the growth story and the risk section.
6. The risk picture
bem's risk extract categorized the top risk headlines. The concentration is exactly where you would expect for a franchisor:
- Competition. "We operate in a highly competitive industry."
- Supply / food safety. Food-borne illness and food-safety incidents. The broader Parse graph surfaced E. coli, Salmonella, and Listeria as named entities in this section, which is the standard QSR exposure.
- Franchise. Growth depends on new franchise openings, and the stated returns (Cash-on-Cash, AUV) are not guarantees.
- Brand reputation. Including the dependence on a spokesperson, which is where Danny DeVito makes his fourth and final appearance.

Risk headlines and categories from `jm-risk-factors-extract`, anchored to the page. Categorized across the full section, this becomes a comparable risk matrix.
7. How we did it
One workflow on the bem V3 API: a Split, a classify root, seven specialist Extracts, a Parse function for the knowledge graph, and an Enrich step. Every call hits https://api.bem.ai/v3/.
The knowledge graph, and the mention count
Parse is the function behind section 1. You give it a document and a small config; it returns sections, entities, and relationships, and each entity carries an occurrences list and a mention_count.
1upsert_function("jm-parse", {2 "functionName": "jm-parse",3 "type": "parse",4 "parseConfig": {"extractEntities": True, "linkAcrossDocuments": True},5})
Run over the four pages where he appears, the Danny DeVito entity came back like this (real output, trimmed):
1{2 "canonical": "Danny DeVito",3 "type": "person",4 "description": "A well-known celebrity starring in Jersey Mike's advertising campaigns.",5 "mention_count": 4,6 "occurrences": [7 {"page": 1, "surface": "Danny DeVito"}, {"page": 2, "surface": "Danny DeVito"},8 {"page": 3, "surface": "Danny DeVito"}, {"page": 4, "surface": "Danny DeVito"}9 ]10}
The count is not a grep. It is the resolved entity: "Danny DeVito," "Mr. DeVito," and a bare "DeVito" all collapse to one node, and the four occurrences are the four places that node is grounded in the document. linkAcrossDocuments: True means when the S-1/A and the eventual 10-Ks land, the same node accretes their mentions too.
A typed Extract, and the bounding boxes
Each specialist Extract returns transformedContent shaped to a JSON schema, plus a fieldBoundingBoxes map from RFC 6901 pointers to page coordinates. The cover, offering, and risk extracts carried 36 per-field bounding boxes between them. The two dense financial-table extracts (statements of operations, unit economics) ran through the standard path without boxes; the numbers in sections 2 and 3 came from those.
The classifier note
The version of this S-1 on EDGAR renders with a "Table of Contents" running header on every page, which pulls a section classifier toward the cover branch. So for the findings we routed each section straight to its specialist through a one-node wrapper workflow, the same primitive the classifier calls, minus the routing. Split first on a clean document and the classifier behaves; on a section sliced out of a hostile render, routing by hand is faster.
What the run looked like
| Step | Function | Wall time | Notes |
|---|---|---|---|
| Cover | `jm-issuer-extract` | 22 s | 15 bboxes |
| The offering | `jm-offering-extract` | 44 s | 9 bboxes |
| Statements of ops | `jm-income-statement-extract` | 16 s | numbers |
| Unit economics | `jm-unit-economics-extract` | 13 s | numbers |
| MD&A | `jm-mdna-extract` | 10 s | drivers |
| Risk factors | `jm-risk-factors-extract` | 49 s | 12 bboxes |
| Brand + Enrich | `jm-brand-extract` + enrich | 31 s | ambassadors joined to collection |
| Knowledge graph | `jm-parse` | 25 s | 9 entities, 13 relationships |
Total compute: about three and a half minutes. The post took longer to write than the API took to read the filing. It always does.
Re-running on the amendment
When the S-1/A drops with the price range and share count filled in, the workflow runs again against the same field paths, and the graph accretes the new mentions. If Danny DeVito shows up a fifth time, we will know before the sandwich does.
That is the toolkit. The sandwiches, for the record, check out.

Written by
Antonio Bustamante
Jul 2, 2026


Ready to see it in action?
Talk to our team to walk through how Bem can work inside your stack.
Talk to the team