← Hot Dogs on Archived Menus

Hot Dogs on Archived Menus: the pairs, the funnel and the scoreboard

Every same-item price pair the desk found, with the archive link for each earlier and later capture, the funnel from 1,930 restaurants to 7, the seven predictions as written and as scored, and the home-cost series. All numbers are from the desk’s own report files, reproduced below with their hashes.

Scope: archived AllMenus delivery-menu pages for restaurants in New York, Chicago, Boston, San Francisco and Austin, captured by the Wayback Machine. Prices are the prices those pages listed, which may be delivery prices. The study says nothing about recessions or about restaurants in general. Wayback was not re-fetched for the 38 hand-checked prices: they were checked against the stored copies of the pages the parser read. Wayback links below are the same capture URLs and may need a retry if the Archive is throttling.

The 19 same-item pairs

Same restaurant, same item name and description, priced at both ends, at least four years apart. CPI is BLS food away from home (seasonally adjusted), matched to the capture months. “CPI-implied” is the earlier price times (1 + that CPI change). Source: pairs_v2.csv, sha256 16a57a82f6cefd3536641ba6d9aa23a09a3357cbc42e523344294407478960ef.

RestaurantItemEarlier$Later$ChangeCPI FAFHCPI-implied $Captures
Sliders Diner (san-francisco)Hot Link201603044.75202111305.95+25.3%+20.9%5.74earlier · later
Windy City Gyros (chicago)Hot Dog201606092.50202109234.10+64.0%+18.5%2.96earlier · later
Windy City Gyros (chicago)Chili Dog201606092.90202109234.75+63.8%+18.5%3.44earlier · later
Plush Pup (chicago)CHAR GRILLED DOG201606202.25202305106.25+177.8%+34.4%3.02earlier · later
Plush Pup (chicago)DOUBLE DOG201606203.25202305108.25+153.8%+34.4%4.37earlier · later
Plush Pup (chicago)CHEESE DOG201606202.60202305107.25+178.8%+34.4%3.49earlier · later
Plush Pup (chicago)CHILI DOG201606202.60202305107.25+178.8%+34.4%3.49earlier · later
Mr. Greek Gyros (chicago)Vienna Beef Hot Dog201606193.49202106215.35+53.3%+16.4%4.06earlier · later
Mr. Greek Gyros (chicago)Vienna Beef Double Dog201606194.09202106217.65+87.0%+16.4%4.76earlier · later
Mr. Greek Gyros (chicago)3. Vienna Beef Hot Dog201606195.19202106218.05+55.1%+16.4%6.04earlier · later
The Burger Point (chicago)Spanish Revolution Hot Dog202101255.25202506236.10+16.2%+27.4%6.69earlier · later
The Burger Point (chicago)Chili Cheese Dog202101255.00202506236.30+26.0%+27.4%6.37earlier · later
The Burger Point (chicago)Maxwell Street Hot Dog202101254.25202506236.10+43.5%+27.4%5.41earlier · later
SoHo Park (new-york)Grilled Kosher Hot Dog201607143.50202503203.50+0.0%+43.8%5.03earlier · later
The Kitchen Sink † (new-york)2 New York Style Dogs202012049.50202512109.50+0.0%+30.2%12.37earlier · later
The Kitchen Sink † (new-york)2 Brooklyn Style Dogs2020120412.502025121012.50+0.0%+30.2%16.28earlier · later
The Kitchen Sink † (new-york)2 Tacos Dogs2020120412.502025121012.50+0.0%+30.2%16.28earlier · later
The Kitchen Sink † (new-york)2 Chili Cheese Dogs2020120412.502025121012.50+0.0%+30.2%16.28earlier · later
The Kitchen Sink † (new-york)2 Hawaiian Dogs2020120412.502025121012.50+0.0%+30.2%16.28earlier · later

† The Kitchen Sink: the 2020-12-04 and 2025-12-10 captures render as the identical 311-item list (same sections, names, descriptions and prices). Each of its five items is an order of two dogs.

Restaurant level, and a sensitivity the desk added

SetRestaurantsItem pairsMedian changeMedian CPI FAFHAbove CPI
All pairs (report, one value per restaurant = mean of its pairs)71928.57%27.4%5 of 7
Same, without The Kitchen Sink (added here; not in the report)61446.23%24.1%5 of 6
Item level, all pairs (report)71943.5%30.2%11 of 19
Item level, without The Kitchen Sink (added here)61459.5%27.4%11 of 14

Per restaurant (mean of its pairs vs its CPI): Sliders Diner +25.3% vs +20.9%; Windy City Gyros +63.9% vs +18.5%; Plush Pup +172.3% vs +34.4%; Mr. Greek Gyros +65.1% vs +16.4%; The Burger Point +28.6% vs +27.4%; SoHo Park +0.0% vs +43.8%; The Kitchen Sink +0.0% vs +30.2%. The report’s bootstrap 95% interval on the median item-level excess over FAFH is (-30.2, 45.5) pp.

Entry price: 20 restaurants with a priced dog at two ends four or more years apart

Entry price = the cheapest qualifying hot-dog item on the first and on the last usable capture (multi-piece orders, kids items, combos, bulk and catering excluded). Items may differ between the two ends. Source: v3/restaurant_first_last.csv in the desk’s job folder.

RestaurantFirstLastEntry $ firstEntry $ lastChangeCPI FAFHEntry item firstEntry item lastCaptures
Sliders Diner (san-francisco)20160304202111303.955.75+45.6%+20.9%Hot DogHot Dogfirst · last
Barney's Gourmet Hamburgers (san-francisco)20160701202102265.9510.25+72.3%+14.3%Barney's Kosher Hot DogBarney's Hot Dogfirst · last
Holy Grill (san-francisco)20160613202104114.956.50+31.3%+15.0%Dogma Hot DogDogma Dogfirst · last
Windy City Gyros (chicago)20160609202109232.504.10+64.0%+18.5%Hot DogHot Dogfirst · last
Plush Pup (chicago)20160620202305102.256.25+177.8%+34.4%CHAR GRILLED DOGPlush Pup Dogfirst · last
El Gran Burrito (chicago)20160810202105122.204.25+93.2%+15.1%Hot DogHot Dogfirst · last
The Bagel Restaurant & Deli (chicago)20191119202509088.9513.75+53.6%+34.2%Jumbo Frankfurter SandwichJumbo Frankfurter Sandwichfirst · last
Firehouse Grill (chicago)20160701202106142.253.49+55.1%+16.2%Hot DogHot Dog Onlyfirst · last
Stanley's Grill (chicago)20160714202105163.904.99+27.9%+15.4%Hot DogMaxwell Street Style Polish Hot Dogfirst · last
Mr. Greek Gyros (chicago)20160619202106213.495.35+53.3%+16.4%Vienna Beef Hot DogVienna Beef Hot Dogfirst · last
The Burger Point (chicago)20210125202506234.005.70+42.5%+27.4%Build Your Own Chicago Style Hot DogChicago Style Hot Dogfirst · last
Mom & Dads Deli (chicago)20171224202208142.453.25+32.7%+23.0%All Beef Hot DogChili Dogfirst · last
Brooklyn Diner (new-york)201607262022011621.7521.95+0.9%+21.4%Famous Hot Dog15-Bite All-Beef Frankfurterfirst · last
Astro Restaurant (new-york)20160910202201164.956.95+40.4%+21.0%PlainThe Plain Dogfirst · last
SoHo Park (new-york)20160714202503203.503.50+0.0%+43.8%Grilled Kosher Hot DogGrilled Kosher Hot Dogfirst · last
Westville (new-york)20160910202501243.504.00+14.3%+42.2%Hebrew NationalHebrew National Hot Dogfirst · last
Pastrami Queen (new-york)201606242022052418.954.95-73.9%+24.2%Three FrankfurtersFrankfurterfirst · last
3 Guys Restaurant (new-york)202011082025011919.0023.00+21.1%+25.9%Double Kosher Hot DogDouble Hot Dogfirst · last
Westville (East) (new-york)201607202025011611.004.00-63.6%+42.8%Hebrew NationalHebrew National Hot Dogfirst · last
Bella Donna Italian Subs (austin)20160612202011282.503.99+59.6%+13.6%NY Pushcart DogN.Y. Pushcart Dog Lunchfirst · last

The funnel

Frame: 1,930 restaurant menu pages (non-excluded) in the Hugging Face dataset jdnvn/menu-items-allmenus. Stage B targets: the 137 “hot-dog-now” restaurants plus a seeded random subset of 150 (13 overlap) = 274.

CityFrameHot-dog-nowRandom subsetStage B targetsCDX answered≥1 capture≥1 parseable priced≥2 pricedQualifying dog on anyMatched pair (≥4 y)
austin270101727271210530
boston3341622373725241270
chicago42662409393686537434
new-york44928366363484836162
san-francisco45121355454373617121
ALL1,930137150274274190183107817

Matched pairs: 19 item pairs in 7 restaurants. Entry-price comparison: 20 restaurants (includes changed items). Snapshots fetched: 360 returned a page (one 404); 347 parseable (298 JSON-LD, 49 HTML list), 13 not (11 unrecognised template, 2 geo-block stubs).

Snapshots by capture year

YearSnapshotsParseableWith prices
2009100
2010200
2012111
2014111
2016504745
2017999
2019595656
2020363434
2021130130130
2022333333
2023877
2024544
2025202020
2026555

The first design, for the record

A random sample of 36 live restaurant websites (12 each in New York, Chicago and Houston) matched against the Wayback Machine produced 0 priced hot dogs and 0 matched pairs. A live-menu screen of 514 more non-budget-stratum menus found a priced hot-dog line on 11 (2.1%). The design was dropped and the AllMenus design built. Full text of that report is at the bottom of this page.

Arrivals and drops: the random subset, 17 restaurants

Restaurants from the seeded random subset with a menu of at least 10 priced items at two ends four or more years apart. “neither” = no qualifying hot dog at either end. Source: v3/arrivals_random_subset.csv.

RestaurantEarlierLaterDogs earlierDogs laterResultCaptures
Sunflower Diner (new-york)201609102022011900neitherearlier · later
Silver Seafood Chinese Restaurant (chicago)201908252026061100neitherearlier · later
Shun Lee Palace (new-york)201607032021041200neitherearlier · later
Squires Diner (new-york)201609102021012400neitherearlier · later
Buena Vista Restaurant (chicago)201607022021120200neitherearlier · later
Akiko's Sushi Bar (san-francisco)201606212020112500neitherearlier · later
Burger Joint (new-york)201606182022052400neitherearlier · later
Manuels (austin)201712012025012100neitherearlier · later
Lucky's Lounge (boston)201606302021102600neitherearlier · later
Deli On Madison (new-york)201607142021101600neitherearlier · later
La Lanterna di Vittorio (new-york)201607012021120500neitherearlier · later
Nikko Hibachi Asian Fusion (new-york)201607262026061500neitherearlier · later
Montien Thai Restaurant (boston)202101242025071500neitherearlier · later
House of Siam (boston)201606122021102000neitherearlier · later
Saggio (new-york)201606192021012100neitherearlier · later
Capital Restaurant (san-francisco)201606292021041900neitherearlier · later
Astro Restaurant (new-york)201609102022011688bothearlier · later

