Vendors / Open source & self-hostable

Odoo POS + pos_restaurant

Odoo POS + pos_restaurant (Odoo S.A.)

dossier live legacy rubric

Claims in scope
278
Scored
278
Assessed
236
Unknown
42
Not applicable
36
Cells challenged
37

Identity

Owner
Odoo S.A. (Belgium), independent. Not a subsidiary of a POS or payments company.
Parent
Odoo S.A.
Founded
Odoo S.A. founded 2005 in Belgium (as TinyERP, then OpenERP, renamed Odoo 2014). pos_restaurant ships in the core odoo/odoo repository.
Scale
unknown — Odoo publishes no audited restaurant-location count, POS ARR, or restaurant market share. Company-wide user counts appear only in marketing copy and were not treated as evidence.
Who it is for
SMBs and mid-market already standardizing on Odoo ERP; single-site to small-group independent restaurants, bars and fast-food; strong in EU, LATAM, MENA, India. Not a US enterprise chain buyer. Restaurant-specific store-count share is unknown.
Site
https://www.odoo.com/app/point-of-sale-restaurant

Pricing

transparency: published · unit: per-employee · processor lock-in: no

Software
Published on odoo.com/pricing: One App Free = $0, one app, unlimited users, Odoo Online only. Standard = $24.90/user/month promotional, $31.10/user/month regular annual; all apps, Odoo Online only. Custom = $49.00/user/month promotional, $61.00/user/month regular annual; all apps plus Odoo Studio, multi-company, and external API access; Odoo Online, Odoo.sh or On-Premise. Discount 'valid for 12 months, for initial users ordered.' Critical structural note: POS Restaurant alone qualifies for One App Free ('Free, forever, with unlimited users' on the product page), but the free and Standard tiers exclude external API access, and the UrbanPiper food-delivery connector requires an active Odoo Enterprise subscription (Community not supported). Community Edition is LGPL-3 and free to self-host with no user fee at all.
Card processing
n/a — Odoo is not a payment acquirer and publishes no card rates. Rates come from whichever of the 13 supported terminal providers the merchant contracts with.
Contract
Enterprise Subscription Agreement §1: 'The duration of this Agreement (the "Term") shall be specified in writing on conclusion of this Agreement... automatically renewed for an equal Term, unless either party provides a written notice of termination minimum 30 days before the end of the Term.' Monthly and annual pricing are both published; annual is the discounted default.
Early termination
unknown — no ETF or liquidated-damages figure found in the published ESA. The ESA does specify a penalty for continuing to use Enterprise Edition after termination: 'an extra fee equal to 300% of the applicable list price for the actual number of Users.' That is a post-termination license-breach penalty, not a cancellation fee.

API posture

public API: paid

Cost to integrate
Documentation states verbatim: 'Access to data via the external API is only available on Custom Odoo pricing plans. Access to the external API is not available on One App Free or Standard plans.' That means ~$49–61/user/month to use the API on Odoo Online. Self-hosted Community/Enterprise installs are not subject to this gate. No partner fee, rev share, or certification cost was found published; the app marketplace (apps.odoo.com) is open self-publish.
Webhooks
Outbound only via Studio automation rules: a 'Send Webhook Notification' action POSTs selected fields to a URL on any model trigger, and an 'External' trigger category accepts inbound webhooks. This is generic ORM plumbing, not a documented order-lifecycle event stream. No HMAC signing, retry/backoff policy, or replayable event log is documented. Studio requires the Custom plan.
Data export on exit
Strong. Odoo's SLA page states 'Users can download manual backups of their live data at any time' — a full Postgres database dump including orders, customers, loyalty and payments metadata. Every list view exports to CSV/XLSX. Community Edition is LGPL-3, so the operator can restore that dump onto their own server and keep running the identical software. This is the single best exit posture of any vendor in this category.
Notes
The API is the Odoo ORM exposed over /json/2 with bearer API-key auth — full read/write symmetry across every model (pos.order, product.template, res.partner, hr.employee, stock.quant). There is no OAuth 2.0 scoped-consent model for third-party apps and no published numeric rate limits. Self-serve docs are readable with no NDA or sales call.

Capabilities

Every claim is binary and checkable. Grades: A primary documentation · B product documentation · C pricing or feature page · D marketing claim · E third-party reporting · F inference with no source. A yes on a differentiator claim requires A or B.

Order capture & FOH workflow

Partial

order-capture-floor-plan-editor

Multi-floor editor in backend and POS frontend: table number, seats, square/round shape, size, color, background image, clone. No server-section assignment. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

order-capture-seat-level

Split flow selects products, not seats. Presets capture a guest count only. No seat tagging on order lines documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Yes

order-capture-coursing-hold-fire

Course button splits the order; Order fires course 1; retrieve from floor plan and click Fire Course 2. Transfer course between courses. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Partial

order-capture-split-merge

Split by product into a sub-order, transfer products to another table, merge by transferring onto an occupied table. No even N-way or arbitrary-amount split. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

order-capture-bar-tab-preauth differentiator

Set Tab records only an open order name. No card pre-authorization, incremental re-auth, or stale-tab auto-close documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Partial

order-capture-transfer-audit

Transfer/Merge documented; session report attributes each order to an Employee. No transfer-specific audit entry naming both employees. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

order-capture-native-handheld

POS is a browser app running on any tablet or phone, plus iMin Android devices. Odoo ships no first-party purpose-built handheld. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Partial

order-capture-offline-order-entry

Docs claim it is 'built to maintain functionality even during temporary network outages'. No published list of what works offline. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

D
Partial

order-capture-qr-same-check differentiator

Per-table QR codes; guest orders assign a table and land in POS orders and the prep display. Merging onto an open server check is not stated. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Partial

order-capture-kiosk-first-party differentiator

First-party kiosk on the same product records. No ADA/WCAG conformance documented; kiosk payment limited to Adyen and Stripe terminals. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Unknown

order-capture-drive-thru

No drive-thru order flow documented in the POS docs.

F
Unknown

order-capture-drive-thru-timers

No drive-thru speed-of-service timers documented.

F
Unknown

order-capture-voice-ai differentiator

No first-party voice ordering agent or documented voice-AI partner program found.

F
Partial

order-capture-throttling differentiator

Presets support time slots plus a Preparation capacity limit per time frame. No automatic quote-time extension on kitchen load. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Partial

order-capture-scheduled-orders

Manage orders by time lets staff or guests pick a future slot. Auto-injection into the make queue at a computed fire time is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Unknown

order-capture-catering

No catering-specific flow with quotes, deposits or balance-due tracking documented in POS.

F
Unknown

order-capture-order-ready-signal differentiator

UrbanPiper handles marketplace order lifecycle; no documented KDS-bump order-ready push back to DoorDash.

F
Partial

order-capture-void-comp-controls

Three fixed rights tiers gate discounts, price changes, refunds and cancels. No reason codes and no dedicated exception report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B

Menu, modifiers & pricing engine

No

menu-pricing-nested-modifiers

Docs enumerate the alternative: product attributes/variants plus one-level Combo Choices with Maximum items. No nested groups with per-level min/max. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
No

menu-pricing-modifier-price-by-parent-size

Extra price is set per attribute value or per product inside a combo choice. No parent-item x size price matrix. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
No

menu-pricing-fractional-placement differentiator

Held to the highest bar as instructed. The products page documents only attributes/variants and combo choices as the composition model — the alternative is affirmatively enumerated, so 'no' is defensible rather than mere silence. The dependent cells (half-and-half rule, kitchen-pizza-fractional-display, modifier-price-by-parent-size, nested modifiers) fall the same way. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01 adversarially verified

B
No

menu-pricing-half-and-half-rule differentiator

No half-and-half pricing rule of any kind documented, since fractional placement does not exist. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
No

menu-pricing-topping-quantity-tiers

The numpad Qty modifier multiplies line quantity. No light/regular/extra tiers with price multipliers documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Partial

menu-pricing-size-style-matrix differentiator

Two attributes (e.g. size x crust) generate a variant grid; extra price is per attribute value, with variant prices adjustable via pricelists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

menu-pricing-included-allowance differentiator

Combo Choice has Includes items and Maximum items, with a Combo Price charged for each extra selection. Combo-scoped only, not item-modifier scoped. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

menu-pricing-combos

Combo product type with swappable choices and Extra Price deltas. No automatic detection or conversion of a-la-carte cart items into the combo. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

menu-pricing-upsell-prompts differentiator

POS Optional Products suggests add-ons per product in the register. No per-channel configuration and no attach-rate reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

menu-pricing-86-propagation

Availability is driven by stock tracking and static per-channel flags (Available in Self Order, Available on Food Delivery). No 86 action, no latency stated. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

