How DealMeal Measures Food Delivery Deals
Food delivery deal data looks simple on the surface: a restaurant, a promotion, and a price or percentage. In practice, the same promotion may appear several times, different apps may describe the same mechanic in different language, and key fields may be present on one platform but absent on another. DealMeal measures food delivery deals by separating raw observations from analysis-ready records, normalizing restaurants and menu items, checking deal categories against the offer text, and publishing the coverage behind each statistic.
This methods guide explains what DealMeal observes, how records are corrected and deduplicated, how promotions are classified, how restaurants and items are linked across platforms, and which limitations matter when interpreting the results.
Quick answer
DealMeal does not treat every collected row as a distinct food delivery deal. Its historical source contains 680,678 raw promotion records, but the corrected US marketplace population is 376,719 records. Its current daily source contains 635,192 raw rows, which become 253,204 offer-days after marketplace, duplicate, and currency corrections, then resolve to 51,573 distinct offers. Deal types are checked against the offer title, restaurant branches are matched by name and location, and every analysis must account for platform-specific field coverage.
Key findings about DealMeal's measurement process
Raw rows are not the same as offers. The current data contracts from 635,192 rows to 253,204 offer-days and then to 51,573 distinct offers.
Cleaning changes the historical count materially. Excluding non-marketplace sources, removing placeholders, restoring misattributed marketplace records, and filtering non-US currencies reduce 680,678 raw records to 376,719 analysis records.
Classification is checked in two directions. DealMeal compares the platform-supplied deal type with an independent reading of the title and reports both recall and precision.
Missing fields are platform-specific. For example, distance is absent from Uber Eats observations, while coordinates are absent from DoorDash offer rows.
The current sample is multi-metro, not local-only. It comes from 165 fixed observation points grouped into 107 areas; 36.29% of current offer-days come from Northern Virginia and 63.71% from elsewhere.
The data is not a census of all US promotions. It represents what DoorDash, Uber Eats, and Grubhub showed at DealMeal's observation points on the days measured.
Three datasets answer three different questions
DealMeal uses separate sources because no single dataset can answer every question responsibly. Combining them without respecting their different structures would create false precision.
Source | Coverage | Best used for | Key limitation |
|---|---|---|---|
Historical archive | 680,678 raw records from 18 sources across 288 observation days, July 13, 2025–July 2, 2026 | Historical promotion records and long-window patterns | No menu prices, expiry dates, or reliable store ID on 82.95% of corrected records |
Daily Labs snapshots | 635,192 raw rows across 39 observation days, July 25–September 2, 2026 | Structured savings, current categories, field coverage, and duplicate control | One day is missing, and the short window does not establish long-term availability |
Mealytix operational and normalization data | 104 collection runs, 64,239 store observations, 4,091 branches, and 97,140 item-link decisions | Collection behavior, physical-branch matching, and cross-platform menu comparison | The priced comparison set covers 757 Northern Virginia branches, not the full US sample |
A history question belongs to the archive. A question about a discount amount or minimum order belongs to the daily snapshots. A question about whether two listings represent the same physical restaurant or menu item belongs to the normalization data.
How raw food delivery deal data becomes analysis-ready
DealMeal applies a defined correction sequence rather than counting every row returned by a source. The historical and current datasets require different corrections, so their final numbers are not directly interchangeable.
Historical correction sequence
Start with 680,678 raw records from 18 sources.
Restrict the data to DoorDash, Uber Eats, and Grubhub: 454,431 records remain after excluding coupon aggregators, non-US marketplaces, and single-brand sources.
Remove non-offer placeholders: 67,088 rows such as “No promotion available” or “12 Offers Available” are removed, leaving 387,343.
Restore marketplace-origin records whose displayed source label changed: 12,456 valid rows are added back, producing 399,799.
Filter non-US currency titles: 23,080 rows are removed, leaving 376,719 historical marketplace records.
The sequence is not strictly downward because the restoration step adds back valid marketplace observations that would otherwise be lost. DealMeal describes the final historical unit as a record, not a distinct offer, because 82.95% lack the store identifier needed to apply the newer deduplication key.
Current correction sequence
Start with 635,192 daily rows.
Restrict to the three marketplaces: 633,840 rows remain.
Remove same-day duplicates: repeated appearances of the same promotion from multiple observation points collapse to 253,210 offer-days.
Remove six non-US currency titles: the analysis population becomes 253,204 offer-days.
Resolve repeated observations across days: those offer-days represent 51,573 distinct platform-store-title offers.
The same offer was observed for a median of three days, but that is not a measured lifespan. DealMeal stores no expiry date, observations may begin after a promotion starts or stop before it ends, and the calculation assumes that store identifiers remain stable across days. The result is therefore an observation floor, not an expiration estimate.