The predictions, as written and as scored

Prediction text is from HYPOTHESES.md; verdicts and numbers are from REPORT_V2.md section 10, unedited.

#PredictionVerdictNumbers behind it
P1Price level: median menu hot dog price rose from about $3-4 (2016) to about $12 (now)not supported (tentative, thin)2016 median item $4.25 (n=88 items, 24 restaurants), latest $7.15 (n=22 items, 14 restaurants)
P2Like-for-like: same restaurant, same item, price growth roughly in line with or above CPI food away from homesupported (tentative)19 item pairs in 7 restaurants; median excess over FAFH 4.4 pp (supported if >= -5 pp); median change 43.5% vs FAFH 30.2%
P3Upgrade effect: the rise is mostly not like-for-like repricing but a change in what is soldsupportedmean rise $2.55; repricing share 24% (supported if < 50%); n restaurants 20
P4Fancier: description length, topping count and premium flags rose; the plain share fellmixedn=20; rose/fell words (8, 7), components (8, 6), premium (2, 3); plain 11->9
P5Spread: the change appears across price tiers, not only the top tiernot supported (tentative)tiers with n>=3: ['low', 'mid', 'high']; tiers whose median change >= CPI FAFH: ['low']
P6Entry price: the cheapest hot-dog item rose from about $3-4 (2016) to about $8-10 (now), faster than CPI food away from homenot supportedn=20 restaurants; median entry $3.92 -> $5.17 (41.45% vs FAFH 21.2%; excess 17.85 pp)
P7Plain-dog survival: the share of menus with a plain dog fell; the ladder spread narrowednot supportedplain share 55% -> 45%; median spread (restaurants with >=2 dogs both ends, n=11) $1.25 -> $2.0; n=20

Verdict rules (REPORT_V2.md): P1 supported if 2016 median item ≤ $5 and latest median ≥ $10; P2 supported if the restaurant-level median excess over FAFH ≥ -5 pp; P3 supported if like-for-like repricing is < 50% of the mean rise; P4 supported only if words, components and premium flags each rose more often than fell and plain-dog share fell; P5 supported if every tier with n≥3 has median change ≥ CPI FAFH; P6 supported if median entry ≤ $5 early, $7-11 late and above FAFH; P7 supported if plain share and median ladder spread both fell. “Conclusive” needs n≥15 restaurants, “tentative” 6-14.

Price level and the decomposition

MeasurenMedianMean
All qualifying dog items, 2016 captures88 items / 24 restaurants$4.25$5.41
Entry price, 201624$3.70$5.50
All qualifying dog items, latest (2024 or later), hot-dog-now restaurants22 items / 14 restaurants$7.15$8.11
Entry price, latest14$8.12$8.52
Balanced: same restaurants, first capture ≤ 2017, last ≥ 4 y later, entry price17$3.50 → $4.95$5.88 → $6.09

P3 decomposition across 20 restaurants (72 early items, 57 late items; 14 same-item at both ends, 43 new or changed at the late end, 58 dropped or changed from the early end): the mean price rose $2.55; like-for-like repricing of unchanged items accounts for $0.62 (24%), composition for $1.93. A renamed item counts as a change.

Latest captures: the 22 dog items behind P1

Qualifying hot-dog items (multi-piece orders, kids items, combos and bulk excluded) on the latest capture, 2024 or later, of the hot-dog-now restaurants: 22 items at 14 restaurants, median $7.15. Five cost $10.29 or more.

RestaurantCaptureItemDescription$Page
3 Guys Restaurant (new-york)20250119Double Hot DogServed with sauerkraut and french fries.23.00capture
Bravest (new-york)20250119hot dogbkhdco beef frank, sauerkraut, mustard on brioche roll8.00capture
Chowder Hut (san-francisco)20250913All Beef Hot DogLocally made beef hot dog, fried onions, Roma tomatoes, pickle on French baguette. Best dog you'll ever have!9.79capture
Huck Finn Restaurant (chicago)20250908Hot Diggity DogFrankfurter on a hot bun with onions and relish.8.25capture
J.J. Foley's Cafe (boston)20240619Chill Cheese Dog Sandwich1/4 lb. all beef hot dog, bacon, beef and bean chili, melted cheddar and grilled hot dog roll.10.49capture
Lucky Grill Inc Restaurant (chicago)20260119Hot Dog DeluxeServed with a bowl of soup and your choice of french fries, fruit or onion rings.11.00capture
Mr. Zee's Famous Chicken (chicago)20250406Hot DogServed with fries, and all the trimmings.5.50capture
Mr. Zee's Famous Chicken (chicago)20250406Cheese DogServed with fries, and all the trimmings.6.00capture
Original Buffalo Wings (san-francisco)20250113Polish DogKetchup, mustard, relish, red onion and sauerkraut on pub hoagie roll.8.29capture
Original Buffalo Wings (san-francisco)20250113Hot LinkSix-inch spicy Miller hot link on pub hoagie roll. Topped with ketchup, mustard, relish, red onion and sauerkraut.9.29capture
Original Buffalo Wings (san-francisco)20250113Bacon-Wrapped Street DogSavory bacon wrapped around a Polish dog on pub hoagie roll. Topped with ketchup, mustard and grilled onions.10.29capture
Pauli's (boston)20251016Hot DogAll Beef Hot Dog served on a grilled bun3.99capture
Pauli's (boston)20251016hot dog5.99capture
Pauli's (boston)20251016double dog deal (2 hot dogs)8.99capture
SoHo Park (new-york)20250320Grilled Kosher Hot Dog3.50capture
The Bagel Restaurant & Deli (chicago)20250908Jumbo Frankfurter SandwichServed with french fries and coleslaw, with lettuce, tomato, onion, and pickle relish.13.75capture
The Burger Point (chicago)20250623Chicago Style Hot Dog1/4 lb. grass fed beef hot dogs with celery salt, peppers, mustard, tomatoes, sweet relish, onions and pickles.5.70capture
The Burger Point (chicago)20250623Spanish Revolution Hot Dog1/4 lb. grass fed beef hot dogs with our house made jalapeno relish, ranch mayo and wrapped in bacon.6.10capture
The Burger Point (chicago)20250623Maxwell Street Hot Dog1/4 lb. beef hot dog with grilled onions and mustard.6.10capture
The Burger Point (chicago)20250623Chili Cheese Dog1/4 lb. grass fed beef hot dogs with our homemade chili, shredded cheese and onions.6.30capture
Westville (new-york)20250124Hebrew National Hot Dogone beef hotdog w/ choice of toppings4.00capture
Westville (East) (new-york)20250116Hebrew National Hot Dogone beef hotdog w/ choice of toppings4.00capture

2016 captures: the 88 dog items behind P1

Qualifying items on the first 2016 capture of each restaurant: 88 items at 24 restaurants, median $4.25; median of each restaurant’s cheapest, $3.70.