menu-pricing-countdown-auto-86 differentiator

POS shows Free To Use units for tracked products and depletes on sale. Automatic 86 at zero with scheduled restore is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

menu-pricing-dayparting

Presets carry a Schedule tab and working hours; POS categories carry Service Hours for delivery platforms; pricelists have date validity. Not per-item timezone scheduling. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Yes

menu-pricing-channel-price-books

Pricelists attach per POS, per preset (Dine In/Takeout/Delivery) and per customer, with percentage and formula rules over a base price. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

menu-pricing-dual-pricing differentiator

Pricing docs cover discounts, pricelists, cash rounding and fiscal positions. No dual-pricing or cash-discount mode. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

menu-pricing-allergen-nutrition

Products carry tags, descriptions and images for self-order. No structured allergen flags or nutrition fields documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

menu-pricing-recipe-linkage differentiator

Odoo Manufacturing BoMs plus POS stock moves can deplete components; POS shows margins and costs. No documented POS-to-recipe theoretical costing path. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

menu-pricing-3p-menu-push

Sync Menu pushes to UrbanPiper Atlas with a Last Sync timestamp — middleware, not direct. Combos unsupported; no per-item rejection surface. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
No

menu-pricing-dynamic-pricing

Pricelist rules key off date, quantity, customer and channel. No demand-driven pricing with floor/ceiling guardrails. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B

Payments & money movement

Yes

payments-processor-choice differentiator

All thirteen names verified on the terminals page exactly as listed. Processor neutrality is real and is the dossier's most defensible differentiator. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01 adversarially verified

B
No

payments-published-rates differentiator

Odoo takes no payment margin and publishes no card rates; pricing comes from the merchant's chosen terminal provider. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
No

payments-dual-pricing differentiator

No dual-pricing or cash-discount mode in the payment or pricing documentation. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

payments-surcharge-guardrails differentiator

No surcharging engine, no BIN/debit exclusion, no network cap enforcement documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods.html · retrieved 2026-08-01

B
Partial

payments-emv-nfc

EMV and NFC come from the third-party terminal (Adyen, Stripe, Worldline etc.). Odoo ships no first-party terminal, so acceptance depends on provider. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
Unknown

payments-softpos-tap-to-pay differentiator

No Tap to Pay on iPhone or Android tap-to-pay support documented in the POS payment docs.

F
No

payments-pay-at-table

Odoo ships no handheld. The POS runs in a browser on any device, but no documented tableside handheld-plus-reader product exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
Partial

payments-qr-guest-pay differentiator

QR menu + Ordering lets guests order and pay from their phone; a separate QR code payments method exists. Not documented as scan-to-pay on a printed check. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Partial

payments-tip-adjust

On-device tip via Adyen terminal; Add tip after payment is US-only with Stripe or Adyen, offering 15/20/25%, No Tip or custom. No unadjusted-tips manager screen. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

payments-tip-pooling differentiator

Tips post as a single [TIPS] product line. No pooling or distribution rules documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

payments-offline-store-and-forward differentiator

Terminal docs state a connection issue between Odoo and the terminal automatically cancels the transaction. The marketing 'offline payments' claim conflicts with this. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
No

payments-offline-decline-liability differentiator

No offline card capture, therefore no published decline-liability position or post-reconnect failure report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
Yes

payments-gift-cards

Promotions, Coupons, Gift Card & Loyalty Program setting; codes entered or scanned at the register and shared with eCommerce in the same database. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Partial

payments-house-accounts

Customer account payment method lets guests pay on account. Per-account credit limits and periodic statements are not documented in POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/customer_credit.html · retrieved 2026-08-01

B
Partial

payments-split-tender

Multiple tenders per order are documented (order and tip on different methods) and splits create sub-orders. No even-N or arbitrary-amount split. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Partial

payments-refund-void-controls

Refunds, discounts and cancels gated by the basic/advanced rights tiers; orders carry the Employee. No immutable approver audit log documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B
No

payments-chargeback-tooling differentiator

Odoo is not the acquirer; no dispute dashboard or evidence-submission tooling documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods.html · retrieved 2026-08-01

B
Unknown

payments-card-on-file differentiator

Odoo payment providers tokenize cards for eCommerce and Subscriptions, but POS card-on-file reuse is not documented.

F
No

payments-payout-timing differentiator

Odoo holds no merchant funds and publishes no deposit schedule; funding timing belongs to the chosen processor. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
Unknown

payments-p2pe-pci4

No Odoo-published P2PE listing or PCI DSS 4.x AoC covering the POS was found.

F

Kitchen & production

Yes

kitchen-station-routing

Verified verbatim, including 'Leave the field empty to allow all categories.' Carry the same Enterprise-edition caveat as hardware-kds. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01 adversarially verified

B
Partial

kitchen-expo-consolidation

Multiple displays plus a top bar tracking all orders across stages. No documented expo screen that completes only when every station has bumped. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
Yes

kitchen-course-firing differentiator

Courses fire on demand from the register or by retrieving the order from the floor plan or Orders overview (Fire Course 2). https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

kitchen-prep-time-pacing differentiator

Stages carry an alert timer only. No per-item cook times and no staggered start so items finish together. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
Partial

kitchen-order-throttling differentiator

Throttling is at order intake via preset Preparation capacity per time slot, not driven by live kitchen ticket times. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Partial

kitchen-channel-pause-propagation differentiator

Store Timings control platform availability windows through UrbanPiper. No documented ad-hoc pause or item-level 86 push to marketplaces. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Unknown

kitchen-order-ready-callback differentiator

No documented order-ready event from the preparation display back to a marketplace.

F
No

kitchen-bump-bar-hardware

Prep display runs in a browser on a mobile device or a USB/HDMI touchscreen, and 'IoT boxes are not supported'. No bump-bar models documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
No

kitchen-all-day-counts

The top bar shows order counts per stage, not aggregated outstanding quantities per item or modifier. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
Yes

kitchen-sla-alerts

Per-stage 'Alert timer (min)' highlights orders exceeding the target, with color-coded stage status and visible waiting times. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
No

kitchen-printer-fallback differentiator

Printer setup binds categories to a printer with no documented backup printer or screen failover. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Unknown

kitchen-offline-operation differentiator

The preparation display is a server-served web app; no statement about behaviour when the cloud backend is unreachable.

F
Partial

kitchen-item-build-screens differentiator

Order cards show order detail including variant/attribute selections and notes. No recipe steps or portioning build screens. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

E
No

kitchen-pizza-fractional-display differentiator

No fractional placement exists in the menu model, so nothing sectioned can be rendered on the make line. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

kitchen-recall-refire

A Recall button undoes the most recent stage move, and the POS reprints a duplicate of the last kitchen order. No per-item refire documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
Partial

kitchen-order-modification-alerts differentiator

pos_restaurant ships an order-change receipt template and prints a cancellation ticket, implying change tracking. On-screen flagging is not documented. https://github.com/odoo/odoo/blob/master/addons/pos_restaurant/__manifest__.py · retrieved 2026-08-01

E
Partial

kitchen-guest-ready-notification differentiator

Presets support an Email Confirmation template and kiosk tracker numbers. No SMS-on-ready, app push, or status board documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
No

kitchen-waste-logging

Waste is handled by Inventory scrap in the back office, not logged with reason codes at the kitchen screen. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01

B
No

kitchen-speed-of-service-reporting

Prep display shows live waiting times, but POS reporting covers orders and sessions only — no per-station time percentiles by daypart. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Unknown

kitchen-prep-forecasting

No kitchen prep list or forecast-driven prep quantities documented for POS.

F

Delivery, dispatch & third-party channels

No

delivery-driver-roster

Restaurant docs cover floors, orders, printing, bills and tips. No in-house driver entity, clock state or run history exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-dispatch-board

No dispatch or expo screen for delivery orders, driver availability, or multi-order run batching. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-route-map differentiator

No dispatch map or route sequencing; no delivery dispatch module exists to host one. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-driver-tracking differentiator

No driver-facing mobile app and no GPS surfacing documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-zones-polygon differentiator

No delivery-zone geometry of any kind — polygon, isochrone, radius or ZIP list — documented for POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-zone-pricing

Delivery is a preset (pricelist plus fiscal position), not a zone with its own fee, minimum and promise time. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
No

delivery-address-validation

Preset Identification can require a customer address, but no geocoding, validation or out-of-zone rejection is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
No

delivery-driver-comp differentiator

No mileage, per-delivery reimbursement, or driver-tip tracking exists because there is no driver module. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-cash-reconcile

POS cash control reconciles the register session, not a per-driver bank with orders assigned and tips owed. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
No

delivery-daas-dispatch

No native handoff to DoorDash Drive, Uber Direct, Nash or Relay from the POS is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-daas-fallback differentiator

No hybrid dispatch rules, since neither in-house drivers nor DaaS dispatch exist. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
No

delivery-3p-direct-integration differentiator

Marketplace access is exclusively via UrbanPiper middleware, which requires its own valid subscription plus Odoo Enterprise 18.0+. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Partial

delivery-3p-injection

This is the exact shape of cell the brief says to hold to the highest bar, and it is not native. Verified from the Odoo doc: 'an active Odoo Enterprise subscription is required. Odoo Community does not support' it; Enterprise 18.0+; a valid UrbanPiper subscription; plus registered reseller accounts with each platform. Three separate paid relationships and a middleware hop is a partner integration, not a yes. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01 adversarially verified

B
Partial

delivery-menu-push

Sync Menu publishes products; pricelist and fiscal position auto-attach per store. Combos are unsupported (workaround: attributes and variants). https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Unknown

delivery-86-sync

Product availability is a static 'Available on Food Delivery' flag; no documented real-time item or option 86 push.

F
Partial

delivery-store-pause

Store Timings set weekly availability windows per POS. No ad-hoc pause with timed auto-reactivation from inside the POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Unknown

delivery-3p-reconciliation differentiator

No marketplace payout-to-POS reconciliation report documented.

F
Partial

delivery-injection-error-visibility differentiator

Successful sync triggers a notification and a Last Sync on timestamp updates. No per-channel connection status or failure alerting documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Unknown

delivery-tracking-page

Sourced to restaurant.html, a page that never discusses delivery tracking at all. This is silence, not an affirmative absence and not an enumerated alternative. Per the ground rules that is 'unknown', not 'no'. Same defect applies to delivery-offline-behavior, which cites the same page. adversarially verified

F
No

delivery-promise-time differentiator

Preset time slots and capacity are static configuration; no dynamic promise time from kitchen load or drive time. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
No

delivery-offline-behavior

No delivery offline behaviour is documented because no delivery dispatch module exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B

Digital ordering & guest-facing channels

Yes

digital-first-party-web

QR menu + Ordering is first-party and commission-free, writing straight into POS; Odoo Website/eCommerce covers a branded domain in the same database. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Yes

digital-menu-single-source

Self-order renders the same product records; a per-product 'Available in Self Order' flag controls exposure. No separate digital menu build. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
No

digital-native-app differentiator

Self-ordering is a mobile web interface reached by QR code or a kiosk. No branded native iOS/Android ordering app documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Partial

digital-account-saved-payment

Odoo portal/eCommerce accounts hold addresses and tokenized methods, but self-order and kiosk flows only collect name, phone or email per order. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Partial

digital-upsell-engine differentiator

POS Optional Products provides rules-based add-on suggestions. No personalization from order history and no attach-rate reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Yes

digital-scheduled-pacing

Preset 'Manage orders by time' defines slots from a working schedule plus a Preparation capacity limit per time frame; guests pick a slot. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Partial

digital-fulfillment-modes

Presets cover Dine In, Takeout and Delivery with per-mode pricelist and fiscal position; service at Table or Pickup zone. No curbside arrival check-in. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Yes

digital-qr-table

Verified verbatim on the restaurant page: 'To order free physical QR codes adapted to the floor plan, activate the QR menu setting, then click Get QR Codes in the Floor plan view. This offer is available worldwide and for all subscription types.' Rare case of a marketing-sounding claim that is actually in the product docs. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01 adversarially verified

B
Partial

digital-kiosk differentiator

First-party kiosk on the same menu, optionally on an IoT Box touchscreen. Unattended payment limited to Adyen/Stripe; no accessibility conformance published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
No

digital-group-ordering

No shareable multi-participant group order link with per-person caps documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
No

digital-catering-portal differentiator

No catering-specific ordering flow with minimums, lead-time rules, proposals, deposits or invoice terms documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Unknown

digital-voice-ai-phone differentiator

No AI voice phone ordering, native or named certified partner, documented for POS.

F
No

digital-drivethru-ai

No drive-thru support at all, so no drive-thru voice AI. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

B
No

digital-sms-ordering

Odoo ships SMS Marketing, but no conversational text-to-order path into the POS is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
Unknown

digital-google-order differentiator

No Order with Google provisioning documented for Odoo self-ordering.

F
Unknown

digital-apple-business-connect

No Apple Business Connect 'Order Food' action documented.

F
Partial

digital-loyalty-attach

Loyalty programs are configured under Point of Sale and share res.partner with eCommerce; explicit loyalty accrual inside the self-order flow is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Unknown

digital-subscriptions

Odoo Subscriptions is a separate app; a guest membership tier redeemable in POS is not documented.

F
Partial

digital-promo-parity

Discount and loyalty programs are defined once and shared across POS and eCommerce in one database. Per-channel eligibility controls not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Yes

digital-guest-data-ownership differentiator

'With Odoo, the values can be exported from any field in any record' - select records in list view, Action > Export, CSV or XLS, no fee or ticket. Odoo's GDPR page puts ownership beyond doubt: on Odoo Cloud 'you are the controller for that database and Odoo SA is only a data processor'. The Cloud SLA adds 'Users can download manual backups of their live data at any time'. Self-hosting removes all gates. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html · retrieved 2026-08-08

B
Unknown

digital-checkout-pci-sca

Checkout runs through Stripe/Adyen and similar providers, but Odoo publishes no PCI DSS 4.0 statement or script-integrity position I could verify.

F
No

digital-surcharge-transparency differentiator

No surcharge, service-fee or dual-pricing engine exists in POS, so nothing to mirror into digital channels. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B

Guest data, loyalty & marketing

Partial

guest-loyalty-unified-profile

One res.partner record serves POS, self-order and eCommerce in the same database. Dedup is a separate Data Cleaning app; no documented merge behaviour for POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Unknown

guest-loyalty-thirdparty-identity-attach differentiator

UrbanPiper docs do not state whether marketplace orders create or attach to a native customer record.

F
Yes

guest-loyalty-accrual-models

Loyalty cards with real-time points, plus promotions, coupons, next-order coupons, discount codes and Buy X get Y — all configuration, no bolt-on vendor. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

guest-loyalty-tiers differentiator

Loyalty documentation covers points, promotions and coupons. No status tiers with automatic promotion or demotion. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

guest-loyalty-offline-behavior differentiator

Loyalty requires selecting a customer and shows points updated in real time; no offline behaviour is documented anywhere. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Unknown

guest-loyalty-offer-stacking-rules differentiator

Programs trigger when conditions are met, but explicit exclusivity and precedence configuration was not verified.

F
Partial

guest-loyalty-targeted-offers differentiator

Odoo Marketing Automation and Email Marketing can target audiences via domain filters over customer and order data; not a POS-native offer audience builder. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01

E
No

guest-loyalty-rfm-segmentation differentiator

No automatic recency/frequency/monetary lifecycle segments; the operator must build pivot filters. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

guest-loyalty-lifecycle-automation

Studio automation rules support date-field, after-creation and after-last-update triggers with email actions — generic, not shipped restaurant lifecycle campaigns. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01

B
Yes

guest-loyalty-native-email-sms differentiator

First-party apps for both channels in the same database, documented in Odoo's manual. Email Marketing: create a mailing with New, set Recipients from in-database models (Mailing List, Contact, Event Registration, Lead/Opportunity, Mailing Contact, Sales Order) with customisable filter equations, then Send, Schedule or Test. SMS Marketing: same Recipients mechanism, message body with live character and SMS-segment count, and Send / Schedule / Test; sending is metered - "Credits must be purchased from Odoo in order to take advantage of the SMS Marketing app; SMS messages will not be sent without credits." Contacts captured in POS are res.partner records in the same database, so no export to a third-party ESP is involved; the per-app cost above the One App Free tier and the SMS IAP credits are commercial, not architectural, limits. https://www.odoo.com/documentation/18.0/applications/marketing/sms_marketing/create_sms.html · retrieved 2026-08-06

B
Partial

guest-loyalty-consent-management

Odoo mailing uses blacklist/opt-out per email and phone. Per-channel consent timestamp and source of consent are not documented for POS-captured guests. https://www.odoo.com/pricing · retrieved 2026-08-01

E
Unknown

guest-loyalty-10dlc-registration

No A2P 10DLC brand or campaign registration handling documented for Odoo SMS.

F
Partial

guest-loyalty-campaign-attribution differentiator

Coupon and loyalty redemptions are order lines and can be pivoted against check totals; no packaged campaign-attribution report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

E
Yes

guest-loyalty-data-export-portability differentiator