DealMeal data insight
A system that skipped the correction process would report about 1.8 times the corrected historical count and 2.5 times the corrected daily count. The difference is driven by source scope, placeholders, currency contamination, and two distinct forms of duplication—not by deleting inconvenient findings.
How DealMeal classifies food delivery promotions
The current data includes a platform-supplied dealType, but DealMeal does not assume that field is perfect. Each typed offer is checked against an independent set of title patterns. The check runs in both directions: recall asks how often the title pattern recognizes offers already assigned to a category, while precision asks how often a matching title belongs to that category.
Category | Offer-days | Share |
|---|---|---|
Dollar off | 90,322 | 35.67% |
Percentage off | 79,532 | 31.41% |
BOGO | 51,437 | 20.31% |
Free item | 14,655 | 5.79% |
Other | 14,014 | 5.53% |
Blank | 3,244 | 1.28% |
Category | Typed offer-days | Recall | Precision |
|---|---|---|---|
Percentage off | 79,532 | 100.00% | 100.00% |
BOGO | 51,437 | 99.81% | 100.00% |
Dollar off | 90,322 | 98.88% | 99.84% |
Free item | 14,655 | 100.00% | 86.03% |
These tests must remain separate. A single combined “agreement” number would hide 17,258 Other or blank offer-days and would combine overlapping patterns. In fact, 2,324 offers match more than one pattern, largely because BOGO titles also contain the word “free.”
Why platform vocabulary matters
The three marketplaces do not describe BOGO deals in the same way. Uber Eats uses “Buy 1” throughout the measured BOGO set, DoorDash uses “Buy 1” in nearly all of it, and Grubhub mainly uses “BOGO” or “Buy One.” A title rule designed around one platform can produce a false zero on another.
All 98 BOGO disagreements and all 1,009 dollar-off disagreements came from Grubhub. That does not mean its promotions are worse; it means its language differs. DealMeal therefore checks title patterns for platform-specific blind spots before using them in analysis.

How DealMeal interprets discount fields
Field names do not always mean what a reader might assume. On a percentage-off offer, amountCents represents a maximum savings cap, not the discount itself. DealMeal checked 4,005 percentage-off titles that explicitly stated “up to $X”; all 4,005 matched the structured amount. This verifies the rule on 5.04% of percentage offers and 6.44% of those with a recorded cap, while the rest do not state a ceiling in the title and cannot be validated the same way.
About 9.92% of percentage offers have neither a cap nor a minimum order. These are typically item-scoped promotions such as “20% off select items.” They cannot be converted into a dollar saving without knowing which items qualify, so DealMeal reports the missing valuation instead of inventing one.