RestaurantCaptureItemDescription$Page
Astro Restaurant (new-york)20160910Plain4.95capture
Astro Restaurant (new-york)20160910Pepper And Onion100% all-beef hot dog with sauteed green peppers and onions.6.95capture
Astro Restaurant (new-york)20160910New York100% all-beef hot dog with sauerkraut, mustard and sauteed red sauce onions.6.95capture
Astro Restaurant (new-york)20160910Salsa100% all-beef hot dog with mexican salsa and melted cheddar cheese.6.95capture
Astro Restaurant (new-york)20160910Chicago100% all-beef hot dog with chopped onion and tomatoes, pickles, green relish, hot peppers and mustard.7.95capture
Astro Restaurant (new-york)20160910Reuben100% all-beef hot dog with swiss cheese, thousand island dressing and sauerkraut.7.95capture
Astro Restaurant (new-york)20160910Chili And Cheese100% all-beef hot dog with spicy chili and melted cheddar cheese.8.95capture
Astro Restaurant (new-york)20160910Tex Mex100% all-beef hot dog with spicy chili, jalapeno peppers and melted cheddar cheese.8.95capture
Barney's Gourmet Hamburgers (san-francisco)20160701Barney's Kosher Hot DogFlame broiled beef hot dog on a french roll, garnished with lettuce, tomato, pickle and red onions served with curly fries5.95capture
Bella Donna Italian Subs (austin)20160612NY Pushcart DogAll-beef dog topped with mustard, onion sauce and sauerkraut.2.50capture
Bella Donna Italian Subs (austin)20160612Coney Island Chili DogAll-beef dog topped with mustard, chili and cheese.2.50capture
BienMeSabe (chicago)201606273. Venezuelan Hot DogOnions, cabbage, potato sticks and sauces. Served with fries.7.95capture
Brooklyn Diner (new-york)20160726Famous Hot DogHousemade juniper sauerkraut, french fries21.75capture
Brooklyn Diner (new-york)20160726Twin Vegetarian Hot DogGuacamole, alfalfa sprouts, crema, pico de gallo, french fries21.75capture
El Gran Burrito (chicago)20160810Hot Dog2.20capture
El Gran Burrito (chicago)20160810Cheese Dog2.40capture
El Gran Burrito (chicago)20160810Grilled Jumbo Dog2.50capture
El Gran Burrito (chicago)20160810Chili Dog2.60capture
El Gran Burrito (chicago)20160810Chili Cheese Dog2.90capture
El Gran Burrito (chicago)20160810Double Hot Dog3.00capture
Firehouse Grill (chicago)20160701Hot Dog2.25capture
Flub A Dub Chubs (chicago)20160619The Flubbyclassic vienna dog4.25capture
Flub A Dub Chubs (chicago)20160619The Bryanclassic with mayo and tomatoes4.25capture
Flub A Dub Chubs (chicago)20160619The Larsa real corn dog4.25capture
Flub A Dub Chubs (chicago)20160619The Willie Doga veggie dog fro 'sus'tenance4.75capture
Flub A Dub Chubs (chicago)20160619The Chubbyour signature 1/4lb. with the works5.00capture
Flub A Dub Chubs (chicago)20160619The Mr. Big Footlong5.25capture
Flub A Dub Chubs (chicago)20160619The Flubbywith cheese5.25capture
Flub A Dub Chubs (chicago)20160619The Durkalskipolish5.25capture
Flub A Dub Chubs (chicago)20160619The Ultimate Mr. Bigchili, cheese5.95capture
Flub A Dub Chubs (chicago)20160619The Speiserchili, cheese and peppers, it gives you gas5.95capture
Holy Grill (san-francisco)20160613Dogma Hot Dogall natural, all beef hot dog with grilled onions.4.95capture
Holy Grill (san-francisco)20160613Lucifer Hot Doglouisiana hot link, grilled onions, and jalapeños.5.75capture
Holy Grill (san-francisco)20160613St. Bernard Hot Dogall natural, all beef hot dog, voodoo chili, cheddar cheese and grilled onions.6.25capture
Katz's Delicatessen (new-york)20160610Frankfurter3.95capture
Katz's Delicatessen (new-york)20160610Chili Dog5.95capture
Metro Caffe (san-francisco)2016071325. Hot Dog5.95capture
Metro Caffe (san-francisco)2016071326. Hot Link5.95capture
Metro Caffe (san-francisco)2016071329. Chilli Cheese Dog6.95capture
Morry's Deli (chicago)20160613Hot Dog2.75capture
Morry's Deli (chicago)20160613Cheese Dog3.29capture
Morry's Deli (chicago)20160613Chili Dog3.75capture
Mr. Beef on Orleans (chicago)20160702Hot Dog3.50capture
Mr. Beef on Orleans (chicago)20160702Chili Dog Or Cheese Dog4.00capture
Mr. Beef on Orleans (chicago)20160702Hot Dogwith fries4.50capture
Mr. Greek Gyros (chicago)20160619Vienna Beef Hot Dog3.49capture
Mr. Greek Gyros (chicago)20160619Vienna Beef Hot Dogwith fries3.89capture
Mr. Greek Gyros (chicago)20160619Vienna Beef Double Dog4.09capture
Mr. Greek Gyros (chicago)20160619Vienna Beef Double Dogwith french fries4.69capture
Mr. Greek Gyros (chicago)20160619Vienna Beef Chili Dogwith fries4.99capture
Mr. Greek Gyros (chicago)20160619Vienna Beef Cheddar Cheese Dogwith fries4.99capture
Mr. Greek Gyros (chicago)201606193. Vienna Beef Hot Dog5.19capture
Pastrami Queen (new-york)20160624Three FrankfurtersWith baked beans or french fries18.95capture
Pastrami Queen (new-york)20160624Frankfurters19.95capture
Plush Pup (chicago)20160620CHAR GRILLED DOG2.25capture
Plush Pup (chicago)20160620CORG DOG2.25capture
Plush Pup (chicago)20160620CHEESE DOG2.60capture
Plush Pup (chicago)20160620CHILI DOG2.60capture
Plush Pup (chicago)20160620CHEESE and CHILI DOG2.95capture
Plush Pup (chicago)20160620DOUBLE DOG3.25capture
Plush Pup (chicago)20160620JUMBO DOG3.25capture
Sammy's Breakfast (chicago)20160622Beef Hot Dog2.49capture
Sammy's Breakfast (chicago)20160622Jumbo Beef Hot Dog3.75capture
Sliders Diner (san-francisco)20160304Hot Dog3.95capture
Sliders Diner (san-francisco)20160304Cheese Doghot dog grilled and topped with melted american cheese4.25capture
Sliders Diner (san-francisco)20160304Hot Linkquarter pound all beef louisiana hot link4.75capture
Sliders Diner (san-francisco)20160304Chili Doghot dog smothered with chili topped with shredded cheddar cheese and diced onions5.25capture
SoHo Park (new-york)20160714Grilled Kosher Hot Dog3.50capture
Stanley's Grill (chicago)20160714Hot Dogw/fries. everything includes: mustard, relish, freshly chopped onions, sliced red ripe tomatoes, kosher pickle and sport pepper.3.90capture
Stanley's Grill (chicago)20160714Cheese Dogw/fries.4.15capture
Stanley's Grill (chicago)20160714Chili Dogw/fries.4.20capture
Stanley's Grill (chicago)20160714Chili Cheese Dogw/fries.4.30capture
Tapia's Pizzeria (chicago)20160829Hot Dog3.50capture
Westville (new-york)20160910Hebrew NationalKosher beef3.50capture
Westville (new-york)20160910VeganSoy hot dog (hot dog buns not vegan)3.50capture
Westville (new-york)20160910Niman Ranch Fearless FranksNaturally raised beef5.50capture
Westville (East) (new-york)20160720Hebrew NationalKosher beef $3.5011.00capture
Westville (East) (new-york)20160720VeganSoy hot dog hot dog buns not vegan $3.511.00capture
Westville (East) (new-york)20160720Niman Ranch Fearless FranksNaturally raised beef $5.0013.00capture
Windy City Gyros (chicago)20160609Hot Dog2.50capture
Windy City Gyros (chicago)20160609Chili Dog2.90capture
Windy City Gyros (chicago)20160609Cheese Dog2.90capture
Windy City Gyros (chicago)20160609Hot Dogw/ fries3.50capture
Windy City Gyros (chicago)20160609Chili Dogw/ fries3.90capture
Windy City Gyros (chicago)20160609Cheese Dogw/ fries3.90capture
Windy City Gyros (chicago)20160609D. Hot Dogw/ fries4.40capture
Windy City Gyros (chicago)20160609D. Chili Dogw/ fries4.90capture
Windy City Gyros (chicago)20160609D. Cheese Dogw/ fries4.90capture

Home cost per hot dog, 2016 to 2026

One frankfurter (8 per lb) + one bun + condiments, from BLS series. “Low” and “high” differ only in the bun assumption. Source: homecost.csv, sha256 7afadc5d277f4df6b411bf4cb90c50bae996157d04bf36e7fff57739485cf407; series and method in HOMECOST.md below.

MonthFrank $Home $ (low)Home $ (high)CPI FAFHCPI all items
2016-010.4340.600.70260.0236.9
2016-060.3850.540.63262.5241.0
2017-060.3250.480.57268.2245.0
2018-060.3460.490.58275.8252.0
2019-060.3580.510.60284.3256.1
2020-060.4580.620.73293.2257.8
2021-060.4670.640.74305.6271.7
2022-060.6740.860.98329.0296.3
2023-060.6540.871.01354.2305.1
2024-060.6990.921.06368.6314.2
2025-060.7150.931.06382.8322.6
2026-060.7670.981.11395.6334.0
2026-080.7600.971.10397.9335.0

2016-01 to 2026-08: home cost +63.1% (low) and +58.0% (high); CPI food away from home +53.1%; CPI all items +41.4%. The frankfurter average price (BLS APU0000705111) stops after April 2022 and was extended with the CPI frankfurters index from there. Over January 2016 to April 2022 the average-price series rose 50.3% and the CPI frankfurters index rose 18.5%, so the home-cost result depends on which BLS measure is used; the CPI-only sensitivity (anchored at the August 2026 level) puts the 19-pair median at +27.0% against +52.5% for the low case. Chmura’s 2026 Hot Dog Index reports $0.80 to $1.28 per dog across five cities and +24.7% since May 2019 (Cincinnati); the desk’s series for May 2019 to August 2026 is larger and the difference is unresolved.

Hypotheses (written before results)

Source file HYPOTHESES.md, sha256 a8902afa98f4ce322938ed4ef7770284431e1949b55807a3e434cc5ba9ccc61d. File last modified 2026-10-05 14:06:44 PDT; the earliest pilot result file on the machine is stamped 18:28 the same day.

# Hot dog menu study — hypotheses written BEFORE any pilot or full-run result was read
Written 2026-10-05T21:05:47Z at Mike's direction. Do not edit after results are read; append amendments below with a date.

## Mike's hypothesis (his words, condensed)
In 2016 hot dogs on restaurant menus were mostly plain builds (mustard and ketchup, a Chicago dog, relish) at about $3, maybe $4. Now they are loaded builds (e.g. macaroni and cheese, hot sauce, bacon) at about $12.50. So: the hot dog got much fancier AND much more expensive, probably faster than inflation.

## Testable predictions (non-budget restaurants only; NOT dedicated hot dog stands, quick-service or chains)
P1 Price level: median menu hot dog price rose from about $3-4 (2016) to about $12 (now). CAUTION written in advance: in non-budget sit-down restaurants the 2016 price may already have been well above $4, or the item may not have been on the menu. The study measures what 2016 menus actually show; Mike's $3-4 recollection may come from cheaper venues.
P2 Like-for-like: for the SAME restaurant and SAME item (name and description unchanged), price growth 2016 -> now vs CPI food-away-from-home and CPI all-items over the same dates. Prediction: roughly in line with or above food-away-from-home CPI.
P3 Upgrade effect: the total rise in hot dog prices is mostly NOT like-for-like repricing but a change in what is sold (a plain dog replaced or joined by a loaded build). Measured by decomposing the median price rise into (a) same-item repricing and (b) item-changed or newly added items.
P4 Fancier: description length, topping/component count and premium-ingredient flags rose between early and late snapshots; the share of plain/classic descriptions fell. Fixed scoring rules are in the extraction code; do not change them after seeing results.
P5 Spread: the change appears across price tiers (burger-price terciles), not only the top tier.

## What would count against it
- Like-for-like prices lagging CPI AND no rise in fanciness scores -> hypothesis not supported.
- Large growth only where the item changed -> supports P3 but not "the same hot dog got dearer".
- Few non-budget menus carrying a hot dog in 2016 -> the story is "hot dogs arrived on mid-range menus", not "got fancier"; report that instead.

## Not testable here (stated up front)
- Why restaurants did it (consumer preference vs restaurant economics). Menus show what changed, not the cause; the piece may say "consistent with", never "caused by". Survivors only (restaurants still open now) and the Wayback Machine's uneven coverage limit every result.

<!-- amendment logged 2026-10-05T21:06:44Z -->

## AMENDMENT (appended by Mike's side before the desk read any results; the pilot was already running)
Mike: the loaded builds (a mac-and-cheese dog; a jalapeno and cream cheese dog with chili oil) priced around $12.50 mean that a regular hot dog now costs about $8, $9 or $10.
P6 Entry price: the cheapest hot-dog item on a non-budget menu (the entry or plain dog) rose from about $3-4 (2016) to about $8-10 (now), faster than CPI food-away-from-home, because the loaded builds reset what a "hot dog" costs.
P7 Plain dog survival: the share of menus offering a plain/classic dog fell between early and late snapshots; where one survives, it is priced closer to the loaded builds (the ladder spread narrowed) rather than far below.
Counts against P6/P7: entry price tracking CPI, a plain dog still offered at a low price on most menus, or a ladder spread that widened.
Mike's $8-10 and $3-4 figures are recollections, not data; the study reports what the menus show.

Hand check of the 19 pairs

Source file HANDCHECK_V2.md, sha256 ccfc0243f16fe14e2ebf5cbffc391e840bda97bb2b761eeba6849da660d4c4c5.