Select records in any list view, Action > Export, choose fields, export CSV or XLS - 'the values can be exported from any field in any record', with reusable export presets. Applies to contacts, POS orders and order lines alike. The Cloud SLA adds a full live-database backup 'at any time'. No fee and no support ticket; the docs' only caveat is to batch very large exports to avoid a timeout. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html · retrieved 2026-08-08

B
Unknown

guest-loyalty-review-capture-routing differentiator

Odoo Surveys exists as a separate app, but score-based routing to service recovery versus public review sites is not documented.

F
No

guest-loyalty-referral-program

Loyalty offers next-order coupons but no two-sided guest referral mechanic with per-guest codes and first-order attribution. (Odoo Referrals is a recruiting app.) https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

guest-loyalty-wallet-pass differentiator

No Apple Wallet or Google Wallet loyalty pass documented; loyalty is looked up by selecting a customer at the register. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Partial

guest-loyalty-privacy-rights-tooling

Odoo's GDPR page walks each right by hand: access/portability via the customer portal or Action > Export, rectification via the portal, opt-out by ticking a field, erasure by attempting to delete the contact - which the system blocks where business documents still reference it, leaving anonymisation as the fallback. No packaged DSAR workflow and no deletion propagation into loyalty or mailing-list records. https://www.odoo.com/gdpr · retrieved 2026-08-08

E
No

guest-loyalty-redemption-fraud-controls

No redemption velocity limits, manual-adjustment approval, or employee self-redemption flagging documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Unknown

guest-loyalty-ai-offer-recommendation differentiator

Odoo 19 lists an Artificial Intelligence app, but no shipped AI offer-content, audience or send-time recommendation was verified.

F
Yes

guest-loyalty-stored-value-gift

Native gift cards under the Promotions, Coupons, Gift Card & Loyalty Program feature, tied to customer records and shared across POS configs in one database. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B

Labor & workforce

Partial

labor-clock-in-at-pos

Employees log in to the register by badge scan, name selection or PIN, with no extra hardware. True clock-in/out lives in the separate Attendances app. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B
Unknown

labor-photo-punch-verification differentiator

No photo-at-punch or facial verification documented for POS login or attendance.

F
Unknown

labor-offline-time-punch differentiator

No documented offline punch capture or reconnect reconciliation behaviour.

F
No

labor-granular-rbac

POS rights are three fixed tiers — Minimal, Basic, Advanced — with a fixed action list per tier, not per-action grants per role and location. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B
Partial

labor-manager-override-audit

Session reports show who opened the register and the Employee on each order. No immutable, queryable override-approval trail documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

labor-native-scheduling differentiator

True that Planning is first-party, but it is a separate app: unavailable on the $0 One App Free tier the dossier leans on, and it reaches the operator only via the all-apps Standard/Custom per-user subscription. It is also not a restaurant labor scheduler — no demand forecast from POS sales, no break/minor/fair-workweek rules (the dossier correctly scores all three 'no'), which makes an unqualified yes here inconsistent with its own neighbors. https://www.odoo.com/pricing · retrieved 2026-08-01 adversarially verified

C
No

labor-demand-labor-forecast differentiator

Payroll consumes Planning, Attendances and Timesheets; no staffing recommendation generated from POS sales history is documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

B
No

labor-realtime-labor-percent differentiator

POS reporting covers orders and sessions only; no live labor-cost-to-sales view on a manager screen. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Unknown

labor-overtime-prevention differentiator

Odoo Attendances tracks extra hours, but a clock-in-time overtime warning or block was not verified.

F
No

labor-break-compliance-by-state differentiator

Working schedules and country localizations drive payroll rules; no US state-level meal/rest break prompts or missed-break premium flags documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

B
No

labor-minor-labor-rules

No age-based hour caps, prohibited windows or school-day limits enforced at scheduling or clock-in. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

B
No

labor-tip-pooling-rules

Tips post as a single [TIPS] product line per order. No pooling or tip-out computation documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Partial

labor-tip-distribution-audit-trail

Tip lines are attached to orders, and orders carry the Employee, so tips received are traceable. No pool contribution or distribution record exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Unknown

labor-qualified-tips-w2-reporting differentiator

No evidence found on Treasury tipped-occupation codes or W-2 Box 12 TP / Box 14b handling for tax year 2026.

F
Partial

labor-native-payroll differentiator

Odoo Payroll computes payslips from contracts and work entries and pays by wire, SEPA or check. No evidence Odoo files payroll taxes as a service. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

B
No

labor-payroll-export-formats

Odoo positions Payroll as the system of record rather than an exporter; no named Gusto, ADP, Paychex or QuickBooks payroll connector documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

B
Partial

labor-shift-swap-workflow differentiator

Odoo Planning supports open shifts employees can take, but a manager-approved swap workflow enforcing overtime and role eligibility is not documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

E
Partial

labor-server-performance-metrics differentiator

Orders carry the Employee and are analysable in graph/pivot views, so average check is derivable. No packaged void, comp or attachment-rate scorecard. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B

Inventory, purchasing & cost control

Partial

inventory-recipe-bom-costing

Odoo Manufacturing provides multi-level BoMs with sub-assemblies and cost rollup natively, but POS docs never connect recipes to plate cost. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

inventory-unit-conversion-yields

Units of Measure & Packagings with conversion factors are native and surfaced in POS. No raw-to-usable yield or waste percentage documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

inventory-theoretical-vs-actual differentiator

Physical inventory adjustments produce counted-versus-system variance, but no theoretical usage from sales times recipe versus actual report is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

inventory-realtime-depletion differentiator

POS shows Free To Use units and sales move stock for tracked Goods and Combo products. Modifier-driven ingredient depletion needs BoM/kit setup not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
No

inventory-86-auto-sync differentiator

No automatic 86 of menu items to POS, online ordering or delivery channels when a component hits zero or a threshold. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

inventory-count-modes

Odoo Inventory supports full physical inventory, partial adjustments and scheduled cycle counting with dated history — documented in Inventory, not POS. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

inventory-mobile-count-offline

Odoo Barcode provides mobile scanning for counts; offline tolerance and reconnect sync are not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
No

inventory-vendor-catalogs-edi differentiator

Odoo supports vendor pricelist import and RFQ/PO email, but no pre-built Sysco, US Foods or PFG EDI catalog integration is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

inventory-invoice-ocr differentiator

Odoo Accounting/Documents offers AI invoice digitization via IAP credits; line-item extraction directly into the inventory ledger was not verified. https://www.odoo.com/pricing · retrieved 2026-08-01

E
No

inventory-price-change-alerts differentiator

Vendor pricelists store prices, but no received-price-versus-prior alerting with a configurable threshold is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

inventory-par-auto-suggest differentiator

Odoo reordering rules (min/max) generate suggested purchase orders; a forecast-driven par mode from sales history is not documented for restaurants. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

inventory-waste-logging

Odoo Inventory Scrap records losses against a scrap location and debits stock; reason codes and a waste-cost report separate from usage variance are not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Partial

inventory-shelf-life-expiry

I could not re-verify that sentence on the cited POS products page; the rendered page's stock section is a stub linking out to Inventory. Expiry tracking is a real Odoo Inventory feature, but its POS surfacing — the thing the cell is scoring — is not confirmed on the cited source. Same caution applies to inventory-lot-traceability's stronger sub-claim that lots are 'imported automatically onto POS cart lines,' which I also could not verify. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01 adversarially verified

B
No

inventory-bar-partial-bottle

POS supports To Weigh With Scale for by-weight sales, but no partial-bottle liquid counting by weight or bottle fraction is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

inventory-cogs-gl-export

Odoo Accounting is the GL, so COGS and AP post natively rather than exporting; no QuickBooks/Intacct/NetSuite import-format connector is shipped. https://www.odoo.com/pricing · retrieved 2026-08-01

C
Yes

inventory-native-not-partner differentiator

Inventory installs automatically with POS and Manufacturing/Purchase/Accounting are all Odoo-built — no MarginEdge or MarketMan contract needed. Beyond one app, plan cost applies. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B
Partial

inventory-menu-margin-linkage differentiator

'Show margins & costs' surfaces price, cost and margin per product in POS, and order pivots give sales mix. No automatic below-threshold margin flagging. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

B

Reporting, BI & data access

Yes

reporting-realtime-dashboard

POS dashboard plus Reporting > Orders in graph or pivot view, filterable and groupable; available in a browser and the Odoo mobile app. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Yes

reporting-eod-closeout

Closing the register produces a comprehensive session report covering all session activity, who opened it, and every order placed during it. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-pmix-modifier-level

Order statistics pivot by product and variant. Modifiers are attribute values or combo lines, so true modifier-level PMIX is not a first-class report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-comps-voids-audit

