Matrix / peer group
Adjacent encroachers — ordering, middleware & back-office
NOT point-of-sale systems. Products that integrate with or route around a POS — first-party ordering, delivery middleware, reservations, loyalty, labour, inventory and back-office platforms, and payment terminals sold without a POS. Tracked because they take capability territory from the POS, and compared only against each other.
24 products · 255 claims in scope · segments: FSR, QSR, bar, pizza, enterprise, franchise, multi-location · categories out of scope: order-capture, kitchen, hardware
- Products
- 24
- Claims in scope
- 255
- Parity floor
- 78
- Whitespace
- 122
The parity floor is the set of capabilities at least half this group’s assessed members ship — what a buyer here can take for granted. Whitespace is the set fewer than a third ship. Both are computed only over claims in scope for this group and only over members with an assessed value, so a specialist is never penalised for a capability its buyers do not want, and a vendor that publishes nothing does not drag the floor down.
There is no composite score and no ranking. The moment one number exists, that number becomes the report.
Menu, modifiers & pricing engine
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| menu-pricing-nested-modifiers Supports modifier groups nested at least three levels deep, each level with independent min/max selection counts and a forced-selection (required) flag. | 18% n=20 | No B | Partial B | Yes B | Partial B | Partial B | Partial B | Partial B | No B | n/a | No B | No F | No F | No E | No E | Unknown F | No F | No F | No F | Unknown F | No F | No F | No F | Unknown F | No F |
| menu-pricing-modifier-price-by-parent-size A single modifier can carry different prices depending on the parent item and the selected size, configured as a matrix rather than by duplicating the modifier. | 11% n=22 | No B | Yes B | No B | No B | No A | Partial B | No B | No B | n/a | No B | No F | No F | No E | No F | Partial A | No F | No F | No F | Partial B | No F | No F | No F | Unknown F | No F |
| menu-pricing-fractional-placement diff Supports fractional/sectioned modifier placement (at minimum halves, ideally quarters) with independent pricing per section. | 0% n=6 | No B | No B | No B | No B | No A | Unknown F | Unknown F | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-half-and-half-rule diff The half-and-half pricing rule is operator-configurable among at least two of: charge the higher-priced half, average the halves, or charge each topping at a fraction of full price. | 0% n=7 | No B | No F | No B | No B | No A | Unknown F | No B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-topping-quantity-tiers Supports modifier quantity tiers (light / regular / extra / double) with a configurable price multiplier per tier, distinct from adding the modifier twice. | 12% n=21 | No B | Partial B | No B | No B | No A | Unknown F | Partial B | No B | n/a | No B | No F | No F | No E | No F | Partial A | No F | No F | No F | Yes B | No F | No F | No F | Unknown F | No F |
| menu-pricing-size-style-matrix diff Item base price can be defined as a grid across two variant axes (e.g. size x crust/preparation) with a per-cell price override. | 14% n=7 | No B | Partial B | Unknown F | No B | Partial A | No B | No B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-included-allowance diff Items can define an included-modifier allowance (e.g. three toppings included) that automatically charges only for overage and credits or forbids substitutions per configuration. | 0% n=7 | No B | No A | No B | No B | No A | Unknown F | No B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-combos Supports combo/meal construction where components can be swapped with a price delta, and the system can automatically detect and convert eligible a-la-carte items in the cart into the combo price. | 42% n=6 | Partial B | Partial B | Partial B | Unknown F | Partial A | Unknown F | Partial B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-upsell-prompts diff Upsell/suggestive-sell prompts can be configured per item and per channel (POS, kiosk, online), and the vendor reports attach-rate on those prompts. | 43% n=7 | Partial D | Partial D | Partial D | Partial B | Unknown F | Partial D | Partial D | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-86-propagation floor A single 86 action propagates automatically to POS, KDS, the vendor's own online ordering, kiosk, and connected third-party marketplaces, with a documented propagation latency. | 50% n=8 | Partial B | Yes B | Partial C | Partial B | Partial B | Partial D | Partial D | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-countdown-auto-86 diff Supports per-item countdown/par counts that decrement on sale and automatically 86 the item at zero, with a scheduled auto-restore. | 25% n=8 | Partial B | Partial B | No B | No B | Partial B | No F | Partial B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-dayparting Menus, individual items, and prices can be scheduled to activate and deactivate automatically by day and time in the location's own timezone. | 44% n=8 | Partial B | Partial B | Partial C | Partial B | Partial B | Partial B | Partial B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-channel-price-books floor Supports distinct price books per channel (dine-in, pickup, delivery, kiosk, each third-party marketplace) including percentage-markup rules applied to a base price rather than manual per-item entry. | 56% n=8 | Partial B | Yes B | Yes B | Partial B | Partial B | Partial C | Partial B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-dual-pricing diff Supports dual pricing / cash-discount at the item level with the card price displayed as the base price, applied consistently across POS, kiosk, and online ordering, and printed on the receipt. | 8% n=6 | No B | No B | Partial D | No B | No A | Unknown F | Unknown F | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-versioning-effective-dates diff Menu changes can be staged as an effective-dated version, previewed before publish, and rolled back to a prior version after publish. | 42% n=6 | Partial B | Partial B | Partial B | No B | Partial B | Partial B | Unknown F | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-franchise-hierarchy diff Supports a central corporate menu template pushed to locations with field-level governance controlling which attributes a location may override. | 43% n=7 | Partial B | Partial C | Partial B | No B | Partial A | Unknown F | Partial D | Partial D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-allergen-nutrition floor Stores allergen flags and nutrition values per item and publishes them to online ordering and third-party menus, and can derive nutrition from linked recipe components rather than manual entry. | 50% n=7 | Unknown F | Partial B | Partial D | No B | Partial B | Partial B | Partial B | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-recipe-linkage diff Menu items and modifiers can be linked to recipes/bills of materials so that a sale depletes theoretical inventory and yields item-level theoretical food cost. | 19% n=8 | No B | No F | No B | No B | Partial D | No B | No F | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-3p-menu-push floor Pushes menus to third-party marketplaces through a certified direct integration (not scraping or a menu-management middleman) and surfaces per-item sync status and rejection errors to the operator. | 63% n=8 | Partial C | Yes B | Yes C | No B | Partial B | Yes C | Yes B | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| menu-pricing-dynamic-pricing Supports rule-based dynamic pricing where item price varies automatically by time, demand, or channel, with configurable floor/ceiling guardrails. | 43% n=7 | Partial B | Partial D | Partial B | Partial B | Partial A | Partial D | Unknown F | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Payments & money movement
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| payments-processor-choice diff The POS operates with third-party payment processors of the merchant's choosing (documented list of supported processors/gateways) rather than requiring the vendor's in-house processing. | 28% n=9 | No B | No B | No B | Partial B | Yes B | Partial B | Partial B | No B | No C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-published-rates diff Vendor publishes card-processing pricing publicly (a specific flat rate or interchange-plus markup) rather than quote-only. | 17% n=9 | Yes B | No C | No C | No C | No B | No B | No B | No B | Partial C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-dual-pricing diff Native dual-pricing / cash-discount mode stores two prices per item and prints both cash and card totals on the guest check and receipt. | 6% n=8 | No B | No B | Partial D | No B | No A | No F | Unknown F | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-surcharge-guardrails diff Surcharging engine automatically excludes debit and prepaid cards via BIN/product-code detection, enforces the network percentage cap, and can be enabled or disabled per location. | 0% n=5 | No B | No F | No B | No B | Unknown F | Unknown F | Unknown F | No B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-emv-nfc All first-party payment terminals accept EMV chip and NFC contactless including Apple Pay and Google Pay. | 17% n=23 | No F | No B | Yes C | No F | No B | No C | Yes D | No B | Yes B | No E | Yes B | No F | No E | No F | No E | No F | No F | No F | Unknown F | No F | No F | No F | No F | No F |
| payments-softpos-tap-to-pay diff Accepts contactless payments directly on a phone (Tap to Pay on iPhone and/or Android tap-to-pay) with no separate card reader. | 17% n=6 | No F | Unknown F | Unknown F | No A | Unknown F | No F | No C | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-pay-at-table Vendor ships a handheld that takes EMV/NFC payment at the table, including tip prompt and check splitting, without carrying the card away. | 19% n=8 | No F | No E | Yes B | No B | No B | No B | Unknown F | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-qr-guest-pay diff Guest can scan a QR code on the printed check or table tent to view and pay the check from their own phone, with the payment closing the check in the POS automatically. | 33% n=6 | Partial C | Partial B | Partial C | Partial B | Unknown F | No E | Unknown F | No B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-tip-adjust Supports both pre-auth-then-tip-adjust and on-device tip prompt flows, with a documented batch/adjust window and a manager screen for unadjusted tips. | 29% n=7 | No B | Partial B | Yes B | No A | Unknown F | No F | Unknown F | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-tip-pooling diff Configurable tip pooling and distribution rules (by hours worked, sales, role percentage, or points) that produce a per-employee tip allocation exportable to payroll. | 13% n=8 | No B | No F | No B | No B | Unknown F | No B | No F | Yes B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-offline-store-and-forward diff Card payments can be captured while the internet is down via store-and-forward, with configurable per-transaction and cumulative offline limits. | 14% n=7 | No F | No F | Partial B | No A | Unknown F | No F | Unknown F | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-offline-decline-liability diff Vendor publicly documents who bears the loss when a stored offline transaction declines on reconnect, and surfaces a post-reconnect report of failed offline payments. | 7% n=7 | No F | No B | Unknown F | No B | Unknown F | No F | No B | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-gift-cards First-party gift cards with real-time balance tracking, redeemable across every location in the group and through the online-ordering channel. | 20% n=20 | Unknown F | Partial B | Partial B | Partial A | Unknown F | Partial B | No B | No B | No F | No E | Partial B | No F | No E | No F | Partial B | No F | No F | No B | Yes D | Unknown F | No F | No B | Unknown F | No F |
| payments-house-accounts House/on-account tabs with per-account credit limits, running balance, and periodic statement or invoice generation. | 25% n=6 | No B | Partial D | Unknown F | No B | Unknown F | Unknown F | Partial B | Partial E | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-split-tender A single check can be settled with multiple tenders and split by seat, by item, by even shares, or by arbitrary amount, with no hard cap below eight ways. | 31% n=8 | No F | Partial A | Yes B | Partial B | Partial A | No F | Unknown F | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-refund-void-controls Voids, refunds, discounts, and no-sales require role-based authorization (manager PIN or approval) and write to an immutable audit log identifying the approver. | 18% n=19 | Partial B | Partial B | Partial B | No F | Unknown F | No F | Partial B | No B | No F | No B | Unknown F | No F | No E | No F | Partial B | No F | No F | Unknown F | Partial B | No B | No F | Unknown F | Unknown F | Partial B |
| payments-chargeback-tooling diff In-product dispute/chargeback dashboard that lists open disputes and allows evidence submission assembled from the POS transaction record. | 44% n=8 | Partial B | Partial D | Partial C | No B | Unknown F | Partial D | Partial B | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-card-on-file diff floor Tokenized card-on-file for a guest profile, reusable across online ordering, phone orders, and in-store, with no PAN stored by the merchant. | 57% n=7 | Partial B | Partial D | Unknown F | Partial B | Unknown F | Partial B | Yes B | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-payout-timing diff Vendor publishes its deposit schedule and offers a next-day or same-day/instant funding option. | 36% n=7 | Yes B | Unknown F | Partial B | No B | No B | No C | Unknown F | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-multi-entity-routing diff floor A single account can route settlement funds to different bank accounts per location or legal entity (separate MIDs or split settlement) under unified reporting. | 50% n=9 | Partial B | Yes B | Yes B | No B | Partial B | No F | Partial C | Partial E | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| payments-p2pe-pci4 floor Vendor provides point-to-point encryption and a current PCI DSS 4.x Attestation of Compliance / P2PE listing available to merchants on request. | 50% n=4 | Partial B | Unknown F | Unknown F | Partial C | Unknown F | Unknown F | Partial B | Unknown F | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Delivery, dispatch & third-party channels
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| delivery-driver-roster Product includes a native in-house driver module: drivers are first-class entities with clock-in/out, assignment state (in-store / on-run / returning), and per-driver run history reportable from the POS itself (not via a third-party add-on). | 7% n=21 | No E | Partial D | Partial B | No F | No A | Unknown F | No B | n/a | n/a | No E | No F | No F | No E | No F | No E | No F | Partial B | No F | No F | No F | No F | No F | No F | No B |
| delivery-dispatch-board Provides a dedicated dispatch/expo screen showing undispatched orders, driver availability, and elapsed time per order, with multi-order run batching (assigning 2+ orders to one driver as a single run). | 14% n=21 | No E | Partial D | Partial B | No F | Partial B | Unknown F | Partial D | n/a | n/a | No E | No F | No F | No E | No F | No B | No F | Partial B | No F | No F | No F | No F | No F | No F | Partial B |
| delivery-route-map diff Dispatch includes a live map view with geocoded stops and system-generated route sequencing (turn order optimization) for a multi-stop run, not just a static address list. | 25% n=4 | No F | Yes B | Unknown F | No B | Unknown F | Unknown F | No F | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-driver-tracking diff Captures live driver GPS position from a driver-facing mobile app and surfaces it back to the dispatch screen. | 25% n=4 | No F | Partial B | Unknown F | No B | Unknown F | Unknown F | Partial B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-zones-polygon diff floor Delivery areas can be defined as arbitrary map polygons or by drive-time isochrones, not solely as a radius or a ZIP/postcode list. | 60% n=5 | Yes B | Yes B | No B | No B | Yes A | Unknown F | Unknown F | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-zone-pricing Each delivery zone carries its own independently configurable delivery fee, order minimum, and quoted promise time, applied automatically from the validated customer address. | 19% n=21 | Partial B | Partial B | Partial B | No B | Partial A | Partial B | Partial B | n/a | n/a | No E | No F | No F | No E | No F | Partial B | No F | No A | No F | Unknown F | No F | No F | No F | No F | Partial B |
| delivery-address-validation floor Address entry is validated/geocoded against a mapping service at order time and rejects or flags out-of-zone addresses before the order is accepted. | 58% n=6 | Partial B | Partial B | Partial B | Partial B | Partial B | Yes B | Unknown F | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-driver-comp diff Tracks per-delivery driver compensation inputs — mileage or distance driven per run, per-delivery flat reimbursement, and driver-retained tips — and exports them to payroll as separate reimbursement vs. wage lines. | 13% n=4 | No F | Partial B | Unknown F | No B | Unknown F | Unknown F | No F | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-cash-reconcile Provides a driver cash bank / settle-up flow that reconciles cash collected, orders assigned, and tips owed at end of shift, producing a per-driver over/short figure. | 10% n=5 | No F | Partial B | Unknown F | No B | Unknown F | No F | No F | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-daas-dispatch floor Can hand a first-party order to an on-demand courier marketplace (DoorDash Drive, Uber Direct, Nash, Relay or equivalent) natively from the POS, with the courier quote and status returning into the order record. | 79% n=7 | Yes C | Yes B | Yes B | Partial B | Partial C | Partial B | Yes B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-daas-fallback diff floor Supports hybrid dispatch: rules that automatically overflow an order to a DaaS courier when no in-house driver is available, out of zone, or past a wait threshold. | 50% n=5 | Partial C | Yes B | Unknown F | No B | Unknown F | Partial C | Partial B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-3p-direct-integration diff floor Offers direct, first-party certified API integrations with DoorDash, Uber Eats, and Grubhub marketplaces (vendor-owned, not solely resold through Otter/Deliverect/Chowly/ItsaCheckmate middleware). | 79% n=7 | Yes B | Yes C | Yes B | No B | Partial B | Yes B | Yes B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-3p-injection floor Third-party marketplace orders inject automatically into the POS as normal tickets that fire to KDS/printers without tablet re-keying or manual accept. | 79% n=7 | Partial B | Yes D | Yes B | No B | Yes B | Yes B | Yes D | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-menu-push floor Menu, pricing, modifiers, and photos publish from the POS master menu out to connected third-party marketplaces, including channel-specific price markups, without maintaining a separate menu in each portal. | 71% n=7 | Partial B | Yes B | Yes B | No B | Partial B | Yes C | Yes D | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-86-sync floor Marking an item or modifier 86'd in the POS pushes item-level out-of-stock status to connected third-party channels in near real time, and restores it on availability (DoorDash requires item and item-option 86ing of new POS partners). | 79% n=7 | Yes B | Yes B | Yes B | No B | Yes B | Yes B | Partial D | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-store-pause floor Store can be paused/deactivated on each connected third-party marketplace from inside the POS with a timed auto-reactivation, rather than only from each marketplace's own tablet or portal. | 64% n=7 | Partial B | Yes B | Yes B | No B | Partial B | Yes C | Partial B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-3p-reconciliation diff floor Produces a third-party reconciliation report matching marketplace payout deposits to POS-recorded 3P sales, itemizing commission, marketing fees, refunds/adjustments, and identifying missing or unpaid orders. | 50% n=7 | Partial C | Partial D | Yes B | No B | Partial B | Partial D | Partial B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-injection-error-visibility diff floor Vendor exposes integration health to the operator — failed/rejected order injections, connection status per channel, and alerts on failure — rather than failing silently. | 71% n=7 | Partial E | Yes B | Yes B | Partial B | Partial B | Partial C | Yes B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-tracking-page Guests receive a branded order status / driver tracking page or SMS link on the restaurant's own domain for first-party delivery orders, driven by real order and driver state. | 43% n=7 | No B | Partial D | Partial B | Partial B | Partial B | Partial B | Partial B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-promise-time diff Quoted delivery promise times adjust dynamically from current kitchen load, driver availability, and zone drive time, rather than a fixed per-store constant. | 42% n=6 | Partial B | Partial B | No B | Partial B | Partial B | Unknown F | Partial B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| delivery-offline-behavior Vendor documents explicit offline behavior for delivery: whether cash delivery orders, driver assignment, and driver settlement continue during an internet outage. | 13% n=4 | Unknown F | No F | Partial B | No B | Unknown F | Unknown F | No B | n/a | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Digital ordering & guest-facing channels
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| digital-first-party-web Vendor ships a first-party, commission-free web ordering site on the restaurant's own branding/domain that writes orders directly into the POS with no per-order marketplace commission. | 43% n=22 | Yes C | Yes B | Yes C | Yes C | Yes D | Yes C | Yes D | n/a | No F | No E | No F | No F | No E | No F | Partial D | No F | No F | Unknown F | Yes D | Partial D | No F | No F | Partial D | No B |
| digital-menu-single-source The web/app ordering menu is generated from the same POS menu record as in-store — one item edit propagates to all first-party digital channels without a separate digital menu build. | 36% n=21 | Partial B | Yes B | Yes C | Partial E | Yes D | Yes C | Yes D | n/a | No F | No E | No F | No F | No E | No F | Yes D | No F | No F | No F | Unknown F | Partial C | No F | No F | Unknown F | No F |
| digital-native-app diff floor Vendor offers a branded native iOS and Android ordering app (published under the restaurant's own brand in the App Store/Play Store), not only a mobile web page or a shared multi-restaurant marketplace app. | 63% n=8 | Yes B | Partial B | No C | Yes B | Partial B | Yes B | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-account-saved-payment Guests can create an account with saved addresses, saved (tokenized) payment methods, and one-tap reorder of a previous order across first-party channels. | 31% n=21 | Partial E | Partial B | Partial C | Partial A | Partial B | Partial D | Yes B | n/a | No F | No E | Partial E | No F | No E | No F | Yes B | No F | No F | Unknown F | Partial B | Partial D | No F | Unknown F | No B | No F |
| digital-upsell-engine diff floor Digital checkout presents configurable or algorithmic upsell/cross-sell suggestions (rules-based add-ons or personalized recommendations from order history), with attach-rate reporting on those suggestions. | 50% n=7 | Partial D | Partial D | Partial D | Partial B | Unknown F | Partial D | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-scheduled-pacing floor Supports future/scheduled orders with per-daypart throttling — capacity limits on orders or items per time slot that automatically close slots when the kitchen is saturated. | 50% n=8 | Partial B | Partial D | Partial C | Partial B | Partial A | Partial B | Yes D | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-fulfillment-modes floor Single digital ordering flow supports pickup, curbside (with arrival check-in), dine-in/QR table ordering, and delivery, with mode-specific fees and prep timing. | 50% n=8 | Partial C | Partial B | Yes C | Partial B | Partial B | Partial B | Partial D | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-qr-table floor Supports guest-facing QR scan-to-order and/or scan-to-pay at the table that opens or attaches to the existing POS check, including splitting and tipping. | 50% n=7 | Partial C | Partial B | Yes C | Partial A | Unknown F | Partial B | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-kiosk diff Vendor ships a self-order kiosk running the same menu and modifier logic as the POS, with accessibility-compliant UI and unattended EMV payment. | 21% n=7 | No C | Partial B | Partial C | No A | Unknown F | No E | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-group-ordering Supports group ordering: a shareable link where multiple participants add their own items to one order under a per-person or total spend cap, with split or single payment. | 33% n=3 | Unknown F | Partial D | Unknown F | Partial B | Unknown F | Unknown F | Unknown F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-catering-portal diff floor Offers a distinct catering ordering flow with separate catering menu/minimums, lead-time rules, quotes or proposals, deposits, and invoice/house-account or ACH payment terms. | 50% n=6 | Partial C | Partial D | Yes B | No B | Unknown F | Unknown F | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-voice-ai-phone diff Vendor offers AI voice phone ordering (native or a named certified partner) that answers inbound calls and injects the completed order into the POS without staff transcription. | 21% n=7 | Unknown F | Partial D | No B | Partial B | Partial D | No E | No B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-drivethru-ai Supports AI voice ordering at the drive-thru lane, integrated with the POS menu/modifiers and with escalation-to-human handoff. | 7% n=7 | No F | Partial D | No B | No B | Unknown F | No F | No F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-sms-ordering Supports conversational SMS or chat ordering/reordering (text-to-order or text-a-link) that lands in the POS. | 17% n=6 | Partial B | Partial D | No B | No B | Unknown F | No E | Unknown F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-google-order diff floor Supports Order with Google — the restaurant's direct ordering link is provisioned to the Google Business Profile as an ordering option (ideally set as 'Preferred by Business'), rather than leaving marketplace links as the only choice. | 57% n=7 | Partial B | Partial B | Yes B | No B | Unknown F | Yes B | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-apple-business-connect Supports Apple Business Connect ordering placement — an 'Order Food' custom action on the Apple Maps place card pointing at the vendor's first-party ordering flow. | 38% n=4 | Partial D | Unknown F | Yes B | No B | Unknown F | Unknown F | Unknown F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-loyalty-attach floor Loyalty accrual and redemption work inside the first-party digital ordering flow using the same guest identity as in-store, not as a separate post-purchase enrollment. | 56% n=8 | Partial C | Partial D | Partial D | Yes B | Partial B | Partial C | Yes D | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-subscriptions Supports guest subscription / membership programs (recurring billing for a delivery-fee waiver, a per-period item entitlement, or a paid loyalty tier) managed in the platform. | 20% n=5 | Yes B | Unknown F | No B | No A | Unknown F | No E | Unknown F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-promo-parity Discounts, coupon codes, and loyalty offers are defined once and honored identically across POS, kiosk, and first-party digital channels, with channel eligibility controls. | 44% n=8 | Partial C | Partial B | Partial B | Partial B | Partial B | Partial C | Partial D | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-guest-data-ownership diff floor Vendor documents that the operator owns and can export first-party guest records (email, phone, consented marketing status, order history) in bulk, without a fee or vendor approval. | 50% n=7 | Partial B | Partial D | Unknown F | Partial A | Partial B | Partial D | Partial D | n/a | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-checkout-pci-sca floor Digital checkout uses vendor-hosted fields or a hosted payment page so card data never touches the restaurant's page, with the vendor publishing PCI DSS 4.0 compliance (including the client-side script-integrity requirements effective March 2025) and supporting 3DS. | 50% n=7 | Partial D | Partial B | Partial B | Partial B | Unknown F | Partial B | Partial B | n/a | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| digital-surcharge-transparency diff Digital channels support the same service-fee / dual-pricing / card-surcharge configuration as the POS, with the required guest-facing disclosure and correct handling of jurisdictions and card brands where surcharging is prohibited. | 40% n=5 | Partial B | Partial B | Partial D | No B | Unknown F | Unknown F | Partial B | n/a | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Guest data, loyalty & marketing
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| guest-loyalty-unified-profile Maintains a single guest profile that automatically merges transactions from in-store POS, first-party web/app ordering, and kiosk under one identity (phone or email match), with documented dedup/merge behavior. | 36% n=21 | Partial C | Partial D | Partial D | Partial A | Unknown F | Partial C | Yes D | n/a | Partial B | No E | Partial B | No E | No E | No F | Partial B | No F | No F | Unknown F | Partial D | Yes D | No F | Partial B | Partial D | No F |
| guest-loyalty-thirdparty-identity-attach diff Orders arriving from third-party marketplaces (DoorDash, Uber Eats, Grubhub) attach to a native guest profile with usable guest identity rather than landing as anonymous tickets. | 29% n=7 | Unknown F | Partial B | Partial B | No A | No A | Partial E | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-accrual-models Supports at least two of points-per-dollar, visit/punch-count, and spend-tier accrual as configuration, without custom development or a bolt-on loyalty vendor. | 32% n=19 | Partial C | Partial B | Yes C | Yes A | Unknown F | Partial D | Yes B | n/a | No F | No E | No B | No F | No E | No F | Unknown F | No F | No F | Unknown F | Partial D | Partial D | No F | Unknown F | Partial D | No F |
| guest-loyalty-tiers diff Supports status tiers with automatic promotion and demotion driven by rolling-window spend or visit counts. | 36% n=7 | Partial C | No B | No B | Yes A | Unknown F | Partial B | Partial D | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-offline-behavior diff Documents explicitly what loyalty lookup, accrual, and redemption do when the POS loses connectivity (queue-and-reconcile vs blocked). | 17% n=6 | No F | No F | No B | No A | Unknown F | Unknown F | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-offer-stacking-rules diff Offer/discount engine exposes explicit stacking and precedence rules (exclusive vs combinable, order of application) as configuration. | 8% n=6 | No B | No B | No B | No A | Unknown F | Unknown F | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-targeted-offers diff floor Offers can be issued to a dynamically defined audience (rules over recency, frequency, spend, or items purchased) rather than only broadcast to the whole list. | 63% n=8 | Yes B | Partial D | Partial B | Yes B | Partial B | Partial D | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-rfm-segmentation diff floor Automatically computes recency/frequency/monetary or equivalent lifecycle segments (new, regular, at-risk, lapsed, VIP) without the operator building the queries. | 57% n=7 | Yes B | Partial B | Partial B | Yes B | Unknown F | Partial D | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-lifecycle-automation Ships triggered lifecycle automations (birthday, first-visit thank-you, lapsed win-back) as configurable always-on campaigns rather than one-off manual sends. | 36% n=22 | Yes C | Partial D | Partial B | Yes C | Unknown F | Yes D | Yes B | n/a | No F | No E | No F | No F | No E | No E | Yes B | No F | No F | Partial B | Partial D | Partial D | No F | No B | Partial D | No F |
| guest-loyalty-native-email-sms diff floor Sends both email and SMS campaigns natively from the platform, not solely by handing the list to a third-party ESP. | 56% n=8 | Yes B | Partial D | Partial B | Partial A | Yes B | Partial D | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-consent-management Captures per-channel marketing consent with timestamp and source of consent, and honors revocation received by any reasonable means (not just the STOP keyword) across all channels. | 43% n=7 | Partial B | Partial B | Partial B | Partial A | Unknown F | Partial B | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-10dlc-registration Handles or explicitly documents A2P 10DLC brand and campaign registration required for the operator to send SMS through the platform. | 40% n=5 | Yes B | No B | Unknown F | Unknown F | Partial B | Partial B | Unknown F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-campaign-attribution diff floor Reports redemption and incremental sales attributable to a specific campaign or offer, tying redeemed offers to actual check totals. | 56% n=8 | Partial C | Partial B | Partial D | Yes A | Partial B | Partial C | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-data-export-portability diff floor Provides self-serve export of the full guest list and transaction history, including contact PII, via CSV or API, without a vendor fee or support ticket. | 64% n=7 | Yes B | Yes B | Unknown F | Partial A | Partial B | Partial B | Partial D | n/a | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-cdp-event-api diff floor Exposes a documented outbound guest and order event API or webhook stream that a CDP or marketing platform can subscribe to (e.g. Olo, Punchh, Bridg, Klaviyo). | 56% n=8 | No B | Yes B | Partial A | Yes A | Partial A | Partial B | Partial B | n/a | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-review-capture-routing diff floor Triggers post-transaction feedback requests and routes responses by score, sending low scores to private service recovery and high scores toward public review sites. | 50% n=7 | Unknown F | Partial B | Partial D | Partial B | Partial A | Partial C | Yes B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-referral-program Includes a native referral mechanic with per-guest codes or links, attribution of the referred guest's first order, and two-sided rewards. | 17% n=6 | Unknown F | No B | No B | Partial A | Unknown F | Partial B | No B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-wallet-pass diff Issues an Apple Wallet or Google Wallet loyalty pass with push-updatable balance, as an alternative to requiring a branded app download. | 13% n=4 | Unknown F | No B | Unknown F | No B | Unknown F | Unknown F | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-privacy-rights-tooling floor Provides admin tooling to fulfill guest data access and deletion requests (CCPA/CPRA-style) including deletion propagation to loyalty and marketing records. | 50% n=6 | Partial B | Partial B | Unknown F | Partial B | Unknown F | Partial B | Partial B | n/a | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-redemption-fraud-controls Enforces loyalty fraud controls such as redemption velocity limits, manager approval on manual point adjustments, and flagging of employee self-redemption, with an audit log. | 17% n=6 | No B | No B | No B | Partial A | Unknown F | Unknown F | Partial B | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-ai-offer-recommendation diff floor Vendor documents AI/ML-generated recommendations for offer content, target audience, or send timing (claim-level; verify it is a shipped product feature, not a roadmap statement). | 50% n=5 | Unknown F | Partial B | Unknown F | Yes B | Unknown F | Partial C | Partial A | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| guest-loyalty-stored-value-gift Offers native stored-value/gift card balances tied to the same guest profile and redeemable across all locations of the brand. | 36% n=7 | Unknown F | Partial B | Partial B | Partial A | Partial B | Partial B | No F | n/a | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Labor & workforce
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| labor-clock-in-at-pos Employees clock in and out at the POS terminal using a PIN, badge, or card, with no separate time-clock hardware required. | 13% n=20 | No B | No E | Yes B | No F | Unknown F | No B | n/a | Partial B | n/a | Partial B | No F | Unknown F | Partial D | No F | No E | No F | No F | No F | No F | No F | No F | No F | No F | No F |
| labor-photo-punch-verification diff Captures a photo at punch (or performs facial verification) attached to the timecard entry, with a photo-only mode available that stores no biometric template. | 0% n=5 | No F | No F | No B | No A | Unknown F | No F | n/a | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-geofenced-mobile-punch Supports mobile clock-in restricted by geofence or location validation for staff who do not punch at a fixed terminal. | 0% n=5 | No F | No F | No B | No A | Unknown F | No F | n/a | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-offline-time-punch diff Records time punches while the POS is offline and reconciles them on reconnect without loss or duplicate entries, with the behavior documented. | 0% n=4 | No F | No F | Unknown F | No A | Unknown F | No F | n/a | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-granular-rbac floor Permissions are grantable per discrete action (void, comp, discount, refund, drawer open, price change, report access) per role and per location, not limited to fixed cashier/manager/admin tiers. | 62% n=13 | Unknown F | Partial B | Partial B | No F | Partial B | Unknown F | n/a | Yes B | n/a | Unknown F | Unknown F | Yes B | Unknown F | Unknown F | Yes B | Yes B | Partial B | Partial B | Partial B | Partial B | Unknown F | Partial B | Unknown F | Unknown F |
| labor-manager-override-audit Manager overrides and approvals are attributed to the individual approver and written to an immutable audit trail queryable after the fact. | 40% n=15 | No F | Partial B | Partial B | No F | Unknown F | No F | n/a | Yes B | n/a | Partial B | Partial B | Unknown F | Unknown F | Unknown F | Partial B | Partial B | Unknown F | Partial B | Partial B | Partial B | Unknown F | Partial B | Unknown F | No B |
| labor-native-scheduling diff Builds and publishes employee shift schedules inside the same platform that holds the timekeeping data, rather than requiring a third-party scheduling app. | 17% n=6 | No B | No F | No B | No A | Unknown F | No F | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-demand-labor-forecast diff Generates recommended staffing levels or labor hours by daypart from the operator's own POS sales history, not just a static template. | 17% n=6 | No F | No F | Partial B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-realtime-labor-percent diff Displays labor cost as a percentage of sales in real time during service on a manager view or POS, not only in end-of-day or next-morning reports. | 17% n=6 | No F | No F | Partial B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-overtime-prevention diff Warns or blocks at clock-in when an employee is approaching or would cross a configured overtime threshold, before the overtime is incurred. | 8% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-break-compliance-by-state diff Configures meal and rest break rules per state or jurisdiction, prompts required break attestation, and flags missed breaks for premium pay. | 8% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Partial D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-fair-workweek-support Supports predictive-scheduling ordinances by tracking advance-notice deadlines for published schedules and calculating predictability pay owed for employer-initiated changes. | 8% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-minor-labor-rules Enforces minor-labor restrictions (age-based maximum hours, prohibited time windows, school-day limits) at both scheduling and clock-in. | 8% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-tip-pooling-rules Computes tip pooling and tip-outs automatically per shift from configurable rules (percentage of sales, hours worked, points, or role), rather than requiring a manual spreadsheet. | 17% n=6 | No B | No F | No B | No A | Unknown F | No F | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-tip-distribution-audit-trail Retains a per-shift, per-employee record of tips received, amounts contributed to the pool, and amounts distributed from the pool, exportable for audit. | 25% n=6 | No F | No F | Partial B | No B | Unknown F | No F | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-qualified-tips-w2-reporting diff Payroll export separates cash from charged qualified tips and carries a Treasury tipped-occupation code, supporting the W-2 Box 12 code TP and Box 14b reporting required for tax year 2026. | 8% n=6 | No B | No F | No B | No A | Unknown F | No F | n/a | Partial C | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-native-payroll diff Vendor processes payroll itself as a first-party product (tax filing and direct deposit), as opposed to exporting to a third-party payroll provider only. | 8% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-payroll-export-formats Exports timecards, wages, and tips in documented formats or via direct integration for at least two major payroll providers (e.g. Gusto, ADP, Paychex, QuickBooks). | 25% n=6 | No B | No F | Partial B | No A | Unknown F | No B | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-shift-swap-workflow diff Employees can request shift swaps or claim open shifts in a self-service app, subject to a manager approval workflow that enforces overtime and role eligibility. | 17% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-digital-onboarding-i9 Provides digital new-hire onboarding that collects W-4 and I-9 documentation and supports E-Verify submission. | 8% n=6 | No F | No F | No B | No A | Unknown F | No F | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| labor-server-performance-metrics diff Reports per-employee sales performance metrics (average check, items or category attachment rate, void and comp rate) by server or cashier. | 17% n=6 | No C | No F | Partial B | No A | Unknown F | No C | n/a | Partial D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Inventory, purchasing & cost control
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| inventory-recipe-bom-costing Supports multi-level recipe/BOM costing where a recipe can contain sub-recipes (prep items) and plate cost recalculates automatically when any component ingredient's cost changes. | 15% n=20 | No B | No F | No C | No F | Unknown F | n/a | n/a | Yes D | n/a | No E | No F | Partial D | Partial D | No F | No E | Yes B | No F | No F | No F | No F | No F | No F | No F | No F |
| inventory-unit-conversion-yields Stores purchase unit, recipe unit, and count unit per item with explicit conversion factors, plus a yield/waste percentage applied to raw-to-usable conversion. | 6% n=18 | No F | No B | No F | No F | Unknown F | n/a | n/a | Partial F | n/a | No E | No F | Partial B | Unknown F | No F | No E | Unknown F | No F | No F | No F | No F | No F | No F | No F | No F |
| inventory-theoretical-vs-actual diff Produces a theoretical-vs-actual usage variance report per item for a defined count period, showing theoretical usage from POS sales times recipe, actual usage from counts plus receipts, and the variance in both units and currency. | 20% n=5 | No F | No F | No B | No A | Unknown F | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-realtime-depletion diff Depletes ingredient on-hand quantities in near real time as orders are fired at the POS, including depletion driven by modifier selections, not only in an end-of-day batch. | 25% n=6 | No F | Partial B | No B | No A | Partial D | n/a | n/a | Partial F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-86-auto-sync diff Automatically 86s (marks unavailable) menu items on the POS, online ordering, and connected third-party delivery menus when a component ingredient hits zero or a configured threshold. | 25% n=6 | Partial B | Partial B | No C | No B | Partial D | n/a | n/a | No B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-count-modes Supports full physical inventory, ad-hoc spot counts of a subset, and scheduled recurring cycle counts, with each count's variance recorded as separate history rather than overwriting prior counts. | 3% n=17 | No F | No F | No B | No F | Unknown F | n/a | n/a | Partial D | n/a | No E | No F | Unknown F | Unknown F | No E | No E | Unknown F | No F | No F | No F | No F | No F | No F | No F | No F |
| inventory-mobile-count-offline Provides a mobile/tablet counting app supporting barcode or QR scanning that continues to accept counts with no network connectivity and syncs on reconnect. | 20% n=5 | No F | No B | No B | No A | Unknown F | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-vendor-catalogs-edi diff Ships pre-built electronic vendor catalog and order-transmission integrations with named broadline distributors (e.g. Sysco, US Foods, Performance Food Group) that send purchase orders and receive invoices electronically rather than by emailed PDF. | 20% n=5 | No B | No F | No C | No A | Unknown F | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-invoice-ocr diff Ingests supplier invoices from photo, PDF, or email and extracts line-item detail (item, quantity, unit, price) into the inventory ledger without manual line entry. | 20% n=5 | No B | No F | No B | No A | Unknown F | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-price-change-alerts diff Tracks per-item purchase price history across invoices and alerts when a received price exceeds the prior or contracted price by a configurable threshold. | 10% n=5 | No F | No F | No C | No A | Unknown F | n/a | n/a | Partial B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-par-auto-suggest diff Maintains par levels per item per location and generates suggested purchase order quantities from on-hand versus par, with at least one mode driven by a sales forecast rather than a static par. | 20% n=5 | No F | No F | No B | No A | Unknown F | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-waste-logging Provides a structured waste/spoilage logging workflow with reason codes that debits inventory and reports waste cost separately from usage variance. | 10% n=5 | No F | No F | No B | No A | Unknown F | n/a | n/a | Partial D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-transfers Supports inter-location inventory transfers as a two-sided transaction crediting the sending location and debiting the receiving location, with an in-transit or approval state. | 25% n=6 | No F | No F | No B | No A | Partial D | n/a | n/a | Yes D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-commissary Supports a commissary/central kitchen model where one location produces prep items and issues or sells them to other locations at a computed transfer cost. | 20% n=5 | No F | No F | No B | No A | Unknown F | n/a | n/a | Yes D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-lot-traceability Captures lot/batch numbers at receiving and links them through production to sales or transfers, enabling a backward and forward recall trace. | 10% n=5 | No F | No F | No B | No A | Partial D | n/a | n/a | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-shelf-life-expiry Tracks expiration or use-by dates on received and prepped items and surfaces an expiring-soon report or alert before spoilage. | 10% n=5 | No F | No F | No B | No A | Partial D | n/a | n/a | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-bar-partial-bottle Supports partial-bottle liquid inventory by weight (scale integration) or by bottle fraction for bar and beverage counting. | 0% n=4 | No F | No F | No B | No A | Unknown F | n/a | n/a | Unknown F | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-cogs-gl-export Exports period COGS and accounts-payable invoice detail in a named accounting system's import format (e.g. QuickBooks, Sage Intacct, NetSuite) with GL account mapping configurable per item category. | 20% n=5 | No B | No F | No B | No A | Unknown F | n/a | n/a | Yes D | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-native-not-partner diff Inventory and recipe costing are delivered natively by the POS vendor rather than requiring a separately-contracted third-party product (e.g. MarginEdge, MarketMan, Restaurant365) to function. | 25% n=6 | No B | No F | No B | No A | Partial D | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| inventory-menu-margin-linkage diff Joins recipe cost to actual item sales mix to report contribution margin per menu item, and flags items whose margin fell below a configured threshold after ingredient cost changes. | 20% n=5 | No D | No B | No F | No A | Unknown F | n/a | n/a | Yes B | n/a | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Reporting, BI & data access
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| reporting-realtime-dashboard floor Provides a live sales dashboard reflecting transactions within minutes of the sale, accessible from both a browser and a mobile app off-premise. | 55% n=22 | Partial C | Partial D | Yes C | Partial B | Partial D | Partial D | Partial D | Yes D | Partial B | Partial E | Partial B | Partial D | Partial D | Partial C | Partial D | Partial B | Partial D | Unknown F | Partial B | Unknown F | Partial D | Partial B | Partial D | Partial B |
| reporting-eod-closeout Generates a daily close-out/EOD report reconciling gross sales, net sales, tax, tips, discounts, refunds, tender types, and expected cash deposit in one document. | 13% n=23 | Partial B | Partial B | Partial B | No F | Partial D | No B | No F | Partial D | No F | No E | Partial B | No F | No E | No F | Unknown F | No F | No F | No F | No F | No F | No F | No F | No F | No F |
| reporting-pmix-modifier-level Provides a product mix (PMIX) report at individual menu item AND modifier level with quantity, gross and net sales, filterable by daypart and revenue center. | 26% n=19 | Yes C | Partial B | Partial D | Partial B | Partial B | Partial D | Partial B | Partial F | No F | No B | No F | Unknown F | Unknown F | No F | Partial B | Unknown F | No F | No F | Unknown F | No F | Unknown F | No F | No F | No F |
| reporting-comps-voids-audit Produces an audit report of comps, voids, discounts, and price overrides attributed to the employee who applied them and the manager who approved them, with reason codes and timestamps. | 13% n=8 | No E | No F | Partial B | No B | Unknown F | No F | No F | Partial F | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-cash-over-short Reports cash over/short per drawer, per shift, and per employee, comparing counted cash to expected cash from tendered transactions and paid-outs. | 19% n=8 | No F | No F | Partial B | No B | Unknown F | No F | No F | Yes D | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-labor-productivity Reports sales per labor hour and labor cost as a percentage of sales by hour, by department, and by employee, using actual clocked hours from the POS time clock. | 13% n=8 | No F | No F | No F | No B | Unknown F | No F | No F | Yes B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-server-scorecards diff Reports per-server metrics including average check, items per check, attachment rate for named categories, and tips as a percentage of sales. | 6% n=8 | No F | No F | No B | No B | Unknown F | No F | No F | Partial D | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-channel-profitability diff floor Reports revenue and margin by fulfillment channel — dine-in, direct online, first-party delivery, and each third-party marketplace separately — net of marketplace commission fees. | 50% n=9 | Partial D | Partial D | Yes B | Partial B | Partial B | Partial D | Partial B | Partial F | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-multiloc-drilldown diff floor Provides a consolidated multi-location report with side-by-side location comparison and drill-down from group total to a single location and then to an individual transaction. | 56% n=9 | Partial C | Partial D | Partial C | Partial B | Partial B | Partial D | Yes B | Partial B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-custom-report-builder diff Includes a self-service report builder letting a non-developer choose dimensions, measures, and filters and save the result, rather than only fixed canned reports. | 38% n=8 | Unknown F | No B | Partial B | Partial B | Partial B | No B | No B | Yes B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-scheduled-delivery floor Supports scheduling any report for automatic recurring delivery by email or to a shared destination on a defined cadence and recipient list. | 57% n=7 | Partial B | Unknown F | Yes B | Partial B | Partial B | Unknown F | Partial B | Partial B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-raw-warehouse-export diff floor Offers automated recurring bulk export of transaction-level raw data to a customer-controlled destination (S3, SFTP, Snowflake, BigQuery, or equivalent), not just manual CSV download. | 58% n=6 | No B | Partial B | Partial B | Yes B | Partial A | Unknown F | Unknown F | Unknown F | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-public-api diff floor Publishes a documented public REST or GraphQL API covering orders, payments, menu, and labor data, with self-service developer credentials obtainable without a signed partner agreement. | 56% n=9 | Partial B | Partial B | Partial A | Partial A | Partial A | No B | Partial B | Yes B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-webhooks diff floor Emits outbound webhooks for order and payment lifecycle events to a customer-supplied endpoint, with documented retry behavior and payload signature verification. | 64% n=7 | Partial A | Yes B | Partial A | Partial A | Partial A | Unknown F | Partial B | Unknown F | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-api-not-upcharged diff API and raw-data access are included in the standard subscription rather than gated behind an additional per-location fee, revenue share, or enterprise-only contract. | 33% n=6 | No B | Unknown F | No B | Partial B | Partial A | Partial B | Unknown F | Unknown F | Partial C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-tier-paywall diff Core reporting beyond basic sales summaries — labor vs sales, PMIX, comps/voids audit, multi-location comparison — is available on the entry-level paid plan rather than requiring a higher tier or an add-on analytics SKU. | 33% n=6 | Partial C | No B | Partial C | Partial B | Unknown F | Partial B | Unknown F | Unknown F | No C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-history-retention diff Documents a historical retention window of at least 24 months of transaction-level detail queryable in the reporting UI, with no silent truncation or archive retrieval fee. | 33% n=3 | Partial B | Unknown F | No B | Partial B | Unknown F | Unknown F | Unknown F | Unknown F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-anomaly-alerts diff floor Sends proactive push or email alerts when an operator-configured metric breaches a threshold or deviates from its historical pattern (e.g. void spike, sales below forecast, discount rate anomaly). | 50% n=5 | Unknown F | Yes B | Partial C | No A | Unknown F | Unknown F | Partial B | Partial D | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-nl-query floor Offers a natural-language query or AI assistant that answers ad-hoc questions against the operator's own sales and labor data and returns a figure or chart, not a generic help-article response. | 50% n=5 | Unknown F | Partial A | Partial B | Partial B | Unknown F | No C | Unknown F | Yes D | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-guest-cohorts diff Reports guest-level analytics including new versus returning guest counts, visit frequency, and lifetime spend cohorts tied to identifiable guest records from loyalty or online ordering. | 44% n=8 | Partial B | Partial B | Partial D | Yes B | Unknown F | Partial C | Partial B | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-sales-forecast diff Produces a forward sales forecast at daypart or hourly granularity from the location's own history, exposed in the reporting UI and consumable by scheduling or ordering workflows. | 20% n=5 | Unknown F | No B | Unknown F | No A | Unknown F | No B | Unknown F | Yes B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reporting-tip-tax-compliance Generates payroll- and tax-ready tip reporting: declared versus charged tips per employee, tip pool distribution detail, and a tax liability summary by jurisdiction. | 19% n=8 | No B | No F | Partial B | No B | Unknown F | No F | No F | Yes D | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Multi-location, franchise & enterprise governance
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| multi-location-org-hierarchy floor Supports a named organizational hierarchy of at least three levels (e.g. enterprise > region/group > location) as a first-class object that reporting and permissions can be scoped to, not just a flat list of locations. | 53% n=19 | Partial B | Partial C | Yes A | Partial B | Partial B | Unknown F | Partial D | Partial E | Partial A | Partial B | Partial B | Partial E | Unknown F | Partial C | Unknown F | Partial B | Partial B | Yes B | Partial B | Partial D | Unknown F | No B | Unknown F | Partial A |
| multi-location-central-menu-publish A corporate-level menu can be authored once and published to a chosen set of locations in a single action, with a publish/version history showing what was pushed, when, and by whom. | 19% n=18 | Partial C | Partial C | Partial C | No B | Partial D | Partial D | Partial B | No B | No F | No E | No F | Unknown F | Unknown F | No F | Partial D | Unknown F | No F | No F | Unknown F | No F | Unknown F | No F | Unknown F | No F |
| multi-location-local-override-policy diff Corporate menu items expose per-field override rules so a location can change some attributes (e.g. price, availability) while corporate locks others (e.g. name, image, recipe), and locked fields are not editable at store level. | 38% n=8 | Unknown F | Partial B | Partial B | No A | Yes A | Partial B | Partial B | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-price-zones Supports price tiers/zones so one menu item carries different prices per location group, per order channel, and per daypart without duplicating the item record. | 17% n=23 | Partial B | Partial B | Partial B | Partial B | Partial B | Partial C | Partial D | No B | No F | No E | No F | No F | No E | No F | Unknown F | No F | No F | No F | Partial B | No F | No F | No F | No F | No F |
| multi-location-scheduled-publish diff Menu, price, and promo changes can be scheduled to activate at a future date/time interpreted in each target location's own timezone, and can be rolled back after activation. | 38% n=8 | Unknown F | Partial D | Partial B | Partial B | Partial B | Partial B | Partial B | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-new-store-template diff A new location can be provisioned by cloning a documented configuration template (menu, taxes, roles, printers, modifiers, tenders) rather than being configured from scratch, and the vendor publishes the expected time-to-open. | 43% n=7 | Unknown F | Partial B | Partial B | No A | Partial B | Partial B | Partial B | Unknown F | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-corp-vs-franchisee-roles diff floor The permission model distinguishes a franchisor/corporate tenant from an independently-owned franchisee tenant, so corporate can see franchisee sales and enforce config while the franchisee owns its own employees, banking, and labor data. | 67% n=6 | Unknown F | Unknown F | Partial B | Partial B | Partial B | Unknown F | Yes B | Yes B | Partial E | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-royalty-calculation diff Calculates franchise royalty, ad-fund, and marketing-fee amounts automatically from POS net sales on a defined schedule, with a configurable royalty basis (gross vs net of discounts/comps/third-party). | 14% n=7 | Unknown F | No B | No B | No B | Unknown F | No B | No F | Yes B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-royalty-collection Supports automated ACH/debit collection of calculated royalties and fees from franchisee accounts, with a franchisee-visible statement of what was charged. | 13% n=8 | No F | No F | No B | No B | Unknown F | No F | No F | Yes B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-consolidated-reporting floor Provides above-store reporting that aggregates sales, labor, discounts, voids, and item mix across any selected set of locations in one view, with store-vs-store ranking and variance flags. | 72% n=9 | Partial C | Yes D | Partial C | Partial B | Partial B | Yes C | Yes D | Yes D | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-normalized-item-rollup diff floor Item-level sales roll up across locations under a shared corporate item ID even when stores have renamed or locally priced the item. | 50% n=8 | Unknown F | Partial B | Partial B | Partial A | Yes B | Partial B | Partial B | Partial E | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-cross-location-giftcard Gift cards issued at one location are redeemable at any other location in the brand, with a reported outstanding-liability balance and inter-store settlement/redemption reconciliation between owners. | 21% n=7 | Unknown F | No F | Partial B | Partial A | Unknown F | Partial B | No F | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-cross-location-loyalty floor A single customer loyalty profile, balance, and stored order history is shared across all locations in the brand rather than being per-location. | 50% n=9 | No B | Partial B | Yes B | Yes A | Partial B | Partial B | Yes D | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-multi-brand diff A single location/terminal can operate two or more distinct brands or virtual brands with separate menus, receipts/branding, and separately reportable revenue, on the same hardware and drawer. | 44% n=8 | Unknown F | Yes B | Partial B | No A | Partial B | Partial B | Partial D | Partial E | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-multi-tax-jurisdiction Tax configuration is per-location with support for multiple simultaneous tax rates, jurisdiction-specific rules (e.g. prepared-food vs grocery, inclusive vs exclusive tax), and per-location tax exemptions. | 38% n=8 | Partial B | Partial B | Partial D | No A | Partial B | No B | Partial B | Partial F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-multi-currency-locale Supports locations operating in different currencies and languages within one enterprise account, with consolidated reporting converted to a reporting currency. | 43% n=7 | Partial B | Yes B | Partial B | No A | Partial A | No B | Unknown F | Unknown F | Partial A | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-config-audit-log diff Produces an immutable audit log of who changed which configuration object (price, tax, permission, discount) at which location and when, exportable or queryable by corporate. | 42% n=6 | Unknown F | Partial B | Partial B | No A | Partial B | Unknown F | Partial B | Partial B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-enterprise-sso diff floor Supports SSO via SAML or OIDC against the customer's identity provider for back-office/above-store users, with SCIM or equivalent for automated deprovisioning. | 60% n=5 | Unknown F | Partial B | Unknown F | No A | Unknown F | Unknown F | Partial B | Yes B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-enterprise-api diff floor Publishes a documented multi-location API (or data warehouse/BI export) that returns transaction-level data across all locations in one authenticated call, without per-location credentials. | 69% n=8 | No B | Yes B | Partial A | Yes A | Yes B | Partial B | Partial B | Unknown F | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| multi-location-central-labor-policy Labor rules (overtime, break enforcement, predictive-scheduling compliance) are configurable per location or location group and enforced at the terminal, not just reported after the fact. | 6% n=8 | No F | No F | No B | No B | Unknown F | No F | No F | Partial B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Integrations, API & extensibility
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| extensibility-public-api-docs floor Public, self-serve API reference documentation is readable without a signed partner agreement, NDA, or sales call. | 77% n=24 | Yes B | Yes B | Yes A | Yes A | Yes A | No B | No B | Yes A | Yes A | Yes B | Yes B | Yes A | Yes A | Yes A | Yes A | Yes A | Yes B | Partial B | Yes A | Yes A | No B | No B | No A | Yes B |
| extensibility-api-access-cost diff API access is included in the base subscription at no additional per-location fee, surcharge, or upgraded plan requirement. | 25% n=4 | No B | Unknown F | Unknown F | Partial B | Unknown F | No B | Unknown F | Unknown F | Partial C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-partner-revshare The vendor publishes its partner/marketplace commercial terms (referral fee, revenue share percentage, or per-location partner fee) in public documentation. | 36% n=7 | Yes C | No B | No B | Partial B | Partial D | No B | Unknown F | Partial C | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-free-sandbox diff floor A free sandbox or test environment with seeded data is available to developers without owning a paid production account. | 50% n=9 | Partial B | Partial B | Partial B | Partial A | Partial A | Partial B | Partial B | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-oauth-partner-apps Third-party apps authenticate via OAuth 2.0 with scoped, operator-granted, individually revocable permissions (not shared static API keys or credential sharing). | 42% n=19 | Partial B | Partial B | Yes A | Partial A | No A | Unknown F | Partial B | Unknown F | Yes B | Partial B | Unknown F | No A | Partial B | No A | Yes A | No A | No B | Partial A | No A | Partial A | Partial A | Unknown F | Unknown F | Partial B |
| extensibility-webhooks-push floor The platform pushes real-time webhooks for order lifecycle events (created, modified, paid, voided, refunded) rather than requiring polling. | 55% n=20 | Partial B | Yes B | Yes A | Partial A | Partial A | Unknown F | Partial B | No B | Partial B | Partial B | Partial E | No A | Partial B | Partial A | Unknown F | Partial A | Yes B | Partial A | Partial A | Partial B | Partial B | Unknown F | Unknown F | Yes B |
| extensibility-webhook-reliability diff Webhooks are cryptographically signed (e.g. HMAC) AND documented to retry with backoff, with a replayable event log for missed deliveries. | 44% n=8 | Partial A | Partial B | Partial A | No A | Partial A | Unknown F | Partial B | No B | Yes A | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-order-injection-api floor A public write API accepts externally originated orders into the POS as first-class tickets that fire to KDS/printers and land in reporting. | 50% n=9 | Partial B | Yes B | Yes A | No A | Partial A | Partial C | Yes D | No B | No B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-menu-write-api diff floor Menu items, modifiers, and prices can be written and updated via API, not just read. | 50% n=7 | No B | Yes B | Yes A | No A | Yes A | Partial B | Unknown F | Unknown F | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-data-symmetry diff floor Every core object the API can read (orders, menu, customers, employees, inventory) can also be written or updated via the same API. | 50% n=7 | No A | Partial B | Partial A | Partial A | Partial A | Unknown F | Unknown F | Yes B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-published-rate-limits API rate limits are published as specific numeric quotas with documented throttling behavior and headers. | 44% n=8 | Yes B | No B | Partial A | Partial A | Partial A | No F | No B | Unknown F | Yes A | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-doordash-preferred diff The vendor is a named DoorDash Preferred Integration Partner (DPIP) under the 2026 program requirements. | 44% n=9 | No B | Yes B | Yes B | No B | Yes B | Yes B | No B | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-first-party-delivery-integrations diff floor Direct, first-party certified integrations exist with DoorDash, Uber Eats, and Grubhub without requiring a paid middleware layer (Otter/Chowly/Deliverect/Checkmate). | 72% n=9 | Yes B | Yes C | Yes B | Partial B | Partial B | Yes B | Yes B | Partial E | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-middleware-compatibility The POS is a supported endpoint for at least two major aggregation middleware platforms (Deliverect, Chowly, Otter, Checkmate, ItsaCheckmate). | 17% n=6 | No F | No F | Unknown F | Partial B | Unknown F | No E | Partial C | Unknown F | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-accounting-connectors Native, vendor-maintained connectors exist for QuickBooks Online and at least one other GL/accounting system, with mapped journal entries rather than CSV-only export. | 20% n=5 | No B | Unknown F | No B | No A | Unknown F | Unknown F | Partial C | Partial D | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-payroll-export Labor hours export natively to at least two named payroll providers (e.g. Gusto, ADP, Paychex, Paylocity) without manual re-keying. | 19% n=8 | No B | No F | Partial B | No A | Unknown F | No F | No F | Yes B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-bi-data-warehouse diff floor Raw transaction-level data can be exported on a schedule to a customer-controlled destination (S3/SFTP/warehouse/Snowflake share), not only viewed in the vendor's reporting UI. | 64% n=7 | No E | Partial B | Partial A | Yes A | Partial B | Unknown F | Unknown F | Yes B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-app-marketplace floor The vendor operates a public integrations marketplace listing named third-party apps that operators can browse and self-install. | 56% n=9 | Partial B | Partial B | Yes B | Partial D | Partial B | Partial B | Partial B | Partial B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-custom-fields-scripting floor Operators can define custom fields or run vendor-hosted custom logic/scripts against POS objects without a vendor engineering engagement. | 50% n=7 | Unknown F | Partial B | Partial B | Partial A | Unknown F | Partial B | Partial B | Partial B | Partial F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-headless-embedded The vendor supports a headless/embedded mode where a third-party UI (kiosk, web ordering, drive-thru) drives the POS transaction engine via API. | 43% n=7 | Unknown F | Partial B | No A | Partial A | Unknown F | Partial C | Partial B | No B | Yes A | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-api-versioning-deprecation floor The vendor publishes an API changelog and a stated deprecation/notice policy for breaking changes. | 50% n=7 | No B | Yes B | No A | Partial A | No A | Unknown F | Unknown F | Yes B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| extensibility-data-portability-exit diff A complete historical data export (orders, customers, menu, payments metadata) is available to the operator on demand, in a documented machine-readable format, at contract end. | 43% n=7 | Partial B | Partial B | Partial B | Partial A | Partial B | No B | Unknown F | Unknown F | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Reliability, offline & operations
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| reliability-offline-order-entry Order entry, ticket routing, and check printing continue on-terminal when the internet connection is lost. | 2% n=23 | No F | No B | Partial D | No F | Unknown F | No B | No B | No B | No F | No E | No F | No F | No E | No F | No E | No F | No F | No F | No F | No F | No F | No F | No F | No F |
| reliability-offline-card-auth diff Card payments can be accepted while offline via store-and-forward, not just cash-only fallback. | 22% n=9 | No F | No F | Yes B | No B | No B | No F | No F | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-offline-decline-liability diff The vendor publicly documents who bears the loss when a store-and-forward transaction declines after connectivity returns, and states any per-transaction or cumulative offline cap. | 17% n=9 | No F | No F | Partial B | No B | No B | No F | No B | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-lan-degraded-multi-terminal diff Multiple terminals continue to share a single check/table state over the local network while the internet is down (LAN-only degraded operation, not per-terminal islands). | 0% n=7 | No F | No F | No B | No A | Unknown F | No F | No F | No B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-local-transaction-engine diff The vendor documents a local/on-premise transaction engine or edge server (not purely cloud-hosted request/response) for the ordering path. | 11% n=9 | No F | No F | Partial B | No A | No B | No F | No B | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-offline-kds-printing Kitchen display and/or kitchen printer routing continues to function while offline. | 3% n=20 | No F | No B | Partial C | No F | Unknown F | No F | No F | No B | No F | No E | No F | Unknown F | No E | Unknown F | No B | No F | No F | No F | No F | No F | Unknown F | No F | No F | No F |
| reliability-printer-fallback The system automatically fails over to a backup printer or KDS station when a configured kitchen printer is unreachable, and alerts staff. | 7% n=21 | No B | No B | Partial B | No F | Partial B | No F | No B | No B | No F | No E | No F | Unknown F | No E | Unknown F | Partial B | No F | No F | No F | No F | No F | Unknown F | No F | No F | No F |
| reliability-sync-conflict-handling The vendor documents its conflict-resolution behavior for edits made on two devices during a network partition (e.g. last-write-wins, merge, or operator prompt). | 38% n=4 | Unknown F | No B | Unknown F | Partial A | Partial A | Partial B | Unknown F | Unknown F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-offline-feature-matrix The vendor publishes an explicit list of which features are unavailable offline (gift cards, loyalty lookup, refunds, manual card entry, text-to-pay). | 17% n=9 | No B | No F | No C | No A | No B | No F | Partial B | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-public-status-page floor A public, per-component status page exists showing current and historical incident state without a login. | 78% n=9 | No B | Yes B | Yes B | Yes B | Yes B | No F | Yes B | Yes B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-contractual-uptime-sla diff A contractual uptime SLA with a stated percentage AND a service credit remedy is published or available in the standard agreement. | 7% n=7 | No B | No B | No B | No B | No B | No B | Partial B | Unknown F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-incident-postmortems The vendor publishes written post-incident reports or root-cause summaries for major outages. | 42% n=6 | Partial B | Unknown F | Partial B | No B | Partial B | Partial B | Partial B | Unknown F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-247-live-support floor 24/7/365 live human support by phone is included in the base subscription, not sold as a premium support tier. | 50% n=8 | Yes C | Partial B | Partial B | No C | Partial B | Partial C | Unknown F | No B | Yes C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-onsite-install diff The vendor offers in-person on-site installation and go-live support (first-party or certified dealer network), not remote-only self-install. | 13% n=4 | Unknown F | Unknown F | Partial B | No C | Unknown F | No F | Unknown F | Unknown F | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-menu-build-service diff The vendor performs the initial menu build as part of onboarding rather than leaving it entirely to the operator. | 36% n=7 | Partial E | Partial D | Unknown F | No A | Partial B | Partial E | Unknown F | Partial B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-hardware-replacement-sla A hardware replacement/advance-exchange program with a stated turnaround time is included or purchasable. | 17% n=6 | Partial B | No F | Partial B | No B | Unknown F | No F | Unknown F | No B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-backup-restore floor Operators can trigger and retrieve their own data backup/restore, or the vendor publishes RPO/RTO figures for data recovery. | 50% n=4 | Unknown F | Partial B | Partial B | Partial A | Partial B | Unknown F | Unknown F | Unknown F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-pci-dss-4-attestation The vendor publishes a current PCI DSS v4.0/4.0.1 Attestation of Compliance or equivalent (e.g. validated P2PE listing) covering the post-March-2025 future-dated requirements. | 25% n=6 | No B | Unknown F | No B | Partial C | No B | Unknown F | Partial B | Unknown F | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-mfa-role-based-access floor Multi-factor authentication is enforceable on back-office and POS administrative logins, with role-based permissions. | 56% n=8 | Partial B | Partial B | Partial B | Partial B | Partial B | Unknown F | Partial B | Yes B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-self-serve-training floor A public, free training library (video/LMS) and a practice/training mode on the terminal exist for staff onboarding. | 50% n=9 | Partial B | Partial B | Partial B | Partial C | Partial B | Partial E | Partial B | Partial B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-failover-terminal-role diff Any terminal can assume the master/server role automatically if the designated primary terminal or local server fails. | 0% n=7 | No F | No F | Unknown F | No A | Unknown F | No F | No F | No B | No F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| reliability-cellular-backup Terminals support an automatic cellular/LTE failover for connectivity, first-party or documented. | 25% n=8 | Unknown F | No F | Partial B | No A | Partial B | No F | No F | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
Commercial, compliance & data ownership
| Claim | Adoption | ChowNow | Deliverect | Otter | Thanx | UrbanPiper | Chowly | Olo | Restaurant365 | Stripe Terminal | 7shifts | Adyen | Crunchtime | Fourth | Fresh KDS | ItsaCheckmate | MarketMan | Nash | OpenTable | Paytronix | Punchh | QSR Automations | Resy | SevenRooms | Uber Direct |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| commercial-month-to-month-contract diff floor Vendor publicly offers a month-to-month subscription with no minimum multi-year term commitment for its core POS software tier. | 79% n=7 | Yes B | Yes B | Yes B | No B | Partial B | Yes B | Unknown F | Unknown F | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-no-early-termination-fee diff Vendor's published terms of service or MSA state no early termination fee / no liquidated damages for cancelling the software subscription before term end. | 31% n=8 | No B | Partial B | No B | No B | Partial B | Partial B | Unknown F | No B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-autorenew-terms-published floor The auto-renewal term and the required cancellation notice window (e.g. 30/60/90 days) are stated in publicly accessible contract terms rather than only in a signed quote. | 57% n=21 | Partial B | Yes B | Yes B | Yes B | No B | Yes B | No B | Partial B | Yes B | Partial B | Unknown F | Yes A | No B | Unknown F | No B | Unknown F | No B | Partial B | No B | Yes B | Yes B | Partial B | Yes B | Partial B |
| commercial-processing-not-bundled diff floor The POS software can be purchased and operated with a third-party payment processor of the operator's choice (no mandatory in-house processing lock). | 56% n=9 | No B | Yes B | No B | Partial B | Yes B | Partial B | Yes B | Yes B | No C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-interchange-plus-published diff Vendor publishes an interchange-plus (cost-plus) processing rate option with the markup stated as a specific bps + per-transaction figure, rather than only blended/flat card-present rates. | 0% n=9 | No C | No C | No B | No B | No B | No C | No B | No B | No C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-rate-increase-clause diff The processing agreement caps or prohibits unilateral vendor-initiated rate increases outside of pass-through interchange/network changes, or grants penalty-free exit on any increase. | 44% n=9 | No B | Partial B | Partial B | No B | Partial B | No B | Partial B | Yes B | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-pricing-published Per-location and per-additional-terminal software pricing is published as specific dollar figures on the vendor's public site (not 'contact sales' only). | 30% n=23 | Yes C | No C | Partial B | No C | No B | Partial B | No B | No C | Yes C | Partial C | Partial C | No B | No B | Yes C | No B | Yes C | No B | Partial D | No B | No B | No B | Unknown F | No C | Partial B |
| commercial-module-unbundling diff floor Individual modules (online ordering, KDS, loyalty, inventory, payroll, marketing) can be purchased à la carte and cancelled independently without repricing the base POS subscription. | 50% n=8 | Partial C | Partial B | Partial B | Partial B | Unknown F | Partial B | Partial B | Partial B | Partial C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-hardware-purchase-outright floor All required terminals, KDS screens, and printers can be purchased outright at a published price, with no mandatory multi-year hardware lease or rental. | 63% n=16 | Partial C | Yes B | Yes B | Partial F | Partial B | No F | Unknown F | No B | Yes C | Unknown F | Unknown F | Partial B | Unknown F | Yes E | Unknown F | Yes E | No F | Unknown F | Unknown F | Yes E | Unknown F | Yes B | Yes E | No F |
| commercial-hardware-not-locked diff floor Vendor documents support for at least one non-proprietary/third-party hardware option (e.g. standard iPad, Epson/Star ESC/POS printers, generic cash drawer) rather than requiring vendor-only devices. | 78% n=9 | Yes B | Yes B | Yes B | Yes A | Yes B | Yes B | Partial B | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-implementation-fee-published One-time implementation, menu-build, onboarding, and training fees are published as specific amounts or explicitly stated as $0. | 17% n=9 | Partial C | No C | Partial B | No C | No B | No B | No B | No C | Partial C | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-data-export-self-serve floor Operators can self-serve export their full transactional history (orders, line items, payments, labor) to CSV or a documented API without contacting support or paying a fee. | 61% n=9 | Yes B | Partial B | Partial B | Partial A | Partial B | Partial B | Partial B | Partial E | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-export-customer-and-loyalty diff Guest/customer records, loyalty balances or point ledgers, and gift-card liability balances are exportable in machine-readable form by the operator. | 44% n=9 | Partial C | Partial B | Partial B | Partial A | Partial B | Partial B | Partial D | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-post-termination-export-window diff Contract or documentation specifies a post-termination data retrieval window (a defined number of days during which the operator can still export their data) rather than immediate cutoff. | 21% n=7 | No B | No B | No B | Yes B | Partial B | No B | Unknown F | Unknown F | No B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-data-ownership-clause diff Published terms explicitly state the merchant owns its transaction and customer data, and constrain the vendor's right to use or resell that data (beyond aggregated/de-identified use) for its own products or marketing. | 44% n=9 | Partial B | Partial D | Partial B | Partial B | Yes B | No B | Partial B | Partial B | No B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-source-available-selfhost The POS is source-available or open source with a documented self-hosting option (source published under an OSI or source-available license, not merely an open API). | 0% n=9 | No F | No B | No B | No B | No B | No B | No B | No B | No B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-pci-p2pe-tokenization Vendor documents validated P2PE or hardware-encrypted card entry plus tokenization such that the merchant's PCI scope is reduced to SAQ A / SAQ P2PE-HW, and names the applicable SAQ. | 36% n=7 | Unknown F | Partial B | No B | Partial B | No B | Partial B | Partial B | Unknown F | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-pci-dss-4-controls Vendor documents PCI DSS v4.0.1 future-dated controls in effect since 31 Mar 2025 — notably MFA for all access to the cardholder data environment including POS and back-office logins, and (for hosted ordering pages) payment-page script integrity monitoring per Req 6.4.3/11.6.1. | 10% n=5 | No B | Unknown F | No B | No A | No B | Unknown F | Partial B | Unknown F | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-soc2-attestation floor Vendor states it holds a current SOC 2 Type II (or ISO 27001) attestation and will provide the report under NDA via a trust center or on request. | 58% n=6 | No B | Unknown F | No B | Partial B | Yes B | Unknown F | Yes B | Unknown F | Yes B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-privacy-dsar-tooling Product provides in-app tooling for CCPA/CPRA and GDPR data-subject requests — locating, exporting, and deleting an individual guest's records — plus a published DPA the operator can execute. | 44% n=9 | Partial B | Partial B | Partial B | Partial B | Partial B | Partial B | Partial B | No B | Partial B | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-wcag-kiosk-accessibility diff Vendor publishes an accessibility conformance report (VPAT/ACR) claiming WCAG 2.1 AA (or later) for its self-order kiosk and consumer web-ordering surfaces, including a documented tactile/audio non-visual access mode on kiosks. | 7% n=7 | Unknown F | No B | Partial B | No C | No B | No F | No B | No B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |
| commercial-dual-pricing-compliant diff POS supports card-network-compliant dual pricing / cash discount or surcharging with automatic exclusion of debit and prepaid cards from any surcharge, and required receipt and menu-board disclosure of the fee. | 10% n=5 | No B | Unknown F | Partial B | No A | No B | Unknown F | Unknown F | No B | Unknown F | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown |