Severity: 8192
Message: Creation of dynamic property CI_URI::$config is deprecated
Filename: core/URI.php
Line Number: 101
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Router::$uri is deprecated
Filename: core/Router.php
Line Number: 127
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$benchmark is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$hooks is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$config is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$log is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$utf8 is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$uri is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$exceptions is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$router is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$output is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$security is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$input is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$lang is deprecated
Filename: core/Controller.php
Line Number: 75
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$load is deprecated
Filename: core/Controller.php
Line Number: 78
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 132
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 290
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 164
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 233
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 313
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Return type of CI_Session_files_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 354
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 282
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: session_set_cookie_params(): Session cookie parameters cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 289
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 304
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 314
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 315
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 316
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 317
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 375
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: ini_set(): Session ini settings cannot be changed after headers have already been sent
Filename: drivers/Session_files_driver.php
Line Number: 108
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent
Filename: Session/Session.php
Line Number: 110
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: Warning
Message: session_start(): Session cannot be started after headers have already been sent
Filename: Session/Session.php
Line Number: 143
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property Blog::$session is deprecated
Filename: core/Loader.php
Line Number: 1283
Backtrace:
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$benchmark is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$hooks is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$config is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$log is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$utf8 is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$uri is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$exceptions is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$router is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$output is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$security is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$input is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$lang is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$load is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
Severity: 8192
Message: Creation of dynamic property CI_Loader::$session is deprecated
Filename: core/Loader.php
Line Number: 931
Backtrace:
File: /var/www/html/application/controllers/Blog.php
Line: 18
Function: view
File: /var/www/html/index.php
Line: 319
Function: require_once
The Quick Service Restaurant market is projected to be valued at $691 billion by 2022. As the QSR industry grows and the market becomes even more competitive, restaurant chains continuously seek ways to increase sales via food aggregators to market their business. To improve ROI and sales, having data and insights into key metrics could help QSRs to boost their success rate.
QSRs would like to know how they stack up against their competition regarding discoverability on cluttered food aggregator apps. Restaurants want to know the gaps in their product assortment to understand what drives customers to their competitors. Getting insights into delivery time and competitors’ delivery fees will help QSR improve delivery ETAs and optimize fees. They can also set competitive pricing with insights into their competitors’ pricing. In addition, they can use data to optimize their ad spending on food apps and improve marketing ROI.
In this blog, we will discuss the relationship between QSRs and food aggregators and how getting data about key metrics from these food delivery platforms can help QSRs scale their revenue.
According to Statista, online food ordering revenue is expected to grow at a robust CAGR of 10.39% between 2021 and 2025. Food Aggregators apps like Uber Eats, DoorDash, and GrubHub offer convenient meal delivery options from various QSRs within a single app. Food aggregators provide a multitude of benefits for QSRs. They give access to a huge customer base, quick delivery, and an easy entry into quick commerce, helping QSRs increase visibility. Although QSRs rely on food aggregator platforms for hassle-free ordering, tracking, and delivery, they can’t always rely on them to share critical data that could help them optimize their operations & increase sales.

QSRs need assortment insights to understand their competitor’s menu assortment. Assortment analytics plays a crucial role in ensuring that QSRs aren’t losing sales because their competitors are offering cuisines and dishes that they aren’t. Understanding gaps in menus helps QSRs to better plan their menu. However, food aggregator apps can’t share competitors’ assortment data with QSRs for a multitude of reasons, guidelines, and privacy laws. Thankfully, at DataWeave, our QSR intelligence solution can! We help restaurants improve their assortment by sharing insights into the dishes and cuisines their competitors’ have on display.