Orders list shows status, employee and totals, and discounts are order lines. No dedicated comps/voids audit report with reason codes and approver. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-cash-over-short

POS cash control with cash-in/cash-out and register close computes a session difference; per-employee over/short reporting is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

E
No

reporting-labor-productivity

POS reporting is limited to order and session statistics; sales per labor hour and labor percent by hour are not produced. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-server-scorecards differentiator

Orders are groupable by Employee in pivot/graph, giving average check and volume. No packaged attachment-rate or tips-percent scorecard. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-channel-profitability differentiator

Orders can be grouped by preset (Dine In/Takeout/Delivery) and by point of sale. No revenue net of marketplace commission by channel. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/presets.html · retrieved 2026-08-01

B
Partial

reporting-scheduled-delivery

Studio automation rules with timing triggers can email records on a cadence; no built-in 'schedule this report to recipients' control in POS reporting. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01

E
Yes

reporting-public-api differentiator

External JSON-2 API at /json/2/<model>/<method> with bearer API-key auth and a per-database /doc page listing available models, fields and methods. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01

B
Partial

reporting-webhooks differentiator

'Send Webhook Notification' POSTs selected fields to a URL from any automation rule. No documented retry behaviour and no payload signature. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01

B
No

reporting-api-not-upcharged differentiator

'Access to data via the external API is only available on Custom Odoo pricing plans... not available on One App Free or Standard plans.' Self-hosting is exempt. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01

B
Yes

reporting-tier-paywall differentiator

POS reporting, pivot analysis and session reports ship with the app itself, including on the $0 One App Free plan. The paywall is on the API, not reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-history-retention differentiator

Closed sessions and their orders stay in the reporting views ('access the comprehensive report to review all session activities'), filterable and groupable in graph or pivot; data sits in the operator's own database, which is downloadable as a ZIP at any time. No archiving, purge or archive-retrieval fee appears anywhere in the POS or database-management docs, but Odoo publishes no retention-window commitment at all, so a 24-month floor is not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-08

E
Partial

reporting-anomaly-alerts differentiator

Automation rules can fire emails when records match a domain condition. No statistical deviation-from-pattern alerting. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01

B
Unknown

reporting-nl-query

Odoo 19 lists an Artificial Intelligence app; a natural-language query over the operator's own sales and labor data was not verified.

F
Partial

reporting-guest-cohorts differentiator

Orders carry the Customer and are pivotable, so frequency and lifetime spend are derivable. No packaged new-versus-returning or cohort report. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
No

reporting-sales-forecast differentiator

POS reporting is historical only; no forward hourly or daypart sales forecast is exposed. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

reporting-tip-tax-compliance

Charged tips are captured as order lines attributable to an employee. No declared-versus-charged split, pool detail, or jurisdiction tax liability summary. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B

Multi-location, franchise & enterprise governance

Partial

multi-location-org-hierarchy

Multi-company (parent/child) plus many POS configs per company gives a hierarchy that reporting and record rules scope to, but multi-company requires the Custom plan. https://www.odoo.com/pricing · retrieved 2026-08-01

C
Partial

multi-location-central-menu-publish

Product records are shared across POS configs and can be shared across companies, so one edit reaches all. No publish action, target-set selection or version history. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/products.html · retrieved 2026-08-01

E
Yes

multi-location-price-zones

Pricelists give one product different prices per POS, per preset/channel, per customer and per date window without duplicating the product record. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
Partial

multi-location-consolidated-reporting

Order statistics aggregate across POS configs via pivot grouping. No store-versus-store ranking or variance flagging, and labor is not in POS reporting. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/reporting.html · retrieved 2026-08-01

B
Partial

multi-location-cross-location-giftcard

Gift cards are database records usable at any POS in the company. No outstanding-liability report or inter-store redemption settlement documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

E
Partial

multi-location-cross-location-loyalty

One res.partner and one loyalty card serve every POS in the database; cross-company sharing depends on multi-company record-rule configuration. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

E
Partial

multi-location-multi-brand differentiator

Multiple POS configs with distinct product categories, pricelists and receipts can run on one device, but only one session at a time per register. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Yes

multi-location-multi-tax-jurisdiction

Fiscal positions map taxes and accounts per POS, per customer and per preset, with country localization packages preconfigured and inclusive/exclusive handling. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B
No

multi-location-central-labor-policy

POS rights tiers are per point of sale but labor rules (overtime, breaks, predictive scheduling) are not enforced at the terminal. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B

Hardware & physical footprint

Yes

hardware-commodity-devices differentiator

Browser-based POS running on any device; peripherals are commodity Epson/ESC-POS printers and third-party iMin Android units bought from iMin partners. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Partial

hardware-os-platforms

Docs name Chromium 142+ browsers (Chrome, Brave, Edge, Vivaldi, Opera) for LNA and iMin Android devices, but publish no full OS/device minimum-spec matrix. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01

B
No

hardware-handheld-purpose-built

Odoo sells no handheld. Hardware guidance is commodity browser devices, Epson printers and iMin Android POS units from third-party partners. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
No

hardware-handheld-battery-swap differentiator

No first-party handheld exists, so no battery rating or hot-swap claim is published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Unknown

hardware-handheld-lte

No handheld product and no documented cellular failover for POS devices.

F
Partial

hardware-offline-mode

Marketing and docs claim reliable online-and-offline operation, but no explicit list of which functions degrade is published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

D
Partial

hardware-kds

It is genuinely first-party and the routing/stages/alert-timer/Recall features are all verbatim in the docs — but it is Enterprise-edition-only (module absent from the public odoo/odoo tree; docs treat it as an Enterprise app), so it is not available to the Community self-host the dossier's whole 'best at' thesis rests on. Also verified: 'IoT boxes are not supported.' https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/preparation.html · retrieved 2026-08-01 adversarially verified

B
Partial

hardware-kiosk differentiator

First-party kiosk software on the same menu, optionally on an IoT Box touchscreen. No countertop/freestanding SKUs and no ADA documentation. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/self_order.html · retrieved 2026-08-01

B
No

hardware-drive-thru

Hardware docs cover printers, scales, customer displays, electronic labels and IoT. No menu boards, confirmation displays or headset integration. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

B
Partial

hardware-printer-compatibility

'Epson printers are strongly recommended.' Network ePOS direct (Epson), any ESC/POS via an IoT system, LAN/Ethernet supported; Bluetooth explicitly not compatible. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Partial

hardware-peripherals

Documented pages for scales, customer displays, electronic shelf labels, barcode scanning and cash machines (Cashdro, Cashmatic, Glory). Multi-drawer per terminal not documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

B
Partial

hardware-p2pe-terminal

Card entry happens on the third-party provider's PTS terminal, keeping Odoo out of the card path, but Odoo does not state the merchant's SAQ type. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
Unknown

hardware-tap-to-phone differentiator

No Tap to Pay on iPhone or Android tap-to-phone acceptance documented.

F
No

hardware-pricing-transparency differentiator

Odoo publishes no POS hardware SKU prices; devices are sourced from third parties such as iMin business partners. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Unknown

hardware-ownership-vs-lease differentiator

Scored yes on pure inference with a source (the receipt-printers hardware page) that says nothing about ownership, lease, or rental. Under the no-URL-no-yes rule this cannot stand. Odoo publishes no affirmative statement about hardware commercial models because it does not sell hardware. adversarially verified

F
Partial

hardware-usable-after-churn differentiator

Hardware is commodity third-party equipment Odoo never sold or provisioned, so it cannot be software-locked — but Odoo publishes no statement to that effect. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

E
No

hardware-rma-sla differentiator

Odoo sells no restaurant hardware and publishes no warranty term or advance-exchange SLA. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Partial

hardware-byod

The POS runs in a browser on any phone, with employee badge, name or PIN login gating access. No documented BYOD security or device-management model. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B
Partial

hardware-remote-device-management differentiator

The IoT app lists connected devices and the POS exposes an LNA Permission status popup. No fleet console with remote reboot or staged rollout. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01

B
No

hardware-selfpour-scales

Weighing scales are supported for by-weight products, but no self-pour tap wall, flow meter or pour-spout integration is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/scale.html · retrieved 2026-08-01

B
Partial

hardware-callerid-integration

Odoo ships a VoIP app that surfaces the contact record on calls, but no documented POS caller-ID popup with order history. https://www.odoo.com/pricing · retrieved 2026-08-01

E

Integrations, API & extensibility

Yes

extensibility-public-api-docs

External JSON-2 API reference is fully public with no NDA or sales call, plus a per-database /doc page enumerating models, fields and methods. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01

B
No

extensibility-api-access-cost differentiator