# HANDCHECK_V2 (2026-10-06)
Pairs checked: all 19 matched item pairs (7 restaurants; 38 item-price reads, old+new end), archive URLs for every pair in pairs_v2.csv (url_old/url_new); page-text/JSON-LD context printed in v3/handcheck_raw_output.txt (its automatic MATCH/MISMATCH flags are unreliable for JSON-LD pages; the verdict below is from reading the printed context).
Method note: checked against the stored copies of the archived pages (the same bytes the parser read), independent of the parser; I did not re-fetch the 38 URLs (would double Wayback traffic).
Result: 38/38 prices and item names agree with the page. Caveats found: (1) Windy City Gyros 2016 lists TWO Hot Dog lines ($2.50 plain, $3.50 with fries; pair uses the min = plain) and 2021 lists Hot Dog $4.10 plus a separate with-fries item; (2) multi-size items (Chili Dog $4.75 / $6.60) use the first price; (3) Plush Pup CHAR GRILLED DOG matches Char-Grilled Dog by punctuation-insensitive name match; (4) HTML entities (Barney&#39;s) were found unescaped in names and fixed (re-parse).
Extraction failures found by the hand check (before fixes): pet food (Purina Dog Chow) and a 10-piece tray counted as hot dogs (v3.1); 4 of the first 5 "no hot dog early" cases were misses because the dogs have names without "dog" inside a Hot Dogs section (Astro Restaurant, Westville, Westville East; plus Mr. V s only has a fries combo, excluded by rule) -> v3.2 section rule. Pre-fix error rate on no-hot-dog-early: 3-4/5; after the fix the remaining 41 early no-dog menus were text-scanned for dog-like words: true negatives except combos/catering/blankets excluded by rule (Mr. V s Pizza Vienna Beef Hot Dog and Fries; Kitchen Sink 10-piece; Mr. Broadway franks in blankets).
No-hot-dog-early cases confirmed by eye (no dog text on the early page): Bravest (2016 -> 2025 now has hot dog; a true arrival), Pauli s (2019 -> 2025; early text only a hot dog ROLL for a lobster roll), Akiko s Sushi, Capital Restaurant, Burger Joint, Marcello s Pizza, Buena Vista, Deli On Madison, Andy s Deli (no dog text). Archive URLs: https://web.archive.org/web/20160616005032/https://www.allmenus.com/ny/new-york/7110-bravest/menu/ and https://web.archive.org/web/20250119125912/https://www.allmenus.com/ny/new-york/7110-bravest/menu/ ; https://web.archive.org/web/20191022011831/https://www.allmenus.com/ma/boston/306227-paulis/menu/ and .../20251016002451/... ; others derivable from v3/snapshots.jsonl.
Error rate after fixes: 0/38 price reads wrong; recall of the hot-dog filter is only checked on these cases, not on all snapshots.

First design report (the one that failed)

Source file REPORT.md, sha256 42cda4e6bf6863e80c7a8d58b311cf288266fb77bfbda20c87687d557cfd8cc4.

# Hot-dog menu price pilot — REPORT (2026-10-05)

Status: PILOT ONLY. No article written. ~/stochastic-parrot untouched. HYPOTHESES.md untouched.
Bottom line: the random 36-restaurant pilot produced ZERO matched hot-dog pairs. The full pipeline (frame -> sample -> menu discovery -> Wayback -> extraction -> fanciness/ladder metrics -> CPI comparison) runs end to end and was validated on an 11-restaurant outcome-selected validation set, which yielded ONE usable pair. Nothing here supports any trend claim.

## Files (all in ~/jobs/hotdog/)
hotdog.py (single script: cpi|frame|sample|run|scan|reextract|reanalyze|pairs; resumable per restaurant; HD_SUF=_val for validation files), fancy_rules.json (fixed scoring rules, written before results), cpi.csv, frame_{nyc,chicago,houston}.json, sample.json (seed 20261005), restaurants.jsonl + snapshots.jsonl (random pilot), restaurants_val/snapshots_val/sample_val.json (validation), pairs.csv / pairs_val.csv / pairs_detail*.json / presence*.json / summary*.json, texts/ (every fetched menu text by hash), run*.log, llm_cost.json, v1_archive/ + v2_pilot_archive/ (earlier runs).
Note: bls.json, homecost.csv, HOMECOST.md in that folder are not mine.

## CPI
BLS public API (FRED blocked the SEFV01 fetch with a bot challenge; BLS gave all three). Series are the seasonally adjusted CUSR* ones: SEFV (food away from home), SEFV01 (full-service meals and snacks), SA0 (all items). Monthly, 2014-2026. Snapshot month CPI is matched to the capture month.

## Sampling frame (OSM Overpass, one query/city, cached)
amenity in restaurant|pub|bar with website tag; excluded: no name, chain blocklist, cuisine hot_dog/sausage/fast_food, hotel-brand sites, duplicate domains (multi-location). Frame size: NYC 4,363; Chicago 1,800; Houston 464. Strata: american/burger/pub/bar/bistro/other, round-robin seeded sample of 12/city. Overpass returned 504 several times (retried with backoff, no evasion). Blocklist gaps found and patched before the run (Grand Lux, Gen Korean BBQ); Hopdoddy, Zalat Pizza, Loro, 312 Chicago, Little Woodrow s, Green Street Smoked Meats still slipped in (chains/mini-chains), and the "other" stratum (65% of the frame) is mostly cuisines that never sell hot dogs. The sample is therefore wasteful for this question.

## Funnel (random pilot, 12 per city, run under the v2 pipeline)
Stages are independent flags, not strictly nested (Wayback is queried by domain, so a site that failed live can still have captures).
| stage | NYC | Chicago | Houston | total |
|---|---|---|---|---|
| frame (sites, chains removed) | 4,363 | 1,800 | 464 | 6,627 |
| sampled | 12 | 12 | 12 | 36 |
| homepage fetched live | 8 | 8 | 10 | 26 |
| menu URL found on live homepage | 5 | 4 | 9 | 18 |
| >=1 Wayback capture of the domain | 8 | 12 | 12 | 32 |
| >=2 captures of one menu/home URL >=4 y apart | 5 | 10 | 12 | 27 |
| readable menu text (>=300 chars, >=5 prices) on >=1 fetched snapshot | 2 | 3 | 2 | 7 |
| priced hot-dog item on >=1 snapshot | 0 | 0 | 0 | 0 |
| matched pair (>=4 y, priced both ends) | 0 | 0 | 0 | 0 |
Of 77 snapshot fetches: 51 text OK (only 13 of those menu-like), 13 empty/JS/image-only, 13 Wayback 429 after retries (lost). Regex "hot dog" hits in the pilot were beers ("Coney Island ...") and cocktails; the LLM correctly returned no items.
Time: 7,933 s for 36 restaurants = 220 s/restaurant (190 / 197 / 274 by city); 98 Wayback 429s. Validation set: 2,689 s / 11 = 245 s each.
LLM: 70 calls, 41k prompt + 4k completion tokens, $0.0097 total (cap $2.00). Model deepseek/deepseek-v4.1-flash via OpenRouter, reasoning off, temperature 0, max_tokens 800 (raised from 400: multi-item output).

## What the zero means (rates, not trends)
- 0/36 random restaurants have a priced hot dog on any readable snapshot (rule of three: true rate could be up to ~8%).
- Live-menu screen of 514 more frame restaurants in the american/burger/pub/bar/bistro strata (excluding the 36; homepage + 2 menu links, parseable HTML only): 11 had a priced hot-dog line -> 2.1% (NYC 5/147, Chicago 4/210, Houston 2/157). That is a rough floor: JS/PDF/image menus are invisible to it.
- Of those 11 (validation, outcome-selected): 7 had >=2 captures >=4 y apart, 1 produced a matched priced pair; 2 more were near misses (price absent from archived text, or <4 y apart).
- So matched pairs per random restaurant is roughly 0.2-0.6% under this method.

## Validation set (NOT for estimates — selected on "hot dog on the live menu" to test the code)
11 restaurants (5 NYC, 4 Chicago, 2 Houston). Pairs: 1.

### The one matched pair: Milt s Barbecue for the Perplexed (Chicago), american stratum
Archive URLs (old / new; 2018-06-30, 2022-07-06, 2024-01-25 captures also checked):
- https://web.archive.org/web/20160618143943/http://www.miltsbbq.com:80/on-the-menu/
- https://web.archive.org/web/20260325221832/https://miltsbbq.com/on-the-menu/
Window 2016-06 -> 2026-03 (9.75 y). CPI: food away from home +49.6% (4.22%/y), full-service +48.8% (4.16%/y), all items +37.5% (3.32%/y).
| item | old | new | change | vs FAFH (ann.) |
|---|---|---|---|---|
| Romanian Char-Dog (the adult entry dog) | $10 | $10 | 0.0% | -4.2 pp/y (lagging) |
| Milt Dog | $14 | $16 | +14.3% | -2.8 pp/y |
| Chicago Dog (called Chicago Style Dog 2018-24) | $14 | $14 | 0.0% | -4.2 pp/y |
| Hot Dog (KIDS menu, 12 and under) | $6 | $8 | +33.3% | -1.2 pp/y |
Entry price per the fixed rule (cheapest item) is the kids dog, $6 -> $8, which is the wrong comparison for Mike s hypothesis; the adult entry is the Char-Dog at $10 -> $10. The pipeline needs an explicit kids-section exclusion (design change below). Items added/dropped: none (4 dogs at both ends). Plain dog exists early and late (Chicago Dog / Char-Dog).
Fanciness (verbatim descriptions):
- Char-Dog old: (no description). New: "100% beef hot dog locally sourced from Romanian Sausage Co. Add Chili $4" (old add-chili was $3). -> description 0 -> 12 words, provenance flag ON (named supplier + "locally").
- Milt Dog old: "Romanian Char-Dog brisket chili, "bacon", crispy onion, and pickled jalapenos." New: "Char-dog with brisket chili, "bacon," crispy onion, and pickled jalapeños." -> unchanged build.
- Chicago Dog old: "Diced onion, diced tomato, sport peppers, dill pickle spear, yellow mustard, and celery salt" New: "Char-dog with onion, tomato, dill pickle spear, sport peppers, relish, mustard, and celery salt." -> relish added back; same build.
- Kids Hot Dog: no description either year.
Ladder: entry-to-top spread (incl. kids) $8 -> $8 (kids $6->$8, Milt $14->$16). Premium-keyword flags: 0 -> 0 on the entry item (the scored "entry" is the kids dog; Char-Dog new description trips "local"). pairs_val.csv numbers use the kids dog as the entry, so read the table above, not the CSV s entry columns.
One restaurant is an anecdote. It does show the fixed rules work and that "entry price" can be dominated by a kids item.
Other validation restaurants: Kibbitznest (Chicago): "Classic Chicago Hot Dog" $7 in 2026; the 2018/2020/2024 snapshots list the Chicago Classic Jumbo Vienna Beef dog but the price is not in the archived text -> no pair (item present at both ends; price missing). O Donovan s (Chicago): "Mini Corn Dogs" appetizer $10.95 (2021) and $11.95 (2022), no price in the 2024/2026 text; also <4 y -> no pair. Madam Marie s, 11th Street Bar: only beer-name hits ("Coney Island ..."), no dog.
Arrivals (absent early, present late): none observed. Dropped: none. (An earlier presence rule keyed on price produced a false arrival and a false drop; fixed to key on item presence.)
Survivorship: only restaurants still operating with a live site can be observed, and the validation set additionally requires a hot dog on the live menu. Closed restaurants are invisible; dropped-dog cases are only observable inside the random sample.

## Hand check
Required: >=8 pairs. Achieved: 1 pair (only one exists). Instead I hand-checked every extracted hot-dog item that I could read in the stored text:
- Milt s: 4 items x 5 snapshots (2016, 2018, 2022, 2026 read line by line; 2024 same hash pattern, read via the 2022 text only) -> final extraction matches the page text on all items I read (16/16 item-prices; also section = kids for the $6/$8 dog).
- O Donovan s 2021 $10.95 (quoted "$10.95/12pc" — a count-qualified price), Kibbitznest 2026 $7: correct.
Extraction errors found BEFORE fixes (so the raw error rate was high):
1. Recall: the first regex (hot dog|frank|coney|corn dog) missed "Romanian Char-Dog", "Milt Dog", "Chicago Dog". The 2016 and 2018 Milt s snapshots returned only the kids dog, so the first pair compared the wrong item (1 of 1 pairs wrong). Fix v3.1: also match "<word> Dog" and let the LLM filter (cocktails "Salty Dog" are filtered by the LLM).
2. Wrong price: the LLM returned Char-Dog $14 for 2022 and 2024 (true $10; it grabbed the neighbouring dog s price). My "price appears somewhere in the page" check passed it. Fix: deterministic cross-check — an item counts only if the LLM price equals the first non-add-on number within 4 lines after the item name; mismatches are excluded (verified=false).
3. The LLM returned an empty list on the 2018 Milt s snapshot although the page has a hot-dog line (false negative; fixed by the regex change).
4. Missing price (not an error): Kibbitznest 2018/2020/2024 and O Donovan s 2024/2026 — the price is not in the archived text; the LLM correctly returned null.
These fixes were derived from the same restaurant I then checked, so the post-fix error rate (0 known) is optimistic. A fresh hand check on 8+ pairs from a larger run is still required. Both re-extractions ran over stored texts (no extra Wayback traffic). The random 36-restaurant pilot was run under the v2 pipeline and then re-extracted with v3.1 (still 0 priced hot dogs); its lineage discovery was NOT re-run under v3, so its funnel stages through "snapshot" are slightly pessimistic compared with v3.

## Failure modes (counts from the random pilot unless noted)
1. Wayback throttling is the binding constraint: 98 HTTP 429s in the pilot; the adaptive back-off (3 s -> 20 s gap + 60 s sleeps) held effective throughput to roughly one Wayback request per 20 s. 13 of 77 snapshot fetches never succeeded after 3 tries (17% data loss) and 4 CDX queries failed. A first 3 h attempt (v1: per-URL CDX + 12 snapshots per restaurant) was killed and archived because it ran ~5-27 min per restaurant; v2 cut Wayback calls to one domain-prefix CDX + <=6 fetches. I did not evade, change IPs or ignore the limit.
2. Domain-wide CDX with limit 1500 returned mostly junk query-string URLs (utm_, ?s=, lightbox) and truncated; v3 uses two queries (homepage + menu-ish paths with no query strings/assets).
3. Menus not in HTML: 13 snapshots with no text (JS-rendered, images, Wix/Squarespace shells); PDFs only partly handled; image-only menus recorded as no_text. Third-party menu widgets/ordering sites (Toast, OpenTable, Resy) were skipped.
4. Live sites: 5 SSL/connection errors, 2 HTTP 404, 2 x 403 (not retried), 1 x 526; 10 of 36 had no usable homepage.
5. Archived text of one URL often does not contain the whole menu (menu split across drink/food/brunch pages; prices in images).
6. Price layouts: prices on the line before or after the item name or after the description; LLM alone mis-assigns neighbours (fixed with the cross-check). Count-qualified and add-on prices ("$10.95/12pc", "Add chili $3").
7. Duplicate-text snapshots: several captures return identical text across years (page not updated, or Wayback served a stale copy); price-stability pairs from such pages are weak evidence.
8. Sampling frame: chains slip through; many OSM sites are hotels/venues/non-restaurants; ~65% of the frame is cuisines that do not sell hot dogs; OSM "website" can point to Facebook/Instagram/aggregators.
9. Overpass 504s (retried with backoff).
10. Item definition: kids-menu hot dogs, appetizer "mini corn dogs", "franks n beans" side, cocktail franks, named dogs without the words hot dog.

## Scale recommendation
Do not scale the pilot as designed: ~220-245 s per restaurant and ~0.2-0.6% matched pairs per random restaurant means ~3,000-10,000 restaurants per city for 20 pairs/city (about 200-600 hours/city). Not feasible.
Recommended two-stage design (changes the estimand; say so in any write-up):
1. Stage A, live screen, no Wayback: fetch current homepage + menu links for the whole frame (or 1,000-2,000 per city), 1.5 s delay/host, cities in parallel, ~5-6 s per restaurant. Gives an unbiased current-menu hot-dog presence rate by stratum and the list of restaurants with a hot dog NOW (~2% => 20-40 per 1,000).
2. Stage B, Wayback only for the Stage-A positives (about 4 min each at the observed throttle): measure price change of items that survived (a disclosed survivor-item selection). Run the added/dropped analysis separately on a random subset of the full sample using Wayback readable-at-both-ends only.
3. Pool across cities rather than 20 per city. 12 cities: New York, Chicago, Houston, Los Angeles, Philadelphia, Boston, Washington DC, Seattle, Denver, Atlanta, Minneapolis, Austin (large OSM frames, mix of climates/markets). Frame sizes with websites probably 500-4,500 per city (this pilot: 464-4,363). Expected: ~12 x 1,500 = 18,000 screened -> ~360 hot-dog-now restaurants -> ~60-100 usable pairs (not 20/city; maybe 5-8/city).
Expected wall time: Stage A ~30 CPU-hours spread across 12 parallel city workers = ~3-4 h; Stage B 360 x ~4 min = ~24 h serial under the throttle (can be cut by fetching only 2 end snapshots + 1-2 middle). LLM cost: $0.00014/call observed; ~2,500-3,500 calls => well under $1 (cap $5 is ample). The Wayback rate limit is the cost, not the model.
Design changes needed: (a) exclude kids-menu/appetizer/side items from the entry dog and record them separately (rule must be set before the full run); (b) keep the broadened "<word> Dog" regex + LLM filter and the deterministic price cross-check; (c) drop "other" cuisine stratum and obvious non-restaurants from the frame; (d) pre-filter hotels/venues/aggregator sites; (e) retry 429-failed snapshots in a later pass instead of dropping them; (f) normalize query strings in CDX; (g) record menu text completeness (does the page contain the section where hot dogs would be) before counting "absent"; (h) treat "price not in archived text" as its own status, since it was the second biggest pair-killer after Wayback.
Honesty: 36 random restaurants and 11 selected ones cannot support any trend; the single pair is 0% on the adult entry dog, +14% on the specialty dog, +33% on the kids dog, against +49.6% food-away-from-home CPI, and means nothing statistically.

Results (REPORT_V2.md)

Source file REPORT_V2.md, sha256 2a17a4610249724db734fc71671c5f7437b83553f3355f6ff6dfeb943b597c37.

# Hot dog menu price study, v2 (AllMenus design) -- REPORT_V2
Generated 2026-10-06 11:20 UTC by analyze.py (deterministic; re-runnable). HYPOTHESES.md was NOT edited; every verdict below applies its written conditions. Not an article; ~/stochastic-parrot untouched.

Snapshots processed so far: 361 (status {'ok': 360, 'gone_404': 1}); restaurants with a CDX answer: 274/274.

## 1. Funnel
| city | frame (non-excluded) | hot-dog-now | random subset | Stage B targets | CDX answered | >=1 capture | >=1 parseable priced snapshot | >=2 priced snapshots | qualifying dog on any snapshot | matched pair (>=4 y) |
|---|---|---|---|---|---|---|---|---|---|---|
| austin | 270 | 10 | 17 | 27 | 27 | 12 | 10 | 5 | 3 | 0 |
| boston | 334 | 16 | 22 | 37 | 37 | 25 | 24 | 12 | 7 | 0 |
| chicago | 426 | 62 | 40 | 93 | 93 | 68 | 65 | 37 | 43 | 4 |
| new-york | 449 | 28 | 36 | 63 | 63 | 48 | 48 | 36 | 16 | 2 |
| san-francisco | 451 | 21 | 35 | 54 | 54 | 37 | 36 | 17 | 12 | 1 |
| ALL | 1930 | 137 | 150 | 274 | 274 | 190 | 183 | 107 | 81 | 7 |

Matched item pairs (same restaurant, same item name AND description, priced both ends, >=4 y apart): **19** pairs in **7** restaurants. Restaurants with a qualifying dog at two ends >=4 y apart (entry-price comparison, includes changed items): **20**. 
Rule amendment v3.1 (logged after the first interim read: pet-food 'Purina Dog Chow' and a 10-piece catering tray were counted as hot dogs; multi-piece orders such as '2 Hawaiian Dogs' distort the entry price): pet food excluded; bulk/catering excluded; multi-piece orders ('2 X dogs') kept for like-for-like pairs only and excluded from entry/top/ladder. Applied uniformly to every snapshot when parsing. Rule amendment v3.2 (logged after the hand check found 4 of 5 'no hot dog early' cases were extraction misses): an item whose name lacks 'dog' but sits in a section that is purely about hot dogs (section words limited to hot dog/dogs/franks/kosher/vienna/beef/etc.) counts as a hot dog unless its name is a burger, fries, drink, sausage/polish, sandwich, nachos, etc.; 'franks' in such a section is accepted. Stage A (frame, hot-dog-now) was NOT recomputed under v3.2 and remains the frozen v3.0 target list. The Stage B target list was frozen under the v3.0 rules (137 hot-dog-now); re-counted under v3.1 the hot-dog-now set would be 128 restaurants (the 9 dropped have only multi/bulk/pet items).
Frame rule counts (Stage A, restaurants = AllMenus menu pages): {"(in frame)": 1930, "multi_location_same_name": 382, "chain_blocklist": 297, "name_in_multiple_cities": 164, "name_dog_or_quick_service": 51, "cuisine_hot_dogs": 7, "dedicated_hot_dog_share": 1}; hot-dog-like rows in frame by status: {"QUALIFYING": 334, "kids": 42, "combo": 35, "side": 20, "corndog": 11}.

Snapshot yield: templates (template, parseable, prices present): {('li_menu_item', True, True): 47, (None, False, False): 11, ('ldjson', True, True): 298, ('geo_stub', False, False): 2, ('li_menu_item', True, False): 2}. Snapshots by year x parseable are in v3/snapshot_yield.csv.

| year | snapshots | parseable | with_prices | median_items | with_qualifying_dog |
|---|---|---|---|---|---|
| 2009 | 1 | 0 | 0 | 0.0 | 0 |
| 2010 | 2 | 0 | 0 | 0.0 | 0 |
| 2012 | 1 | 1 | 1 | 108.0 | 0 |
| 2014 | 1 | 1 | 1 | 62.0 | 0 |
| 2016 | 50 | 47 | 45 | 88.5 | 24 |
| 2017 | 9 | 9 | 9 | 64.0 | 2 |
| 2019 | 59 | 56 | 56 | 104.0 | 29 |
| 2020 | 36 | 34 | 34 | 108.0 | 15 |
| 2021 | 130 | 130 | 130 | 108.0 | 56 |
| 2022 | 33 | 33 | 33 | 190.0 | 11 |
| 2023 | 8 | 7 | 7 | 71.0 | 5 |
| 2024 | 5 | 4 | 4 | 289.0 | 2 |
| 2025 | 20 | 20 | 20 | 108.0 | 12 |
| 2026 | 5 | 5 | 5 | 289.0 | 1 |

Snapshots that returned gone (404/410): 1.

## 2. Like-for-like repricing (P2)
Item-level pairs (each pair = one unchanged item at one restaurant; items within a restaurant are not independent):
| measure | n | median | mean |
|---|---|---|---|
| hot dog price % change | 19 | 43.5 | 59.13 |
| CPI food away from home % | 19 | 30.2 | 27.46 |
| CPI full-service meals % | 19 | 30.9 | 27.24 |
| CPI all items % | 19 | 24.4 | 21.63 |
| home cost per dog % (low) | 19 | 52.5 | 45.81 |
| home cost per dog % (high) | 19 | 47.7 | 42.72 |
| home cost % (sensitivity: CPI-frank) | 19 | 27.0 | 23.7 |
| excess over FAFH (pp) | 19 | 16.1 | 31.67 |
| burger % (same restaurants/snapshots, both ends) | 14 | 67.65 | 114.21 |
| annualised hot dog %/y | 19 | 8.53 | 7.1 |

Share lagging or equal to CPI FAFH: 8/19 = 42%; beating it: 11/19 = 58%. Lagging CPI all items: 7/19. Lagging home-cost (low): 10/19. Unchanged price (0%): 6/19.
Restaurant-clustered (one value per restaurant = mean of its item pairs): n=7, median hot dog change 28.57%, median CPI FAFH over the same pairs 27.4%, share lagging 2/7. Bootstrap 95% interval on the median of item-level excess over FAFH (pp): (-30.2, 45.5).
Sensitivity note: sensitivity series: CPI-Frankfurters index (bls.json, last point 2026-08) anchored to the Aug-2026 AP-frank level; bun_low + condiments as in homecost.csv.

Every pair with archive URLs is in pairs_v2.csv (columns url_old, url_new). Pairs table (first 40):

| restaurant | city | item | old | new | $old | $new | % chg | CPI FAFH % |
|---|---|---|---|---|---|---|---|---|
| Sliders Diner | san-francisco | Hot Link | 20160304 | 20211130 | 4.75 | 5.95 | 25.3 | 20.9 |
| Windy City Gyros | chicago | Hot Dog | 20160609 | 20210923 | 2.5 | 4.1 | 64.0 | 18.5 |
| Windy City Gyros | chicago | Chili Dog | 20160609 | 20210923 | 2.9 | 4.75 | 63.8 | 18.5 |
| Plush Pup | chicago | CHAR GRILLED DOG | 20160620 | 20230510 | 2.25 | 6.25 | 177.8 | 34.4 |
| Plush Pup | chicago | DOUBLE DOG | 20160620 | 20230510 | 3.25 | 8.25 | 153.8 | 34.4 |
| Plush Pup | chicago | CHEESE DOG | 20160620 | 20230510 | 2.6 | 7.25 | 178.8 | 34.4 |
| Plush Pup | chicago | CHILI DOG | 20160620 | 20230510 | 2.6 | 7.25 | 178.8 | 34.4 |
| Mr. Greek Gyros | chicago | Vienna Beef Hot Dog | 20160619 | 20210621 | 3.49 | 5.35 | 53.3 | 16.4 |
| Mr. Greek Gyros | chicago | Vienna Beef Double Dog | 20160619 | 20210621 | 4.09 | 7.65 | 87.0 | 16.4 |
| Mr. Greek Gyros | chicago | 3. Vienna Beef Hot Dog | 20160619 | 20210621 | 5.19 | 8.05 | 55.1 | 16.4 |
| The Burger Point | chicago | Spanish Revolution Hot Dog | 20210125 | 20250623 | 5.25 | 6.1 | 16.2 | 27.4 |
| The Burger Point | chicago | Chili Cheese Dog | 20210125 | 20250623 | 5.0 | 6.3 | 26.0 | 27.4 |
| The Burger Point | chicago | Maxwell Street Hot Dog | 20210125 | 20250623 | 4.25 | 6.1 | 43.5 | 27.4 |
| SoHo Park | new-york | Grilled Kosher Hot Dog | 20160714 | 20250320 | 3.5 | 3.5 | 0.0 | 43.8 |
| The Kitchen Sink | new-york | 2 New York Style Dogs | 20201204 | 20251210 | 9.5 | 9.5 | 0.0 | 30.2 |
| The Kitchen Sink | new-york | 2 Brooklyn Style Dogs | 20201204 | 20251210 | 12.5 | 12.5 | 0.0 | 30.2 |
| The Kitchen Sink | new-york | 2 Tacos Dogs | 20201204 | 20251210 | 12.5 | 12.5 | 0.0 | 30.2 |
| The Kitchen Sink | new-york | 2 Chili Cheese Dogs | 20201204 | 20251210 | 12.5 | 12.5 | 0.0 | 30.2 |
| The Kitchen Sink | new-york | 2 Hawaiian Dogs | 20201204 | 20251210 | 12.5 | 12.5 | 0.0 | 30.2 |

## 3. Entry price over time (P6)
Restaurants with a priced qualifying hot dog on >=1 snapshot: 81; with first/last >=4 y apart: 20.
| measure | n | median | mean |
|---|---|---|---|
| entry price old ($) | 20 | 3.92 | 6.6 |
| entry price new ($) | 20 | 5.17 | 7.3 |
| entry % change | 20 | 41.45 | 37.41 |
| CPI FAFH % same dates | 20 | 21.2 | 24.29 |
| entry excess over FAFH (pp) | 20 | 17.85 | 13.12 |
| CPI all items % | 20 | 17.45 | 18.98 |
| home cost low % | 20 | 43.7 | 42.92 |
| home cost high % | 20 | 40.05 | 39.97 |
| home cost sensitivity % | 20 | 20.05 | 23.31 |

Entry price lagging/equal CPI FAFH: 6/20; entry item unchanged (same name+description) at both ends: 3/20.

Restaurant list (entry price first vs last qualifying snapshot):

| restaurant | city | first | last | entry $ old | entry $ new | % chg | CPI FAFH % | entry item old | entry item new |
|---|---|---|---|---|---|---|---|---|---|
| Sliders Diner | san-francisco | 20160304 | 20211130 | 3.95 | 5.75 | 45.6 | 20.9 | Hot Dog | Hot Dog |
| Barney's Gourmet Hamburgers | san-francisco | 20160701 | 20210226 | 5.95 | 10.25 | 72.3 | 14.3 | Barney's Kosher Hot Dog | Barney's Hot Dog |
| Holy Grill | san-francisco | 20160613 | 20210411 | 4.95 | 6.5 | 31.3 | 15.0 | Dogma Hot Dog | Dogma Dog |
| Windy City Gyros | chicago | 20160609 | 20210923 | 2.5 | 4.1 | 64.0 | 18.5 | Hot Dog | Hot Dog |
| Plush Pup | chicago | 20160620 | 20230510 | 2.25 | 6.25 | 177.8 | 34.4 | CHAR GRILLED DOG | Plush Pup Dog |
| El Gran Burrito | chicago | 20160810 | 20210512 | 2.2 | 4.25 | 93.2 | 15.1 | Hot Dog | Hot Dog |
| The Bagel Restaurant & Deli | chicago | 20191119 | 20250908 | 8.95 | 13.75 | 53.6 | 34.2 | Jumbo Frankfurter Sandwich | Jumbo Frankfurter Sandwich |
| Firehouse Grill | chicago | 20160701 | 20210614 | 2.25 | 3.49 | 55.1 | 16.2 | Hot Dog | Hot Dog Only |
| Stanley's Grill | chicago | 20160714 | 20210516 | 3.9 | 4.99 | 27.9 | 15.4 | Hot Dog | Maxwell Street Style Polish Hot Dog |
| Mr. Greek Gyros | chicago | 20160619 | 20210621 | 3.49 | 5.35 | 53.3 | 16.4 | Vienna Beef Hot Dog | Vienna Beef Hot Dog |
| The Burger Point | chicago | 20210125 | 20250623 | 4.0 | 5.7 | 42.5 | 27.4 | Build Your Own Chicago Style Hot Dog | Chicago Style Hot Dog |
| Mom & Dads Deli | chicago | 20171224 | 20220814 | 2.45 | 3.25 | 32.7 | 23.0 | All Beef Hot Dog | Chili Dog |
| Brooklyn Diner | new-york | 20160726 | 20220116 | 21.75 | 21.95 | 0.9 | 21.4 | Famous Hot Dog | 15-Bite All-Beef Frankfurter |
| Astro Restaurant | new-york | 20160910 | 20220116 | 4.95 | 6.95 | 40.4 | 21.0 | Plain | The Plain Dog |
| SoHo Park | new-york | 20160714 | 20250320 | 3.5 | 3.5 | 0.0 | 43.8 | Grilled Kosher Hot Dog | Grilled Kosher Hot Dog |
| Westville | new-york | 20160910 | 20250124 | 3.5 | 4.0 | 14.3 | 42.2 | Hebrew National | Hebrew National Hot Dog |
| Pastrami Queen | new-york | 20160624 | 20220524 | 18.95 | 4.95 | -73.9 | 24.2 | Three Frankfurters | Frankfurter |
| 3 Guys Restaurant | new-york | 20201108 | 20250119 | 19.0 | 23.0 | 21.1 | 25.9 | Double Kosher Hot Dog | Double Hot Dog |
| Westville (East) | new-york | 20160720 | 20250116 | 11.0 | 4.0 | -63.6 | 42.8 | Hebrew National | Hebrew National Hot Dog |
| Bella Donna Italian Subs | austin | 20160612 | 20201128 | 2.5 | 3.99 | 59.6 | 13.6 | NY Pushcart Dog | N.Y. Pushcart Dog Lunch |

Entry (cheapest qualifying) hot dog price by snapshot year, all restaurants with a dog that year (unbalanced; composition changes by year):

| year | n | median | mean | min | max |
|---|---|---|---|---|---|
| 2016 | 24 | 3.7 | 5.5 | 2.2 | 21.75 |
| 2017 | 2 | 4.22 | 4.22 | 2.45 | 6.0 |
| 2019 | 29 | 4.99 | 5.63 | 1.25 | 21.95 |
| 2020 | 15 | 4.99 | 5.81 | 1.5 | 19.0 |
| 2021 | 56 | 5.0 | 6.48 | 2.5 | 21.95 |
| 2022 | 11 | 6.95 | 9.01 | 3.25 | 21.95 |
| 2023 | 5 | 6.25 | 6.36 | 2.5 | 9.79 |
| 2024 | 2 | 10.75 | 10.75 | 10.49 | 11.0 |
| 2025 | 12 | 6.85 | 8.15 | 3.5 | 23.0 |
| 2026 | 1 | 11.0 | 11.0 | 11.0 | 11.0 |

## 4. Plain-dog survival and ladder spread (P7)
Restaurants with first/last >=4 y: n=20. Plain dog offered (fixed rule: empty-or-plain-marker description, 0 premium keywords, <=2 components) on the first snapshot: 11/20 = 55%; on the last: 9/20 = 45%. Dropped plain dog: 4; gained: 2.
Ladder spread (top minus entry price) among all 20: median old $0.9 -> new $0.8 (mean 0.98 -> 1.89). Among 11 restaurants with >=2 priced dogs at both ends: median spread 1.25 -> 2.0; widened in 7, narrowed in 3. Number of dog items: median 3.0 -> 3.0.
Restaurants where a plain dog exists at both ends: 7.

## 5. Fanciness change (P4) -- fixed fancy_rules.json scoring
| measure | n | old_median | new_median | old_mean | new_mean | rose | fell | same | sign_test_p |
|---|---|---|---|---|---|---|---|---|---|
| description words (mean over dog items) | 20 | 5.67 | 7.0 | 7.09 | 6.53 | 8 | 7 | 5 | 1.0 |
| topping/component count (mean) | 20 | 2.12 | 2.5 | 2.52 | 2.67 | 8 | 6 | 6 | 0.791 |
| distinct premium flags (mean) | 20 | 0.0 | 0.0 | 0.2 | 0.21 | 2 | 3 | 15 | 1.0 |
| entry item: words | 20 | 4.0 | 7.0 | 6.6 | 6.85 | 6 | 5 | 9 | 1.0 |
| entry item: components | 20 | 1.0 | 2.0 | 2.45 | 2.8 | 7 | 4 | 9 | 0.549 |
| entry item: premium flags | 20 | 0.0 | 0.0 | 0.1 | 0.1 | 0 | 0 | 20 |  |

Entry-item verbatim descriptions old -> new (all restaurants, first 25 where descriptions differ; the first snapshot is the earliest with a qualifying dog):

- **Sliders Diner** (san-francisco, 2016 -> 2021): OLD "Hot Dog": "" $3.95 || NEW "Hot Dog": "Quarter pound all beef hot dogs." $5.75  [https://web.archive.org/web/20160304003505/https://www.allmenus.com/ca/san-francisco/44779-sliders-diner/menu/ | https://web.archive.org/web/20211130050319/https://www.allmenus.com/ca/san-francisco/44779-sliders-diner/menu/]
- **Barney's Gourmet Hamburgers** (san-francisco, 2016 -> 2021): OLD "Barney's Kosher Hot Dog": "Flame broiled beef hot dog on a french roll, garnished with lettuce, tomato, pickle and red onions served with curly fries" $5.95 || NEW "Barney's Hot Dog": "Sweet relish, chopped red onion." $10.25  [https://web.archive.org/web/20160701035040/https://www.allmenus.com/ca/san-francisco/63610-barneys-gourmet-hamburgers/menu/ | https://web.archive.org/web/20210226105718/https://www.allmenus.com/ca/san-francisco/63610-barneys-gourmet-hamburgers/menu/]
- **Holy Grill** (san-francisco, 2016 -> 2021): OLD "Dogma Hot Dog": "all natural, all beef hot dog with grilled onions." $4.95 || NEW "Dogma Dog": "All natural, all beef hot dog and grilled onions." $6.5  [https://web.archive.org/web/20160613220644/https://www.allmenus.com/ca/san-francisco/93928-holy-grill/menu/ | https://web.archive.org/web/20210411001904/https://www.allmenus.com/ca/san-francisco/93928-holy-grill/menu/]
- **Plush Pup** (chicago, 2016 -> 2023): OLD "CHAR GRILLED DOG": "" $2.25 || NEW "Plush Pup Dog": "" $6.25  [https://web.archive.org/web/20160620092635/https://www.allmenus.com/il/chicago/223589-plush-pup/menu/ | https://web.archive.org/web/20230510142627/https://www.allmenus.com/il/chicago/223589-plush-pup/menu/]
- **El Gran Burrito** (chicago, 2016 -> 2021): OLD "Hot Dog": "" $2.2 || NEW "Hot Dog": "Hot dog, ketchup, mustard, raw onions , pickles, relish and sports pepper on hot dog bun. Served with fries." $4.25  [https://web.archive.org/web/20160810040837/https://www.allmenus.com/il/chicago/224766-el-gran-burrito/menu/ | https://web.archive.org/web/20210512051651/https://www.allmenus.com/il/chicago/224766-el-gran-burrito/menu/]
- **The Bagel Restaurant & Deli** (chicago, 2019 -> 2025): OLD "Jumbo Frankfurter Sandwich": "With lettuce, tomato, onion and pickle relish. Served with fresh fries and coleslaw." $8.95 || NEW "Jumbo Frankfurter Sandwich": "Served with french fries and coleslaw, with lettuce, tomato, onion, and pickle relish." $13.75  [https://web.archive.org/web/20191119212042/https://www.allmenus.com/il/chicago/237448-the-bagel-restaurant-deli/menu/ | https://web.archive.org/web/20250908124337/https://www.allmenus.com/il/chicago/237448-the-bagel-restaurant-deli/menu/]
- **Firehouse Grill** (chicago, 2016 -> 2021): OLD "Hot Dog": "" $2.25 || NEW "Hot Dog Only": "With mustard, relish, onion, tomato and sport peppers." $3.49  [https://web.archive.org/web/20160701002028/https://www.allmenus.com/il/chicago/305207-firehouse-grill/menu/ | https://web.archive.org/web/20210614235529/https://www.allmenus.com/il/chicago/305207-firehouse-grill/menu/]
- **Stanley's Grill** (chicago, 2016 -> 2021): OLD "Hot Dog": "w/fries. everything includes: mustard, relish, freshly chopped onions, sliced red ripe tomatoes, kosher pickle and sport pepper." $3.9 || NEW "Maxwell Street Style Polish Hot Dog": "Prepared with Mustard, Grilled onions and Sport Peppers" $4.99  [https://web.archive.org/web/20160714101523/https://www.allmenus.com/il/chicago/308786-stanleys-grill/menu/ | https://web.archive.org/web/20210516002742/https://www.allmenus.com/il/chicago/308786-stanleys-grill/menu/]
- **The Burger Point** (chicago, 2021 -> 2025): OLD "Build Your Own Chicago Style Hot Dog": "1/4 lb. grass fed beef hot dogs with celery salt, peppers, mustard, tomatoes, sweet relish, onions and pickles." $4.0 || NEW "Chicago Style Hot Dog": "1/4 lb. grass fed beef hot dogs with celery salt, peppers, mustard, tomatoes, sweet relish, onions and pickles." $5.7  [https://web.archive.org/web/20210125053329/https://www.allmenus.com/il/chicago/358514-the-burger-point/menu/ | https://web.archive.org/web/20250623034608/https://www.allmenus.com/il/chicago/358514-the-burger-point/menu/]
- **Mom & Dads Deli** (chicago, 2017 -> 2022): OLD "All Beef Hot Dog": "When ordering please specify: white, wheat or rye bread. Mayo, mustard, lettuce, tomatoes or onions. Toasted white, wheat or rye bread also available." $2.45 || NEW "Chili Dog": "all beef hotdog serve with homemade chili" $3.25  [https://web.archive.org/web/20171224202246/https://www.allmenus.com/il/chicago/358897-mom-dads-deli/menu/ | https://web.archive.org/web/20220814155619/https://www.allmenus.com/il/chicago/358897-mom-dads-deli/menu/]
- **Brooklyn Diner** (new-york, 2016 -> 2022): OLD "Famous Hot Dog": "Housemade juniper sauerkraut, french fries" $21.75 || NEW "15-Bite All-Beef Frankfurter": "housemade juniper sauerkraut, french fries" $21.95  [https://web.archive.org/web/20160726165734/https://www.allmenus.com/ny/new-york/247595-brooklyn-diner/menu/ | https://web.archive.org/web/20220116102837/https://www.allmenus.com/ny/new-york/247595-brooklyn-diner/menu/]
- **Astro Restaurant** (new-york, 2016 -> 2022): OLD "Plain": "" $4.95 || NEW "The Plain Dog": "100% all beef hot dog and your preference of mustard or ketchup." $6.95  [https://web.archive.org/web/20160910124734/https://www.allmenus.com/ny/new-york/247669-astro-restaurant/menu/ | https://web.archive.org/web/20220116094323/https://www.allmenus.com/ny/new-york/247669-astro-restaurant/menu/]
- **Westville** (new-york, 2016 -> 2025): OLD "Hebrew National": "Kosher beef" $3.5 || NEW "Hebrew National Hot Dog": "one beef hotdog w/ choice of toppings" $4.0  [https://web.archive.org/web/20160910155335/https://www.allmenus.com/ny/new-york/272389-westville/menu/ | https://web.archive.org/web/20250124110900/https://www.allmenus.com/ny/new-york/272389-westville/menu/]
- **Pastrami Queen** (new-york, 2016 -> 2022): OLD "Three Frankfurters": "With baked beans or french fries" $18.95 || NEW "Frankfurter": "" $4.95  [https://web.archive.org/web/20160624190101/https://www.allmenus.com/ny/new-york/41950-pastrami-queen/menu/ | https://web.archive.org/web/20220524151636/https://www.allmenus.com/ny/new-york/41950-pastrami-queen/menu/]
- **3 Guys Restaurant** (new-york, 2020 -> 2025): OLD "Double Kosher Hot Dog": "Served with sauerkraut and french fries." $19.0 || NEW "Double Hot Dog": "Served with sauerkraut and french fries." $23.0  [https://web.archive.org/web/20201108212506/https://www.allmenus.com/ny/new-york/41983-3-guys-restaurant/menu/ | https://web.archive.org/web/20250119141329/https://www.allmenus.com/ny/new-york/41983-3-guys-restaurant/menu/]
- **Westville (East)** (new-york, 2016 -> 2025): OLD "Hebrew National": "Kosher beef $3.50" $11.0 || NEW "Hebrew National Hot Dog": "one beef hotdog w/ choice of toppings" $4.0  [https://web.archive.org/web/20160720102959/https://www.allmenus.com/ny/new-york/60329-westville-east/menu/ | https://web.archive.org/web/20250116115219/https://www.allmenus.com/ny/new-york/60329-westville-east/menu/]
- **Bella Donna Italian Subs** (austin, 2016 -> 2020): OLD "NY Pushcart Dog": "All-beef dog topped with mustard, onion sauce and sauerkraut." $2.5 || NEW "N.Y. Pushcart Dog Lunch": "Topped with mustard, onion sauce and sauerkraut." $3.99  [https://web.archive.org/web/20160612051941/https://www.allmenus.com/tx/austin/304897-bella-donna-italian-subs/menu/ | https://web.archive.org/web/20201128055241/https://www.allmenus.com/tx/austin/304897-bella-donna-italian-subs/menu/]

## 6. Decomposition of the change in hot-dog price (P3)
Restaurants with a priced qualifying dog at two ends >=4 y apart: 20. Items: early 72, late 57, same item (name+description) at both ends 14, new/changed at the late end 43, dropped/changed from the early end 58.
| set | n | median | mean |
|---|---|---|---|
| early items (all) | 72 | 4.22 | 5.73 |
| late items (all) | 57 | 6.55 | 8.28 |
| matched items, early price | 14 | 3.5 | 3.69 |
| matched items, late price | 14 | 6.17 | 6.2 |
| new/changed items at late end | 43 | 6.95 | 8.96 |
| dropped/changed early items | 58 | 4.35 | 6.22 |

Change in MEAN price early->late: 2.55 dollars. Exact split: (a) like-for-like repricing of unchanged items = 0.62 dollars (24% of the change); (b) composition (new/changed items entering, dropped items leaving) = 1.93 dollars. Change in MEDIAN price: 2.33 dollars; median of the matched items' late price minus early price: 2.67 dollars.

## 7. Arrivals / drops (random subset ONLY)
The hot-dog-now set is selected on having a qualifying hot dog in the Feb-2024 dataset, so it cannot estimate arrivals (it selects on the outcome) and is excluded here. Only the seeded random subset (150 restaurants drawn from the whole non-excluded frame, regardless of hot dogs) is used; and only restaurants that survived to be in the dataset (survivors).
Random-subset restaurants with a menu of >=10 priced items at two ends >=4 y apart: 17. neither 16, arrival (0 dogs early -> >=1 late) 0, drop (>=1 early -> 0 late) 0, dog at both 1. Dog prevalence at the early end 1/17 -> late end 1/17.

## 8. Price level 2016 vs now (P1) and spread across tiers (P5)
2016 = snapshots captured in calendar 2016 (first 2016 capture per restaurant is what the picker takes); now = latest snapshot (>=2024) of hot-dog-now restaurants.
| measure | n | median | mean |
|---|---|---|---|
| all qualifying dog items, 2016 | 88 | 4.25 | 5.41 |
| entry price, 2016 (restaurants) | 24 | 3.7 | 5.5 |
| all qualifying dog items, latest | 22 | 7.15 | 8.11 |
| entry price, latest (restaurants) | 14 | 8.12 | 8.52 |
Balanced (same restaurants, first snapshot <=2017 and last >=4 y later): n=17; entry price median 3.5 -> 4.95; mean 5.88 -> 6.09.

Spread across price tiers (tier = burger-price tercile within city from the restaurant's earliest usable priced snapshot; terciles computed over Stage B target restaurants only):
| tier | restaurants_with_burger_tier | matched_item_pairs | median_item_pct | median_cpi_fafh | entry_restaurants | median_entry_pct | median_entry_cpi |
|---|---|---|---|---|---|---|---|
| low | 37 | 11 | 64.0 | 20.9 | 11 | 55.1 | 16.2 |
| mid | 38 | 5 | 0.0 | 30.2 | 3 | 14.3 | 42.2 |
| high | 42 | 3 | 26.0 | 27.4 | 5 | 21.1 | 25.9 |

## 9. Restaurant price to home-cost ratio over time
Median entry price (restaurants with a dog that snapshot year; unbalanced) divided by the mid-year home cost per dog (homecost.csv, June):

| year | n | median_entry | home_low | home_high | ratio_low | ratio_high |
|---|---|---|---|---|---|---|
| 2016 | 24 | 3.7 | 0.54 | 0.63 | 6.9 | 5.9 |
| 2017 | 2 | 4.22 | 0.48 | 0.57 | 8.8 | 7.4 |
| 2019 | 29 | 4.99 | 0.51 | 0.6 | 9.9 | 8.4 |
| 2020 | 15 | 4.99 | 0.62 | 0.73 | 8.0 | 6.8 |
| 2021 | 56 | 5.0 | 0.64 | 0.74 | 7.9 | 6.7 |
| 2022 | 11 | 6.95 | 0.86 | 0.98 | 8.0 | 7.1 |
| 2023 | 5 | 6.25 | 0.87 | 1.01 | 7.2 | 6.2 |
| 2024 | 2 | 10.75 | 0.92 | 1.06 | 11.7 | 10.1 |
| 2025 | 12 | 6.85 | 0.93 | 1.06 | 7.4 | 6.5 |
| 2026 | 1 | 11.0 | 0.98 | 1.11 | 11.3 | 10.0 |

Paired items: ratio price/home-cost(low) old median 7.6 -> new 8.3.

## 10. Verdicts on P1-P7 (rules fixed; applied to the numbers above)
| prediction | verdict | numbers behind it |
|---|---|---|
| P1 price level ~$3-4 (2016) -> ~$12 (now) | not supported (tentative, thin) | 2016 median item $4.25 (n=88 items, 24 restaurants), latest $7.15 (n=22 items, 14 restaurants) |
| P2 like-for-like repricing >= about CPI FAFH | supported (tentative) | 19 item pairs in 7 restaurants; median excess over FAFH 4.4 pp (supported if >= -5 pp); median change 43.5% vs FAFH 30.2% |
| P3 rise is mostly composition, not repricing | supported | mean rise $2.55; repricing share 24% (supported if < 50%); n restaurants 20 |
| P4 fancier (words, components, premium flags up; plain share down) | mixed | n=20; rose/fell words (8, 7), components (8, 6), premium (2, 3); plain 11->9 |
| P5 change spread across tiers, not only top | not supported (tentative) | tiers with n>=3: ['low', 'mid', 'high']; tiers whose median change >= CPI FAFH: ['low'] |
| P6 entry price ~$3-4 -> ~$8-10, faster than CPI FAFH | not supported | n=20 restaurants; median entry $3.92 -> $5.17 (41.45% vs FAFH 21.2%; excess 17.85 pp) |
| P7 plain dog share fell; ladder spread narrowed | not supported | plain share 55% -> 45%; median spread (restaurants with >=2 dogs both ends, n=11) $1.25 -> $2.0; n=20 |

Verdict rules (fixed in analyze.py, from the 'would count against' text in HYPOTHESES.md): P1 supported if 2016 median item <= $5 and latest median >= $10; P2 supported if the restaurant-level median excess over FAFH >= -5 pp; P3 supported if like-for-like repricing is < 50% of the mean rise; P4 supported only if words, components and premium flags each rose more often than fell AND plain-dog share fell; P5 supported if every tier with n>=3 has median change >= CPI FAFH; P6 supported if median entry <= $5 early, $7-11 late and above FAFH; P7 supported if plain share AND median ladder spread (restaurants with >=2 dogs at both ends) both fell. 'conclusive' needs n>=15 restaurants, 'tentative' 6-14, else 'cannot tell'.

## 11. Biases and limits
- Single source: every number is AllMenus (a delivery/takeout menu aggregator, 2024 snapshot dataset + Wayback copies of its own pages). It is not restaurant-by-restaurant dine-in pricing; AllMenus menu prices are often the delivery-order prices entered by the restaurant (sometimes marked up vs in-store). Template, scraping and menu-entry practices of AllMenus changed over time (2016 HTML list vs later JSON-LD).
- Survivor bias: only restaurants that are still listed with a menu in the Feb-2024 dataset are in the frame. Closed restaurants (and their hot dogs) are invisible; drops of a hot dog item are only observable in the random subset, and only for survivors.
- Outcome selection: the hot-dog-now set selects restaurants that have a hot dog now. It cannot estimate arrivals, and 'now' prices for these restaurants are conditional on keeping the item. Matched pairs further condition on the same item (name+description) existing at both ends.
- Wayback coverage: uneven; one 'first capture per year' snapshot is taken per target year; many AllMenus pages were never archived, so the early-end sample is a small, non-random subset of the frame (restaurants Wayback happened to crawl, probably more popular/older listings). Throttled at one request per 20 s.
- Frame: 'non-budget' cannot be enforced; AllMenus is dominated by takeout, delis, gyros, pizza and diners. Chain/quick-service filtering is by name list and cuisine tag (the dataset has no fast-food tag) and removed multi-location names (any name with >1 menu page).
- Time stamps: the dataset has no date (uploaded Feb 2024); 'now' means the latest Wayback snapshot (often 2024-2026) and the dataset snapshot, not necessarily today.
- Prices on AllMenus pages can be ranges or size options; the FIRST listed price is used.
- Small n: any verdict marked tentative rests on a handful of restaurants.

Home-cost method notes

Source file HOMECOST.md, sha256 a5a25c1b22bcc2e27b0cab8a9080d61a95d66860e341eb6f450afde04f1c880f.

# Home-cost-per-hot-dog series (built 2026-10-05)
Files: homecost.csv (monthly 2016-01..2026-08), bls.json (raw BLS series).
Basket per dog: 1 frankfurter (8 per lb) + 1 bun + condiments.
Sources (all BLS): APU0000705111 frankfurters avg price $/lb (published only to 2022-04; no data after), CUUR0000SS05011 CPI Frankfurters (used to extend after 2022-04, spliced at Apr 2022), APU0000702111 white pan bread $/lb (bun proxy: 1.5 oz per bun low case; high case = $0.30/bun in Aug 2026 indexed by bread price), CUUR0000SS18043 + SS1804B CPI sauces/gravies and other condiments ($0.04 per serving set in Aug 2026, indexed), CPI food away from home CUUR0000SEFV, CPI all items CUUR0000SA0.
Results (AP-based frank): 2016-01 $0.60-0.70 -> 2026-08 $0.97-1.10 (+58 to +63%); CPI food away from home +53.1%, all items +41.4% over the same months.
Sensitivity (CPI-only frank, anchored at Aug 2026 level): much smaller rise (the BLS CPI Frankfurters index rose 18.5% Jan 2016-Apr 2022 vs +50.3% for the average-price series over the same months) -> the answer to 'did home cost beat inflation' depends on which BLS measure; report both.
External cross-check: Chmura Hot Dog Index 2026 city values $0.80-$1.28 per dog (frank + bun + ketchup + mustard); Chmura says +24.7% since May 2019. Our series for May 2019 -> Aug 2026 is larger; unresolved.
CostInflation HF grocery dataset medians looked too high (10 hamburger buns median $9.36; 20 oz ketchup $11.42) vs BLS-scale prices; NOT used for levels.

BLS series behind the home-cost figures

Summary of bls.json; the full monthly series are in the desk’s job folder.

BLS series as pulled by the desk (bls.json, sha256 d37effb45f358f19a043fcec9cbc8025e085534ac10f5531dd55bb47949ac762). Index values are not seasonally adjusted (CUUR series); the restaurant-comparison CPI in the pairs table uses the seasonally adjusted CUSR series from cpi.csv.

APU0000705111 frankfurters, average price per lb: 2016-01 3.473; 2022-04 5.221, the last month published. Change 2016-01 to 2022-04: +50.3%.
CUUR0000SS05011 CPI frankfurters: 2016-01 234.021; 2022-04 277.315. Change 2016-01 to 2022-04: +18.5%.
CUUR0000SEFV CPI food away from home: 2016-01 259.958; 2026-08 397.868. Change: +53.1%.
CUUR0000SA0 CPI all items: 2016-01 236.916; 2026-08 334.98. Change: +41.4%.

Notes