
How We Collected Competitor Menu Pricing Data for a National QSR Chain
Through this project, we helped a major U.S. quick-service restaurant chain collect and compare competitor menu pricing across 15+ rival chains, three major delivery platforms, and thousands of locations throughout the United States and Canada.
The core challenges included matching menu items across chains that describe the same product differently, reconciling price discrepancies between in-store and delivery platforms, handling location-based pricing variations at scale, and tracking rapid promotional changes during limited-time offers.
Our NLP-based item matching system, built specifically for this project using cosine similarity algorithms and human QA verification, now powers menu pricing intelligence across multiple Ficstar projects. The project also validated our ability to collect reliably from delivery platforms with aggressive anti-bot protections, a capability that had been a gap for several providers the client tested before us.
![shutterstock_2558509065 [Converted].png](https://static.wixstatic.com/media/594408_558a886be2ad48498fe1f4b7392df412~mv2.png/v1/fill/w_600,h_474,al_c,q_85,enc_avif,quality_auto/594408_558a886be2ad48498fe1f4b7392df412~mv2.png)

Competitive Menu Intelligence at National Scale
The client needed a complete picture of how their menu pricing compared to direct competitors across every market they operated in. That meant collecting menu prices, item descriptions, combo meal structures, and regional pricing variations from more than 15 competing QSR chains.
The scope went beyond competitor websites. The client also needed pricing from third-party delivery platforms (Uber Eats, DoorDash, and Grubhub), where the same menu items are often listed at different prices than on the chain's own ordering system. Understanding those gaps was critical to their delivery channel strategy.
In addition, the project required tracking:
-
Limited-time offers and seasonal menu items
-
Combo and value meal pricing across competitors
-
Delivery fees and service charges by platform
-
Regional price differences across U.S. and Canadian markets
This was not a one-time data pull. The client needed ongoing, automated collection with weekly delivery and the ability to request ad-hoc crawls during major competitive launches.
Scale and Complexity
The numbers added up quickly. Each of the 15+ competitor chains had dozens to hundreds of menu items, each potentially priced differently depending on location, ordering channel, and current promotions.
​
Across all competitors, delivery platforms, and geographic zones, a single weekly crawl generated roughly 500,000 pricing rows. During peak periods like new product launches or seasonal menu rotations, we ran additional crawls to capture pricing changes that might last only days.
​
One challenge that surfaced early was how differently each chain structured its online menu. Some chains listed individual items with straightforward prices. Others bundled everything into combo meals, making it difficult to isolate the price of a single item. Several chains displayed different menus depending on the user's ZIP code, which meant our crawlers had to cycle through hundreds of location inputs per chain.
​
Delivery platforms added another layer. The same item at the same restaurant often carried a markup on Uber Eats compared to DoorDash, and a different price again on Grubhub. Capturing all three versions and linking them back to the same base item required careful data normalization.
![shutterstock_2712873127 [Converted].png](https://static.wixstatic.com/media/594408_290957eb403043778d9f5a253ee4111c~mv2.png/v1/fill/w_533,h_538,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/594408_290957eb403043778d9f5a253ee4111c~mv2.png)

Nearly every data source required a different technical approach. The combination of inconsistent menu structures, platform-specific anti-scraping defenses, and location-dependent pricing made this one of the more complex collection projects we have run.
1. Menu Item Matching Across Chains
This was the defining technical challenge. A "Quarter Pounder with Cheese" at one chain is functionally the same product as a "Double Smashed Burger" at another, but no consistent naming convention exists across the QSR industry.
We built a matching system that combined Natural Language Processing with cosine similarity scoring to identify equivalent menu items across chains, even when the names, descriptions, and categorization differed completely. Every match generated by the algorithm was then reviewed by a human analyst who verified the pairing or flagged it for manual classification.
This two-layer approach (algorithmic matching plus human verification) achieved a matching accuracy above 97% across all competitor chains. The system got smarter over time as the training data grew with each crawl cycle.
2. Delivery Platform Collection
Uber Eats, DoorDash, and Grubhub all use aggressive anti-bot measures. They employ JavaScript-heavy rendering, dynamic content loading, session-based pricing, and CAPTCHA challenges that blocked several other providers the client had tested before engaging Ficstar.
We built dedicated crawling pipelines for each platform, each tuned to that platform's specific protections. Proxy rotation, headless browser rendering, and rate-limiting management kept collection running consistently without triggering blocks.
3. Location-Based Pricing
QSR pricing is heavily location-dependent. A chicken sandwich might cost $5.99 in Dallas and $7.49 in Manhattan. Delivery platforms add their own markups on top, which also vary by market.
Our system queried each competitor and platform across hundreds of ZIP codes per crawl, capturing the full geographic pricing landscape. That let the client compare their pricing not just nationally, but market by market.
4. Promotional and Limited-Time Offer Tracking
QSR chains launch limited-time offers constantly. A new menu item might appear for six weeks, carry an introductory price, and then either disappear or become permanent at a different price.
Tracking these required our crawlers to detect new items, capture their pricing and promotional terms, and flag when items were removed. We built change-detection logic that compared each crawl against the previous one and surfaced additions, removals, and price changes in a structured diff report.
5. Combo Meal Decomposition
Many QSR chains present most of their menu as combo meals rather than individual items. To give the client comparable data, we had to decompose combo pricing into estimated per-item values.
We developed parsing rules that extracted the components of combo meals from product descriptions and calculated implied individual item prices based on the combo discount structure. This gave the client a way to compare individual item pricing even when competitors only listed combos.
Menu Matching, Platform Gaps, and Anti-Bot Defenses
QA and Data Validation
Accuracy was non-negotiable. The client's pricing team was making real decisions based on this data, and a single mismatched item or incorrect price could cascade into a bad pricing call across hundreds of locations.
​Our QA framework operated on multiple levels:
​
-
Cached pages for every crawl: Every source page was stored with a timestamp. If a price was ever questioned, we could show exactly what the page displayed at the time of collection.
-
Price regression testing: We compared each week's prices against the previous crawl. If a menu item price jumped 40% or dropped by half, the system flagged it for human review before delivery.
-
Match rate monitoring: We tracked the percentage of menu items successfully matched across competitors. A sudden drop in match rate signaled that a chain had restructured its menu or changed its product descriptions, triggering a review of the matching algorithm.
-
Cross-platform validation: When we had the same item from the same chain on multiple platforms, we cross-checked prices against each other and against the chain's own website to identify collection errors versus genuine platform-specific pricing.
​
This multi-layered approach consistently maintained accuracy above 99% across hundreds of thousands of data rows per week.
![shutterstock_1890541927 [Converted].png](https://static.wixstatic.com/media/594408_2b85b160c1274d6ca05f72856dc39e64~mv2.png/v1/fill/w_600,h_473,al_c,lg_1,q_85,enc_avif,quality_auto/594408_2b85b160c1274d6ca05f72856dc39e64~mv2.png)
![shutterstock_1427161526 [Converted].png](https://static.wixstatic.com/media/594408_66f17e6fa8e1443888524c97a99dc6e3~mv2.png/v1/fill/w_474,h_600,al_c,q_85,enc_avif,quality_auto/594408_66f17e6fa8e1443888524c97a99dc6e3~mv2.png)
How the Client Used the Data
​The datasets we delivered powered several distinct business functions.
The most immediate use was competitive price positioning. The client's pricing team could see, in near real-time, where their prices stood relative to every major competitor in every market. When a competitor dropped prices on a key product category, the team saw it within the next crawl cycle and could decide whether to match, hold, or adjust.
Beyond direct pricing decisions, the data also supported:
​
-
Delivery channel strategy: By comparing their own delivery platform markups against competitors', the client identified markets where they were pricing themselves out of the delivery channel and others where they had room to increase margins.
-
Menu development: Seeing what products competitors launched, how they priced them, and how long they stayed on menus helped inform the client's own new product pipeline.
-
Regional pricing optimization: The geographic pricing data revealed markets where the client was significantly above or below the competitive average, giving the pricing team a starting point for market-specific adjustments.
-
Promotional planning: Understanding competitor promotional patterns (timing, depth of discount, which products they promoted) helped the client plan their own promotional calendar to avoid direct conflicts or capitalize on competitor gaps.
​
How Other Providers Failed
Before engaging Ficstar, the client tested several other data providers. None could deliver the combination of delivery platform coverage, menu item matching accuracy, and geographic scale the project required.
The main failures came in two areas. First, most providers could not reliably collect from delivery platforms. The anti-bot defenses on Uber Eats, DoorDash, and Grubhub blocked standard scraping approaches, and the providers did not have the infrastructure to work around them. Second, menu item matching across chains was treated as a simple text-matching problem, which produced unacceptable error rates when item names had no overlap.
Ficstar succeeded because we built custom solutions for both problems. Our delivery platform crawlers were engineered specifically for those environments, and our NLP-based matching system handled the semantic complexity of comparing menu items across different naming conventions.
The client initially ran a three-month trial to validate that we could actually deliver at this scale and accuracy. After three months of consistent, accurate weekly delivery, they signed a long-term contract. The engagement has been active for over two years.
![shutterstock_1410092930 [Converted].png](https://static.wixstatic.com/media/594408_826a28b8c422443c9f4235db50f19231~mv2.png/v1/fill/w_600,h_495,al_c,q_85,enc_avif,quality_auto/594408_826a28b8c422443c9f4235db50f19231~mv2.png)
![shutterstock_1640334262 [Converted].png](https://static.wixstatic.com/media/594408_f864127431e14869b3546818dd13ce90~mv2.png/v1/fill/w_600,h_439,al_c,q_85,enc_avif,quality_auto/594408_f864127431e14869b3546818dd13ce90~mv2.png)
Lessons Learned
Accuracy was non-negotiable. The client's pricing team was making real decisions based on this data, and a single mismatched item or incorrect price could cascade into a bad pricing call across hundreds of locations.
Optimize Your Own Ticket Pricing
Use real-time competitor data to set prices that balance revenue and sell-through. Respond to market shifts within hours instead of days, and adjust dynamically as events approach based on actual demand signals.
Gain Competitive Intelligence
See exactly how competitors price similar events, when they launch promotions, and how their pricing evolves over time. Build strategies based on market data instead of guesswork.
Forecast Demand More Accurately
Historical pricing and availability trends reveal demand patterns by event type, venue, timing, and geography. Use this data to inform scheduling, marketing spend, and inventory allocation.
Reduce Manual Tracking Effort
Replace hours of manual price checks with automated data feeds that arrive cleaned and ready to use. Free your team to analyze data instead of collecting it.
Infrastructure
Running weekly crawls across 15+ chains, three delivery platforms, and hundreds of geographic zones required distributed infrastructure designed for both throughput and resilience.
Each crawl cycle processed data through parallel threads balanced across rotating proxy pools, with platform-specific rate limiting to maintain access without triggering blocks. The raw data was parsed into structured fields: item name, item description, chain, location, platform, price, combo flag, promotional flag, and timestamp.
After extraction, the NLP matching pipeline ran across the full dataset, pairing items across chains and flagging new or unmatched entries for analyst review. The validated, matched data was then pushed to the client through scheduled file delivery and API endpoints.
Monitoring alerts ran across the entire pipeline. If a platform started blocking at higher-than-normal rates, or if a chain restructured its menu layout, the system flagged the issue for immediate attention.

![shutterstock_1809894964 [Converted].png](https://static.wixstatic.com/media/594408_d6e0eebef6fa40ba9e4654a33505379f~mv2.png/v1/fill/w_600,h_486,al_c,q_85,enc_avif,quality_auto/594408_d6e0eebef6fa40ba9e4654a33505379f~mv2.png)
Adapting to a Fast-Moving Market
The QSR industry moves faster than most retail categories. Menu changes, promotional launches, and pricing adjustments happen weekly across major chains. Our system had to keep pace.
​
Beyond the standard weekly crawls, we ran ad-hoc collections during key industry moments: major competitor product launches, seasonal menu rollouts, and value menu restructurings. These event-driven crawls gave the client a timely view of how competitors responded to market shifts.
​
We also built detection for menu structure changes. When a chain reorganized its online menu (new categories, reordered items, renamed products), our system flagged the change automatically and updated the matching rules before the next scheduled crawl. This prevented stale matching logic from producing inaccurate pairings.
The Data Lifecycle
​Every crawl followed a consistent pipeline:
-
Collection: Crawlers visited each chain's website and each delivery platform, handling location selection, CAPTCHA challenges, and dynamic content rendering.
-
Extraction: Raw page data was parsed into structured records: item, price, location, platform, promotional terms.
-
Matching: The NLP pipeline matched items across chains and platforms, producing standardized comparison sets.
-
Validation: Regression tests, anomaly detection, and cross-platform checks ran across the full dataset.
-
Delivery: Cleaned, matched data was delivered through the client's preferred channels on the agreed schedule.
​That consistency, maintained weekly for over two years, is what made this a reliable input to the client's pricing and strategy functions rather than an occasional data pull.

![shutterstock_2393151609 [Converted].png](https://static.wixstatic.com/media/594408_48e2849b81fd4fe1952f5da6e1228fa8~mv2.png/v1/fill/w_600,h_419,al_c,lg_1,q_85,enc_avif,quality_auto/594408_48e2849b81fd4fe1952f5da6e1228fa8~mv2.png)
Collaboration
Large-scale data projects work only when the provider and client teams communicate consistently. Throughout this engagement, we worked directly with the client's pricing and strategy teams to refine the matching taxonomy, adjust crawl schedules around seasonal priorities, and adapt delivery formats as the client's internal tools evolved.
When the client expanded their competitive set to include regional chains in specific markets, we built the additional collection pipelines and extended the matching system to cover the new items. When they needed deeper delivery platform data (including fees and estimated delivery times), we added those fields to the crawl.
Enterprise web scraping at this scale requires flexibility. Requirements change, competitive landscapes shift, and internal priorities evolve. The only way to keep a project delivering value year after year is through ongoing collaboration and technical adaptability.
Reflections
This project reinforced something we see consistently across industries: the hardest part of competitive pricing intelligence is not collecting data. It is making that data accurate, comparable, and actionable.
​
Any crawler can pull menu prices from a website. The value is in matching those items correctly across 15 competitors, reconciling prices across three delivery platforms, and doing it consistently across hundreds of geographic markets, week after week, with accuracy the client's pricing team can trust.
​
The NLP-based matching system we built for this project has since been applied to other food-service and retail verticals. The delivery platform collection infrastructure handles other clients' projects. And the QA framework, with its cached pages, regression testing, and cross-platform validation, is now standard across all of Ficstar's enterprise pricing intelligence work.
![shutterstock_1660533946 [Converted].png](https://static.wixstatic.com/media/594408_8da90b66d6004abf86d8e53e737e2e05~mv2.png/v1/fill/w_600,h_469,al_c,q_85,enc_avif,quality_auto/594408_8da90b66d6004abf86d8e53e737e2e05~mv2.png)
Key Takeaways
Multi-Platform Competitive Coverage:
Ficstar collected menu pricing across 15+ QSR competitors from chain websites and three major delivery platforms (Uber Eats, DoorDash, Grubhub), giving the client full visibility into competitive pricing across every ordering channel.
NLP-Based Menu Matching:
Cosine similarity algorithms combined with human analyst verification matched equivalent menu items across chains with different naming conventions, achieving 97%+ accuracy across hundreds of item categories.
Geographic Scale:
Pricing data was collected across hundreds of U.S. and Canadian ZIP codes per crawl, capturing regional price variations that national averages miss.
High-Volume Weekly Delivery:
Roughly 500,000 pricing rows per weekly crawl, with ad-hoc collections during competitor product launches and seasonal menu changes.
Delivery Platform Expertise:
Roughly 500,000 pricing rows per weekly crawl, with ad-hoc collections during competitor product launches and seasonal menu changes.
Validated After Extended Trial:
The client tested multiple providers before Ficstar. After a three-month trial that confirmed consistent accuracy and reliability, the engagement became a long-term contract now active for over two years.
Cross-Industry Impact:
The menu-matching methodology and delivery platform infrastructure developed for this project now support other Ficstar clients in food service, hospitality, and retail.