Verified verbatim, and it appears consistently across the 15.0 through 19.0 and master docs — this is longstanding policy, not a 19.0 quirk. Note two refinements the dossier missed: /json/2 is flagged 'New in version 19.0', so anyone on 18.0 or earlier has only XML-RPC/JSON-RPC; and a forum thread claims read access works in practice on lower plans, which is not authoritative and should not be scored. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01 adversarially verified

B
Partial

extensibility-free-sandbox differentiator

Odoo offers a free trial, a public demo database and runbot builds, and Community Edition self-hosts free — but no purpose-built seeded developer sandbox is documented. https://www.odoo.com/pricing · retrieved 2026-08-01

E
No

extensibility-oauth-partner-apps

External API auth is 'bearer followed by an API key' — a static per-user key, not OAuth 2.0 with scoped, individually revocable operator consent. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01

B
Partial

extensibility-webhooks-push

Automation rules push a 'Send Webhook Notification' POST on model triggers, usable for pos.order lifecycle, but there is no packaged order-event webhook product. https://www.odoo.com/documentation/19.0/applications/studio/automated_actions.html · retrieved 2026-08-01

B
Unknown

extensibility-webhook-reliability differentiator

No HMAC signature, retry/backoff policy, or replayable delivery log is documented for outbound webhooks.

F
Partial

extensibility-order-injection-api

pos.order is writable through the ORM API, but Odoo does not document externally created orders firing to KDS and printers as first-class tickets. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01

E
Yes

extensibility-menu-write-api differentiator

product.template, attributes, combo choices and pricelists are ordinary models fully writable over /json/2, subject to access rights. https://www.odoo.com/documentation/19.0/developer/reference/external_api.html · retrieved 2026-08-01

B
No

extensibility-doordash-preferred differentiator

The score is right — Odoo reaches DoorDash only through UrbanPiper. But the ten-name DPIP roster is cited to an Odoo documentation page that cannot possibly contain it. That is an uncited assertion wearing a citation, and it should either get a real DoorDash-side source or be struck from the note. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01 adversarially verified

B
No

extensibility-first-party-delivery-integrations differentiator

'A valid UrbanPiper subscription is mandatory' and Odoo Community does not support the integration — marketplace access is middleware-mediated and paid. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Partial

extensibility-middleware-compatibility

UrbanPiper is a documented first-class connector covering 25+ marketplaces. Support by Deliverect, Chowly, Otter or Checkmate was not verified. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant/urban_piper.html · retrieved 2026-08-01

B
Partial

extensibility-accounting-connectors

Odoo Accounting is the native GL with mapped journal entries from POS sessions, so no connector is needed — but no QuickBooks Online or Xero connector ships. https://www.odoo.com/pricing · retrieved 2026-08-01

C
No

extensibility-payroll-export

Odoo Payroll is positioned as the system of record; no native export or direct integration with two named third-party payroll providers is documented. https://www.odoo.com/documentation/19.0/applications/hr/payroll.html · retrieved 2026-08-01

B
Yes

extensibility-app-marketplace

apps.odoo.com is a public, browsable third-party module marketplace with self-install, referenced directly from Odoo's own support forum and docs. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

B
Unknown

extensibility-headless-embedded

pos.order is API-writable in principle, but no documented headless mode letting a third-party UI drive the POS transaction engine.

F
Yes

extensibility-data-portability-exit differentiator

'Download a ZIP file containing a database backup by clicking Download Backup', self-service from the database manager, and the docs advise downloading one before deleting a database. The dump restores into the same LGPL-3 code the operator may self-host, and per-model CSV/XLS export covers subsets. Caveat: 'If the Download Backup option is disabled, it means the database is too large to be downloaded using the database manager. Contact Odoo Support to request an alternative download solution.' https://www.odoo.com/documentation/19.0/administration/odoo_online.html · retrieved 2026-08-08

B

Reliability, offline & operations

Partial

reliability-offline-order-entry

Vendor claims the POS is 'built to maintain functionality even during temporary network outages'. No documented guarantee for ticket routing or check printing. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

D
No

reliability-offline-card-auth differentiator

Verified verbatim on the terminals page, along with the Force done / Cancel manual overrides. No store-and-forward. payments-offline-store-and-forward and payments-offline-decline-liability are upheld on the same evidence. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01 adversarially verified

B
No

reliability-offline-decline-liability differentiator

No store-and-forward exists, so no decline-liability position or offline cap is published. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
No

reliability-lan-degraded-multi-terminal differentiator

Local Network Access is documented purely as browser-to-printer/IoT device access. No LAN-only shared check state across terminals is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01

E
Partial

reliability-local-transaction-engine differentiator

Odoo Online is pure cloud with no edge server, but On-Premise deployment (Custom plan or free Community) puts the whole transaction engine on the operator's LAN. https://www.odoo.com/pricing · retrieved 2026-08-01

C
Partial

reliability-offline-kds-printing

LNA lets the browser talk directly to an ePOS printer on the LAN, so kitchen printing may survive an internet outage. The preparation display is server-served. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01

E
No

reliability-printer-fallback

Printer configuration binds categories to a single printer with no backup printer or KDS failover and no staff alert on unreachable printers. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/restaurant.html · retrieved 2026-08-01

B
Unknown

reliability-sync-conflict-handling

No documented conflict-resolution behaviour for concurrent edits on two devices during a network partition.

F
No

reliability-offline-feature-matrix

No published list of features unavailable offline. A long-standing community question about how offline mode works remains the operator's only reference. https://www.odoo.com/forum/help-1/how-is-the-point-of-sale-offline-mode-working-218314 · retrieved 2026-08-01

B
Partial

reliability-public-status-page

status.odoo.com exists with per-component sections and a 90-day uptime figure, but the fetched page contained unrendered template tags and Lorem Ipsum incidents. https://status.odoo.com/ · retrieved 2026-08-01

B
No

reliability-247-live-support

Verified verbatim: 'unlimited access to our support by email ... 24/5, in English, French, Spanish or Dutch.' Monday to Friday only. https://www.odoo.com/pricing · retrieved 2026-08-01 adversarially verified

C
Partial

reliability-onsite-install differentiator

Implementation runs through Success Packs or Odoo Partners; the ESA contemplates working with an Odoo Partner. First-party on-site go-live is not offered as a product. https://www.odoo.com/pricing · retrieved 2026-08-01

C
Partial

reliability-menu-build-service differentiator

Implementation is a separately purchased Success Pack or partner engagement; no standard included menu build is documented. https://www.odoo.com/pricing · retrieved 2026-08-01

C
No

reliability-hardware-replacement-sla

Odoo supplies no restaurant hardware, so there is no replacement or advance-exchange program. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Unknown

reliability-pci-dss-4-attestation

No PCI DSS v4.0/4.0.1 AoC or validated P2PE listing published by Odoo was found.

F
Partial

reliability-mfa-role-based-access

Backend uses Odoo user accounts with granular access groups and available two-factor auth; POS itself is limited to PIN/badge across three fixed rights tiers. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/employee_login.html · retrieved 2026-08-01

B
Partial

reliability-self-serve-training

Free public documentation and video tutorials (including POS-specific ones referenced throughout the docs). No POS terminal training/practice mode documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale.html · retrieved 2026-08-01

B
No

reliability-failover-terminal-role differentiator

Terminals are browser clients of a central server; no master/primary terminal role exists to fail over. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/pos_lna.html · retrieved 2026-08-01

B
No

reliability-cellular-backup

Network guidance covers Wi-Fi and Ethernet for printers and devices; no cellular/LTE failover is documented. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B

Commercial, compliance & data ownership

Partial

commercial-month-to-month-contract differentiator

Score stays partial, but the note is factually wrong and must be corrected before it is quoted anywhere. $31.10 and $61.00 are the REGULAR ANNUAL rates. The published monthly rates are $48.90 (Standard) and $95.25 (Custom) regular, $38.90 and $76.20 promotional. The ESA term-and-30-day-notice reading is verified. https://www.odoo.com/pricing · retrieved 2026-08-01 adversarially verified

C
Unknown

commercial-no-early-termination-fee differentiator

No ETF or liquidated-damages clause was located in the published ESA; the 300% figure applies to using Enterprise Edition after termination, not to cancelling.

F
Yes

commercial-autorenew-terms-published

ESA §1: auto-renews for an equal Term unless either party gives written notice of termination at least 30 days before the end of the Term. Publicly readable. https://www.odoo.com/documentation/19.0/legal/terms/enterprise.html · retrieved 2026-08-01

B
Yes

commercial-processing-not-bundled differentiator

Odoo is not an acquirer and documents 13 independent terminal providers; the merchant contracts payments entirely outside Odoo. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
No

commercial-interchange-plus-published differentiator

Odoo publishes no processing rates of any structure because it does not provide processing. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/payment_methods/terminals.html · retrieved 2026-08-01