QSRs would love to know how to increase discoverability on food aggregators, as it will help them to appear ahead in search results and beat the competition. Improving visibility on these apps directly impacts sales and drives more orders for restaurants. Some aggregators offer discoverability information but give it on demand, usually after 20-30 days, making it irrelevant due to the enormous time gap. They also don’t provide information about the change in the discoverability of your competition. All these data points are so critical, and understandably so, Food Apps can’t share this level of information with restaurants. However, DataWeave’s QSR Intelligence solution can! It provides real-time discoverability insights into your restaurant and competitor’s visibility so that the data is actionable, and QSRs can use insights to improve visibility.
Read how DataWeave’s QSR Intelligence helped an American QSR Chain and how their ranking on search results page on Ube rEats, DoorDash & Grubhub impacted outlet discoverability & sales!
Pricing a QSR’s menu is tricky. If you price too high, you’ll turn off new customers. If you price too low, you’ll cut margins & may even come off as low-qualify. Customer Price Perception is greatly influenced by the Price-Quality relationship. To add to this, restaurants are often up against stiff competition from restaurants with similar cuisine offerings so it’s critical that prices are competitive. Understanding competitor pricing doesn’t imply that you have to beat their prices. You can compensate for any price differences by offering higher quality cuisines, better customer service, and quicker delivery. Once again, food apps can’t share competitors’ pricing data with QSRs. But DataWeave’s QSR & Pricing Intelligence solution can! QSRs can use these insights to drive more revenue & margins by pricing their menu right.
QSRs must be able to deliver hot meals, in a timely manner to customers because customers want to quickly dig into the delicious food they ordered. Quicker deliveries within the ETA will also help earn the trust and loyalty of customers. However, food aggregators don’t share information on the delivery times with restaurants – not their own delivery time or their competitors. DataWeave can help QSRs to understand their peak hours and optimize their service to ensure quick ETAs. They can also get detailed insights into competitors’ delivery times to make sure they’re competitive. This is important because customers will often pick restaurants with quicker ETAs.
Read how DataWeave’s QSR Intelligence helped an American QSR Chain understand the correlation between delivery time & sales volumes

As a thumb rule, customers will always compare delivery fees across apps. They’re conscious of delivery dollars included in their bill and often choose a restaurant with lesser delivery fees. This makes it even more critical for restaurants to understand how they stack up against their competitors. Understanding competitors’ delivery fees could potentially help QSRs to optimize their rates. And once again, food aggregators can’t share information on competitors’ delivery fees with restaurants. However, DataWeave’s QSR Intelligence can provide all delivery-related insights – be it Delivery etas or fees.

Getting ad analytics will help QSRs better manage their budgets & increase the ROI on their Ad spends. For example, wouldn’t it be great if QSRs were able to understand which ad formats or promotions led to the most sales? Or which carousal ads had the most visibility in key zip codes where your QSR is expected to do maximum business? Or even insights into a competitor’s ads and promotions on food apps. Knowing this information will help restaurants spend sensibly when buying media on Food Apps & get the most bang for their advertising buck. Food apps do provide standard ad analytics – a number of clicks, CTR, and so on, but for more complex, insightful & actionable insights, there’s DataWeave’s QSR Intelligence!
Read how DataWeave’s QSR Intelligence helped an American QSR Chain understand the ROI delivered on ad spends across Food Delivery apps.


To avoid lost sales, being available & “open for business” on Food Apps during peak lunch & dinner hours is critical. Also on weekends, when order volumes are usually high. Sometimes because of technical glitches, QSR outlets appear unavailable on Food Apps. A glitch like that can lead to lost business, and the longer the glitch stays undiscovered, the greater the impact on revenue. While Food Aggregators do their best to make sure all QSRs are up and running on their app, using DataWeave’s QSR Intelligence, restaurants can now do an outlet audit to make sure that’s the case. With just a mere 2.8% unavailability, we saw a 28% drop in the sales for one of our QSR customers! That’s how critical Availability insights are.
Analyzing and optimizing sales, delivery, discoverability, availability & customer data is one of the fastest ways to help grow your QSRs revenue. However, the biggest challenge QSRs face is that it isn’t always easy to get this information. With DataWeave’s QSR Intelligence now some of that data is a little more accessible as we discussed in this blog. And additionally, here are the 7 Tricks we recommend QSRs to use to win on Food Apps.
Thank you for Subscribing - Team DataWeave
For accounts configured with Google ID, use Google login on top. For accounts using SSO Services, use the button marked "Single Sign-on".