Field | Uber Eats | DoorDash | Grubhub |
|---|---|---|---|
Percentage value | 14.26% | 42.97% | 13.59% |
Amount or cap | 23.69% | 73.94% | 79.54% |
Minimum order | 45.32% | 75.75% | 98.30% |
Distance | 0.00% | 100.00% | 100.00% |
Rating | 100.00% | 100.00% | 100.00% |
Coordinates | 100.00% | 0.00% | 100.00% |
A missing value is not a zero. Uber Eats observations do not show zero-mile delivery; they lack a distance field. DoorDash offer rows do not represent restaurants without locations; they lack coordinates in this source. For percentage-off promotions specifically, Uber Eats records no savings cap, while DoorDash and Grubhub record one on roughly 90% of their respective offers. Any analysis using those fields must name the platforms and the coverage rate.
How restaurants and menu items are normalized
Marketplace listings are not automatically treated as the same restaurant. DealMeal resolves listings into physical branches using restaurant name and location, then stores the platforms associated with each branch. In the normalization export, 4,091 branch records include 2,943 branches on one platform, 638 on two, and 474 on all three.
Of 1,112 multi-platform branches, 757 produced at least one priced menu comparison. The remaining 355 lacked a menu that could be retrieved or confidently matched on at least one side. Within matched branches, menu items are linked pairwise with a recorded decision, reason, and confidence. The 97,140 link decisions produced 70,803 priced comparisons across 757 physical restaurants. These are comparisons rather than unique items because a branch present on all three platforms can contribute three platform-pair rows.
Auditing matching bias
A normalization audit found 1,147 item links, or 1.62% of the comparison set, where price had influenced the match. Because those links were partly selected for price similarity, they bias a same-price result upward. Separately, 371 links crossed a size mismatch and were same-price only 2.16% of the time, biasing the result downward.
Removing only the price-influenced links moved the measured same-price rate from 70.98% to 70.51%, a decrease of 0.48 percentage points. Removing only the size-mismatch links increased it by 0.37 points. Removing both produced a net change of just −0.11 points. Reporting only that small net would conceal two larger errors that happened to offset one another, so DealMeal discloses both sensitivity checks.
What DealMeal's geographic sample represents
The current dataset is a multi-metro US sample with a heavy Washington-area weighting. It uses 165 fixed observation points grouped into 107 areas. Northern Virginia accounts for 91,883 current offer-days, or 36.29%, across 12 areas; the remaining 161,321 offer-days, or 63.71%, come from 95 areas elsewhere.
This corrects an earlier description of the data as primarily Northern Virginia and replaces a non-reproducible estimate of 206 areas. The corrected calculation finds 165 distinct points and 107 areas after rounding points to one decimal degree. The sample includes observations from the San Francisco peninsula, the Chicago area, New York, Florida, Los Angeles, Dallas, and other markets, but no per-metro analysis has yet been completed.
The correction does not overturn every previous result. Median dollar-off savings were $5 inside and outside Virginia, and the median minimum order was $25 in both groups. However, the deal mix differed: percentage offers were 36.0% in Virginia versus 28.8% elsewhere, while dollar-off offers were 31.4% versus 38.1%. Absolute statements about “the market” should therefore be recomputed when geography could matter.
The DealMeal app works across the United States, while DealMeal.co currently showcases selected regional examples on the web. The dataset described here is the observation sample used for analysis, not a boundary on where the app works.
Important limitations of DealMeal food delivery deal data
It is not a complete US census. The analysis covers three marketplaces at 165 fixed points on measured days.
The historical window has gaps. It includes 288 of 355 calendar days, with 67 missing days in 42 gaps. There is also a 23-day gap before the current snapshots begin.
Historical and current counts use different units. The corrected historical population is 376,719 records and cannot use the current store-based deduplication key; the current population is 253,204 offer-days representing 51,573 distinct offers.
Observation volume is not market demand. Changes in search scope, location coverage, and collection cadence affect daily row counts.
Field coverage varies by platform. Cross-platform statistics should report which platforms and what proportion of records supplied the field.
No expiry field exists. Repeated observation can establish only a minimum observed duration, not an actual start or end date.
Store-identifier stability has not been verified across days. The distinct-offer count and repeated-day factor depend on that assumption.
Chain status is unusable in the current offer rows. The offer-level field is false on every row; chain analysis must use the separate branch-level flag.
Currency metadata conflicts with title text in historical records. DealMeal uses explicit currency symbols in the title for the US filter, but the discrepancy remains unresolved.
No per-city comparison has been completed. City-specific conclusions are not supported by this dataset yet.
How readers should use DealMeal findings
Check the unit. A record, offer-day, distinct offer, branch, and menu comparison answer different questions.
Read the denominator. A percentage should state whether it refers to all offer-days, a category, a platform, or only records where the field exists.
Separate advertised savings from final value. DealMeal measures advertised promotion terms, not taxes, tips, delivery fees, service fees, or the final checkout total unless an analysis explicitly says otherwise.
Treat missing fields as unknown. Do not convert missing distance, caps, minimums, or coordinates into zeros.
Compare the same restaurant and intended order where possible. Platform-level averages are useful context, but a real purchase decision depends on the available store, eligible items, minimum spend, and final cart.
For a practical walkthrough, see how to use DealMeal to discover and compare offers. Readers can also explore food delivery deals and the broader analysis of 680,678 historical promotion records.
Compare available deals with the methodology in mind
DealMeal helps readers compare food promotions across supported marketplaces and nearby restaurants while keeping deal conditions visible. The best choice still depends on the eligible items, minimum spend, and final cart value.
Methodology and limitations
This article uses three DealMeal sources: 680,678 raw historical records from 18 sources across 288 observation days between July 13, 2025 and July 2, 2026; 635,192 raw daily snapshot rows across 39 observation days between July 25 and September 2, 2026; and operational normalization data containing 104 collection runs, 64,239 store observations, 4,091 branch records, and 97,140 item-link decisions.
The historical correction sequence limits the population to DoorDash, Uber Eats, and Grubhub; removes anchored non-offer placeholders; restores valid marketplace-origin records whose displayed source changed; and filters titles with explicit non-US currency symbols. The current sequence also removes same-day duplicates using date, platform, store identifier, and title, then reports repeated observations across days separately. Percentiles use the nearest-rank method without interpolation.
Deal categories begin with the platform-supplied type and are checked independently against title language. Restaurant listings are resolved into physical branches using name and location, while menu items are linked pairwise with stored reasons and confidence. The data reflects advertised promotions, not confirmed checkout savings. It does not cover every US restaurant or every marketplace, and uneven observation days, geographic weighting, missing fields, and absent expiry dates limit the conclusions.
Frequently asked questions
Does DealMeal count every row as a separate food delivery deal?
No. The current source contains 635,192 raw rows, which become 253,204 offer-days after correction and 51,573 distinct offers after repeated days are resolved.
Why are historical records not deduplicated the same way?
The current method depends on a store identifier. That identifier is missing from 82.95% of the corrected historical records, so applying the newer key would create a misleading comparison.
How does DealMeal decide whether a promotion is BOGO or percentage off?
DealMeal starts with the platform-supplied deal type and checks it against the offer title using patterns that recognize the vocabulary used by all three marketplaces. It reports both recall and precision rather than one combined score.
Does DealMeal know when a promotion expires?
No. The datasets contain no expiry field. Repeated observation can show that a promotion appeared on multiple days, but it cannot establish the true start or end date.
Does a missing discount cap mean there is no cap?
No. Missing means unknown. Uber Eats provides no cap field in the measured percentage-off observations, so cap analysis is limited to the platforms that supply it.
Is DealMeal's data limited to Northern Virginia?
No. Northern Virginia represents 36.29% of current offer-days, while 63.71% come from elsewhere. The analytical sample is multi-metro, and the DealMeal app works across the United States.
Can DealMeal data prove which delivery app always has the most deals?
No. Platform counts depend partly on how many relevant store pages are observed. Cross-platform rates can be compared with their coverage disclosed, but raw counts should not be treated as market share or universal availability.
Conclusion
Measuring food delivery deals requires more than collecting promotion labels. DealMeal separates historical records, current offer-days, distinct offers, branches, and menu comparisons; corrects placeholders, source labels, currencies, and duplicates; checks categories against marketplace language; and publishes the field coverage behind each statistic.
The result is not a complete census of US food delivery promotions. It is a transparent, reproducible view of what three marketplaces showed across DealMeal's measured locations and dates. Readers can use those findings to compare offers more carefully—while still checking eligibility, minimum spend, and final cart value before ordering.