B
Partial

commercial-rate-increase-clause differentiator

Verified, as are the 30-day auto-renewal notice (commercial-autorenew-terms-published, yes) and the 300%-of-list-price post-termination breach fee. The dossier is right that 300% is a breach penalty and not an ETF, and right to leave the ETF cell unknown. https://www.odoo.com/documentation/19.0/legal/terms/enterprise.html · retrieved 2026-08-01 adversarially verified

B
Partial

commercial-pricing-published

Exact dollars are published, but the unit is per user per month, not per location or per terminal — terminal count is not a pricing dimension in Odoo. https://www.odoo.com/pricing · retrieved 2026-08-01

C
Partial

commercial-module-unbundling differentiator

One App Free is a single app at $0; Standard and Custom are all-apps flat per user. No à la carte purchase or cancellation of individual modules. https://www.odoo.com/pricing · retrieved 2026-08-01

C
Partial

commercial-hardware-purchase-outright

All hardware is third-party and bought outright with no Odoo lease, but Odoo publishes no prices for terminals, KDS screens or printers. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Yes

commercial-hardware-not-locked differentiator

Documented non-proprietary options: any Chromium browser device, Epson ePOS network printers, any ESC/POS printer via IoT, and third-party iMin Android units. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/hardware_network/receipt_printers.html · retrieved 2026-08-01

B
Yes

commercial-data-export-self-serve

Any list view - POS orders, order lines, payments, employees, attendances - exports via Action > Export to CSV or XLS, with field selection and saved presets; 'the values can be exported from any field in any record'. No ticket, no fee. The Cloud SLA adds a full database backup 'at any time', and the JSON-2 external API is documented for programmatic pulls. https://www.odoo.com/documentation/19.0/applications/essentials/export_import_data.html · retrieved 2026-08-08

B
Yes

commercial-export-customer-and-loyalty differentiator

'Generated gift cards can be accessed through the Gift Cards smart button' (and eWallets likewise), each issued card a record with Expiration Date, Partner and Balance. Loyalty cards appear the same way from the program form and via a Loyalty Cards smart button on the contact. Being ordinary models, they fall under Action > Export to CSV/XLS - 'the values can be exported from any field in any record' - and under the full database backup. https://www.odoo.com/documentation/19.0/applications/sales/sales/products_prices/ewallets_giftcards.html · retrieved 2026-08-08

B
Unknown

commercial-post-termination-export-window differentiator

No defined post-termination data-retrieval window was located in the published ESA or SLA.

F
Unknown

commercial-data-ownership-clause differentiator

Odoo publishes a Privacy Policy, GDPR page and DPA-adjacent material, but an explicit merchant-owns-data and no-resale clause in the ESA was not verified.

F
Unknown

commercial-pci-p2pe-tokenization

Card entry occurs on third-party PTS terminals, but Odoo names no validated P2PE solution and states no applicable merchant SAQ type.

F
Unknown

commercial-pci-dss-4-controls

Two-factor auth and granular access groups exist, but Odoo publishes no PCI DSS v4.0.1 control statement covering CDE MFA or payment-page script integrity.

F
Partial

commercial-privacy-dsar-tooling

A guest record can be located, exported (portal or Action > Export) and deleted by hand, and the subscription agreement includes 'Data Protection Clauses (often referred to as a Data Processing Agreement), as required by the GDPR' with no signature step - customers 'automatically benefit'. But there is no in-app DSAR queue or one-click subject package, and erasure is refused where business documents reference the contact, leaving anonymisation and no deletion propagation. https://www.odoo.com/gdpr · retrieved 2026-08-08

E
Unknown

commercial-wcag-kiosk-accessibility differentiator

No VPAT/ACR or WCAG 2.1 AA claim for the self-order kiosk or web ordering surfaces was found.

F
No

commercial-dual-pricing-compliant differentiator

Pricing features cover discounts, pricelists, cash rounding and fiscal positions only. No cash-discount, surcharge, or debit-exclusion engine exists. https://www.odoo.com/documentation/19.0/applications/sales/point_of_sale/extra/pricing.html · retrieved 2026-08-01

B

Adversarial verification

An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 37 values — 30 upheld, 7 downgraded, 0 upgraded. This is published in full because a reader who can see which values were contested, on what evidence, and which way they moved has something no affiliate-funded comparison offers.

Pricing and identity

FieldVerdictWhat the verifier found
pricing.softwaredowngrade-to-partialTwo defects. (1) The four figures quoted are the ANNUAL-billing prices only. The pricing page also publishes monthly-billing rates the dossier never mentions: Standard $38.90 promo / $48.90 regular, Custom $76.20 promo / $95.25 regular. A month-to-month restaurant on Custom pays $95.25/user/mo, not $61.00 — a ~56% understatement of the no-commitment price. (2) The 'restaurant POS is free forever' economics is claim-level, sourced to a product marketing page, and is actively undercut by product documentation: the preparation-display page states 'The Kitchen Display app is automatically installed whenever a restaurant point of sale is created.' Kitchen Display is a distinct Odoo app; One App Free covers one app. I could not find any Odoo statement confirming a restaurant POS with its auto-installed Kitchen Display still qualifies for the $0 tier, so the headline free-tier claim is unverified, not established. source

Capability claims

ClaimAs first scoredVerdictWhat the verifier found
commercial-month-to-month-contractpartial — 'Monthly rates are published ($31.10 and $61.00/user/month) alongside discounted annual'upheldScore stays partial, but the note is factually wrong and must be corrected before it is quoted anywhere. $31.10 and $61.00 are the REGULAR ANNUAL rates. The published monthly rates are $48.90 (Standard) and $95.25 (Custom) regular, $38.90 and $76.20 promotional. The ESA term-and-30-day-notice reading is verified. source
hardware-kdsyes — first-party preparation display / Kitchen Display appdowngrade-to-partialIt is genuinely first-party and the routing/stages/alert-timer/Recall features are all verbatim in the docs — but it is Enterprise-edition-only (module absent from the public odoo/odoo tree; docs treat it as an Enterprise app), so it is not available to the Community self-host the dossier's whole 'best at' thesis rests on. Also verified: 'IoT boxes are not supported.' source
kitchen-station-routingyes — 'Specify the POS product categories to be sent to this display'upheldVerified verbatim, including 'Leave the field empty to allow all categories.' Carry the same Enterprise-edition caveat as hardware-kds. source
delivery-3p-injectionyes — UrbanPiper consolidates orders from all connected platforms into the POSdowngrade-to-partialThis is the exact shape of cell the brief says to hold to the highest bar, and it is not native. Verified from the Odoo doc: 'an active Odoo Enterprise subscription is required. Odoo Community does not support' it; Enterprise 18.0+; a valid UrbanPiper subscription; plus registered reseller accounts with each platform. Three separate paid relationships and a middleware hop is a partner integration, not a yes. source
hardware-ownership-vs-leaseyes (confidence: inferred) — 'Odoo offers no hardware lease, so ownership is the only model'downgrade-to-unknownScored yes on pure inference with a source (the receipt-printers hardware page) that says nothing about ownership, lease, or rental. Under the no-URL-no-yes rule this cannot stand. Odoo publishes no affirmative statement about hardware commercial models because it does not sell hardware. source
inventory-shelf-life-expiryyes — 'Expiration dates can also be configured for products tracked by lot or serial number'downgrade-to-partialI could not re-verify that sentence on the cited POS products page; the rendered page's stock section is a stub linking out to Inventory. Expiry tracking is a real Odoo Inventory feature, but its POS surfacing — the thing the cell is scoring — is not confirmed on the cited source. Same caution applies to inventory-lot-traceability's stronger sub-claim that lots are 'imported automatically onto POS cart lines,' which I also could not verify. source
labor-native-schedulingyes — Odoo Planning is a first-party app in the same databasedowngrade-to-partialTrue that Planning is first-party, but it is a separate app: unavailable on the $0 One App Free tier the dossier leans on, and it reaches the operator only via the all-apps Standard/Custom per-user subscription. It is also not a restaurant labor scheduler — no demand forecast from POS sales, no break/minor/fair-workweek rules (the dossier correctly scores all three 'no'), which makes an unqualified yes here inconsistent with its own neighbors. source
delivery-tracking-pageno — 'No branded order-status or driver-tracking page documented'downgrade-to-unknownSourced to restaurant.html, a page that never discusses delivery tracking at all. This is silence, not an affirmative absence and not an enumerated alternative. Per the ground rules that is 'unknown', not 'no'. Same defect applies to delivery-offline-behavior, which cites the same page. source
extensibility-doordash-preferredno — note lists the 2026 DoorDash Preferred Integration Partner cohort as Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiperupheldThe score is right — Odoo reaches DoorDash only through UrbanPiper. But the ten-name DPIP roster is cited to an Odoo documentation page that cannot possibly contain it. That is an uncited assertion wearing a citation, and it should either get a real DoorDash-side source or be struck from the note. source
reliability-offline-card-authno — 'If a connection issue occurs between Odoo and the payment terminal, the transaction is automatically canceled'upheldVerified verbatim on the terminals page, along with the Force done / Cancel manual overrides. No store-and-forward. payments-offline-store-and-forward and payments-offline-decline-liability are upheld on the same evidence. source
payments-processor-choiceyes — thirteen documented terminal providers, Odoo is not the acquirerupheldAll thirteen names verified on the terminals page exactly as listed. Processor neutrality is real and is the dossier's most defensible differentiator. source
extensibility-api-access-costno — 'Access to data via the external API is only available on Custom Odoo pricing plans'upheldVerified verbatim, and it appears consistently across the 15.0 through 19.0 and master docs — this is longstanding policy, not a 19.0 quirk. Note two refinements the dossier missed: /json/2 is flagged 'New in version 19.0', so anyone on 18.0 or earlier has only XML-RPC/JSON-RPC; and a forum thread claims read access works in practice on lower plans, which is not authoritative and should not be scored. source
digital-qr-tableyes — free physical QR codes worldwide, all subscription typesupheldVerified verbatim on the restaurant page: 'To order free physical QR codes adapted to the floor plan, activate the QR menu setting, then click Get QR Codes in the Floor plan view. This offer is available worldwide and for all subscription types.' Rare case of a marketing-sounding claim that is actually in the product docs. source
commercial-rate-increase-clausepartial — ESA §5.2 caps renewal increases at up to 7% per year of the previous TermupheldVerified, as are the 30-day auto-renewal notice (commercial-autorenew-terms-published, yes) and the 300%-of-list-price post-termination breach fee. The dossier is right that 300% is a breach penalty and not an ETF, and right to leave the ETF cell unknown. source
reliability-247-live-supportno — pricing page states support is 24/5upheldVerified verbatim: 'unlimited access to our support by email ... 24/5, in English, French, Spanish or Dutch.' Monday to Friday only. source
menu-pricing-fractional-placementno — product model is attributes/variants plus one-level combos, no halves or sectionsupheldHeld to the highest bar as instructed. The products page documents only attributes/variants and combo choices as the composition model — the alternative is affirmatively enumerated, so 'no' is defensible rather than mere silence. The dependent cells (half-and-half rule, kitchen-pizza-fractional-display, modifier-price-by-parent-size, nested modifiers) fall the same way. source
labor-native-schedulingpartial, grade B - True that Planning is first-party, but it is a separate app:upheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
inventory-cogs-gl-exportpartial, grade B - Odoo Accounting is the GL, so COGS and AP post natively rathupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
multi-location-org-hierarchypartial, grade B - Multi-company (parent/child) plus many POS configs per compaupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
extensibility-accounting-connectorspartial, grade B - Odoo Accounting is the native GL with mapped journal entriesupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-local-transaction-enginepartial, grade B - Odoo Online is pure cloud with no edge server, but On-PremisupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-247-live-supportno, grade B - Verified verbatim: 'unlimited access to our support by emailupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-onsite-installpartial, grade B - Implementation runs through Success Packs or Odoo Partners; upheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-menu-build-servicepartial, grade B - Implementation is a separately purchased Success Pack or parupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
commercial-month-to-month-contractpartial, grade B - Score stays partial, but the note is factually wrong and musupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
commercial-pricing-publishedpartial, grade B - Exact dollars are published, but the unit is per user per moupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
commercial-module-unbundlingpartial, grade B - One App Free is a single app at $0; Standard and Custom are upheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
guest-loyalty-native-email-smsyes / B - https://www.odoo.com/pricing - "Odoo ships first-party Email Marketing and SMS Marketing apps in the same database (SMS via IAP c"upheldThe cited evidence was the pricing page, which is grade C and cannot carry a yes on a differentiator. Retrieved Odoo's documentation host instead: applications/marketing/email_marketing.html and applications/marketing/sms_marketing/create_sms.html both describe the mechanics (composition, Recipients model selection with filter equations, Send/Schedule/Test) rather than restating marketing copy, and create_sms.html states credits must be purchased or SMS will not send. Both channels are first-party apps in the same database, so the yes survives on grade-B documentation. source
digital-guest-data-ownershipyes / B - 'Users can download manual backups of their live data at any time'; plus per-model CSV/XLSX exupheldThe cited /page/odoo-online-sla 301s to /cloud-sla. I fetched the destination and re-checked the quotation word for word - it is present and unconflated, so the citation moved rather than died. Independently, the export manual documents Action > Export on any list view for any field of any record, and the GDPR page names the customer as controller of a Cloud database. Contact records (res.partner) carry email, phone, opt-out and are ordinary exportable models. Re-pointed to the export documentation. source
guest-loyalty-data-export-portabilityyes / B - Full live-database backup downloadable at any time, plus list-view CSV/XLSX export on every mupheldChecked the moved SLA at its new address (quotation intact) and then went past it to the export manual, which is the stronger evidence: it describes the exact self-serve path (list view -> Action -> Export -> CSV/XLS), states any field of any record can be exported, and mentions no fee, approval or ticket. The only documented limit is a timeout on very large single exports, with batching as the remedy - a performance caveat, not a gate. source
guest-loyalty-privacy-rights-toolingpartial / E - Any record can be exported or deleted and Odoo publishes GDPR material, but there is no pupheldThe cited SLA (now /cloud-sla) covers backups and security only and says nothing about data-subject rights, so the original citation did not support this cell even before it moved. Odoo's GDPR page does: it enumerates per-right handling as manual admin steps and explicitly notes that deleting a contact is refused when documents reference it, with anonymisation as the workaround. That is positive evidence for partial and for the named shortfall. Grade left at E to match this record's convention for docs-backed partials. source
reporting-history-retentionpartial / E - Data lives in the operator's own Postgres database with no documented truncation or archiupheldWithdrew the SLA leg: /cloud-sla documents backup rotation (1/day for 7 days, 1/week for 4 weeks, 1/month for 3+ months), which is a disaster-recovery schedule, not a reporting-history guarantee, and reading it as one would have overstated the cell. Re-read the POS reporting page, which shows session and order history in filterable pivot/graph views and says nothing about retention or truncation, and the Odoo Online page, whose only data-loss language is about deliberate database deletion. Partial survives on the queryable-history half; the missing window is the shortfall. source
extensibility-data-portability-exityes / B - Complete live-database backup downloadable at any time in a documented restorable format, pluupheldReplaced the SLA citation with the database-manager documentation, which names the mechanism, the artifact (a ZIP) and the exit context explicitly. Also found the caveat the first pass missed - very large databases have the button disabled and need a support request - but that is a documented alternative route, not a fee or a refusal, and the CSV/XLS and self-host paths are unaffected. A differentiator yes now rests on grade-B product documentation rather than a legal page. source
commercial-data-export-self-serveyes / B - 'Users can download manual backups of their live data at any time', plus CSV/XLSX export fromupheldVerified the moved SLA quotation verbatim at /cloud-sla, then confirmed the operative mechanism in the export manual: list view, Action, Export, CSV/XLS, all fields of all records, no fee or support step mentioned. The documented JSON-2 API on the Odoo Online page covers the API half of the claim. Only caveat is batching very large exports against a timeout. source
commercial-export-customer-and-loyaltyyes / B - Customers, loyalty cards/point ledgers and gift-card records are ordinary models included in upheldThe researcher's claim that these are ordinary exportable models was correct but was cited to a hosting SLA that says nothing about loyalty or gift cards. Retrieved the eWallet/gift-card guide, which shows issued cards as records with a Balance field reachable from a smart button, and the loyalty/discount guide, which shows generated cards reachable from the program form and from the contact. Combined with the export manual's any-field-any-record rule, the differentiator yes now rests on grade-B documentation. I did not find a dedicated point-ledger export report; the balance field on the card record is what carries it. source
commercial-privacy-dsar-toolingpartial / E - Any guest record can be located, exported and deleted, and Odoo publishes GDPR material, upheldThe cited SLA covers backups, encryption and recovery objectives only - it never mentioned DSARs or a DPA, so this citation was wrong on the merits before it ever moved. Odoo's GDPR page carries both legs: it describes access, portability, rectification, erasure and opt-out as manual admin actions, states that deletion is blocked when documents still reference the contact, and confirms the agreement embeds GDPR Data Protection Clauses that apply automatically. Partial is correct; the shortfall is the absence of any packaged workflow. source

Sources

Every URL this record cites. 34 in total.