Vendors / Adjacent encroachers — ordering, middleware & back-office

Otter

Otter (Atoms, formerly City Storage Systems / CloudKitchens)

scored live

Claims in scope
255
Scored
255
Assessed
229
Unknown
26
Not applicable
59
Cells challenged
153

Identity

Owner
Otter is the restaurant-software business of Atoms — the company that operated in stealth as City Storage Systems and that also owns CloudKitchens. Corrected 2026-08-02; the previous record recorded ownership as `independent-public`, which was wrong on its face for a product with a named parent, and wrong in substance because the parent is privately held.
Parent
Atoms
Founded
unknown — no founding date is published on tryotter.com; the product originated as internal software for CloudKitchens' ghost-kitchen operations before being sold externally.
Scale
Vendor claim only: "Over 100,000 restaurants" is repeated across product pages (re-confirmed 2026-08-02 on https://tryotter.com/products/online-ordering), and "Trusted by 17 of the top QSR brands" appears on the enterprise customers page. No ARR, location count or market-share figure is published by the vendor. A third-party report attributes ~18% of US food-delivery transaction volume to Otter as of 2024; that figure was surfaced in search but not retrieved from a primary source this pass and is not relied on. Independent verification: unknown.
Who it is for
Two distinct buyers. (1) The historical and still-core ICP: delivery-heavy independents and small groups drowning in marketplace tablets — Order Manager at $149/month consolidates DoorDash, Uber Eats, Grubhub, ChowNow and Caviar onto one tablet and injects into the 21 third-party POS systems named in the integrations directory. (2) The newer, encroaching ICP: single-site to small-multi counter-service operators (fast casual, QSR, bakery, cafe, food truck, food court, pizzeria) buying Otter POS as their primary POS inside the $198/month Advanced Bundle. Enterprise and franchise are marketed to, but the enterprise page sells reporting, dispute recovery and alerting rather than enterprise POS governance. No table-service ICP is addressed anywhere in the product catalog.
Site
https://tryotter.com/

Lineage

Pricing

transparency: partial · unit: mixed · processor lock-in: yes

Software
Published bundles (https://tryotter.com/pricing, retrieved 2026-08-02): Advanced Bundle — list $314/month, promotional $198/month, "+ per order transaction fee"; Advanced + Kiosk — list $657/month, promotional $541/month, same transaction-fee wording; "Build Your Own" — custom pricing, with "Cash-discounting available for processing fees". Per-module prices verified on their own product pages this pass: Order Manager $149/month; Loyalty $30/month/location; KDS $15/month software. WITHDRAWN 2026-08-02 — three figures the previous record carried (Online Ordering $40/month/location, QR Ordering $30/month, Analytics $0/month) could not be reproduced on any Otter page today; the Online Ordering and QR pages now publish no standalone price at all, and Otter's own nav and product pages had previously disagreed with each other on the QR figure. Whether the bundle price is per location or per terminal is still not stated anywhere.
Card processing
PUBLISHED, and Otter publishes TWO IRRECONCILABLE RATES. Both are recorded here deliberately; neither is preferred, because nothing published reconciles them. (1) Help-centre article 26596326146707 (Otter POS Introduction) advertises 'industry-leading low processing fees: just 2.39% + 15¢'. (2) Help-centre article 27244902024723 (Otter POS Cash Discounts), in its FAQ, states 'Regardless of the bank or credit card, the cc processing fees will always be 2.3% + $0.10 w/ card present and 2.9% + $0.30 without card present' — note the emphatic 'always', and that only this one gives a card-not-present rate. The two card-present figures differ in both legs (2.39%/15¢ against 2.3%/10¢). A POSSIBLE but UNCONFIRMED explanation sits in article 18739528029715, which says hardware may be leased 'for a lower processing fee' — so the pair may be a buy-rate and a lease-rate. No published document says so, and the Cash Discounts FAQ's 'always' contradicts any conditional reading, so this is recorded as an open inconsistency and not resolved. Supersedes the 2026-08-02 finding that no rate was published anywhere: that was true of tryotter.com and false of the help centre. The pricing page itself still says only '+ per order transaction fee'. Disputes & Refunds (Revenue Recapture) remains separately priced as success-based — 'No upfront fees… We only charge a small % per recaptured revenue' — with the percentage unstated. PROCESSOR LOCK-IN is settled by the same Cash Discounts article, which answers its own FAQ question 'Do we have other payment processor options available?' with 'No, we do not offer other payment processors at this time.' — so processor_lock_in moves from unknown to yes. Sources for this whole block, all retrieved 2026-08-09 from the local corpus dump .cache/otter/articles.txt: https://helpdesk.tryotter.com/hc/en-us/articles/26596326146707-Otter-POS-Introduction , https://helpdesk.tryotter.com/hc/en-us/articles/27244902024723-Otter-POS-Cash-Discounts and https://helpdesk.tryotter.com/hc/en-us/articles/18739528029715-Otter-Plan-Packages-Hardware .
Contract
unknown — not published. Otter's own pricing FAQ poses the question "Is there a cancellation fee?" and renders no answer; the /faq index likewise lists question titles with no answer bodies, because the accordions are client-rendered. The only public legal document is a website Terms of Service (https://tryotter.com/terms), which is not the merchant service agreement and contains no term, auto-renewal or notice clause. Re-confirmed 2026-08-02.
Early termination
unknown — see contract_length. The vendor poses the question in its own FAQ and does not answer it in retrievable text.
Hardware
CORRECTED 2026-08-09 — the previous entry, built from the marketing site, said the POS terminal, card reader and printer 'arrive only inside the subscription bundle' with no standalone price. That is wrong. Help-centre article 18739528029715 (Otter Plan Packages & Hardware, updated 2026-06-30) publishes a full lease-and-buy table for nearly every device, and states the governing rule: 'POS plans do not include hardware. Hardware is available for one-time purchase or via lease for a lower processing fee.' TABLETS: Lenovo M9 9" $20/month lease or $299 buy; Lenovo P11 11" $29/month or $399; Samsung A7 Lite 8.7" $20/month or $299; Samsung LTE A7 Lite 8.7" (US only, sold with a data plan) $80/month lease and NOT available to buy; Samsung A8 10.5" $29/month or $399. POS TERMINALS: iMin Dual Screen $60/month or $749; iMin Single Screen $50/month or $649; HD15 Single Screen (Canada only) $29 CAD/month or $399 CAD; HD25 Dual Screen (Canada only) $39 CAD/month lease, no buy price given. KIOSKS: Kiosk Pro 27" (Standing Flytech, only available in a bundle) $289/month lease or $5,500 buy plus $99/month/device software; Kiosk Mini 15" $100/month or $1,200 buy plus $99/month/device software, S700 card reader and dock included. Note the Kiosk Mini's buy price is $1,200 here against the $1,000 the marketing site carried, and the 21.5" kiosk the marketing site listed at $189/$3,000 does not appear in this table at all. KDS: Flytech K739 21.4" $75/month or $1,000 buy plus $15/month software. PRINTERS: Epson TM-M30ii BT (the one marked compatible with Otter POS) $20/month or $299 buy; Epson TM-M30 NT cloud/hardwired $20/month or $299; Rongta RP328 $20/month or $149 and Rongta RP310 label printer $25/month or $250, both marked 'Not suitable for Otter POS operations'. CARD READERS are listed as a hardware category but no standalone price appears in the article body. Hardware is US and Canada only — outside the US&C Otter provides none and supports Bring Your Own Device instead. Separately, Digital Dine-in, Online Ordering and the Direct Orders Full Suite each carry a one-time $100 setup fee, and the activation fee is charged per location.

API posture

public API: unknown

Cost to integrate
unknown — https://tryotter.com/become-a-partner describes three tracks (referral, technology, vendor/supplier) and a tiered structure with "marketplace and referral team incentives", but publishes no fee, revenue-share percentage or certification cost.
Webhooks
unknown
Data export on exit
unknown — no post-termination retrieval window is published. Financials offers "download your payout details by transaction" and Analytics offers CSV export, but no documented full-history export.
Notes
Otter's structural oddity: it is simultaneously an integration layer for the 21 third-party POS systems named in its own directory and a POS vendor competing with them. It is a named 2026 DoorDash Preferred Integration Partner — a renewal, since it was also in the 2025 inaugural cohort — which is the strongest third-party evidence available about its integration maturity: DPIP eligibility requires POS proactive cancel rate <1%, merchant-avoidable cancellation rate <1%, 250+ live DoorDash stores, and support for order-ready signal, real-time menu sync, self-guided store setup, self-serve activation, real-time item 86ing, item availability polling, integrated promotions and detailed order error reporting. That certification carries most of the load in the delivery and menu-sync scores because Otter's own documentation is thin. Note the direction of the evidence: it certifies Otter's OUTBOUND capability as an integrator, not that Otter exposes an inbound public API. On that second question the record is blunt — developer.tryotter.com was re-fetched on 2026-08-02 and still renders nothing but a "Developer Portal" heading, with no reference, auth model, sandbox, webhook contract or rate limits.

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.

Menu, modifiers & pricing engine

Yes

menu-pricing-nested-modifiers

A nested modifier group is created by the same flow as a top-level group, so each level carries the same fields: Name, Description, Required or Optional, Set Modifier Limit Type ('the number of times that a modifier can be selected on an item'), one of eight group-type cards, and Total selections (Minimum / Maximum) - 'Customers must select at least 1, up to 3 options.' The article's own supported-levels table gives 6 nested levels to Otter POS, Direct Orders, Direct Orders-Kitchens, UberEats, DoorDash and Grubhub (Owner.com 7, JustEat 3), well past the three the claim asks for. The limit is per publishing channel, not per product: BentoBox, ChowNow, Caviar, Ritual, Glovo and Phone accept 0 levels and Skip the Dishes 1, and publishing to those forces a flat menu. https://helpdesk.tryotter.com/hc/en-us/articles/18439639099667-Menu-Item-Modifiers-Nested-Modifiers · retrieved 2026-08-08

B
No

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

Help-centre modifier docs give a modifier item one Default Price plus Advanced Pricing per fulfillment option, delivery partner, channel and location (Menu Item Pricing, art. 36253606306195) - parent item and parent size are not pricing dimensions anywhere. The modifiers article's own guidance for size-dependent options is to duplicate items per size ('Small fries / Medium fries / Small curly fries...'), i.e. exactly the workaround this claim excludes. https://helpdesk.tryotter.com/hc/en-us/articles/18439639099667-Menu-Item-Modifiers-Nested-Modifiers · retrieved 2026-08-03

B
No

menu-pricing-fractional-placement differentiator

Modifier-group configuration is documented exhaustively - Name, Description, Required/Optional, Set Modifier Limit Type, one of eight group-type cards (Size, Add-on, Removal, Preference, Condiments, Packaging, Upsell, Custom), Total selections min/max, modifier items, assigned locations, offered-on channels - and no field represents halves, quarters or any placement. A modifier item carries one Default Price plus Advanced Pricing per fulfillment option, delivery partner and channel (Menu Item Pricing, art. 36253606306195), so there is no per-section price to set. The article's own remedy when a variant dimension is needed is duplicated items ('Small fries / Medium fries / Small curly fries / Medium curly fries'). A body search of all 292 help-centre articles returns zero hits for half-and-half, fractional or topping placement. https://helpdesk.tryotter.com/hc/en-us/articles/18439639099667-Menu-Item-Modifiers-Nested-Modifiers · retrieved 2026-08-08

B
No

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

Menu Pricing Rules enumerates the complete rule surface: a rule applies per channel, per location, per fulfillment option, per menu and to all or a group of items, prices by percentage or fixed amount (negative for a decrease), with an optional round-up value and exclusion of items within a price range, above a price or below a price. There is no half-and-half rule and no charge-the-higher-half, average-the-halves or fraction-of-full-price option. Upstream, nothing in the menu model represents a half or section at all (Menu Item Modifiers & Nested Modifiers, art. 18439639099667), so no such rule could have an operand. https://helpdesk.tryotter.com/hc/en-us/articles/40116707746067-Menu-Pricing-Rules · retrieved 2026-08-08

B
No

menu-pricing-topping-quantity-tiers

Modifier-group configuration is fully enumerated: name, required/optional, 'Set Modifier Limit Type - select the number of times that a modifier can be selected on an item', min/max total selections, eight group-type cards, default modifiers and negative modifiers. Quantity is handled by selecting the same modifier multiple times - the add-it-twice model the claim distinguishes - and no light/regular/extra/double tier with a per-tier price multiplier exists in the configuration. https://helpdesk.tryotter.com/hc/en-us/articles/18439639099667-Menu-Item-Modifiers-Nested-Modifiers · retrieved 2026-08-03

B
Unknown

menu-pricing-size-style-matrix differentiator

Otter's documented item pricing has four dimensions - one Default Price plus a price per fulfillment option, per delivery partner, per Otter channel and per fulfillment-per-channel (Menu Item Pricing, art. 36253606306195) - and the Adding Menu Items field walkthrough lists no variant axis. But that is not the complete item surface: Menu Item Modifiers & Nested Modifiers (art. 18439639099667, updated 2026-06-12) says 'Variant line items are excluded from both (edited on the parent item)', i.e. Otter has native variant line items edited on the parent item, and no help-centre article documents how they are created or priced. Imported variants from Square, Clover, Lightspeed and Toast are separately flattened ('The item Variations will be imported as separate items into the delivery platforms'), and the modifier article's own remedy for a size dimension is duplicated items - so a two-axis grid with per-cell overrides is unlikely - but with the native variant surface undocumented there is no exhaustive enumeration to support a no.

F
No

menu-pricing-included-allowance differentiator

The documented modifier-group fields stop at min/max selection counts, default modifiers and negative modifiers; no included-allowance construct charges only for overage. Negative modifiers (a negatively priced modifier item) are the only documented credit mechanism and are 'currently not supported on Otter POS'. The pizzeria landing page likewise offers only 'easy-to-use modifiers'. https://helpdesk.tryotter.com/hc/en-us/articles/18439639099667-Menu-Item-Modifiers-Nested-Modifiers · retrieved 2026-08-03

B
Partial

menu-pricing-combos

Component swaps with a price delta are documented: a combo is an ordinary menu item with a required modifier group, and negative modifiers adjust the parent price - 'For the Smash Cheeseburger Combo ($11.95), you must select a Drink option; since the modifier choice of Water is priced at -$1.00, if the eater chooses Water, the price of the Smash Cheeseburger Combo is deducted by $1.00.' Two shortfalls. First, that mechanism does not work on the POS: 'Currently negative modifiers are not supported on Otter POS' (they are supported for direct orders such as website and kiosk ordering). Second, no automatic detection or conversion of eligible a-la-carte cart items into a combo price appears anywhere in the 292-article help centre - 'Combos' appears only as a user-created menu category in the bulk-edit example. https://helpdesk.tryotter.com/hc/en-us/articles/18439639099667-Menu-Item-Modifiers-Nested-Modifiers · retrieved 2026-08-08

B
Partial

menu-pricing-upsell-prompts differentiator

Kiosk "smart upsells — earn up to 30% more with item suggestions"; pizzeria page cites topping/side/drink suggestions at checkout. No per-channel config or attach-rate reporting documented. https://tryotter.com/products/kiosk · retrieved 2026-08-01

D
Partial

menu-pricing-86-propagation

86 propagates across POS, KDS, kiosk, online ordering and connected marketplaces; Otter Go pushes availability from a phone. No published propagation latency. https://tryotter.com/products/kds · retrieved 2026-08-01

C
No

menu-pricing-countdown-auto-86 differentiator

The Item Availability doc enumerates exactly three states - Available, Unavailable Today (auto-restores at midnight) and Unavailable Indefinitely - all set manually from Dashboard, POS, Order Manager or the Otter Go app. No per-item countdown/par count exists, nothing decrements on sale, and the only auto-restore is the fixed midnight reset. Otter also ships no stock ledger that could drive one. https://helpdesk.tryotter.com/hc/en-us/articles/5159002040083-Item-Availability-86-ing · retrieved 2026-08-03

B
Partial

menu-pricing-dayparting

Grade raised D->B on documentation quotes retrieved 2026-08-02: "Separate menus by category (like breakfast, lunch, and dinner) and manage menu items by location", and "Menu management designed for changes across menus for different days of the week, times of day, or various locations." Shortfall: day and time scoping is described, but automatic timezone-aware activation windows that flip menus without operator action are still not documented. https://tryotter.com/products/menu-management · retrieved 2026-08-02

C
Yes

menu-pricing-channel-price-books

Two documented layers. Per-item: Advanced Pricing sets a price per fulfillment option, per delivery partner, per Otter channel and per fulfillment-per-channel, with bulk editing by filter (the worked example edits Otter POS dine-in pricing for selected locations at once) - Menu Item Pricing, art. 36253606306195. Rule-based: Menu Pricing Rules creates 'an increase or decrease pricing rule for all or a group of menu items' configured 'Per channel, Per location, Per fulfillment option, Per menu, For all or a group of menu items, By percent or fixed amount', with a round-up toggle, price-range exclusions, a preview of the price difference per location, channel and platform, and conflict detection against existing rules. That is a markup rule applied to a base price rather than manual per-item entry. https://helpdesk.tryotter.com/hc/en-us/articles/40116707746067-Menu-Pricing-Rules · retrieved 2026-08-08

B
Partial

menu-pricing-dual-pricing differentiator

Pricing page states "Cash-discounting available for processing fees" on the Build Your Own tier. Item-level two-price storage, cross-channel consistency, and receipt printing are not documented. https://tryotter.com/pricing · retrieved 2026-08-01

D
Partial

menu-pricing-versioning-effective-dates differentiator

Two of the three parts are documented. Preview before publish: the publish flow exposes a Menu Publish Preview showing 'how your menu will look once published for a specific location and ordering channel', which also flags anticipated publish issues (Menu Preview, art. 18303428637587). Rollback after publish: Version History logs every publish with date, time and publishing user plus autosaved snapshots, and [Restore menu version] reverts the structure, items and location assignments, with an optional publishing note. Shortfall: publishing is immediate and no effective-dated or scheduled version exists - the only future-dated control is menu hours, which govern when a menu is orderable, not which version is live, and a restore still has to be published by hand. https://helpdesk.tryotter.com/hc/en-us/articles/35314976325907-Menu-Version-History · retrieved 2026-08-08

B
Partial

menu-pricing-franchise-hierarchy differentiator

AUDIT OVERTURN (2026-08-05). The prior no missed the help centre's 'Corporate & Franchisee Permissions' doc (art. 38552114382739, read via the public Zendesk API; HTML front-end 403s): one Brand owner (Corporate) account governs Brand user (Franchisee) accounts to 'keep menu cohesion' — Corporate Admins 'view and manage menus for all stores within your brand — regardless of ownership', 'only Corporate users are able to create new or delete menu items', and a Franchisee permissions tab toggles what franchisees may edit (publishing menus, menu hours, item availability). Shortfall: governance is feature-level toggles applied brand-wide uniformly ('you're not able to select these permissions or locations individually to turn them ON or OFF'), not field-level attribute control, and no per-location override matrix or price-field governance is documented. https://helpdesk.tryotter.com/hc/en-us/articles/38552114382739 · retrieved 2026-08-05 adversarially verified

B
Partial

menu-pricing-allergen-nutrition

Dietary tagging (vegan, gluten-free, spicy) documented. No allergen flag set, no nutrition values, no recipe-derived nutrition. https://tryotter.com/products/menu-management · retrieved 2026-08-01

D
No

menu-pricing-recipe-linkage differentiator

Re-evidenced 2026-08-09; the tryotter.com/integrations leg is withdrawn as a marketing page. Otter's item model is enumerated first-party in two places and neither has a recipe layer. SKU Library (org-level product master) carries "name, default price, SKU code, description, photo" plus shared product details "dietary information, nutrition, barcodes, and product tags" - descriptive attributes, no ingredient composition and no component quantities; menu and modifier items link TO a SKU, not to a bill of materials. The public OpenAPI MenuItem_POS schema is id, name, photoIds, price, status, description, modifierGroupIds, priceOverrides, skuDetails, additionalCharges, tax - again no recipe or cost-of-goods field. A body search of all 292 helpdesk articles returns zero hits for "bill of materials", "on-hand", "depletion" or "COGS", and the only two "recipe" hits are Future Foods virtual-brand cooking instructions. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/53271161201555-SKU-Library · retrieved 2026-08-09

B
Yes

menu-pricing-3p-menu-push

Re-confirmed verbatim 2026-08-02: "Make menu changes once and send them to all your delivery apps, kiosk, and POS." Real-time menu sync is also a mandatory DoorDash DPIP capability Otter is certified against. https://tryotter.com/products/menu-management · retrieved 2026-08-02

C
Partial

menu-pricing-dynamic-pricing

Rule-based automatic variation by channel exists: a pricing rule raises or lowers price by percent or fixed amount, scoped per channel, per location, per fulfillment option, per menu and per item or category, with a round-up toggle and conflict detection, applied without touching each item. Shortfalls, against a fully enumerated rule form: there is no time-of-day, day-part or demand/inventory trigger, and no floor or ceiling on the resulting price - the only price-aware control excludes items from the rule (within a price range, greater than, or less than a dollar amount), which filters what a rule touches rather than bounding how far a price may move. Day-part behaviour is limited to menu hours, which switch availability rather than price. https://helpdesk.tryotter.com/hc/en-us/articles/40116707746067-Menu-Pricing-Rules · retrieved 2026-08-08

B

Payments & money movement

No

payments-processor-choice differentiator

Re-evidenced and downgraded 2026-08-09. The marketing directory's "Payments: Stripe (Preferred)" leg is withdrawn - a partner category establishes that a partner exists, nothing more. Otter's own help centre puts the question and answers it: "Do we have other payment processor options available? No, we do not offer other payment processors at this time." The same FAQ fixes the rate as a single non-negotiable schedule - "Regardless of the bank or credit card, the cc processing fees will always be 2.3% + $0.10 w/ card present and 2.9% + $0.30 without card present" - and a second article states that "Otter POS cannot process transactions without a Stripe account created and connected in the Otter Dashboard" and that "the Otter POS credit card processor cannot be connected without Stripe being connected first." Stripe is not a merchant-chosen processor here; it is a mandatory prerequisite of Otter's own payment stack. There is no documented list of supported gateways and no documented way to bring your own. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/27244902024723-Otter-POS-Cash-Discounts · retrieved 2026-08-09

B
No

payments-published-rates differentiator

Re-confirmed 2026-08-02: both bundles read "+ per order transaction fee" with no figure, and no card rate, interchange table or effective-rate statement appears anywhere on the pricing page. Cash-discounting is mentioned only on the Build Your Own tier. https://tryotter.com/pricing · retrieved 2026-08-02 adversarially verified

C
Partial

payments-dual-pricing differentiator

"Cash-discounting available for processing fees." Two stored prices per item and dual totals on the guest check are not documented. https://tryotter.com/pricing · retrieved 2026-08-01

D
No

payments-surcharge-guardrails differentiator

Otter's documented card-fee offset is a cash-discount program (default 3%, per-location percentage, auto-applied only when an order is paid fully in cash), on fixed processing of 2.3% + $0.10 card-present with 'no other payment processors'. 'Surcharge' returns zero results across the entire help centre; no surcharging engine, BIN-based debit/prepaid exclusion or network-cap enforcement exists to document. https://helpdesk.tryotter.com/hc/en-us/articles/27244902024723-Otter-POS-Cash-Discounts · retrieved 2026-08-03

B
Yes

payments-emv-nfc

Re-confirmed 2026-08-02 on the POS page: the bundled card reader is listed as supporting contactless, EMV chip, Apple Pay, Google Pay and magstripe. https://tryotter.com/products/otterpos · retrieved 2026-08-02

C
Unknown

payments-softpos-tap-to-pay differentiator

Checked the 292-article helpdesk.tryotter.com corpus, dumped through its public Help Center API because the rendered /hc/en-us pages 403 under bot mitigation. 'Tap to Pay', softPOS and phone-as-terminal appear in zero articles. Accepting Payments on Otter POS (art. 33725692118931) makes a connected card reader a precondition for card payments ('make sure you connect your Stripe account and card reader first'), and the payment-method list is Cash, Card, Manual Entry, Pay Later and Gift Card. Bring Your Own Device (art. 31650150805139) lets a merchant run the Otter app on their own Android tablet with one of eleven listed Bluetooth printers but says nothing about card acceptance. The Otter Handheld (art. 35667642715283) does take cards 'directly on the Otter Handheld device without additional hardware', but it is Otter-supplied Stripe hardware, not the merchant's phone. Correcting the earlier last line: developer.tryotter.com is no longer the only developer surface - the public OpenAPI 3.0.1 spec at developer-guides.tryotter.com/api-reference/ is readable anonymously, and searching all 75 paths and their schemas returns no occurrence of tap to pay, tap-to-pay, softPOS or contactless, because the spec is a partner integration API with no payment-acceptance surface at all. So no source either way exists: left unknown because Stripe offers Tap to Pay on Android and iPhone and Otter could enable it without a help-centre article, and absence of mention is not evidence of absence. adversarially verified

F
Yes

payments-pay-at-table

Otter Handhelds are vendor-shipped hardware ($500 to purchase, $39 per month to lease, plus $15 per month per screen), listed for 'Tableside ordering and payments' and line busting: 'Otter Handhelds provide a mobile solution for managing orders and payments on the go... take customer orders and process payments from anywhere in the restaurant.' The FAQ states 'credit card payments can be taken directly on the Otter Handheld device without additional hardware' (the device is a Stripe reader that takes tap, swipe or insert), and the comparison table confirms 'You can ring in orders, process payments, and issue refunds from the Orders app on both POS devices' - the same Orders app payment screen that carries tip selection and [Split Check] / [Split By Item] (Accepting Payments on Otter POS, art. 33725692118931). The handheld cannot print a receipt and cash should be tendered at the terminal so the drawer opens. https://helpdesk.tryotter.com/hc/en-us/articles/35667642715283-Otter-Handhelds-Introduction · retrieved 2026-08-08

B
Partial

payments-qr-guest-pay differentiator

QR ordering accepts card, cash, Apple Pay and Google Pay with guest-side split payment and syncs to POS. Scanning a printed check to settle an existing server-opened tab is not documented. https://tryotter.com/products/digital-dine-in · retrieved 2026-08-01

C
Yes

payments-tip-adjust

Available tipping methods are listed as 'Tip on receipt (after payment)', 'POS tip display (before payment)' and cash tipping. On-device prompt: Display tip options on = all screens, cashier-facing, customer-facing or don't display, with operator-set tip percentages (defaulting to 15/20/25/30%). Adjust flow: if no tip is taken at checkout the receipt prints a tip and signature line, the order is flagged 'Tip Pending' in the POS orders list, and staff use the 3-dot menu > [Add Tip] to enter either a tip amount or the grand total. The window is published - 'orders can have the tips entered up to 24 hours after the transaction' - and enabling it delays settlement: 'payments will be delayed by one additional business day' (repeated in Guide to Connecting Stripe). Stripe caps a tip at 50% of the pre-authorized amount or $50, confirming the pre-auth-then-adjust model. Caveat: on the older Otter POS v1 interface tips must be entered before payment and tips-on-receipt, cash tipping and terminal tip display are unavailable. https://helpdesk.tryotter.com/hc/en-us/articles/36524231987603-Tipping-Guide-for-Otter-POS · retrieved 2026-08-08

B
No

payments-tip-pooling differentiator

AUDIT RE-GROUND (2026-08-05): the prior rationale's premise that 'Otter has no labor module' is false — a Time Card app (art. 26645285153555) and Staff Timecard Reporting are documented. The no stands on enumeration instead: the 'Tipping Guide for Otter POS' covers the tip lifecycle end-to-end (tip on receipt after payment, POS tip display before payment, cash tipping, configurable percentage presets, 24-hour post-payment tip entry, Stripe tip caps) and the Hourly Tip Report covers per-staff reporting; no pooling, tip-out, distribution rule or payroll tip-allocation appears in either or anywhere else in the help centre. https://helpdesk.tryotter.com/hc/en-us/articles/36524231987603 · retrieved 2026-08-05 adversarially verified

B
Partial

payments-offline-store-and-forward differentiator

Store-and-forward is documented: offline mode gives 'The ability to continue processing Credit Card and Cash Transactions' when the terminal cannot reach the network, offline orders carry a cloud icon in the order list and 'will be automatically processed when you connect to a network again'; the Otter Handheld does the same in both card-reader and mobile-POS mode, and 'All card payments taken on handheld while offline will be processed together once the internet connection is repaired.' Shortfall: there is nothing to configure and no ceiling is published - 'Offline mode is automatically enabled for all Otter POS customers' and triggers itself - and the article's own limitations list (online orders cannot be accepted, new printers and card readers cannot be paired, wifi/ethernet printers do not print, station tickets do not print) contains no per-transaction amount limit and no cumulative offline total. https://helpdesk.tryotter.com/hc/en-us/articles/26865574404883-Otter-POS-Using-Offline-Mode · retrieved 2026-08-08

B
Unknown

payments-offline-decline-liability differentiator

Re-checked against the 292-article helpdesk.tryotter.com dump (Help Center API; rendered pages 403 to bots). Otter POS Using Offline Mode (art. 26865574404883) documents store-and-forward - offline card orders carry a cloud icon and 'will be automatically processed when you connect to a network again' - and its limitations list covers only online-order acceptance, device pairing and wifi/ethernet printers. It never describes a decline on reconnect, states no liability position, and offers no post-reconnect report of failed offline payments. Chargebacks Guide, Guest Disputes and Online Order Refunds & Disputes all address post-settlement disputes on transactions that did authorize. Two legs added on re-audit, replacing the withdrawn 'no readable API surface' hedge. (1) The public OpenAPI 3.0.1 spec (developer-guides.tryotter.com/api-reference/, 75 paths) contains no occurrence of 'offline', 'decline' or 'chargeback' and exposes no payment-acceptance or payment-error surface, so no API error contract exists to inspect. (2) The governing merchant agreement is public after all (tryotter.com/legal/tech-services) and its Payment Responsibility clause does allocate loss - 'You are responsible for all transactions... We are not liable for loss or damage from fraudulent or invalid transactions processed with your Stripe account. This includes transactions that were not processed due to a network communication error, or any other reason. If you process a transaction, it is your responsibility to verify that the transaction was successfully processed' - but that clause sits inside the Online Ordering and Digital Dine In Services addendum, whose Payment Processing Services are defined as part of online ordering, so it cannot be read as the published position on a POS store-and-forward decline, and it is paired with no post-reconnect failed-payment report anywhere. Undetermined rather than documented. adversarially verified

F
Partial

payments-gift-cards

Re-evidenced 2026-08-09; the previous note ("no first-party gift card product ... is documented") was false and is withdrawn along with its marketing-directory citation. Otter Gift Cards is a first-party product: "Otter Gift Cards are physical cards that allow you to sell self-branded gift cards to your customers", sold and reloaded from the Otter POS checkout Options > Gift Cards flow (maximum load $2,000), accepted as a payment method on Otter POS under Other > Gift card and in the Direct Orders online checkout, with live balance behaviour documented - split tender against the remaining balance, remaining balance confirmed on the receipt, and refunds returned onto the card's balance. eCard Systems is the card-stock printer, not the gift card platform. Shortfalls, which is why this is partial and not yes: it is a paid add-on at "$30/month" plus $1.01 per card, it is "ONLY available for Otter POS customers", the cards are physical only with no documented digital or e-gift issuance, and redemption is switched on per location (Direct Orders > Locations > Location Settings > Payments > Gift Card Payments) rather than group-wide, so redeemability across every location in the group is not established. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/37358535943187-Otter-Gift-Cards · retrieved 2026-08-09

B
Unknown

payments-house-accounts

Checked the plausible homes for this in the 292-article helpdesk.tryotter.com corpus. Otter Catering (art. 33983809245203) does take deposits, generate and send per-order invoices and track payment status, but its settings are enumerated as General, Payment, Scheduling, Ordering Restrictions, Tips and Fees - there is no customer account, credit limit or balance, and invoices attach to an event order rather than to a standing account. Open Tabs (art. 11716604717331) and the Otter POS 'Pay Later' flow are unpaid checks tied to a table or ticket that close the same service. Otter POS Guest Profile (art. 28714094344339) is enumerated as phone number, address and delivery instructions only, with no payment or credit fields. Managing Invoices and Merchant Statement are Otter billing the merchant and Otter's card-processing statement to the merchant, not statements a merchant issues a guest. No article states that on-account tabs are unsupported, so this stays unknown rather than no.

F
Yes

payments-split-tender

The POS payment screen offers [Split Check] and [Split By Item]: 'Enter the specific payment amount, split evenly among multiple guests, or add specific items to each check', and 'You can select the payment method after splitting the payment' - so each part can settle to a different tender. Mixed tender on a single guest's check uses the same control: 'If one customer wants to split payment across different payment methods, you can also use the split payment function... Select the number of payment methods when prompted. For example, for a customer to split payment via cash and card, you would select 2.' No split cap is stated for the POS (the separate guest-side QR dine-in feature is the one with an operator-set maximum number of splits, and it is even-split only). Splitting by seat specifically is not documented - the POS captures an optional Table Number rather than seat positions - and cash discounts do not apply to split payments. https://helpdesk.tryotter.com/hc/en-us/articles/33725692118931-Accepting-Payments-on-Otter-POS · retrieved 2026-08-08

B
Partial

payments-refund-void-controls

Role gating is documented: per-employee PINs with a manager-override screen, refunds reserved to Supervisors on POS and to the Billing Admin role in the Dashboard, any discount lockable behind Supervisor/Manager/Admin approval, drawer opening permission-gated; the Voided Transactions report is immutable ('you cannot make edits to the voided orders log') with staff attribution, void reason and timestamp. Shortfall: the void log records the creating staff member, not an approver, and no doc shows void authorization itself requiring manager approval. https://helpdesk.tryotter.com/hc/en-us/articles/26844590516755-Creating-Employee-PIN-Codes · retrieved 2026-08-03

B
Partial

payments-chargeback-tooling differentiator

Disputes & Refunds automates dispute handling with weekly refund reports and instant notifications — but it targets delivery-marketplace refunds, not card-network chargebacks. https://tryotter.com/products/revenue-recapture · retrieved 2026-08-01

C
Unknown

payments-card-on-file differentiator

Searched the 292-article helpdesk.tryotter.com dump for card on file, saved card, token and vault. Every hit is Otter's own subscription billing - Otter Subscriptions and Billing Payment Methods describe the merchant's card for paying Otter ('Remove a card on file'), not a guest credential. Otter POS Guest Profile (art. 28714094344339) enumerates the profile as phone number, address and delivery instructions, retrieved by full phone-number search, with no payment method attached to the ticket. Online Ordering Settings (art. 21748907448467) enumerates checkout payment options as Online (credit card only), In-person (card or cash at pickup) and a gift-card toggle, with no saved-card or wallet option; Loyalty Customer Profiles and the Guest Directory Report are identity, points and order-history records. Processing runs entirely through Stripe (art. 26643285732243), so a token vault may exist at the processor with no Otter-facing surface - unresolved rather than absent.

F
Partial

payments-payout-timing differentiator

The schedule is published in unusual detail: 'Typically, payouts are processed and deposited into your account within 2 business days, not including weekends', with a day-by-day settlement table split by orders created before and after 12:00 AM EST (Monday to Wednesday, Tuesday to Thursday, and so on), 'one daily payout per store at your organization', explicit weekend and holiday handling and the 2025/2026 US and Canada bank-holiday lists; Guide to Connecting Stripe repeats 'daily payouts... with a two-day delay'. Shortfall: no next-day, same-day or instant-funding option is offered anywhere - the only documented deviations are slower, not faster (enabling after-payment tipping delays payouts by one additional business day, and service hours past midnight EST can add a day). https://helpdesk.tryotter.com/hc/en-us/articles/35655034312851-Otter-Payouts-Schedule · retrieved 2026-08-08

B
Yes

payments-multi-entity-routing differentiator

Settlement is wired per store, not per account: 'Log in to Otter Dashboard and select [Settings] > [Payouts] to connect a Stripe account to each Otter Store receiving payouts', and the walkthrough is 'select the [Add method] for the store/brand you'd like to connect a payment method to'. Otter Payouts Schedule (art. 35655034312851) confirms the split at settlement - 'Otter will typically issue one daily payout per store at your organization'. Update Payout Information (art. 40530789617683) treats a change of legal entity as a per-store operation: when a business is sold and renamed, 'a new Stripe account should be set up under the new business name... don't update the existing Stripe account - create a new one instead', and bank details are edited per account through [Manage on Stripe]. Reporting stays unified in the single Otter Dashboard, where Merchant Statement and payout reports are produced per location across the organization. https://helpdesk.tryotter.com/hc/en-us/articles/26643285732243-Guide-to-Connecting-Stripe · retrieved 2026-08-08

B
Unknown

payments-p2pe-pci4

Searched every one of the 292 helpdesk.tryotter.com articles for PCI, PCI DSS, AOC, P2PE, point-to-point and encryption. The corpus contains exactly one security sentence, generic and in the KDS introduction: 'POS systems are designed to encrypt and protect sensitive credit card information.' There is no compliance article, no attestation reference and no security or trust page in the help centre, and Otter Plan Packages & Hardware describes the card reader by connectivity and card types rather than by any PCI or P2PE listing. Card processing runs end to end through Stripe on Stripe-supplied readers (Guide to Connecting Stripe, art. 26643285732243), so the relevant P2PE solution listing may be Stripe's rather than Otter's. Unresolved: an AOC furnished to merchants on request is exactly the kind of artifact a vendor does not publish, so silence here is not evidence of absence.

F

Delivery, dispatch & third-party channels

Partial

delivery-driver-roster

In-house drivers are first-class Otter users, but the module is thin and largely undocumented. User Management (art. 44753081545619) defines a Courier role that 'Provides access to the Courier App (CAS), allowing users to deliver orders on behalf of your organization' (a phone number is required so the courier can receive SMS messages) and a Dispatcher role: 'Any existing user can be assigned the Dispatcher role, granting them the necessary permissions to manage couriers and send them to fulfill orders.' Shortfall: those two role descriptions are the only documentation of the Courier App in the 292-article help centre - there is no article for it, no documented driver clock-in/out (the Time Card app covers staff shifts, not courier runs), no in-store / on-run / returning assignment state, and no per-driver run-history or driver-performance report in Analytics. Couriers & Logistics in Order Manager (art. 27589269188499) still points fleet management at partners - 'Fleet management integrations like Shipday and Nash can help you manage an existing fleet, automate dispatch and efficiently deploy your drivers' - and within Order Manager an in-house delivery is only a per-order 'Self-deliver' status. https://helpdesk.tryotter.com/hc/en-us/articles/44753081545619-User-Management · retrieved 2026-08-08

B
Partial

delivery-dispatch-board

Undispatched work is surfaced and dispatched from the order feed rather than a dedicated screen: 'If (1) an order is a restaurant delivery order and (2) you have a 3PL connected with Otter, a courier needed label will be tagged to the order in the order feed', Settings > Orders > Couriers & Logistics sets Assignment mode to Automatic or Manual, automatic mode requests a quote and then a courier on accept, manual mode exposes a [Request courier] button on the order details page, and the assigned courier appears in the order's Courier tab. Shortfalls: no driver-availability display anywhere - and note this is not because Otter has no drivers of its own, since User Management (art. 44753081545619) defines a Courier role with access to Otter's Courier App (CAS) and a Dispatcher role with permission to 'manage couriers and send them to fulfill orders'; it is that no article in the 292-article English help centre documents any screen that lists couriers with their status. There is also no multi-order run batching: each order is quoted, requested and cancelled individually, and a failure produces 'Failed to find courier' with only Retry or Self-deliver. https://helpdesk.tryotter.com/hc/en-us/articles/27589269188499-Couriers-Logistics-in-Order-Manager · retrieved 2026-08-08 adversarially verified

B
Unknown

delivery-route-map differentiator

Read Couriers & Logistics in Order Manager (art. 27589269188499) in full, plus Orders Settings in Order Manager, How to Use Order Manager, Order Manager Glossary and How do I contact a driver? (art. 360052115474). Otter's documented delivery surface is: courier-needed tagging, Automatic or Manual assignment mode, quote and courier request against Relay / Shipday / DoorDash Drive / Nash / ChowCall, cancellation handling, a Courier tab holding the assigned courier's contact details, and a customer tracking URL. No map view, geocoded stop list, multi-stop run or route sequencing appears in any of the 292 help-centre articles - the words route and map do not occur in a dispatch sense. Left unknown rather than no because multi-stop routing is precisely the function Otter delegates to Shipday and Nash, and no Otter page states whether its own order or courier view renders a map, so there is no affirmative statement of absence to cite.

F
Unknown

delivery-driver-tracking differentiator

Correction to the earlier rationale: Otter does publish a driver-facing app. User Management (art. 44753081545619) defines a Courier role that 'Provides access to the Courier App (CAS), allowing users to deliver orders on behalf of your organization'. But that is the single mention of CAS in the whole 292-article English help centre - there is no CAS article, and nothing states whether the app reports position, so the first half of the claim is undocumented rather than absent. The second half is undocumented too: the only geolocation Otter is shown to handle comes the other way, from the courier provider inward - the public API's DeliveryStatusUpdateRequest carries courier, a Location of latitude/longitude and a deliveryTrackingUrl, written by an integration holding the delivery.provider scope - and the only tracking surface named for a human is the customer's, 'Otter lets you share a URL with your customers so they can see the progress of their order in real time' (art. 27589269188499). No article says whether an operator's order or courier view plots a live position. Unresolved in both directions.

F
No

delivery-zones-polygon differentiator

Online Ordering Settings enumerates the delivery-area control completely: 'Select Type for how you'd like the delivery area to be set from Driving Distance or Straight Line Distance', where driving distance 'calculates distance by travel miles while driving' and straight-line 'measures distance between two points in a straight line on a flat map', followed by 'Enter Distance allowance for delivery range in Miles or Kilometers'. Those two radius types are the entire configurable surface - no polygon drawing, no boundary or ZIP import, and no drive-time isochrone (driving distance is measured in miles, not minutes). Fees are banded by the same distance metric ('For deliveries within 0-2 miles, the delivery fee is $2.00 and deliveries within 2-4 miles have a delivery fee of $4.00'), and Couriers & Logistics confirms the boundary is a radius: 'be sure the eater's address is within your set delivery radius with your courier'. https://helpdesk.tryotter.com/hc/en-us/articles/21748907448467-Online-Ordering-Settings · retrieved 2026-08-08

B
Partial

delivery-zone-pricing

Direct-order delivery supports distance-banded fees ('For deliveries within 0-2 miles, the delivery fee is $2.00 and deliveries within 2-4 miles have a delivery fee of $4.00'), driving-distance or straight-line area definition, and delivery-fee-specific tax. Shortfall: a band carries only a fee - the order minimum and the estimated delivery-time range are single storefront-level settings, not per-zone, and areas are distance bands rather than drawn zones. https://helpdesk.tryotter.com/hc/en-us/articles/21748907448467-Online-Ordering-Settings · retrieved 2026-08-03

B
Partial

delivery-address-validation

For Direct Orders the guest's address is measured against the store's delivery area at order time - the area is set as Driving Distance or Straight Line Distance with a mileage allowance, and delivery fee bands are computed from that same distance - which requires the address to be geocoded and gates out-of-range addresses before checkout. Shortfalls: no address verification, autocomplete or correction step is documented anywhere in the 292-article help centre, and orders rung in on the POS are not checked at all. Couriers & Logistics warns the operator to do it manually: 'If manually ringing in an order for delivery, be sure the eater's address is within your set delivery radius with your courier. If the address is outside of the courier radius, a courier will not be assigned to that order' - so an out-of-zone POS order is accepted and fails later at dispatch rather than being flagged at entry. https://helpdesk.tryotter.com/hc/en-us/articles/21748907448467-Online-Ordering-Settings · retrieved 2026-08-08

B
Unknown

delivery-driver-comp differentiator

Withdrawing the earlier premise: Otter does have a driver entity - User Management (art. 44753081545619) defines a Courier role with access to the Courier App (CAS) and a Dispatcher role that can 'manage couriers and send them to fulfill orders'. What is still missing is any compensation surface attached to it. The pay-adjacent reporting in the 292-article English help centre was re-checked - Tip Reporting, Staff Timecard Reporting, Otter POS Employee Performance, the Time Card app and the Homebase integration's Labor Cost Report - and all are staff clock-in/shift and tip records with no mileage, no per-delivery reimbursement and no run dimension; payroll export runs through the Homebase integration rather than an Otter labor module. The public API is consistent: its Order Report field list is transaction-level (fees, tips, commission, payout) with no driver or run field, and its 75 paths include no labor or employee endpoint. No Otter page states that per-delivery driver compensation cannot be tracked, and the Courier App itself is documented in one sentence, so this is genuinely undetermined rather than a documented absence.

F
Unknown

delivery-cash-reconcile

Otter's documented cash handling is till-based rather than person-based: Cash Management, Assigning a Cash Drawer, Opening and Closing Cash Drawers, Cash Drawer Transfers and the Cash Management Report track inflows and outflows across multiple tills for Manager and Supervisor users on the POS and handheld, and Close of Day Workflow and End of Day Reporting settle the drawer; the handheld article directs cash to be tendered at the terminal so the drawer opens. None of these carries a driver dimension, an assigned-orders count or a tips-owed figure per person. Correcting the earlier reasoning: this is not because Otter lacks a driver entity - User Management (art. 44753081545619) defines a Courier role with access to the Courier App (CAS) and a Dispatcher role - it is that the Courier App is documented in a single sentence and no article in the 292-article English help centre addresses a driver bank or settle-up in either direction. Undetermined, not a documented absence.

F
Yes

delivery-daas-dispatch

The handoff is configured and driven inside Otter, and the quote and status come back onto the order. Settings > Orders > Couriers & Logistics carries an Assignment mode of Automatic or Manual courier. Automatic: 'When a courier needed order is accepted, Otter automatically requests a delivery quote from the connected delivery service provider', and 'Once Otter receives a quote from the delivery service provider, a courier request is automatically sent'. Manual: a [Request courier] button opens a modal where 'Otter starts to request quotes from the delivery service providers' and the operator can 'select a quote from the delivery providers and click Request' - i.e. quote comparison inside Otter. On success 'you can view more details in the order detail's Courier tab'; failures raise 'Failed to find delivery' or 'Failed to find courier' with Retry or Self-deliver, cancellation from either side re-tags the order 'Courier needed', and a customer tracking URL can be shared. Supported providers are Relay, Shipday, DoorDash Drive, Nash and ChowCall; the operator holds the courier account, which is inherent to any DaaS marketplace handoff rather than a shortfall against this claim. Note the earlier note's assertion that no first-party dispatch surface is documented was drawn from marketing pages only and is withdrawn. https://helpdesk.tryotter.com/hc/en-us/articles/27589269188499-Couriers-Logistics-in-Order-Manager · retrieved 2026-08-08 adversarially verified

B
Unknown

delivery-daas-fallback differentiator

Couriers & Logistics in Order Manager (art. 27589269188499) offers a binary setting - 'Under the Assignment mode, select either Automatic courier or Manual courier' - and documents the failure path as operator-driven: a failed quote or courier request yields 'Retry' or 'Self-deliver' and re-tags the order 'Courier needed'. No wait threshold, zone rule or automatic hand-off between providers appears there. But that article is not the whole dispatch surface: User Management (art. 44753081545619) shows Otter runs its own couriers through a Courier App (CAS) and a Dispatcher role that can 'manage couriers and send them to fulfill orders', and no article documents what the dispatcher can or cannot automate - so overflow from an in-house courier to a DaaS provider is undocumented rather than shown absent. The Public API's delivery endpoints (/v1/delivery/{deliveryReferenceId}/quotes, /accept, /cancel, /status) likewise describe a provider integration, not a rule engine.

F
Yes

delivery-3p-direct-integration differentiator

Otter is itself the integrator, and the help centre documents a first-party connection flow per marketplace rather than a resold middleware hop. DoorDash: 'The DoorDash self-serve onboarding feature can seamlessly connect your DoorDash Merchant account with Otter', requiring an Otter Dashboard login, a DoorDash Merchant Portal login and 'a valid, active DoorDash store ID' (US, Canada and Australia). Uber Eats (art. 28883991347731): 'Uber Eats x Otter integration takes all orders made through the Uber Eats delivery-app and sends them to a single Otter device', connected in two steps - 'Connecting your integration within the Otter Dashboard' then 'Activating your integration via Chatbot or Otter Dashboard'. Grubhub (art. 4403016352787): the same, connected from Otter Dashboard > Profile > Settings using the merchant's Grubhub admin login. Enterprise multi-location onboarding grants Otter portal access per store 'across DoorDash, Uber Eats, and Grubhub' (art. 53466996694419). Evidence repointed from tryotter.com/integrations, which is a marketing directory and cannot carry a differentiator yes. https://helpdesk.tryotter.com/hc/en-us/articles/4403016409619-DoorDash-Integration-Guide · retrieved 2026-08-08 adversarially verified

B
Yes

delivery-3p-injection

Documented rather than asserted. Web Order Management Overview lists as a capability 'Automatically accept orders and print tickets to reduce missed orders', and Order Manager's own article (art. 28933440344979) describes the mechanism: 'Automatically accept multiple delivery platform's incoming orders to avoid missing any sales. Turn on the Auto-Accept settings in the Integrations tab for all your integrated delivery platforms', with per-channel toggles and bulk editing, plus a 'POS Injection Status' order filter that 'Flags if an order has been sent to the POS or not' and a per-channel 'Turn on/off the POS injection' setting in Third-Party POS Integration Settings (art. 36895212686483). Otter-provided printers 'are pre-configured to automatically print orders once connected to power and internet'. So a marketplace order lands in the order feed, is accepted without a human, injects to the POS as a tracked state and fires to the printer; if auto-accept is off the operator must accept within the marketplace's window ('usually within 3 minutes, or else the order will be canceled'), which is a configuration choice, not a re-keying requirement. https://helpdesk.tryotter.com/hc/en-us/articles/12158544475283-Web-Order-Management-Overview · retrieved 2026-08-08 adversarially verified

B
Yes

delivery-menu-push

Menu Manager 'gives you the ability to manage your restaurant's menu for every digital platform from one place... without having to log in and edit from each individual service your menu is offered on', and the documented model is explicitly one-way from Otter: 'Menu Published to Platforms: Otter publishes menu(s) to all connected and selected platforms from one source of truth (Otter)', covering Otter POS, third-party POS and delivery partners. Items, modifiers and modifier groups, menu hours and menu photos are all managed there (photos are auto-enhanced), and menu hours are 'Synchronized... across connected platforms'. Channel-specific markup is documented as a first-class operation - the article's worked example is 'increase the price for delivery platforms at all of my locations' via the Channels filter, bulk [$Update prices], then 'Change price > By Channel' - and Menu Item Pricing (art. 36253606306195) enumerates the pricing dimensions as fulfillment option, delivery partner, Otter channel, fulfillment-per-channel and location. Evidence repointed from the marketing page previously cited. https://helpdesk.tryotter.com/hc/en-us/articles/12157491203347-Menu-Management-Introduction · retrieved 2026-08-08 adversarially verified

B
Yes

delivery-86-sync

'Item availability changes automatically go live across all connected channels once updated', and 86ing can be done from the Otter Dashboard, Otter POS, Order Manager or the Otter Go App. Three states are enumerated: Available - 'If an item was previously Unavailable, it will become available on all connected platforms after selecting Available'; Unavailable Today - unavailable for the remainder of the business day, then 'At midnight, the item will show as Available again, and eaters will be able to order this item from all connected platforms'; and Unavailable Indefinitely, which holds until manually restored without deleting the item. Per-channel control is separate (channel availability). Shortfall against nothing in the claim, but worth recording: restoration is by clock or by hand, not by an inventory count. The previous note's assertion that Otter is certified against DPIP item-86ing requirements is not stated on the marketing page it cited and is withdrawn. https://helpdesk.tryotter.com/hc/en-us/articles/5159002040083-Item-Availability-86-ing · retrieved 2026-08-08 adversarially verified

B
Yes

delivery-store-pause

Re-sourced from the tryotter.com/products/app marketing page to the help centre, which overturns the earlier shortfall. Pause/Unpause a Storefront (art. 22205073836051, updated 2026-07-30): 'Pausing a storefront allows you to temporarily or schedule your storefront to appear unavailable on select platforms - to pause orders being placed', and it can be done from Otter POS, the Otter Tablet, Order Manager (web) or the Otter Go app. The flow is per-marketplace - check the box next to each listed platform, or [Pause all] - and step 3 is 'Select time range for pause' (Order Manager wording: 'Select the time period of pause'), followed by a pause reason. So the earlier note's 'Timed auto-reactivation is not documented' was wrong. The Public API corroborates the mechanism: PauseRequest carries 'start - Start time for the pause. Executed immediately if not set' and 'end - Time when the pause should expire. If not provided, uses the default which is 4 AM at store timezone', with POST /manager/storefront/v1/storefront/pause and a matching unpause plus request-status endpoints (developer-guides.tryotter.com/api-reference/). Caveat, not a shortfall on this claim: 'If you are located within the LATAM region, please contact Otter Support to pause or unpause orders for your storefronts', and Special Hours is recommended instead for long planned closures. https://helpdesk.tryotter.com/hc/en-us/articles/22205073836051-Pause-Unpause-a-Storefront · retrieved 2026-08-08

B
Yes

delivery-3p-reconciliation differentiator

Help-centre Reconciliation guide (Analytics app): identifies "if there are orders that didn't get paid for from the OFO or if there are any discrepancies in the payout amount for an order". Difference Summary reports Unpaid Orders, Partially Paid Orders and Pending Orders, with per-order columns Order ID, Platform, Payment Status, cancellation reason, Revenue, Calculated Payment, Difference amount, Actual Payment, Brand. Transaction Summary itemizes Commission, Delivery Commission, Processing Fee, Discounts, Error Charges, Adjustments ("generally due to disputes or order issues"), Tax Withheld and Payout per transaction. Filters by month and brand/store; export button on every view. Payout data sourced from the delivery partners, landing 3-4 days after the partner's payout. Promotion/marketing spend appears as operator-initiated Discounts rather than a separate marketing-fee column. https://helpdesk.tryotter.com/hc/en-us/articles/18163188728339-Financials-Reconciliation · retrieved 2026-08-06

B
Yes

delivery-injection-error-visibility differentiator

Live Alerts documentation lists the alertable events by name, including "A third-party POS injection fails to inject an order", "Delivery App integration is disconnected and can be repaired within the Otter Dashboard" (with an [Update Credentials] button in the alert email and a Disconnect Channels alert in the dashboard) and "There are 3+ consecutive canceled or missed orders on any connected delivery channel", plus storefront paused/offline and item-unavailable alerts. Delivery is by SMS, email, WhatsApp or the Otter iOS app; recipients and brand/location scope are configurable under Settings > Notifications > Live Alerts. The separate Repair Alerts feature shows per-channel connection status for 15 named delivery providers with error types (invalid credentials, 2FA/MFA, third-party blocked, invalid store configuration, account capability issues) and self-repair prompts. Docs state Live Alerts is available only on paid Otter plans. https://helpdesk.tryotter.com/hc/en-us/articles/19456763447827-Live-Alerts · retrieved 2026-08-06

B
Partial

delivery-tracking-page

Guest-facing tracking exists: 'Can I share order tracking info with my customers? Yes, Otter lets you share a URL with your customers so they can see the progress of their order in real time' (Couriers & Logistics in Order Manager, art. 27589269188499), and Otter Catering (art. 33983809245203) sends email and text confirmations plus a reminder one hour before the scheduled pickup or delivery, with guests able to 'track their order through a provided link within these notifications'. Shortfall, and it is a single one: no article in the 292-article English help centre states that the tracking page sits on the restaurant's own domain or carries its branding - Otter's branding controls (Branded Websites, Online Ordering Logo & Banner, How to Update Storefront Logo) all cover the ordering storefront, not a tracking page - and nothing states what order or driver state drives it. CORRECTION: the earlier note added a second shortfall, that the state must be the 3PL's 'since Otter holds no driver record of its own'. That was false and is withdrawn. User Management (art. 44753081545619) documents a Courier Role - 'Provides access to the Courier App (CAS), allowing users to deliver orders on behalf of your organization. Ensure that a phone number is added to this user role so the courier can receive SMS messages' - and a Dispatcher Role - 'Any existing user can be assigned the Dispatcher role, granting them the necessary permissions to manage couriers and send them to fulfill orders' - and the Couriers article offers 'Self-deliver' at every quote or courier failure and an Assignment mode of Automatic or Manual courier. Otter therefore does hold an in-house courier entity; what remains undocumented is the tracking page's branding and domain, which is enough to hold this at partial. https://helpdesk.tryotter.com/hc/en-us/articles/27589269188499-Couriers-Logistics-in-Order-Manager · retrieved 2026-08-08

B
No

delivery-promise-time differentiator

The promise is operator-set on both halves. Delivery duration is typed in once per store: after choosing the delivery area type and distance, 'set the Estimated delivery time range in minutes' (Online Ordering Settings, art. 21748907448467). Prep time is a per-delivery-platform dropdown the operator maintains: 'If you are on Auto-Accept, every order will follow the prep time you have set for each delivery partner. If you are on Manual-Accept, you will have the option to set your prep time on a per order basis when it comes in.' The only automatic component is fixed padding - 'ASAP orders will typically honor the default prep time you set, with an additional buffer of 2-5 minutes to account for any fluctuations in timing' (Scheduled vs ASAP Orders: Prep Time Adjustments) - and any change is a human action that raises a Prep Time Changed live alert (Live Alerts). No kitchen-load, order-queue, driver-availability or zone drive-time input feeds the quote; where a quote does move algorithmically it is the marketplace's own algorithm, which the same article warns 'might not always' honour Otter's suggested prep time. https://helpdesk.tryotter.com/hc/en-us/articles/360052111214-How-do-I-update-my-prep-times · retrieved 2026-08-08

B
Partial

delivery-offline-behavior

Part of the question is answered explicitly. Otter POS Using Offline Mode states that while the device is offline 'Online orders cannot be accepted on Otter when a device is disconnected from the internet. This includes both auto-accepted orders and manually accepted orders. Online orders that are not accepted can lead to the temporary pause of a storefront by your online order provider', and that a storefront can be unpaused from the POS once back online; meanwhile cash and credit card checks rung in on the terminal continue and upload on reconnect, and handhelds keep taking cards in both card-reader and mobile-POS modes. Shortfall: the delivery-specific half is undocumented. CORRECTION to the earlier note, which dismissed that half as inapplicable 'since Otter holds no driver records' - it does: User Management (art. 44753081545619) documents a Courier Role with the Courier App (CAS) and a Dispatcher Role to 'manage couriers and send them to fulfill orders', and Couriers & Logistics (art. 27589269188499) documents automatic and manual courier assignment, per-order quote requests and a Self-deliver path. No article in the 292-article English help centre states whether courier quoting or assignment works during an outage (both are calls to a 3PL), whether the Courier App or the Dispatcher view functions offline, what becomes of an already-assigned courier's state, or how a cash-on-delivery order or courier settlement is handled. Partial on the documented POS half, silent on the delivery half. https://helpdesk.tryotter.com/hc/en-us/articles/26865574404883-Otter-POS-Using-Offline-Mode · retrieved 2026-08-08

B

Digital ordering & guest-facing channels

Yes

digital-first-party-web

Re-confirmed verbatim 2026-08-02: "No hidden fees, no commissions, just pure profit on every order." Caveat carried forward: every bundle also reads "+ per order transaction fee" with no figure published anywhere, so "0% commission" is a channel-commission claim, not an all-in cost claim. https://tryotter.com/products/online-ordering · retrieved 2026-08-02 adversarially verified

C
Yes

digital-menu-single-source

Re-confirmed verbatim 2026-08-02: "Make menu changes once and send them to all your delivery apps, kiosk, and POS." https://tryotter.com/products/menu-management · retrieved 2026-08-02

C
No

digital-native-app differentiator

Digital surface is a website builder plus web ordering; the only Otter mobile apps in the App Store/Play Store are the operator-facing Otter Go app, not a branded guest app. https://tryotter.com/products/app · retrieved 2026-08-01

C
Partial

digital-account-saved-payment

DOWNGRADE (2026-08-02 re-score). The 2026-08-01 verifier moved this from unknown to yes while writing "Card-on-file specifically is not stated, so treat as partial-to-yes... I would accept partial" - the note contradicted the value it set. Shortfall named: the Online Ordering page documents guest accounts and repeat-order convenience, but no stored card-on-file, no vaulted payment token and no saved-payment management surface. Guest identity only. https://tryotter.com/products/online-ordering · retrieved 2026-08-02 adversarially verified

C
Partial

digital-upsell-engine differentiator

"Smart upsells" with item suggestions on kiosk and checkout suggestions on POS. No attach-rate reporting documented. https://tryotter.com/products/kiosk · retrieved 2026-08-01

D
Partial

digital-scheduled-pacing

Scheduled orders exist (catering up to 6 months; KDS scheduled queue) and prep times are configurable, but per-slot capacity limits that close slots are not documented. https://tryotter.com/products/catering · retrieved 2026-08-01

C
Yes

digital-fulfillment-modes

Re-confirmed 2026-08-02: the Online Ordering page lists pickup, delivery, curbside pickup and dine-in as supported fulfillment modes. Curbside arrival check-in specifically is still not documented. https://tryotter.com/products/online-ordering · retrieved 2026-08-02 adversarially verified

C
Yes

digital-qr-table

QR Ordering product from $30/mo: scan to order, table number input, open tabs, split payment, card/cash/Apple Pay/Google Pay, syncs to POS and kitchen. https://tryotter.com/products/digital-dine-in · retrieved 2026-08-01

C
Partial

digital-kiosk differentiator

Re-confirmed 2026-08-02 with full pricing: Kiosk Pro 27" ($289/mo rent, $5,500 buy), Kiosk 21.5" ($189/mo rent, $3,000 buy), Kiosk Mini 15.6" ($100/mo rent, $1,000 buy), all $99/mo per device software, on the same managed menu with integrated contactless payment and POS/KDS flow-through. Shortfall: no ADA, WCAG or VPAT accessibility conformance statement appears anywhere on the page. https://tryotter.com/products/kiosk · retrieved 2026-08-02

C
Unknown

digital-group-ordering

Re-checked 2026-08-08 against the full 292-article helpdesk.tryotter.com dump (Zendesk Help Center API; the rendered /hc pages 403 bots). The QR Dine-in Settings article (art. 15024165822483) enumerates the whole dine-in configurable surface - payment methods, Open Tabs, Split Payments, service fee %, table-number tracking - with no group-order mode. Open Tabs (art. 11716604717331) is a single diner adding items to their own tab; Split Payments (art. 11910482299155) divides a completed bill across up to a configured maximum number of splits and exposes only a minimum order amount, not a per-person spend cap. 'Using your Online Ordering URL' (art. 38446541679379) covers direct links, QR codes and business listings, never a shareable multi-participant cart. No article in the corpus describes multiple participants building one cart from one link, so the claim as worded is undocumented rather than positively refuted.

F
Yes

digital-catering-portal differentiator

Catering app documentation: separate catering menu with a per-attendee price shown to the guest; scheduling up to 6 months ahead; guest pays a deposit online, then receives an invoice for the balance days before the event. Settings are configured per organization, brand or location with overrides, and the documented fields are Lead Time (days or hours of prep needed), Advance Ordering (days ahead an order may be placed), Basket Size Minimum (dollar floor), Guest Count (allowed range), Require Deposit (percentage, minimum dollar amount, days after invoice creation the deposit is due), Invoice Due Date and Invoice Reminders (days before the scheduled order), tips presets, pickup/delivery service fees, delivery radius by driving or straight-line distance, and delivery fee tiers by distance. Orders land in the Order Manager Scheduled tab and fire automatically at scheduled time minus prep time; calendar or list overview of orders and payment status. $35/month add-on to Direct Orders. Payment is card / Apple Pay / Google Pay online or in person - no documented ACH or house-account term billing. https://helpdesk.tryotter.com/hc/en-us/articles/33983809245203-Otter-Catering · retrieved 2026-08-06

B
No

digital-voice-ai-phone differentiator

AUDIT RE-GROUND (2026-08-05): upheld, with the workaround now documented from the vendor's own docs. The Manual Orders feature exists precisely for 'orders... that customers call in for or submit through other non-integrated avenues (Phone Calls, Text Messages, etc.)', where 'you and your staff will need to manually input the order details' — staff transcription is the documented phone-order path. Otter's own voice-ordering blog guide pitches no Otter voice product (its CTA points to Otter POS), the integrations directory's eight categories name no voice-AI partner, and a 2026-08-05 news search surfaced no launch or partnership. https://helpdesk.tryotter.com/hc/en-us/articles/4402306062867 · retrieved 2026-08-05 adversarially verified

B
No

digital-drivethru-ai

AUDIT RE-GROUND (2026-08-05): the prior rationale's 'no drive-thru flow appears in the product matrix' is false — Drive Thru is one of five documented POS fulfillment modes (Dine-in, To-Go, Drive Thru, Delivery, Pickup), with ticket routing to a drive-thru printer (Ticket Settings, art. 40190252328595). The no stands on what that documentation enumerates: the drive-thru flow is a staff member selecting the Drive Thru fulfillment icon at the terminal and optionally keying customer name/phone/email/notes; no voice AI, lane audio hardware, order recognition or escalation-to-human component appears in any of the 38 drive-thru-matching help-centre articles. https://helpdesk.tryotter.com/hc/en-us/articles/27241836874515 · retrieved 2026-08-05 adversarially verified

B
No

digital-sms-ordering

AUDIT RE-GROUND (2026-08-05): upheld, with the workaround now documented from the vendor's own docs: text-message orders are enumerated among the 'non-integrated avenues (Phone Calls, Text Messages, etc.)' for which 'you and your staff will need to manually input the order details' via Manual Orders — i.e. no text-to-order lands in the POS by itself. Otter Marketing's SMS is campaign broadcast (promotions), not conversational order capture, and the documented online-ordering channel set is web, kiosk and QR. https://helpdesk.tryotter.com/hc/en-us/articles/4402306062867 · retrieved 2026-08-05 adversarially verified

B
Yes

digital-google-order differentiator

'Order with Google Integration Guide' (read 2026-08-04 via the help centre's public Zendesk API; HTML front-end 403s): 'allowing customers to order directly from Google maps, Google pay, Assistant and more… Now available for pickup and delivery… sending customers directly to you, without any commissions or fees.' Setup requires the restaurant's Google Business Profile link, Stripe API keys and delivery details, submitted on a form to Otter rather than self-serve. Documented limitation: 'Google Food Ordering only supports a single menu per location' — multi-menu publishes error out. Whether the listing can be marked 'Preferred by Business' is not addressed. https://helpdesk.tryotter.com/hc/en-us/articles/4408288435603-Order-with-Google-Integration-Guide · retrieved 2026-08-04

B
Yes

digital-apple-business-connect

The help-centre article 'Using your Online Ordering URL' has a dedicated Apple Maps section: create the location in Apple Business Connect, then 'Select the arrow next to [Actions] and then click [Add]' > 'Select [Add an Action Link] next to any active Actions' > 'Select the [Order] action from the Action menu, add your Otter Online Ordering website link, and then click [Add]'. It also documents adding the Otter ordering link to the plain website field and to Google Business and Yelp listings. The action points at Otter's own first-party commission-free ordering site (a custom tryotter.com URL). Configuration is done by the operator inside Apple Business Connect - Otter publishes no automated ABC feed - but the ordering placement itself is documented and supported. https://helpdesk.tryotter.com/hc/en-us/articles/38446541679379-Using-your-Online-Ordering-URL · retrieved 2026-08-08

B
Partial

digital-loyalty-attach

Loyalty enrolls via POS and mobile QR with unified guest profiles and cross-location tracking; enrollment/accrual inside the first-party web ordering checkout is not explicitly documented. https://tryotter.com/products/loyalty · retrieved 2026-08-01

D
No

digital-subscriptions

Otter's guest-retention stack is enumerated across the help centre's Loyalty, Marketing and Online Ordering sections: a free points program supporting only amount-based and purchase-based earning with four discount redemption types, plus SMS campaigns, discounts/promotions and gift cards. No recurring guest billing, paid tier, fee-waiver membership or per-period entitlement appears in any of them, and 'Subscriptions' in Otter (art. 35768671669907) refers exclusively to the merchant's own SaaS billing under the Billing section. https://helpdesk.tryotter.com/hc/en-us/articles/31727842220819-Otter-Loyalty-Introduction · retrieved 2026-08-03

B
Partial

digital-promo-parity

Loyalty rewards are define-once and honored across channels: one program's reward types (points-to-cash, order discount, item discount, BOGO) redeem on Otter POS, in the Kiosk checkout flow and on the direct ordering website (art. 40678275262611). Discounts are not. The Discounts page forks at creation - '[Create discount] and select [Create POS discount]' (art. 27238748303763) versus '[Create Direct Orders discount]' - and the Direct Orders article's own FAQ says of those discounts 'No - these discounts will only apply to direct online orders. You can create campaigns for delivery platforms within the Marketing app > Delivery App Marketing tab.' Channel eligibility controls do exist (a 'Channel' filter on the discount list, per-storefront and per-location selection, availability windows), and no discount application on the Kiosk is documented at all. Named shortfall: a discount must be authored once per channel family, so cross-channel parity is not automatic. https://helpdesk.tryotter.com/hc/en-us/articles/43019655616019-Online-Ordering-Discounts-Promotions · retrieved 2026-08-08

B
Unknown

digital-guest-data-ownership differentiator

Re-checked 2026-08-08. The two documented surfaces holding first-party guest records are the Guest Directory (art. 40222270130963: customer contact information, loyalty status and points, order history, marketing-subscribed status) and Customer Reports (art. 25246908493587, whose column list includes Name, Email and Phone number - both 'Shown only if marketing is allowed for customer' - plus Marketing opt-in, last order date, total orders and total spend). Neither article documents an export control for that table, and neither states who owns the records; the export buttons documented elsewhere in the corpus belong to Loyalty Reporting, Sales Summary, Product Mix, Void Transactions and the Staff timecard report. https://tryotter.com/terms (checked 2026-08-04) speaks only to the Technology and to aggregated non-personally-identifiable data being 'solely owned by Otter'. So neither operator ownership nor a fee-free bulk export of guest PII is documented either way in the 292-article helpdesk corpus or the public terms.

F
Partial

digital-checkout-pci-sca

Checkout is vendor-hosted end to end: online ordering runs on an Otter-generated tryotter.com storefront, and the Stripe guide states 'Stripe is a third-party payment processor that handles all the heavy lifting of securely processing payments' and 'When a customer pays for any order using Otter POS, the Online Ordering website, or Order with Google, those funds are paid directly to Stripe.' A Stripe connection is mandatory for Otter POS, Online Ordering and Order with Google before any order can be processed, so card data never touches an operator-controlled page. Named shortfall: the 292-article help centre contains no occurrence of 'PCI', '3D Secure', '3DS' or SCA, and no compliance attestation, script-integrity statement or trust centre is published on tryotter.com - the compliance half of the claim is entirely unevidenced. https://helpdesk.tryotter.com/hc/en-us/articles/26643285732243-Guide-to-Connecting-Stripe · retrieved 2026-08-08

B
Partial

digital-surcharge-transparency differentiator

Kiosk FAQ poses "Can the service fee be passed on to guests?" implying a configurable guest-borne fee; disclosure text and prohibited-jurisdiction handling are not documented. https://tryotter.com/products/kiosk · retrieved 2026-08-01

D

Guest data, loyalty & marketing

Partial

guest-loyalty-unified-profile

"Unified guest profiles" with loyalty status and transaction history across in-store and mobile enrollment. Dedup/merge behavior on phone or email match is not documented. https://tryotter.com/products/loyalty · retrieved 2026-08-01

D
Partial

guest-loyalty-thirdparty-identity-attach differentiator

Otter Loyalty Points documents a retroactive attach path that explicitly includes marketplace orders: 'After purchase, if a Loyalty profile wasn't added to an order, eaters can scan the QR code on their printed, delivery partner, or online order digital receipt to retroactively claim rewards on that order', and QR codes can be printed on receipts for POS, Kiosk and online orders. Named shortfall: the attach is eater-initiated, not automatic - a DoorDash/Uber Eats/Grubhub order arrives with no native guest profile unless the eater themselves scans the receipt QR, the QR can be claimed only once, and no article documents Otter mapping marketplace customer identity into a profile. The operator-facing tables are scoped to first-party orders: Customer Reports (art. 25246908493587) is titled 'Direct Orders Customer table' and the Guest Directory (art. 40222270130963) is available only with Otter POS, Direct Orders or Loyalty subscriptions. https://helpdesk.tryotter.com/hc/en-us/articles/40678275262611-Otter-Loyalty-Points · retrieved 2026-08-08

B
Yes

guest-loyalty-accrual-models

UPGRADE (2026-08-02 re-score). The 2026-08-01 verifier downgraded this to partial because item-based accrual was not in the retrievable text. It is present today, verbatim: "Reward guests by how much they spend, or for buying specific items", alongside "Define what rewards your guests earn - bucks, stars, points, etc." Two accrual models documented, so the shortfall the partial named no longer holds. https://tryotter.com/products/loyalty · retrieved 2026-08-02 adversarially verified

C
No

guest-loyalty-tiers differentiator

The program builder is documented screen by screen and its options are the whole configurable surface: select brands/locations, name the program, optionally rename the points currency, choose earning type - 'Amount-based' (points per dollar) or 'Purchase-based' (points per order or per specified item/category) - then '[+Create reward]' from an enumerated four: points to cash, order discount, item discount, Buy X Get Y. Steps 1-8 end at '[Publish loyalty program]'. No tier, status level, rolling-window qualification or promotion/demotion rule appears at any step, nor in Otter Loyalty Introduction (art. 31727842220819), Otter Loyalty Points (art. 40678275262611), Loyalty Customer Profiles, Loyalty Insights & Reporting (art. 40680655468435) or the Guest Directory. The word 'tier' appears in the 292-article corpus only for subscription plans, GPO rebates and partner programs. https://helpdesk.tryotter.com/hc/en-us/articles/42994188214931-Creating-a-Loyalty-Program · retrieved 2026-08-08

B
No

guest-loyalty-offline-behavior differentiator

'Otter POS Using Offline Mode' is the vendor's dedicated treatment of connectivity loss. It lists the key features (credit-card and cash transactions continue, orders queue with a cloud icon and 'will be automatically processed when you connect to a network again') and then enumerates the limitations under 'What are the limitations of Offline Mode?' - online orders cannot be accepted, new printers and card readers cannot be paired, wifi/ethernet printers and station tickets do not print. Loyalty lookup, accrual and redemption appear nowhere in either list, and none of the six loyalty articles (arts. 31727842220819, 42994188214931, 40678275262611, 40644257640083, 40680655468435, 40183256731155) mentions offline, network or connectivity. The claim is that the behaviour is documented explicitly; across the whole 292-article corpus it is not, so this is a documented-absence finding, not a statement that loyalty fails offline. https://helpdesk.tryotter.com/hc/en-us/articles/26865574404883-Otter-POS-Using-Offline-Mode · retrieved 2026-08-08

B
No

guest-loyalty-offer-stacking-rules differentiator

The Direct Orders discount article states under 'Applying Multiple Discounts at Checkout': 'Eaters will only be able to apply 1 discount code per order at checkout.' That is a fixed platform behaviour, not a configurable rule. The two discount builders enumerate their entire settings surface and contain no stacking, exclusivity or order-of-application control: Direct Orders offers name, storefronts, type (item/order/BOGO), fixed or percent amount, minimum basket amount, maximum discount amount, limit-one-redemption-per-customer, discount code, banner distribution and date range; Otter POS Discounts (art. 27238748303763) offers discount settings, availability settings, and exactly three advanced settings - Minimum Check Size, Auto-Apply and Require Manager's Approval. Loyalty redemption is likewise governed by fixed platform rules rather than configuration: 'there is no minimum amount of earned points needed to redeem' and 'no maximum limit on the amount of points that can be redeemed at one time' (art. 40678275262611). https://helpdesk.tryotter.com/hc/en-us/articles/43019655616019-Online-Ordering-Discounts-Promotions · retrieved 2026-08-08

B
Partial

guest-loyalty-targeted-offers differentiator

Offers are issued to a behaviourally defined audience rather than only broadcast: creating an SMS campaign requires selecting an audience type, and the article tabulates seven - Recent Guests (ordered last week), Monthly Orderers (at least once a month for three months), Weekly Orderers (at least once a week for four weeks), Lapsed Guests (90 days since last order), Loyalty Members, Active Guests (ordered in the past 90 days) and All Guests - with an existing or new discount attached at step 5. Named shortfall: the audiences are a fixed list the operator cannot extend. The article's own FAQ answers 'No - Currently, there isn't a feature to create your own audience type/customer segment to send an SMS Campaign to. The audience types to choose from are pre-set.' There is no rule over spend or items purchased, and the same seven-way segmentation is all the Guest Directory offers as a filter. https://helpdesk.tryotter.com/hc/en-us/articles/52488273009427-First-Party-SMS-Marketing · retrieved 2026-08-08

B
Partial

guest-loyalty-rfm-segmentation differentiator

Lifecycle segments are computed for the operator with no query building: the Guest Directory offers views for All guests, Loyalty Members, 'Recent guests: Customers who have placed an order within the last week', 'Lapsed guests: Customers who haven't placed an order within 90 days' and 'Active guests: Customers who have placed an order within the last 90 days'. Customer Reports (art. 25246908493587) exposes the same groups as All Diners / Recent / Lapsed / Active, and SMS Marketing adds frequency segments (Monthly Orderers, Weekly Orderers). Named shortfall: the monetary axis is missing from the segmentation - Total Spend and Average basket size exist only as sortable columns in Customer Reports, never as a derived segment, and there is no VIP, new-guest or at-risk score and no way to define one (SMS Marketing FAQ: 'the audience types to choose from are pre-set'). https://helpdesk.tryotter.com/hc/en-us/articles/40222270130963-Guest-Directory-Report · retrieved 2026-08-08

B
Partial

guest-loyalty-lifecycle-automation

The article's first worked example is a win-back: 'Campaign Goal: Send promotion to customers that haven't ordered from your restaurant in the last 90 days', and campaign creation step 7 is 'Select the reoccurrence, date(s), and send time for the SMS campaign to be sent out' - the Loyalty Exclusive example runs 'Every Monday at 11am, June through July'. Combined with the auto-maintained Lapsed Guests audience this gives a standing, recurring lapsed win-back rather than a one-off send. Named shortfalls: the trigger is a schedule over a segment, not a per-guest lifecycle event, so a send fires on the calendar rather than on the guest's 90th day; no birthday field is collected anywhere in the guest profile and no birthday campaign exists; no first-visit thank-you or onboarding automation is documented; and recurrence is bounded by a date range rather than being genuinely always-on. Otter also caps first-party marketing at one message per customer per two weeks (art. 43019655616019). https://helpdesk.tryotter.com/hc/en-us/articles/52488273009427-First-Party-SMS-Marketing · retrieved 2026-08-08

B
Partial

guest-loyalty-native-email-sms differentiator

SMS is native and first-party: 'First Party SMS Marketing is a feature that allows restaurants create, manage, and optimize targeted SMS (mobile text) campaigns', built from Apps > Marketing > First Party Marketing > [Create Campaign] with audience, attached discount, auto-populated message body, recurrence and send time, published from the Otter Dashboard - explicitly framed as 'reducing reliance on third-party platforms'. Transactional loyalty SMS is also sent automatically on point earn/redeem (art. 40678275262611). Named shortfall: there is no email campaign capability - the marketing surface is SMS only, no email composer, template, sender domain or ESP handoff appears in the 292-article help centre, and the only email Otter sends on a schedule is the Scheduled Reports operator digest (art. 22964276979987). The Guest Directory does store an email address per guest, but nothing documents sending to it. https://helpdesk.tryotter.com/hc/en-us/articles/52488273009427-First-Party-SMS-Marketing · retrieved 2026-08-08

B
Partial

guest-loyalty-consent-management

A per-guest 'Marketing subscribed status' is stored and filterable (a 'Marketing Opt-in' filter also exists in Customer Reports, art. 25246908493587); loyalty enrollment is opt-in-prompted at POS and kiosk, and eaters can change notification preferences in their own profile. Shortfall: the documented status is a single boolean, not per-channel consent; no timestamp or source of consent is shown anywhere; and no doc describes honoring revocation received by means other than the eater's self-service preferences. https://helpdesk.tryotter.com/hc/en-us/articles/40222270130963-Guest-Directory-Report · retrieved 2026-08-03

B
Unknown

guest-loyalty-10dlc-registration

Re-checked 2026-08-08 against the full 292-article helpdesk.tryotter.com dump. Otter does send operator-branded SMS: First Party SMS Marketing (art. 52488273009427) publishes campaigns from the Otter Dashboard, and loyalty point notifications are 'automatically enabled - no set up or adjusting settings for your direct orders needed' (art. 40678275262611). Full-text search of the corpus returns zero hits for '10DLC', 'A2P', 'TCPA', 'carrier' (in the messaging sense), 'short code' or 'unsubscribe'. The only consent machinery documented is the marketing opt-in captured at purchase - Customer Reports states email and phone are 'Shown only if marketing is allowed for customer' and 'Only these customers are eligible for marketing' (art. 25246908493587) - plus a platform cap of one marketing message per customer per two weeks (art. 43019655616019). Whether Otter registers brands and campaigns on the operator's behalf, uses its own registered numbers, or leaves registration to the operator is simply not addressed, so the claim is unresolved rather than refuted.

F
Partial

guest-loyalty-campaign-attribution differentiator

Reports top guests, loyalty-attributed sales and average spend, and "which offers resonate". Tying redeemed offers to actual check totals as incremental sales is not documented. https://tryotter.com/products/loyalty · retrieved 2026-08-01

D
Unknown

guest-loyalty-data-export-portability differentiator

Re-checked 2026-08-08 across the 292-article helpdesk corpus. Self-serve CSV export is documented and free on many report tables - Loyalty Reporting Overview and Order Detail ('Click on the arrow icon to export the data as a CSV file', art. 40183256731155), Sales Summary, Product Mix, Void Transactions, Cash Management, Payouts and the Staff timecard report (.xls). But the two surfaces holding the guest list itself document no export: the Guest Directory Report article (art. 40222270130963) walks filtering, searching, guest details, reward history and balance adjustment with no export step and no export FAQ, and Customer Reports (art. 25246908493587) lists its columns - Name, Email, Phone number, Marketing opt-in, last order date, total orders, total spend, discounts, average basket, average tip - without mentioning download. The Loyalty Order Detail export carries a 'Loyalty user ID' rather than contact PII. No customer-facing API exists to substitute (see reporting-public-api). So a bulk export of the full guest list including contact PII is neither documented as available nor documented as withheld.

F
Partial

guest-loyalty-cdp-event-api differentiator

Re-verified 2026-08-10; value and grade unchanged, counts and quotations corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. A subscribable ORDER event stream exists and is documented to grade A: 23 x-webhooks (was 27) covering orderCreate, orderConfirm, orderStatusUpdate, orderUpdate, orderReady, orderHandedOff, orderFulfilled, intentToCancelOrder, deliveryStatusUpdate, posInjectionStateUpdate and store/menu/storefront/delivery operations, with X-HMAC-SHA256 validation required on every inbound request so a subscriber can verify payloads. The previous note listed reportGenerated among the subscribable events; THAT WEBHOOK WAS REMOVED in the rebuild along with fetchCredentials, removeStore and upsertStore, and it is withdrawn here. Guest data is present but only as an attribute of an order: the Order schema still carries a customer property ('The customer who placed the order', a Person with name, phone, email and personalIdentifiers), so a CDP subscribed to the order stream does receive per-order guest identity. Named shortfalls that keep this at partial, all unchanged: there is no guest, eater, customer or loyalty EVENT TYPE among the 23, so no profile create/update, consent, opt-in or loyalty-accrual event can be subscribed to and a CDP sees a guest only when that guest transacts; the only eater-level pull surface is POST /v1/eater/order-history ('Provide an external eater ID to get a list of order related to that eater'), which requires the caller to already hold an external eater ID; the Loyalty Manager API (/manager/loyalty/v1/{source}/user, /user/search, /user/enrollment-config, /rewards/evaluate, /simulate, /redeem-and-accumulate, /refund) is an inbound request/response surface a loyalty provider implements, not an outbound stream; and an application must be registered by an Otter Account Representative before any webhook endpoint can be configured. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10 adversarially verified

A
Partial

guest-loyalty-review-capture-routing differentiator

A Ratings and Reviews product exists in the catalog; score-based routing to private recovery vs public review sites is not documented. https://tryotter.com/products/ratings-and-reviews · retrieved 2026-08-01

D
No

guest-loyalty-referral-program

The help centre's Loyalty section holds exactly five articles (Introduction, Creating a Loyalty Program, Points, Customer Profiles, Insights & Reporting; section enumerated 2026-08-04 via the public Zendesk API). 'Creating a Loyalty Program' enumerates everything a program can be built from — 'Amount-based Loyalty Program, Purchase-based Loyalty Program, Reward Redemption Options' — and the Introduction's capability list covers earning on payment, redemption, manual balance adjustment, QR sign-up and reporting. A referral mechanic is in none of them: 'refer a friend' returns zero results corpus-wide and 'referral' matches only reseller partner-program pages. The enumerated earning models exclude per-guest referral codes, referred-first-order attribution and two-sided rewards. https://helpdesk.tryotter.com/hc/en-us/articles/42994188214931-Creating-a-Loyalty-Program · retrieved 2026-08-04

B
Unknown

guest-loyalty-wallet-pass differentiator

Re-checked 2026-08-08 against all six loyalty articles in the 292-article helpdesk dump (arts. 31727842220819, 42994188214931, 40678275262611, 40644257640083, 40680655468435, 40183256731155) plus the Guest Directory report. Full-text search of the entire corpus returns zero hits for 'wallet', 'Apple Wallet', 'Google Wallet', 'passbook' or 'pkpass'. The documented guest credential is a phone number the cashier or kiosk looks up, and the balance lives in a web Loyalty portal the eater reaches by 'a direct link shared by the merchant', a printed QR flyer, the QR printed on a receipt, or signing in on the direct ordering website; redeemed rewards become one-use coupon codes. Otter states there is no branded app requirement, and points balances surface on the kiosk and POS dual screen. Absence of any wallet reference across a corpus this detailed is suggestive, but these articles document enrollment and redemption flows rather than asserting an exhaustive list of pass formats, so this stays unknown rather than becoming a positive denial.

F
Unknown

guest-loyalty-privacy-rights-tooling

Re-checked 2026-08-08 across the 292-article helpdesk corpus, including the 10-article Account Management section, the Guest Directory Report (art. 40222270130963) and Loyalty Insights & Reporting (art. 40680655468435). Full-text search returns zero hits for GDPR, CCPA, CPRA, DSAR, 'data subject', 'right to be forgotten' or 'data deletion'. The per-guest actions the Guest Directory documents are viewing the profile, editing customer information from the POS, and adjusting the rewards balance (gated by an 'Organization Loyalty Points Balance Adjust' permission); its FAQ addresses duplicate profiles and answers 'No - Currently, there is no way to merge customer profiles', but deletion or data export on a guest's behalf is never mentioned. The loyalty enrollment guidance pushes compliance onto the operator: 'Note that privacy laws may apply to the collection and use of such information. We recommend that you consult with a licensed legal professional.' Kiosk settings only let an operator paste their own privacy-policy URL. No trust centre or privacy-management console is published on tryotter.com, so whether an admin can fulfil an access or deletion request - or must file a support ticket - is undocumented either way.

F
No

guest-loyalty-redemption-fraud-controls

The vendor's own doc states the opposite of guardrails: 'Currently, there is no minimum amount of earned points needed to redeem' and 'no maximum limit on the amount of points that can be redeemed at one time'. Manual balance adjustment is a two-click Guest Directory action with no approval step documented, and no employee-self-redemption flagging exists anywhere in the loyalty docs. A per-guest reward-history log is the only control-adjacent feature. https://helpdesk.tryotter.com/hc/en-us/articles/40678275262611-Otter-Loyalty-Points · retrieved 2026-08-03

B
Unknown

guest-loyalty-ai-offer-recommendation differentiator

Re-checked 2026-08-08 against the 292-article helpdesk corpus. Three shipped algorithmic features exist and none matches the claim. (1) Delivery App Marketing 'Boost Automation: Offers automatic, seamless end-to-end management and optimization for ad campaigns and promotions across multiple storefronts and delivery platforms within parameters you set' (art. 8953720667667) - it optimizes marketplace ad spend and promotions, is not described as AI or ML, and recommends neither offer content nor an audience. (2) 'AI Insights' in the Otter Go app (art. 46992929408915, Beta) analyses eight weeks of sales data and returns What Went Well / What Did Not Go Well / Business Overview & Trends / Suggestions for Improving Metrics - business-performance narrative, not offer generation. (3) Kiosk upsells are 'automatically selected based on each store's top-selling, lower-priced items from the past 30 days' - item suggestion at checkout, not offer targeting. In First Party SMS Marketing the operator picks the audience from a pre-set list, the send time by hand, and the message body auto-populates from a discount template with no model in the loop. No AI recommendation of offer content, target audience or send timing is documented, and nothing rules it out.

F
Partial

guest-loyalty-stored-value-gift

Re-evidenced 2026-08-09; the "third-party eCard integration" reasoning was false and is withdrawn. Native stored value exists: Otter Gift Cards is a first-party $30/month Otter POS add-on, loaded and reloaded at the POS, redeemable at Otter POS and in Direct Orders online checkout, with refunds returned to the card balance. Shortfall, which is what keeps this partial: the balance is keyed to a physical card number (typed in or barcode-scanned), and nothing in the corpus links a gift balance to the Otter loyalty guest profile - the five Loyalty articles describe points, rewards and customer profiles with no stored-value component, the Loyalty Manager API exposes enrollment, user lookup and reward evaluate/simulate/redeem/refund with no balance object, and the gift card article never mentions loyalty. Loyalty profiles are themselves org-wide ("If an eater has been registered as a customer at any Otter-using store within your organization, you'll be able to search to pull up their information"), but gift card redemption is enabled per location, so brand-wide redeemability of the balance is not documented either. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/37358535943187-Otter-Gift-Cards · retrieved 2026-08-09

B

Labor & workforce

Yes

labor-clock-in-at-pos

AUDIT OVERTURN (2026-08-05): the prior no ('no native employee records, punch functionality or time-tracking capability exists') is contradicted by the vendor's own 'Time Card App (Clocking In/Out)' doc, read via the help centre's public Zendesk API: staff open the Time Card app on the POS device home screen and 'enter your employee pin code' to clock in and out; Staff Timecard Reporting (art. 26845973817491) exposes clocked hours with Time/Location/Role/User filters and XLS export, and handhelds run the same Time Card app (art. 35667642715283). PIN punch at the POS terminal with no separate time-clock hardware — the claim verbatim. https://helpdesk.tryotter.com/hc/en-us/articles/26645285153555 · retrieved 2026-08-05 adversarially verified

B
No

labor-photo-punch-verification differentiator

AUDIT RE-GROUND (2026-08-05): the prior premise 'Otter has no labor/timekeeping module' is false — the Time Card app documents native PIN clock in/out. The no now rests on the enumerated punch flow: the Time Card doc walks the complete punch sequence (open the Time Card app, enter your employee pin code, clock in/out) with no photo-capture step, and no photo punch, facial verification or biometric reference exists anywhere in the help-centre corpus. https://helpdesk.tryotter.com/hc/en-us/articles/26645285153555 · retrieved 2026-08-05 adversarially verified

B
No

labor-geofenced-mobile-punch

AUDIT RE-GROUND (2026-08-05): the prior premise 'Otter has no labor/timekeeping module' is false. The no now rests on the enumerated punch surfaces: 'The Time Card app can be used on both POS devices to clock in and clock out for shifts' (Handhelds Introduction) — i.e. the POS terminal and the handheld, both on-premise POS hardware. No staff mobile-phone punch exists (Otter Go is an operator order-management app), and 'geofence' returns zero results across the help centre. https://helpdesk.tryotter.com/hc/en-us/articles/35667642715283 · retrieved 2026-08-05 adversarially verified

B
Unknown

labor-offline-time-punch differentiator

Re-checked 2026-08-08. The Time Card app (art. 26645285153555) documents PIN clock in/out on the POS terminal with reporting and .xls export in the Dashboard Staff app, and it never mentions connectivity. 'Otter POS Using Offline Mode' (art. 26865574404883) enumerates what offline mode does - queue credit-card and cash transactions, flag them with a cloud icon, process automatically on reconnect - and enumerates its limitations - no online-order acceptance, no new printer or card-reader pairing, no wifi/ethernet printing, no station tickets - without mentioning time punches in either list. Handhelds 'support offline mode in both card reader mode and mobile POS mode' (art. 35667642715283) and the Close of Day Workflow (art. 39261231574803) treats 'Clock out staff' as a task alongside closing checks and drawers, but neither says what happens to a punch taken while disconnected. The Homebase integration (art. 43081257316243) sends timecard data onward to Homebase, which adds another sync boundary that is not described for outages. Capability plausible; behaviour undocumented in the 292-article corpus, so no queue-and-reconcile or blocked verdict can be evidenced. adversarially verified

F
Partial

labor-granular-rbac

Beyond ten fixed system roles, Admins can build custom roles per app feature with brand- and location-scoped assignment, and the Cash app documents genuinely discrete grants (Open Drawer, Pay in/Payout, Edit Drawer, End Drawer, Manage Drawer, Remote Finish Drawer, View Only - art. 26562624877459) plus per-discount manager-approval locks. Shortfall: voids, refunds and price changes are not individually grantable - refunds ride the fixed Supervisor role on POS and Billing Admin in the Dashboard, and documented custom-role granularity outside the Cash app covers Dashboard app features, not POS actions. https://helpdesk.tryotter.com/hc/en-us/articles/44753081545619-User-Management · retrieved 2026-08-03

B
Partial

labor-manager-override-audit

Individual PIN identity underpins auditing ('this feature also ensures you can monitor actions for auditing and reporting purposes' - art. 26844590516755); the Voided Transactions report is per-staff-member, timestamped, reason-coded and immutable, and cash-drawer edits display the editing user's name beside the changed value. Shortfall: what is logged is the acting staff member - no queryable report is documented that attributes the manager who approved an override, and approval events themselves do not appear in any log. https://helpdesk.tryotter.com/hc/en-us/articles/44155119549843-Voided-POS-Transactions · retrieved 2026-08-03

B
No

labor-native-scheduling differentiator

RE-GROUNDED 2026-08-08, off the marketing integrations directory and off the false premise that Otter ships no labor product - it ships a native Time Card app. The no now rests on documented delegation of the scheduling half specifically. Otter's Analytics guide describes the Staff tool as one that 'merges labor data (shift schedules, time punches) and order data (prep times, order ratings)... We support multiple Labor Management Systems (LMS) like Deputy, Homebase, 7shifts, and WhenIWork', and its Labor Hours chart is 'sourced primarily from your timepunch data. If no timepunches are available, it displays scheduled hours' - schedules arrive from an LMS, they are not built in Otter. The native module's own feature enumeration is timekeeping only: 'Time Card app on the Otter home screen', 'Ability to clock in or clock out from the POS terminal', 'Reporting on employee work hours in the Otter Dashboard', plus admin editing of clock-in history, and the Dashboard Staff app is a timecard table with an XLS export (art. 26645285153555). No schedule builder, shift template, publish step or schedule-distribution surface appears anywhere in the 292-article English help centre, and the Homebase guide puts timesheet editing and break logging in the Homebase portal (art. 43081257316243). https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147-Otter-Analytics-Your-Guide-to-Reports-and-Insights · retrieved 2026-08-08 adversarially verified

B
Partial

labor-demand-labor-forecast differentiator

RESCORED 2026-08-05 (was no/F on the disproved no-labor-module premise). The Analytics Staff section documents a 'Staff hours Optimization' chart that 'takes your order volumes for a given period and calculates an optimal staffing rate to meet demand', compares it against the actual staffing rate and 'calls out days where the kitchen may have been overstaffed'; 'Orders per labor hour' renders in 15-minute buckets. Partial, not yes: this is retrospective day-level analysis in the Dashboard, not a forward-looking daypart forecast, and there is no native scheduling surface to apply it to - shift-schedule data comes from LMS integrations (Deputy, Homebase, 7shifts, WhenIWork). https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147 · retrieved 2026-08-05

B
Partial

labor-realtime-labor-percent differentiator

AUDIT OVERTURN (2026-08-05): the prior no ('Otter has no native labor hours') is false — timecards are native, and a labor-vs-sales view is documented: the Labor Cost Report 'provides an aggregated view of employees' hours worked, wages, and labor costs compared to sales', and the Analytics Staff section carries 'Labor as percent of Sales', Labor Hours and 'Orders per labor hour' metrics (art. 12558297776147). Shortfalls: wage data populates only with 'an active Homebase integration connected to your Otter POS store'; the view lives in the Dashboard Analytics app, not a POS or in-service manager surface; and no real-time freshness is documented — Otter's own FAQ says sales reports can take 24-36 hours to be accurate (art. 360052674054). https://helpdesk.tryotter.com/hc/en-us/articles/38681141651987 · retrieved 2026-08-05 adversarially verified

B
No

labor-overtime-prevention differentiator

RE-GROUNDED 2026-08-05: the old rationale ('no native timekeeping') is disproved - the Time Card app is native - but the finding stands on the docs. The clock-in flow is documented end to end (PIN entry, Clock in / Clock out prompt, confirm) with no threshold warning or block anywhere in it; the only overtime-adjacent signal is after the fact - report totals under 2 or over 12 hours 'displayed in red' in the Dashboard Staff app. Wage and policy data live in the LMS integrations, and a help-centre search for 'overtime' returns only an unrelated check-options article. https://helpdesk.tryotter.com/hc/en-us/articles/26645285153555 · retrieved 2026-08-05

B
No

labor-break-compliance-by-state differentiator

RE-GROUNDED 2026-08-05: the 2026-08-02 note's premise (no timekeeping product at all) is disproved - the Time Card app is native - but the vendor's own Homebase Integration Guide places break handling outside Otter: 'All timecard data is automatically sent to Homebase, where you can view and edit timesheets, as well as log breaks.' The native Time Card flow documents clock in/out only - no break punch, no attestation prompt, no per-state or per-jurisdiction rules, no missed-break premium flag anywhere in the help centre. https://helpdesk.tryotter.com/hc/en-us/articles/43081257316243 · retrieved 2026-08-05

B
No

labor-fair-workweek-support

RE-GROUNDED 2026-08-05: the 2026-08-02 premise (no labor product at all) is disproved - native Time Card timekeeping exists - but predictive-scheduling support presupposes native schedule publishing, which Otter does not have: the Staff analytics guide sources 'shift schedules' from LMS integrations (Deputy, Homebase, 7shifts, WhenIWork) and its Labor Hours chart falls back to scheduled hours only 'if no timepunches are available'. No advance-notice deadline tracking or predictability-pay calculation appears anywhere in the help centre; searches for 'forecast' and predictive-scheduling terms return nothing. https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147 · retrieved 2026-08-05

B
No

labor-minor-labor-rules

RE-GROUNDED 2026-08-05: the 2026-08-02 premise (no timekeeping or employee record at all) is disproved, but the finding holds. The documented employee record is first/last name, role, a 4-digit PIN and optional email/phone - no date of birth, so age-based restrictions have nothing to key on; the Time Card clock-in flow is documented end to end and enforces nothing beyond PIN entry; and there is no native scheduling module for schedule-side enforcement (shift schedules come from LMS integrations). https://helpdesk.tryotter.com/hc/en-us/articles/26844590516755 · retrieved 2026-08-05

B
No

labor-tip-pooling-rules

AUDIT RE-GROUND (2026-08-05): the prior premise 'Otter has no labor module' is false — a Time Card app and Staff Timecard Reporting are documented. The no stands on enumeration instead: the 'Tipping Guide for Otter POS' covers the tip lifecycle end-to-end (tip on receipt, POS tip display before payment, cash tipping, percentage presets, 24-hour post-payment entry, Stripe tip caps) and the Hourly Tip Report covers per-staff reporting; no pool, tip-out or rule-based distribution (hours, sales, points or role) appears in either or anywhere else in the corpus — tips are only ever reported as received per employee. https://helpdesk.tryotter.com/hc/en-us/articles/36524231987603 · retrieved 2026-08-05 adversarially verified

B
Partial

labor-tip-distribution-audit-trail

The Hourly Tip Report breaks tips down by hour, staff member (via PIN login) and device, filterable by date, brand, location, staff member and channel, and is positioned for payroll use. Shortfall: Otter documents no tip pooling or distribution feature at all, so there is no record of amounts contributed to or distributed from a pool - only tips received per employee - and third-party-platform tips carry no staff attribution. https://helpdesk.tryotter.com/hc/en-us/articles/39344200685971-Tip-Reporting · retrieved 2026-08-03

B
No

labor-qualified-tips-w2-reporting differentiator

AUDIT RE-GROUND (2026-08-05): the prior premise that Otter holds no employee records is false — native timecards exist. The no stands on the enumerated payroll path: Otter's documented payroll export is the Labor Cost Report's 'hourly breakdown data to import into Homebase' (hours and wages only, and only with an active Homebase integration); tips live in the separate Hourly Tip Report, where third-party-platform tips carry no staff attribution. No export field carries a Treasury tipped-occupation code or separates cash from charged qualified tips, and W-2 production is delegated to the payroll provider. https://helpdesk.tryotter.com/hc/en-us/articles/38681141651987 · retrieved 2026-08-05 adversarially verified

B
No

labor-native-payroll differentiator

Re-evidenced 2026-08-09; the "full integrations category list contains no payroll processor" leg is withdrawn as an enumeration over a marketing page. Otter's own labour documentation states the division of work: the Labor Cost Report "provides an aggregated view of employees' hours worked, wages, and labor costs compared to sales", and "you can use this report to view and export the aggregated hours data & aggregated wage data by employee and directly import the spreadsheet into the 3rd party payroll provider without having to manually process the spreadsheet first." The Hourly Tip Report is likewise framed as something to "use ... to help you manage payroll", i.e. an input to someone else's payroll run. Otter does ship first-party labour features (Time Card clock in/out, Labor Cost Report), so this is not a no-labour-module finding - it is specifically that hours and wages are exported for a third party to file and pay. Across the 292-article corpus there is no wage tax filing product, no wage direct deposit, no Gusto/ADP/Paychex connector, and the Billing & Subscriptions product catalogue sells no payroll SKU. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/38681141651987-Labor-Cost-Report-Homebase-Integration · retrieved 2026-08-09

B
Partial

labor-payroll-export-formats

UPGRADED 2026-08-08 off a refuted premise. Otter does hold labor hours: the Time Card app records PIN clock in/out natively and the Dashboard Staff app exports the timecard table in XLS (arts. 26645285153555, 26845973817491). And a payroll-directed export is documented: the Labor Cost Report 'provides an aggregated view of employees' hours worked, wages, and labor costs compared to sales', and 'you can use this report to view and export the aggregated hours data & aggregated wage data by employee and directly import the spreadsheet into the 3rd party payroll provider without having to manually process the spreadsheet first'. Named shortfalls, which is why this is partial and not yes: the wage half is not native - 'In order for data to populate in the Labor Cost Report, you must have an active Homebase integration connected to your Otter POS store', a paid add-on at $20/month that also requires a paid Homebase subscription and an API key installed by an Otter account manager (art. 43081257316243); no payroll provider is named anywhere in the 292-article corpus - Gusto, ADP, Paychex and QuickBooks return zero hits - and no file layout is specified beyond 'the spreadsheet', so neither the 'documented formats' nor the 'two major payroll providers' half of the claim is met; and tips are not in this export, being reported separately in the Hourly Tip Report. https://helpdesk.tryotter.com/hc/en-us/articles/38681141651987-Labor-Cost-Report-Homebase-Integration · retrieved 2026-08-08 adversarially verified

B
No

labor-shift-swap-workflow differentiator

RE-GROUNDED 2026-08-05 (old one-line rationale rested on the disproved no-labor-module premise). Otter ships no scheduling module and no employee self-service app: the Staff analytics guide sources 'shift schedules' from supported Labor Management Systems 'like Deputy, Homebase, 7shifts, and WhenIWork', the native Time Card applet is terminal-bound clock in/out only, and the integrations directory (re-retrieved 2026-08-05) still lists exactly those four under Labor. With no native schedule or shift entity there is nothing to swap or claim. https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147 · retrieved 2026-08-05

B
No

labor-digital-onboarding-i9

RE-GROUNDED 2026-08-05: the 2026-08-02 premise (no employee record at all) is disproved - User Management holds native employee records - but new-hire intake in Otter is only the documented add-user flow: first/last name, role, PIN, optional email/phone, then an email invitation to set a password. No W-4, I-9, E-Verify or document-capture step exists anywhere in the help centre, and the integrations directory (re-retrieved 2026-08-05) still lists no payroll or HR provider among its eight categories. https://helpdesk.tryotter.com/hc/en-us/articles/44753081545619 · retrieved 2026-08-05

B
Partial

labor-server-performance-metrics differentiator

AUDIT OVERTURN (2026-08-05): the prior no ('Otter has no native labor data, time clock or sales-per-labor-hour calculation') is triply false — the Time Card app, Staff Timecard Reporting and an 'Orders per labor hour' metric are all documented. Per-employee performance reporting exists: the Analytics Staff section documents Staff Performance with clickable Individual Staff Member Performance (Orders/hour, Average Prep Time, Average Star Rating, Order Issues Rate), the immutable Voided Transactions report attributes voids per staff member, and the Hourly Tip Report breaks tips per staff member. Shortfall: no per-employee average check, item/category attachment rate, comp rate or sales-revenue figure — the documented per-staff metrics are operational, not sales. https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147 · retrieved 2026-08-05 adversarially verified

B

Inventory, purchasing & cost control

No

inventory-recipe-bom-costing

Re-confirmed 2026-08-02. Inventory Savings is a distributor rebate/GPO tool ("Get cash back on the food you already buy"), not a recipe or BOM engine, and the integrations directory delegates real inventory to Marketman, Restaurant365 and PDI under an explicit Inventory category. https://tryotter.com/products/inventory-savings · retrieved 2026-08-02

C
No

inventory-unit-conversion-yields

No inventory ledger exists to hold conversions.

F
No

inventory-theoretical-vs-actual differentiator

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. Theoretical usage cannot be computed without a recipe layer and actual usage cannot be computed without counts; neither exists. There is no variance report of any kind in the Analytics or Reports sections, whose complete article lists are sales summary, cash management, tips, taxes, payouts, financial reconciliation, merchant statement, guest directory, customer, loyalty, labor cost, voided transactions, order-manager menu, location tagging and scheduled reports. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-realtime-depletion differentiator

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. Sale-driven ingredient depletion is structurally impossible without a recipe layer, and there is none: MenuItem_POS carries no component list and SKU Library holds descriptive attributes only. The API's inventory quantities are read-only summaries of packaged products with no documented link to order events, and the webhook catalogue (orders, menus, storefront, delivery, reports, account pairing, ping) contains no stock-movement event. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-86-auto-sync differentiator

86 propagation is excellent but is a manual/menu-level action; there is no ingredient on-hand to trigger it automatically. https://tryotter.com/products/inventory-savings · retrieved 2026-08-01

C
No

inventory-count-modes

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. The vendor's public inventory surface is small enough to enumerate and I enumerated it: three operations, none of which is a count. There is no full-count, spot-count or cycle-count workflow, no count-session object and no count history in either the helpdesk or the API; quantities are only read back, or changed by receiving a shipment. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-mobile-count-offline

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. There is no counting application to take offline. The Otter app family documented across the corpus is Orders, Menus, Analytics, Drawers, Inventory (rebates), Loyalty, Time Card and Otter Go, and none counts stock. The only documented barcode-scanner support is for gift cards, and the article scopes it explicitly: "These scanners are only for scanning gift cards." Offline mode is documented for the handheld POS and card reader, never for stock capture. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-vendor-catalogs-edi differentiator

Inventory Savings links to existing distributors for discounts and rebates "without switching distributors" — a purchasing-rebate relationship, not documented EDI PO transmission or electronic invoice receipt. https://tryotter.com/products/inventory-savings · retrieved 2026-08-01

C
No

inventory-invoice-ocr differentiator

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. Otter's documented method of acquiring purchase data is the opposite of invoice capture: the merchant hands over food-distributor portal credentials ("Use food distributor credentials to sign in and connect for Rebates") and Otter reads qualifying spend from the distributor, producing per-distributor spend reports. No photo, PDF or email invoice ingestion appears anywhere, the corpus has zero hits for OCR or invoice scanning, and the only invoice objects in the product are Otter's own subscription invoices. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-price-change-alerts differentiator

Inventory Savings offers "find the same product for less" sourcing suggestions, not per-item purchase price history with contracted-price variance alerting. https://tryotter.com/products/inventory-savings · retrieved 2026-08-01

C
No

inventory-par-auto-suggest differentiator

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. The only purchasing suggestion Otter documents is the Rebate Opportunity, and it is rebate-driven rather than par-driven: "personalized suggestions based on your past purchasing history, highlighting items that offer better pricing and higher rebate potential", actioned by downloading a product list as CSV and sending it to your distributor. There is no par level, no reorder point, no on-hand-versus-par calculation and no purchase order object; the corpus has zero hits for par level or purchase order. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-waste-logging

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. There is no waste or spoilage workflow, no reason-code set and no waste-cost report. The closest object in the entire product is the shipment receiving field unsellableQuantity, defined as inventory "that is damaged, expired or otherwise unsellable" - a receiving-time bucket on inbound goods, with no reason codes, no operator-facing logging screen, no debit against usage and no separate cost reporting. The corpus has zero hits for spoilage and no waste-logging article. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-transfers

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. No inter-location stock movement exists. All eleven occurrences of "transfer" in the 292-article corpus are account ownership transfers, bank or wire transfers of money, or transferring an in-progress order to another device. The API inventory domain has no transfer operation, and its only movement primitive - the shipment (deliveryInfo, lineItems, stateChanges SCHEDULED/ARRIVED/STOCKING/CLOSED/CANCELED) - is inbound to a single facility with no sending party, so there is no two-sided credit and debit and no in-transit state between two of the operator's own locations. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-commissary

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. No central production model exists. The corpus has zero hits for commissary, central kitchen production, prep item or transfer cost, and there is no production or assembly object anywhere in the API - only finished products, inbound shipments and menu SKUs. Otter's multi-location constructs are the organization/brand/store hierarchy and Location Tagging for reporting, neither of which carries production or issue-at-cost, and with no recipe layer there is no prep item to produce. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-lot-traceability

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. No lot or batch identity is captured anywhere. Product identity in the API is id, gtin, name, slug and externalId; a shipment line item is id/slug/externalId plus manifestQuantity, receivedSellableQuantity and receivedUnsellableQuantity. There is no lot, batch or serial field at receiving - the only point at which one could enter the system - and therefore nothing to carry forward into production or sales. The corpus has zero hits for lot number, batch number or recall. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-shelf-life-expiry

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. No date is ever attached to stock. Expiry appears in Otter's inventory model exactly once, as prose inside the definition of unsellableQuantity ("damaged, expired or otherwise unsellable"), which records that expired goods exist but stores no use-by date, no received date and no shelf life. There is consequently no expiring-soon report or alert; the corpus has zero hits for shelf life and its three expiration hits are payment-card and subscription expiry. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-bar-partial-bottle

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. Partial-bottle counting is not representable, let alone documented. Every quantity in Otter's inventory model is typed integer (sellableQuantity, unsellableQuantity, inboundQuantity, manifestQuantity, receivedSellableQuantity, receivedUnsellableQuantity), so a fraction of a bottle has no representation; there is no unit-of-measure or conversion concept; the hardware catalogue in Otter Plan Packages & Hardware enumerates tablets, POS terminals, kiosks, KDS, printers, card readers and accessories with no scale; and the only peripheral scanning support documented is for gift cards. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-cogs-gl-export

Otter collects a Cost of Goods field per menu item (default price or per-location values, with a filter to find locations missing values) and then says explicitly: 'The reporting on Cost of Goods Sold isn't available just yet - coming soon! But entering this field now gives you a start on capturing your data.' With no COGS report there is no period COGS to export. Separately, the 292-article help centre contains zero occurrences of QuickBooks, Xero, Sage, NetSuite, 'general ledger' or 'GL account', and no accounts-payable or supplier-invoice capture exists - the entire Inventory section is one article, a Foodbuy GPO rebate program (art. 44752885984147). Financial exports are CSV/XLSX payout, tax and transaction tables (Merchant Statement, Payouts, Sales Summary) with no accounting-package import format and no per-category GL mapping. https://helpdesk.tryotter.com/hc/en-us/articles/37951635152659-Adding-Menu-Items · retrieved 2026-08-08

B
No

inventory-native-not-partner differentiator

Directory leg withdrawn: tryotter.com/integrations is a vendor marketing page that says Otter "connects with dozens of integrations" and solicits new partners, so its Inventory category (Marketman, Restaurant365, PDI) cannot enumerate anything. Replaced with Otter's own product documentation. The one article filed under Inventory in the 292-article helpdesk corpus is "Otter Inventory Savings", and Apps > Inventory in the Otter Dashboard opens a Foodbuy GPO rebate program: connect a distributor account, browse Rebate Opportunities, read monthly spend reports, receive 1-3% cash-back. It holds no on-hand quantity, no count, no recipe and no unit cost. The public OpenAPI at developer-guides.tryotter.com/api-reference does carry an Inventory domain, but it is exactly three operations - GET /inventories/v1/summaries, GET and POST /inventories/v1/shipments - over packaged retail products (GTIN, example "Coca-Cola Classic Coke Soft Drink 12 oz. can") with integer sellableQuantity / unsellableQuantity / inboundQuantity, and the developer portal ships no Inventory guide at all. The conjunctive claim fails on its recipe-costing half regardless of how the stock half is read: no recipe or bill-of-materials layer exists anywhere in Otter's item model (SKU Library carries descriptive attributes only; MenuItem_POS has no component or cost field), so no item-level food cost can be produced natively. On the stock half, what Otter ships first-party is a purchasing-rebate program plus an API-level packaged-product quantity ledger - not a restaurant inventory and costing system. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/44752885984147-Otter-Inventory-Savings · retrieved 2026-08-09

B
No

inventory-menu-margin-linkage differentiator

Analytics reports best/worst performing items by sales, but with no recipe cost there is no contribution margin.

F

Reporting, BI & data access

Yes

reporting-realtime-dashboard

Analytics dashboard plus the Otter Go mobile app give real-time sales visibility off-premise on iOS and Android. https://tryotter.com/products/app · retrieved 2026-08-01

C
Partial

reporting-eod-closeout

The Otter POS End of Day Report (the sunset icon on the POS home screen) prints one document with three tabs: 'Sales: a breakdown of POS order sales, discounts, Loyalty, refunds & adjustments, tips, deposit details, and more', 'Payments: a breakdown of sales by payment method' (tender types) and 'Channel Sales'. The Otter Go article states it shows 'total orders, gross sales, discounts, loyalty, POS payments, and expected deposit reporting' (art. 46992929408915). The Close of Day Workflow (art. 39261231574803) gates the close on four tasks - close checks, collect tips, end cash drawers, clock out staff - and offers [Print report] at the end; drawer expected-vs-counted variance is reported in the Cash Management Report. Named shortfall: tax is not among the End of Day Report's documented lines - tax lives in a separate Tax Reports page in Analytics - and net sales appears on the Dashboard Sales Summary rather than the printed POS report, so the single-document reconciliation is not quite complete as worded. https://helpdesk.tryotter.com/hc/en-us/articles/27241942607635-End-of-Day-Reporting · retrieved 2026-08-08

B
Partial

reporting-pmix-modifier-level

Identifies best and worst performing menu items across channels and locations. Modifier-level PMIX and revenue-center filtering are not documented. https://tryotter.com/products/analytics · retrieved 2026-08-01

D
Partial

reporting-comps-voids-audit

The void half is complete: the Voided Transactions report in Analytics shows 'Voids by Day, Reason, and Created by Staff Member', a Void Order Detail table with Order ID, Total Void Amount and voided date/time stamp, filters for date/brand/location, CSV export, and it is immutable ('No - You cannot make edits to the voided orders log'); the cashier 'is always prompted to select a reason for the void, which will appear in the end-of-day report and in other reporting'. It is limited to first-party Otter POS orders and requires an Otter POS subscription. Named shortfalls: discounts can be gated on manager approval ('Require Manager's Approval ... must be approved by an Otter user with the Supervisor, Brand and Location Manager, or Admin role', art. 27238748303763) but no report attributes an applied discount to the applying employee, the approving manager or a reason code - discount reporting is redemption counts, sales and ROI; price override and comp are not concepts in the documented Otter POS at all, so nothing reconciles all four categories in one audit log. https://helpdesk.tryotter.com/hc/en-us/articles/44155119549843-Voided-POS-Transactions · retrieved 2026-08-08

B
Partial

reporting-cash-over-short

The Cash Management Report (Analytics > Loss Management) reconciles 'all cash activity for each drawer, making it easy for you to reconcile your cash at the end of every shift or business day'. Its per-drawer columns are Open Date, Drawer ID, Drawer Name, Start, Sales (including tips), Refunds, Paid In, Paid Out, 'Expected Balance: the expected amount that should be in the register ... calculated based on starting cash, cash sales, paid-ins, paid-outs, and cash refunds', 'Ending Balance: balance entered when closing the drawer' and 'Difference: the amount left over when subtracting the ending balance from the expected balance'. Drilling into a drawer lists Cash Event Transactions with Location, POS Terminal, Drawer Name, Staff Name, Transaction Type ('Cash_Sale' or 'Open', the latter being the drawer opened without a sale) and Subtotal. Filters are date, brand, location and drawer name; the table exports. Named shortfall: over/short is computed per drawer session (which is how a shift is bounded) but never per employee - Staff Name appears only on individual cash events, there is no employee-level variance figure, and no variance alerting is documented. https://helpdesk.tryotter.com/hc/en-us/articles/41030431592979-Cash-Management-Report · retrieved 2026-08-08

B
No

reporting-labor-productivity

No native time clock or labor data source, so sales-per-labor-hour cannot be produced from Otter's own records.

F
No

reporting-server-scorecards differentiator

AUDIT RE-GROUND (2026-08-05): the prior premise 'Otter has no native labor data or time-clock' is false, but the no survives on enumeration: the Otter Analytics guide enumerates the per-staff metric set as a closed list — Orders/hour, Average Prep Time, Average Star Rating, Order Issues Rate — and none of the scorecard metrics this claim names (average check, items per check, category attachment rate, tips as a percentage of sales) appears per-server there or anywhere in the enumerated report suite (Sales Summary filters are channel/date/location/brand only). Per-staff tips exist only as dollar amounts in the Hourly Tip Report, never as a percentage of that server's sales. https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147 · retrieved 2026-08-05 adversarially verified

B
Yes

reporting-channel-profitability differentiator

Sales Summary documentation: "shows daily transaction data across all channels", viewable per channel, date, location and brand, and intended so "managers or accountants" can "do daily reconciliation of sales". The Sales Breakdown pivots sales, discounts, tips, taxes, commission and refunds by dimension, with Group by channel / brand / payment method, column customization and download. The Analytics guide adds that Advanced Reports show "restaurant performance, commissions, and payouts by date and channel" and that Order Details carries fulfillment channel, delivery fees, tips and net fees per order; the Reconciliation report supplies per-platform Commission, Delivery Commission and Processing Fee. So gross and commission-netted revenue are reportable per fulfillment channel and per marketplace. Margin in the food-cost sense is not part of this report set. Advanced Analytics is $20/month/location unless included in a bundle. https://helpdesk.tryotter.com/hc/en-us/articles/41042129066259-Sales-Summary · retrieved 2026-08-06

B
Partial

reporting-multiloc-drilldown differentiator

The cited Analytics page carries no multi-location comparison language in its retrievable content — the multi-location claims live on the POS and Loyalty pages as generic "multi-location and multi-brand management". Roll-up-then-drill-down to a single store is not documented. https://tryotter.com/products/analytics · retrieved 2026-08-01 adversarially verified

C
Partial

reporting-custom-report-builder differentiator

Self-service shaping is documented: in Sales Summary, 'Sales Breakdown: Pivot different sales metrics (e.g., sales, discounts, tips, taxes, commission, refunds) by specific dimensions' with 'Group by: Group the data by either channel, brand, or payment method', location filters, search, download and 'Customize: Ability to reorder or hide columns', plus a Comparison Tool overlaying two periods. Business Performance adds View (Default, Channel, Location, Brands, Order Ratings), Graph type, Data Set (7-day rolling / raw trend), Granularity (hour, day) and comparison selectors (art. 12558297776147). Named shortfalls: the dimensions and measures on offer are those of a fixed report, not an arbitrary field picker; nothing documents saving a shaped view for reuse - the Scheduled Reports builder saves a report only by choosing one of five pre-built report types (Business Performance, Operational Excellence, Availability, Marketing, Ratings & Reviews) and its metric set is fixed per type; and the deeper columns require paid Advanced Reports. https://helpdesk.tryotter.com/hc/en-us/articles/41042129066259-Sales-Summary · retrieved 2026-08-08

B
Yes

reporting-scheduled-delivery

'Scheduled Reports allows restaurant operators to send pre-built or custom reports to themselves and specified recipients.' Configuration: report name, 'Checkbox to include CSV file in email', brands and locations, 'Frequency: choose between daily, weekly, monthly, quarterly, or yearly', send time in 30-minute intervals, report time range, and 'Recipients: enter email addresses and choose to exclude yourself'. Reports are created from Business Manager > Settings > Reports or by clicking the settings gear on a report ('Just head to Analytics or any of the apps you have, click on the settings, and schedule a report'), can be edited or deleted, and 'All Otter customers, CloudKitchens customers, and FutureFoods customers can create their reports' with no stated limit ('You can create as many reports as you need'). Send time follows the creator's timezone. The metric set available inside a scheduled report depends on plan - Ratings & Reviews requires Advanced Analytics and AlwaysOn impact requires AlwaysOn - but the scheduling capability itself is not gated. https://helpdesk.tryotter.com/hc/en-us/articles/22964276979987-Scheduled-Reports · retrieved 2026-08-08

B
Partial

reporting-raw-warehouse-export differentiator

Automated recurring export is documented: Scheduled Reports emails a chosen report daily, weekly, monthly, quarterly or yearly to a recipient list with a 'Checkbox to include CSV file in email'. Transaction-level raw data exists to export - the Order Details report carries date, fulfillment channel, delivery fees, tips, net fees, payment method, order issues, ratings and prep time, and Loyalty Order Detail carries individual loyalty transactions - and Otter advertises 'Detailed reporting at transaction - or in-store - levels' with 'One-click downloads' (art. 12558297776147). Named shortfalls: the only automated destination is email, so there is no push to a customer-controlled S3 bucket, SFTP endpoint, Snowflake or BigQuery target - the 292-article corpus has zero hits for S3, SFTP, Snowflake, BigQuery or 'data warehouse'; the scheduled payload is the report's metric set rather than an arbitrary raw extract; and reaching the fullest transaction detail requires paid Advanced Reports. https://helpdesk.tryotter.com/hc/en-us/articles/22964276979987-Scheduled-Reports · retrieved 2026-08-08

B
Partial

reporting-public-api differentiator

Re-verified 2026-08-10; value and grade unchanged, note corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. Otter's reference is still anonymously readable with no login, NDA or sales call, now at connect.tryotter.com/docs/api-reference/reference/otter-api/ - Docusaurus over an OpenAPI 3.0.1 document titled 'Otter API' with 70 paths and 23 x-webhooks (was 'Public API', 75 and 27), indexed for machine readers at /docs/llms.txt. Coverage against the claim's four domains is otherwise as recorded: orders yes (POST /v1/orders, PUT /v1/orders/{orderId}, GET /manager/order/v1/orders feed, prep-time, cancel, confirm, fulfil); menu yes (POST /v1/menus upsert, publish, publish-targets, entity availability suspend/unsuspend, menu-sync, /v1/menus/jobs); payments yes at order and payout level (PUT /v1/orders/{orderId}/payments, POST /finance/v1/financial-transactions, POST /finance/v1/financial-invoices, and the PAYOUT_TRANSACTIONS report type); labor NO - there is no timecard, shift, employee or labor endpoint among the 70, so the fourth domain is unmet. Credentials are still not self-service, though the previous note's quotation is gone with the old guide set and is withdrawn; the current wording is 'Your Account Representative registers an application and gives you: Client ID (Application ID / Partner ID in older materials - same value), Client secret', and the merchant-facing route is still the six-step Integrated Partner Process (helpdesk art. 22695702216979). Published reference plus gated credentials and no labor data is a partial. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Partial

reporting-webhooks differentiator

Re-verified 2026-08-10; value and grade unchanged, counts and quotations corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. The spec declares 23 x-webhooks (was 27). Order lifecycle coverage is unchanged: orderCreate, orderConfirm, orderStatusUpdate, orderUpdate, orderReady, orderHandedOff, orderFulfilled, intentToCancelOrder, deliveryStatusUpdate, posInjectionStateUpdate, plus ping. Signature verification is still documented, though the previous note's quotation came from the retired guide and is withdrawn; the current authentication guide states the direction plainly - 'Inbound - Otter to your app | Receive webhooks | Validate X-HMAC-SHA256 on every request' - and points to a dedicated 'Keep webhooks secure' guide for the HMAC code samples. Named shortfalls, unchanged: none of the 23 webhooks is a payment lifecycle event - there is no authorization, capture, refund or payout webhook, and finance data moves the other way, the partner posting it to POST /finance/v1/financial-transactions; retry behaviour is only implied, the menu error-code enum saying the listed codes 'will be considered fatal and will fail the operation without retrying' while no retry count, interval, backoff or delivery guarantee is published in the 59-guide corpus - and the contract-status page now puts webhook 'end-to-end replay limits, global ordering, exhaustion handling, and retention outside one sender execution' explicitly under 'Behavior that is not yet a public guarantee'; and webhook endpoints are configured from an application an Otter account representative registers, not by a merchant. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10 adversarially verified

A
No

reporting-api-not-upcharged differentiator

Both halves of the claim fail against vendor documentation. API access is not included in any subscription at any price: keys are issued through the Integrated Partner Process (art. 22695702216979) after a partnerships-team call and a certification call, and the audience is technology partners, not merchants - a merchant cannot obtain credentials by paying more. Raw-data access is explicitly upcharged per location: the Analytics guide's FAQ answers 'How much does Advanced Analytics cost?' with 'You can get Advanced Analytics starting from $20/month per location if you have not signed up for an Otter package. Advanced Analytics is included in our Pro bundle', and Advanced Reports is the tier that adds commissions, payouts, tips, prep times and the expanded Order Details columns. Basic reporting is included - Scheduled Reports is open to 'All Otter customers' and Customer Reports is 'included for all Direct Orders customers in the US and Canada region' at no additional cost - but the claim as worded is about API and raw-data access not being fee-gated, and both are. https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147-Otter-Analytics-Your-Guide-to-Reports-and-Insights · retrieved 2026-08-08

B
Partial

reporting-tier-paywall differentiator

Analytics starts at $0/mo, but Financials, Live Alerts ($15/mo/loc) and Disputes & Refunds are separately-priced add-ons, so reconciliation and alerting sit outside the base plan. https://tryotter.com/products/analytics · retrieved 2026-08-01

C
No

reporting-history-retention differentiator

No 24-month transaction-detail retention window is documented anywhere; the one retention figure Otter publishes is a cap - 'The Orders History Dashboard will only show data from orders within the last 180 days' - with users pointed to the Analytics app for older data without any stated window. The claim requires a documented >=24-month window with no silent truncation; what Otter documents is the truncation. https://helpdesk.tryotter.com/hc/en-us/articles/50523313004179-Order-History-Dashboard · retrieved 2026-08-03

B
Partial

reporting-anomaly-alerts differentiator

Live Alerts pushes real-time notifications on store status, offline hours and item availability issues. Operator-configured metric thresholds and historical-deviation detection are not documented. https://tryotter.com/products/live-alerts · retrieved 2026-08-01

C
Partial

reporting-nl-query

'The AI Insights feature is in the Sales Performance tab of the Otter Go App and gives operators key performance analysis for one or more locations. These insights analyze 8 weeks of data, emphasizing 2 most recent weeks.' The operator taps a [Beta] badge, taps Generate AI Analysis, and receives What Went Well, What Did Not Go Well, Business Overview & Trends and Suggestions for Improving Metrics, re-generated against location and date filters; stores with limited order history may get nothing. Named shortfalls: there is no free-text input - the operator cannot ask an ad-hoc question and get a figure or chart back, only re-run a fixed analysis over a filtered slice; the insights cover sales performance only, not labor; and the one conversational surface in the product, the 'Otter AI chatbot, Otter Assistant' in the Dashboard, is a support chatbot for resolving questions and issues, which is exactly the generic help-article response the claim excludes. https://helpdesk.tryotter.com/hc/en-us/articles/46992929408915-Otter-Go-App · retrieved 2026-08-08

B
Partial

reporting-guest-cohorts differentiator

Loyalty reports top guests, loyalty-attributed sales and average spend, and Analytics references customer retention patterns. New-vs-returning counts and LTV cohorts are not documented. https://tryotter.com/products/loyalty · retrieved 2026-08-01

D
Unknown

reporting-sales-forecast differentiator

Re-checked 2026-08-08 against the 292-article helpdesk.tryotter.com dump. Full-text search returns zero occurrences of 'forecast', 'projection', 'predicted sales' or 'demand prediction'. The nearest documented constructs are all backward-looking: 'Est. lost Revenue: based on the averages over the past 5 weeks of the specific day, hour of the day, and the unavailable minutes' and 'AlwaysOn impact ... potential lost sales ... based on the past 5 weeks of data' (Scheduled Reports, art. 22964276979987); Otter Go AI Insights analyses the trailing 8 weeks (art. 46992929408915); Sales Summary's Comparison Tool overlays two historical periods; kiosk upsells are picked from the past 30 days' top sellers. Otter also ships no scheduling or purchase-ordering workflow that a forecast could feed - the Staff app is timecard reporting and labor scheduling is handed to Homebase (art. 43081257316243). Nothing states a forecast is unavailable, and the Analytics guide is an overview rather than an exhaustive report inventory, so this stays unknown rather than becoming a no.

F
Partial

reporting-tip-tax-compliance

Read 2026-08-04 via the help centre's public Zendesk API. Present: the Hourly Tip Report breaks down tips by hour, staff member (PIN-login dependent) and device, filterable by date, brand, location, staff member and channel, 'to help you manage payroll'; charged tips added on receipts post-payment are booked to the order ('Tipping Guide for Otter POS', art. 36524231987603); 'Tax Reports' (art. 8959034298899) exposes Tax Collected / Tax Remitted / Tax Withheld columns with CSV export. Shortfalls: no declared-cash-tip capture or declared-versus-charged comparison anywhere; no tip pooling feature exists in the help centre, so there is no pool distribution detail; tax data is per-transaction columns with no liability summary by jurisdiction; third-party platform tips carry no staff or device attribution. https://helpdesk.tryotter.com/hc/en-us/articles/39344200685971-Tip-Reporting · retrieved 2026-08-04

B

Multi-location, franchise & enterprise governance

Yes

multi-location-org-hierarchy

Otter's Public API exposes a three-level hierarchy as first-class objects: GET /organization/v1/organization, GET /organization/v1/organization/brands, GET /organization/v1/organization/brands/{brandId}/stores and .../stores/{storeId}. The help centre's User Management article (art. 44753081545619) gives every role an explicit Access Level of Organization, Brand, or Location - Analyst and Manager are scopable to specific brands and locations, Cashier/Cook/Shift Supervisor are Location - and Location Tagging (art. 23271075696915) lets an admin define an extra grouping dimension over locations (the guide's worked example is a tag named Regions with options northwest, central, southeast) which then filters every Analytics and Live Monitoring report. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-08

A
Partial

multi-location-central-menu-publish

One menu edit publishes across locations and channels — a customer testimonial cites updating 40+ menus "nationwide" in minutes. No publish/version history object is documented. https://tryotter.com/products/menu-management · retrieved 2026-08-01

C
Partial

multi-location-local-override-policy differentiator

Corporate & Franchisee Permissions documents a real corporate/local split: one Brand owner (Corporate) account can view and manage menus for all stores in the brand 'regardless of ownership', and sets Franchisee menu Edit permissions from Menus > Settings > Franchisee permissions. Some fields are locked by default and cannot be unlocked - 'only Corporate users are able to create new or delete menu items' - while publishing a menu, setting menu hours, item availability, payment methods and viewing analytics are permanently enabled for franchisees; managing promotions and adding or editing menu photos are limited by default, and anything switched off requires the franchisee to 'reach out to Corporate to request a change/edit'. SHORTFALL: the rules are not per field and not per location - 'For Edit permissions listed, there is only the opinion [option] to turn all listed ON or OFF for all Franchisees. Currently, you're not able to select these permissions or locations individually to turn them ON or OFF.' A franchisee also cannot be given price-only rights: the toggle is all-or-nothing. https://helpdesk.tryotter.com/hc/en-us/articles/38552114382739-Corporate-Franchisee-Permissions · retrieved 2026-08-08

B
Partial

multi-location-price-zones

Menu Pricing Rules creates an increase or decrease rule 'for all or a group of menu items', configurable per channel, per location, per fulfillment option and per menu, by percent or fixed amount, with round-up, price-band exclusions, a per-location/channel/platform preview, an active/inactive toggle and conflict detection against other rules. Menu Item Pricing (art. 36253606306195) adds per-item Advanced Pricing across location x delivery partner/channel x fulfillment mode, editable in bulk by filtering, all against one item record. SHORTFALL: daypart is not a pricing dimension - time-of-day variation requires building a second menu with its own hours under Multi-Menus (art. 5183228694803) and applying a rule 'per menu', which duplicates the item into another menu rather than pricing one item by daypart; and there is no named price zone or tier object, a rule simply applies to a hand-picked set of locations. https://helpdesk.tryotter.com/hc/en-us/articles/40116707746067-Menu-Pricing-Rules · retrieved 2026-08-08

B
Partial

multi-location-scheduled-publish differentiator

Rollback is documented and scheduling is only partly: Menu Version History (art. 35314976325907) lists every publish with date, time and publishing user, keeps autosaved snapshots on significant changes, and restores a chosen previous version - including the menu's location assignment - which is then republished. Promotions carry a Duration with a start and optional end date ('If you want the promotion to go live immediately, select today as a start date', art. 21535784428435), so promo changes can be future-dated. SHORTFALL: menu and price changes cannot be. The Publishing a Menu flow offers exactly three choices - locations, channels and an optional note - and takes effect immediately; the only time control after that is [Cancel publish], available 30 minutes into an in-progress publish and only for all locations and channels at once. No embargo window, no future effective date for a menu publish, and no statement that any scheduled change is interpreted in each location's own timezone. https://helpdesk.tryotter.com/hc/en-us/articles/38618622139923-Publishing-a-Menu · retrieved 2026-08-08

B
Partial

multi-location-new-store-template differentiator

Store Management provides configuration templates for new stores: Station Profiles define device, printer and menu-item routing behaviour and 'can be applied to selected or all locations in bulk'; Station Groups 'let users define and manage a consistent configuration for one or more locations that share a similar operational setup', and 'when a new organization or store is created, Station Groups will be created by default and all locations will be assigned to the default station group'; Device Defaults & Overrides applies organization-wide tablet, terminal and printer settings 'automatically across all new devices before hardware setup' with per-location overrides, so a device inherits its configuration when paired. Menus replicate too - POS Linking for Multi Locations (art. 14643798880403) copies a base location's menu and its POS item links to every other location in one action. SHORTFALL: no single clone-a-location action exists, and taxes, user roles/permissions and tenders are not part of any documented template; the vendor publishes no expected time-to-open; and Store Management 'is currently not available to all customers'. https://helpdesk.tryotter.com/hc/en-us/articles/48829384644499-Store-Management · retrieved 2026-08-08

B
Partial

multi-location-corp-vs-franchisee-roles differentiator

AUDIT OVERTURN (2026-08-05): the prior no ('no franchisee role... is documented anywhere in the product') is contradicted by the vendor's 'Corporate & Franchisee Permissions' doc: the permission model explicitly distinguishes a Brand owner (Corporate) tenant from Brand user (Franchisee) accounts — Corporate Admins 'view and manage menus for all stores within your brand — regardless of ownership', while a Franchisee 'separately manage[s] their business' with location-scoped billing ownership ('Corporate users only view billing & subscription information for Otter products and stores for which they are the billing owner'), payment methods and analytics. Shortfalls: corporate visibility into franchisee sales data is not explicitly documented (the doc's scope is menu governance and dashboard visibility), employee/labor-data ownership is unaddressed, and franchisee permission toggles apply brand-wide uniformly, not per location. https://helpdesk.tryotter.com/hc/en-us/articles/38552114382739 · retrieved 2026-08-05 adversarially verified

B
No

multi-location-royalty-calculation differentiator

AUDIT RE-GROUND (2026-08-05): the prior premise 'Otter has no franchising product or franchisee-role capability' is false — Corporate & Franchisee Permissions documents a real franchisor/franchisee account model. The no survives on enumeration: that doc's franchise feature set is menu governance plus location-scoped billing and analytics, with no royalty, ad-fund or fee construct; the Otter Analytics guide (art. 12558297776147) enumerates the full report suite — sales, operations, menu, marketing, staff, ratings, advanced financial reports — with no royalty report; and 'royalty' returns zero results across the entire help centre. https://helpdesk.tryotter.com/hc/en-us/articles/38552114382739 · retrieved 2026-08-05 adversarially verified

B
No

multi-location-royalty-collection

AUDIT RE-GROUND (2026-08-05): prior premise false as with royalty calculation — a franchisor/franchisee account model exists. The no survives on enumeration: the documented corporate/franchisee split covers menu permissions and per-location billing ownership only; Otter's documented money movement is its own merchant SaaS subscription billing and payment payouts, with no ACH pull from franchisee accounts, no franchisee-visible royalty statement, and zero 'royalty' hits corpus-wide. https://helpdesk.tryotter.com/hc/en-us/articles/38552114382739 · retrieved 2026-08-05 adversarially verified

B
Partial

multi-location-consolidated-reporting

Same evidentiary gap: aggregation across locations is asserted at marketing level on the POS page, but the Analytics page I fetched does not document a consolidated cross-location reporting view. https://tryotter.com/products/analytics · retrieved 2026-08-01 adversarially verified

C
Partial

multi-location-normalized-item-rollup differentiator

The SKU Library is exactly the shared corporate item identity this claim asks for: 'a centralized place within the Otter Dashboard to manage reusable item SKUs at the organization level. Instead of duplicating the same product across menus and brands - You can create, search, filter, and edit SKUs once, then link menu and modifier items to those SKUs.' Item-level fields 'like name, description, price, and photo pre-fill from the SKU but can be edited per menu item', and the library shows 'SKU usage across menu items, modifier items, brands, and locations' - so a locally renamed and locally priced item still resolves to one org-level SKU, with a SKU auto-created for every new or imported menu item. SHORTFALL: no report is documented as aggregating sales by SKU - the Product Mix Report (art. 33505325547539) breaks down by menu category, item and modifier and merely filters by brand and location - duplicate SKUs cannot be merged, third-party POS imports do not get SKUs, and the feature is 'NOT currently available for all Otter customers'. https://helpdesk.tryotter.com/hc/en-us/articles/53271161201555-SKU-Library · retrieved 2026-08-08

B
Partial

multi-location-cross-location-giftcard

Otter Gift Cards (Otter POS customers only, $30/month, physical cards ordered from eCard Systems at $1.01 each) are self-branded brand-level cards: 'Customers eating at your restaurant locations will then be able to use this gift card in store on the Otter POS system to redeem as a payment method for their order.' Cashiers and Supervisors create and reload cards from POS checkout Options (max $2,000), the card is a payment method on Otter POS and on the Direct Orders website - enabled per location under Direct Orders > Locations > Location Settings > Payments - balances are checked from Options > Gift card or by barcode scan, refunds return the amount to the card balance, and there is a documented cash-out procedure. SHORTFALL: no outstanding-liability balance report exists anywhere in the 292-article help centre, and no inter-store settlement or redemption reconciliation between owners is documented; the article's only balance view is a link out to the eCard Systems site, and gift cards are unavailable to non-Otter-POS customers. https://helpdesk.tryotter.com/hc/en-us/articles/37358535943187-Otter-Gift-Cards · retrieved 2026-08-08

B
Yes

multi-location-cross-location-loyalty

Loyalty Customer Profiles states the scope directly: 'Guest profiles and points are stored at the Brand Level', and on Otter POS the Customer Profile Search 'will populate here, with a list of all customers that have been registered at any Otter store within the organization' - 'If an eater has been registered as a customer at any Otter-using store within your organization, you'll be able to search to pull up their information.' Once saved, 'that profile can be added to any future transaction in the system to earn points and redeem rewards', the balance shows on the check at any store, points can be adjusted centrally from the Dashboard Guest Directory, and order history for the same profile is reported in the Guest Directory Report (art. 40222270130963). Separate brands keep separate loyalty pools by design, and Multi-Store Ordering does not support Loyalty - neither of which is a per-location split. https://helpdesk.tryotter.com/hc/en-us/articles/40644257640083-Loyalty-Customer-Profiles · retrieved 2026-08-08

B
Partial

multi-location-multi-brand differentiator

Shortfall: multi-brand ordering on shared hardware is documented only for the guest-facing digital channels, not the POS terminal. Multi-Store Ordering "allows eaters to order from multiple restaurants while ordering from a food hall or multi-brand kitchens" with a single cart and a unified receipt, and its stated compatibility list is Direct Online Orders, QR Code Ordering, Otter Kiosk and Otter Mini Kiosk - the Otter POS terminal is not among them. Kiosk Brand Selection documents an admin Store Filter that picks which brands display on one kiosk for operators who "own multiple brands that share a kitchen". Per-brand separation of revenue IS documented: "Each restaurant will only receive, manage, and get reporting for their portion of the Multi-Store Order", and Sales Summary, Reconciliation and Live Alerts all filter or group by Brand. Additional third-party virtual brands cost $20/month each and standard Order Aggregation plans include one. What is not documented anywhere in the 292-article help centre: selecting a brand when ringing an order on the Otter POS terminal, per-brand receipt branding on POS tickets, or a shared cash drawer reporting separately by brand. https://helpdesk.tryotter.com/hc/en-us/articles/43082678032019-Multi-Store-Ordering · retrieved 2026-08-06

B
Partial

multi-location-multi-tax-jurisdiction

Financials provides transaction-level tax visibility and "ensure taxes tally per location". Multiple simultaneous rates, inclusive/exclusive rules and per-location exemptions are not documented. https://tryotter.com/products/financials · retrieved 2026-08-01

D
Partial

multi-location-multi-currency-locale

One Otter organization can hold locations trading in different currencies: the pre-publish checks raise a currency-mismatch error, and the resolution is 'If the menu you're trying to publish does actually apply to stores with different currencies, you will need to create a menu for each currency and assign it to the location accordingly. Currently, you can only have one currency per menu.' Otter contracts through local entities in the US, Canada, UK, Spain, France, Portugal, UAE and Saudi Arabia, and the Public API's order and report schemas carry a per-order ISO currencyCode. SHORTFALL: one currency per menu forces a duplicated menu per currency rather than a locale property on the location; no consolidated reporting converted to a single reporting currency is documented (reports return each order's own currencyCode with no conversion or group total), and per-location language/locale is documented only for report language on the API report request, not for the operator UI or menus. https://helpdesk.tryotter.com/hc/en-us/articles/21721287896083-Menu-Publish-Errors · retrieved 2026-08-08

B
Partial

multi-location-config-audit-log differentiator

Menu Edit History 'gives you a complete view of all historical updates made to your menus within Otter', in two views: Menu Entity view for changes to menu group, categories, items and modifiers 'across all locations in Organization', and Location-Specific view for changes to menu hours, prices, availability and taxes 'at a specific location'. Each event expands to property-level before/after values ('Price change from $9 to $10.50 or item availability from all day to dinner menu only'), records who made the change and when, filters by date range, brand, changed field, entity type and location, and has a persistent copy-link per event for use 'in support tickets, training materials, or audits'. Menus Activity Logs (art. 27321592256147) separately log publishes, hours publishes and 86-ing with user, timestamp, location and status, and flag changes made by 'Otter Team'. SHORTFALL: coverage is the menu domain only - permission changes, discount configuration and other settings are not covered - no export or API access to the log is documented, and neither article asserts immutability. https://helpdesk.tryotter.com/hc/en-us/articles/49262889664275-Menu-Edit-History · retrieved 2026-08-08

B
Unknown

multi-location-enterprise-sso differentiator

No SAML, OIDC, identity-provider, Okta/Entra or SCIM reference appears anywhere in the 292-article helpdesk.tryotter.com corpus, and Otter Account Logins (art. 42099611842195) documents manager.tryotter.com sign-in as email plus password with an emailed reset link. That is absence of evidence, not evidence of absence: the User Management article (art. 44753081545619) enumerates a Login Type per role - a credential attribute of each of the ten system roles - not the tenant's authentication configuration, which is where a federated option would live, and a password login type is not incompatible with SAML enforced above it. Enterprise SSO is characteristically sold to large accounts and configured with an account manager rather than written up in a merchant help centre; the same article's custom-role section ends 'reach out to your account manager for help'. Left unknown pending a first-party statement either way.

F
Partial

multi-location-enterprise-api differentiator

RE-SCORED 2026-08-10, yes -> partial. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. The endpoint this cell rested on is no longer published as a path: POST /v1/reports/generate and GET /v1/reports/{jobId} are both absent from the 70-path spec and the quoted summary 'Request a business report for multiple stores' appears nowhere in the current corpus. THAT IS A DEPRECATION, NOT A WITHDRAWAL, AND THE VENDOR SAYS SO IN WRITING: connect.tryotter.com/docs/guides-contract-status/ lists Reports among its PRODUCTION CONTRACTS as 'Deprecated. Date boundaries are inclusive UTC calendar dates. Downloads are comma-delimited UTF-8 CSV. Each generate request creates a new job, and polling by jobId is the reconciliation path when a best-effort webhook is missed. Otter returns EXPIRED two days after workflow completion. Contact your Otter representative for migration options.' The OAuth scope 'reports.generate_report: Request reports for one or more stores' is still declared in the spec's security scheme, and GenerateReportMultiRequest survives as a component with reportType (ORDER_STORES, ORDER_ITEMS, PAYOUT_TRANSACTIONS, RATINGS_AND_REVIEWS), a start/end date range and externalStoreIds - 'List of external store IDs to filter the orders with. At least one value is required. Max is 5000'. So the capability exists and is contracted; what no longer exists is the DOCUMENTATION the claim asks for - no method, path or URL is published, so a developer cannot construct the call from anything Otter publishes. What remains fully documented is estate ENUMERATION, not estate-wide transaction extraction: GET /organization/v1/organization/brands/{brandId}/stores ('Get the list of stores of a given brand'), /brands and /organization, all reached with one OAuth2 application client credential rather than per-location credentials, and the guide set states plainly that most other calls are store-scoped through X-Store-Id. Partial: no per-location credentials and a real multi-store report contract, against a documented surface that no longer tells you how to call it. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
No

multi-location-central-labor-policy

RE-GROUNDED 2026-08-08: the prior rationale, 'No labor module exists to hold or enforce policy', is false and withdrawn - Otter POS ships a native Time Card app. The no now rests on that module's own enumeration of what it does at the terminal. The Time Card article lists its features as the app on the Otter home screen, clock in/out from the POS terminal and reporting in the Dashboard, documents the single enforcement rule it has - 'If an employee has not clocked in when they attempt to use the terminal, they will be prompted to clock in first before they can proceed with using the terminal' - and lists the report fields as Staff member, Role, Clocked in, Clocked out and Total hours. No overtime rule, break rule or predictive-scheduling rule is configurable at any level, per-location or otherwise; the only threshold in the product is cosmetic, total hours rendering red below 2 or above 12. Policy is documented as living outside Otter: 'All timecard data is automatically sent to Homebase, where you can view and edit timesheets, as well as log breaks' (art. 43081257316243), and shift schedules are imported from Deputy, Homebase, 7shifts or WhenIWork (art. 12558297776147). 'Overtime' returns no article in the 292-article English corpus. https://helpdesk.tryotter.com/hc/en-us/articles/26645285153555-Time-Card-App-Clocking-In-Out · retrieved 2026-08-08 adversarially verified

B

Integrations, API & extensibility

Yes

extensibility-public-api-docs

Re-verified 2026-08-10; value and grade unchanged, note corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. The previous note's route into the docs still holds in shape and no longer in detail: developer.tryotter.com is a Vite SPA whose bundle computes doc targets from the hostname (baseUrl(z){return window.location.origin.replace('developer',z)}), and developer-guides.tryotter.com now answers 308 on every path onto connect.tryotter.com/docs/. That destination returns 200 to an anonymous request with no login, NDA or sales call, and is materially better documentation than what it replaced: 59 guides (authentication, rate limits, webhook security, contract status, and integration flows for orders, menus, delivery, finance, reviews, storefront, organization, store and direct order, plus three end-to-end scenario roadmaps for POS, OFO and 3PL applications), a Docusaurus API reference over an OpenAPI 3.0.1 document titled 'Otter API' with 70 paths, 23 webhooks, an OAuth2 security scheme with named scopes and full request/response schemas, and a machine-reader tier the old site had none of - /docs/llms.txt, /docs/llms-full.txt, /docs/agent-index.json, /docs/agent-search.json, per-guide Markdown at /docs/agent-guides/<slug>.md and an MCP endpoint at /docs/mcp. The spec is unambiguously Otter's. Registering an application still needs an account representative; reading the reference does not. https://developer-guides.tryotter.com/docs/ · retrieved 2026-08-10

A
Unknown

extensibility-api-access-cost differentiator

Still undetermined after finding the real developer documentation. Checked developer-guides.tryotter.com/docs/onboard-application/ (application registration is 'a one-time, manual registration' arranged through an Account Representative, who issues an Application ID and Client Secret 'for each environment (production and staging)'), the whole ~40-page guide set and the 75-endpoint /api-reference/ spec - none of them mentions a fee, a tier requirement or a per-location surcharge for API access. On the merchant side, helpdesk.tryotter.com's Integrated Partner Process (art. 22695702216979) and Getting paid (art. 22694916113811) cover partner referral commissions paid BY Otter, not charges for API use, and Otter Plan Packages & Hardware (art. 18739528029715) prices packages and add-ons per location without listing API access as either an inclusion or an add-on. Because the API is a partner-integration surface rather than a merchant subscription feature, silence here is not evidence that it is included at no cost, so this stays unknown rather than resolving to yes.

F
No

extensibility-partner-revshare

Re-sourced from the become-a-partner marketing page to the help centre, which gives positive evidence rather than absence. 'Getting paid' (Getting Started with Partnership, art. 22694916113811) documents the whole commercial mechanism - 'Your referral commission is dependent on the merchant paying their first three monthly subscription fees to Otter', no earnings from stores without a subscription fee, a $100 payout threshold, monthly accrual invoiced to partners-invoices@tryotter.com the following month, and the Otter legal entity and VAT number to bill per country (Wired Up Solutions LLC in the US, Otter Operations CAN ULC, UK Limited, ESP S.L). It then states where the number itself lives: 'The referral fee you are entitled to is what has been agreed on the Partner Agreement between you and Otter.' The rate is therefore per-agreement and unpublished by Otter's own account. tryotter.com/become-a-partner describes referral, technology and vendor tracks and a tiered incentive structure with no percentage attached, no fee schedule appears anywhere else in the 292-article English help centre, and the developer documentation at developer-guides.tryotter.com is purely technical. https://helpdesk.tryotter.com/hc/en-us/articles/22694916113811-Getting-paid · retrieved 2026-08-08

B
Partial

extensibility-free-sandbox differentiator

A staging environment exists and is not tied to a paid production account: 'Step 2. Get your API key and staging environment - After your initial contact with our partnerships team, our technical team will provide you access to our developer portal where you will have access to your API key and staging environment', and developer-guides.tryotter.com/docs/onboard-application/ confirms an Application ID and Client Secret are issued 'for each environment (production and staging)'. The API overview repeats 'For testing purposes, we offer a staging environment', and GET /v1/ping plus the ping webhook exist to 'validate the integration without side effects'. SHORTFALL: it is not self-serve or free-to-try - access is gated behind a partner sign-up form, an exploratory call with the partnerships team, and for production a certification call against an event-log checklist - and no seeded test data or sample store is documented anywhere in the guides or the spec. https://helpdesk.tryotter.com/hc/en-us/articles/22695702216979-Integrated-Partner-Process · retrieved 2026-08-08

B
Yes

extensibility-oauth-partner-apps

CORRECTION, the previous basis is withdrawn: 'No OAuth 2.0 grant flow, operator-facing consent screen, scoping or per-app revocation appears anywhere' was drawn from developer.tryotter.com, which serves an empty Vite shell on every path. The real reference at developer-guides.tryotter.com documents exactly this model. Security scheme OAuth2.0: 'The Authorization API is based on the OAuth2.0 protocol, supporting the (Client Credentials) and the (Authorization Code) flows. Resources expect a valid token sent as a Bearer token in the HTTP Authorization header.' The authorize call is GET /v1/auth/oauth2/authorize with client_id, redirect_uri, response_type=code, scope and state, and 'If the user approves the application, we will redirect to configured URI passing the authorization code in the query parameter code'; tokens come from POST /v1/auth/token and are 'valid for a pre-determined time or until it is manually revoked'. Scopes are per-endpoint and printed on each operation in the spec - orders.create, orders.update, menus.upsert, manager.orders, manager.storefront, organization.read, reports.generate_report, reviews.reply, store.read among ~75 endpoints. Operator grant and per-application revocation are documented in the Organization onboarding flow: 'The user responsible for the store must allow your application to act on behalf of them, therefore, the onboarding flow requires an access token generated with the OAuth Authorization Code Flow', with POST creating and DELETE removing the connection at /organization/v1/organization/brands/{brandId}/stores/{storeId}/connection - one application against one store, revocable individually. Two administrative gates worth recording that do not defeat the claim: 'Scopes must be configured by our internal team to be enabled for an app' before they can be switched on in the Developer Portal, and the Authorization Code flow itself 'must be enabled in the Application Settings Page'; and the merchant-facing help centre still describes onboarding as an API key issued after a partnerships screen (art. 22695702216979), which is the Client Credentials half of the same scheme rather than a separate static-key model. RE-VERIFIED 2026-08-10 after the docs rebuild: /v1/auth/oauth2/authorize and /v1/auth/token are both still published paths, and the scope-enablement quotations were re-matched against the live spec and stand. Value and grade unchanged. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Yes

extensibility-webhooks-push

Re-verified 2026-08-10; value and grade unchanged, counts corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. The spec declares 23 webhooks under x-webhooks (was 27), delivered as HTTP POST to the partner's URL with an eventId/eventTime/eventType/metadata envelope - push, not polling. THE ORDER LIFECYCLE SET IS UNTOUCHED by the rebuild: orderCreate ('Notifies a merchant-side integration (POS/BI) that a new order has been created for the store'), orderUpdate, orderConfirm, orderReady, orderHandedOff, orderFulfilled, orderStatusUpdate, intentToCancelOrder and posInjectionStateUpdate all survive, as do the menus, storefront and delivery webhooks. The four that were dropped are reportGenerated, fetchCredentials, removeStore and upsertStore, so the previous note's 'reports and store-onboarding webhooks exist alongside' is withdrawn. Note there are still no dedicated paid/void/refund event types - payment and total changes arrive on orderUpdate, and cancellation arrives via intentToCancelOrder and the status history. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Partial

extensibility-webhook-reliability differentiator

Signing is fully documented: 'Every webhook is signed using HMAC-SHA256 that is present in the header X-HMAC-SHA256', each webhook endpoint has its own secret and a selectable Authentication Type (HMAC-SHA256, legacy HMAC-SHA1, Basic Auth, Bearer Token or None), and the guide gives hash computation and validation samples in Python, Java, JavaScript, C# and PHP. Retry exists in the contract - the RequestAction schema carries retryAttempt ('The current retry attempt', example 2) and the spec designates a set of status codes (INVALID_ARGUMENT, FAILED_PRECONDITION, NOT_FOUND, PERMISSION_DENIED, ALREADY_EXISTS, UNIMPLEMENTED, DATA_LOSS, UNAUTHENTICATED) that 'will be considered fatal and will fail the operation without retrying', implying the rest are retried. SHORTFALL: no retry schedule, backoff interval or maximum attempt count is published, and there is no replay, redelivery or queryable event log for missed deliveries - the words backoff, replay and redeliver appear nowhere in the ~40 guide pages or the 75-endpoint spec. QUOTATION CORRECTED 2026-08-10: Otter rebuilt its developer docs between 2026-08-08 and 2026-08-10 (MkDocs at developer-guides.tryotter.com -> Docusaurus at connect.tryotter.com, 59 guides, 70 spec paths, 23 x-webhooks) and the sentence quoted here - 'Every webhook is signed using HMAC-SHA256 that is present in the header X-HMAC-SHA256' - no longer appears at the source; it is withdrawn. The fact it evidenced survives in the rebuilt authentication guide, which states the requirement as a table row: 'Inbound - Otter to your app | Receive webhooks | Validate X-HMAC-SHA256 on every request', with a dedicated 'Keep webhooks secure' guide for the code samples. The retry-attempt header and the fatal-error-code enum quoted above were re-verified in the live spec and stand. Value and grade unchanged. https://developer-guides.tryotter.com/docs/guides-webhook-authentication/ · retrieved 2026-08-10

A
Yes

extensibility-order-injection-api

POST /v1/orders (documented rate limit 32 per minute) 'Pushes a new order into Otter for the store identified by the X-Store-Id header. Used by ordering marketplaces and other order sources when a customer places an order', taking line items, fulfillment information, customer payments and one financial breakdown (orderTotal V1 or orderTotalV2) and returning Otter's id, friendlyId and storeId 'you can use to correlate and update the order later'. The injected order is first-class: it can be amended with PUT /v1/orders/{orderId}, .../payments and .../delivery; its items carry stationId and internalCategoryId for kitchen routing; it drives the merchant-side orderCreate/orderConfirm/orderReady/orderFulfilled webhooks so a POS or KDS integration reacts to it; posInjectionStateUpdate reports whether it was successfully injected into the store's POS; and it appears in the ORDER_STORES and ORDER_ITEMS reports with its channel, totals and payout fields. RE-VERIFIED 2026-08-10 after the docs rebuild: the POST /v1/orders description quoted here - 'Pushes a new order into Otter for the store identified by the X-Store-Id header. Used by ordering marketplaces and other order sources when a customer places an order.' - was re-matched verbatim against the live 70-path spec and stands. Value and grade unchanged. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Yes

extensibility-menu-write-api differentiator

Menus are read/write, not read-only: GET /v1/menus 'Get the menus for a store' (8/min) and POST /v1/menus 'Upsert menus for a store' (2/min), with POST /v1/menus/publish, /v1/menus/current, /v1/menus/hours, /v1/menus/menu-sync and POST /v1/menus/entity/availability/bulk; the manager-side set adds POST /manager/menu/v1/bootstrap, POST /manager/menu/v1/menus/publish to selected publish targets (GET /manager/menu/v1/menus/publish-targets), /menus/menu-sync and entities availability suspend/unsuspend. The menu schema carries items, modifier groups and prices, and the guides document the flows explicitly - 'Read and Upsert Menus Flow', 'Menu Publish Flow', 'Update Menu Entities Availability Flow' and 'Upsert Hours Flow'. QUOTATION CORRECTED 2026-08-10: the docs rebuild replaced the MkDocs guide set, so the guide page titles cited here ('Read and Upsert Menus Flow', 'Update Menu Entities Availability Flow') no longer exist and are withdrawn; the equivalent material is now at connect.tryotter.com/docs/menus-integrations-operations/ and its flow guides. Every endpoint and schema quotation in this note was re-matched against the live 70-path spec and stands, and the rebuild ADDED /v1/menus/jobs. Value and grade unchanged. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Partial

extensibility-data-symmetry differentiator

Re-verified 2026-08-10; value and grade unchanged, note corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. Still symmetric for the main objects: orders (POST /v1/orders, PUT /v1/orders/{orderId} and .../payments, .../delivery, read via GET /manager/order/v1/orders and .../sources/{source}/orders/{orderId}), menus (GET and POST upsert /v1/menus, with a new /v1/menus/jobs added in the rebuild), loyalty guests (GET and POST /manager/loyalty/v1/{source}/user plus /user/search) and inventory shipments (GET and POST /inventories/v1/shipments). CORRECTION: the previous note cited stores as a symmetric object on POST /v1/stores and PUT /v1/stores/status; BOTH PATHS WERE REMOVED in the rebuild, so store creation and status are now write-surfaces with no published endpoint and the asymmetry is wider than recorded, not narrower. SHORTFALL, unchanged otherwise: the organization tree is read-only (GET /organization/v1/organization, /brands, /brands/{brandId}/stores, with only the store connection object writable), GET /inventories/v1/summaries has no count or adjustment write, reviews are reply-only (POST /v1/reviews/reply, no review read), and reports are generate-and-fetch on a contract the vendor now marks Deprecated. Employees and staff remain absent from the spec entirely - no employee, timecard or labor resource exists among the 70 endpoints - so payroll-relevant data is neither readable nor writable. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Partial

extensibility-published-rate-limits

Re-verified 2026-08-10; value and grade unchanged, quotations replaced. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. IP quotas are still published numerically and unchanged in substance, now as a table: 'Authenticated | 20 requests per second per IP (all endpoints combined)' and 'Unauthenticated | 3 requests per minute per IP'. Throttling behaviour is still stated: 'The API responds with HTTP 429 until usage drops below the threshold. Back off and retry with jitter. Do not tight-loop on 429.' EVIDENCE LOST, and it is the specific half: the per-endpoint numeric quotas the previous note quoted (POST /v1/orders 'RATE LIMIT: 32 per minute', POST /v1/menus 2 per minute, GET /v1/menus 8 per minute, GET /inventories/v1/summaries 32 per minute, GET /v1/reports/{jobId} 2 per minute) no longer exist - the string 'RATE LIMIT' occurs zero times in the 70-path spec, and the guide now says only that 'Authenticated endpoints are rate limited individually at the store level for your application... Exact quotas depend on the endpoint', pointing readers to 'usage quotas in the Rate limiting section of the API reference' via a link that resolves back to /docs/guides-rate-limiting - the page itself. SHORTFALL, unchanged: no rate-limit headers are documented; the spec defines no X-RateLimit-* or Retry-After response header on any operation, so a client cannot read remaining quota or how long to wait. Partial holds - one published numeric tier at the IP level, a circular pointer at the endpoint level. https://developer-guides.tryotter.com/docs/guides-rate-limiting/ · retrieved 2026-08-10

A
Yes

extensibility-doordash-preferred differentiator

Verified independently and the dossier gave no URL for it. DoorDash newsroom post dated 18 May 2026 names the 2026 cohort: Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiper. Note Otter was also in the 2025 inaugural cohort (PRNewswire), so this is a renewal, not a new certification. https://about.doordash.com/en-us/news/doordash-preferred-integrations-program-2026 · retrieved 2026-08-01 adversarially verified

B
Yes

extensibility-first-party-delivery-integrations differentiator

Re-evidenced 2026-08-09; citation moved off the marketing directory onto product documentation. Otter is itself the certified integrator and the help centre documents each connection first-party: separate Integration Guides for DoorDash (art. 4403016409619), Uber Eats (art. 28883991347731) and Grubhub (art. 4403016352787), plus Skip the Dishes, ChowNow and Order with Google, and an enterprise article "Authorize Otter on Delivery Platforms" whose stated scope is granting Otter access "to each store in the delivery platform merchant portals ... across DoorDash, Uber Eats, and Grubhub" so it can monitor business performance and submit disputes on the operator's behalf. Integrations Introduction adds that "most Delivery Partner integrations can be easily self-onboarded." No middleware sits beneath Otter on these three. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/53466996694419-Authorize-Otter-on-Delivery-Platforms · retrieved 2026-08-09

B
Unknown

extensibility-middleware-compatibility

Inverted for this vendor and still unresolved from Otter's side. In the 292-article helpdesk.tryotter.com corpus, Deliverect, Chowly, ItsaCheckmate, Ordermark and OLO appear only as the provider a merchant is leaving - the identical FAQ 'What if I previously worked with another POS integration provider? (e.g. Chowly, It's a Checkmate, Deliverect, OLO)' recurs in the Toast, Clover, Square, Revel, Brink, Lightspeed K/X/O-Series, Menusifu, Epos Now and NCR Aloha BSL integration guides, and 'How to integrate your online ordering platforms with Otter' (art. 27144282431891) tells merchants to tell itsacheckmate/Deliverect they are switching to Otter. Nothing in Otter's help centre or in the Public API at developer-guides.tryotter.com (which describes third parties integrating INTO Otter as order providers/consumers, not Otter POS being consumed by an aggregator) says Otter POS is a certified endpoint for any middleware platform. Deciding this needs the middleware vendors' own supported-POS lists; deliverect.com/en/integrations/pos and chowly.com/integrations/ both returned 404 today, and I will not score it from a search-result snippet.

F
No

extensibility-accounting-connectors

Re-evidenced 2026-08-09; the marketing-directory enumeration is withdrawn. Otter's own help-centre Integrations Introduction enumerates the integration types the product supports - "Point of Sale (POS), Delivery Partners, Direct to Customer, Couriers, Staff Management, Virtual Brands" - and accounting or GL is not among them. The positive evidence for the CSV-only shape is Otter's reporting documentation itself: "Export report for accounting purposes", "Export the report for your accounting system as needed" (twice) and "Export a CSV of the payouts to your accounting software." The API's finance domain is a data pull - /finance/v1/financial-transactions and /finance/v1/financial-invoices - not a mapped journal-entry connector, and there is no chart-of-accounts or GL-mapping object anywhere in the published spec. The 292-article corpus returns zero hits for QuickBooks, Xero, general ledger and journal entry. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/12558333053587-Integrations-Introduction · retrieved 2026-08-09

B
Partial

extensibility-payroll-export

CORRECTION: the previous note's 'Otter holds no labor hours to export' was false and is withdrawn. Otter POS ships a Time Card app - 'It enables employees to clock in or out directly from your Otter POS terminal and integrates employee time reporting into your Otter Dashboard', with admins able to correct clock-in history - and a Labor Cost Report giving 'an aggregated view of employees' hours worked, wages, and labor costs compared to sales'. Those hours do leave the system natively, for one named partner: 'The Homebase x Otter integration lets your team clock in and out directly from Otter's Timecard applet on your tablet. All timecard data is automatically sent to Homebase, where you can view and edit timesheets, as well as log breaks' (Homebase Integration Guide, art. 43081257316243). Shortfalls that keep this off yes: (1) one destination, not the two the claim requires, and Homebase is a workforce-management platform rather than one of the payroll bureaus named in the claim - no Gusto, ADP, Paychex or Paylocity integration is documented anywhere; (2) it is a paid add-on, 'The Homebase X Otter integration is $20 per month', requires an 'Active Homebase subscription' on a paid plan plus a Homebase API key, and is finished 'on your behalf' by an Otter Account Manager rather than self-serve; (3) the documented route to an actual payroll run is a file hand-off, not a connector - the Labor Cost Report lets an Otter POS customer with the Homebase integration 'view and export the aggregated hours data & aggregated wage data by employee and directly import the spreadsheet into the 3rd party payroll provider' (art. 38681141651987). tryotter.com/integrations lists a Labor category of 7shifts, Homebase, WhenIWork and Deputy, but only Homebase's timecard sync is documented in the 292-article English help centre. https://helpdesk.tryotter.com/hc/en-us/articles/43081257316243-Homebase-Integration-Guide · retrieved 2026-08-08

B
Partial

extensibility-bi-data-warehouse differentiator

Re-verified 2026-08-10; value and grade unchanged, note corrected. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. The reports endpoints POST /v1/reports/generate and GET /v1/reports/{jobId} are no longer published as paths, and the reportGenerated webhook is one of four dropped from x-webhooks - but this is a DEPRECATION the vendor documents, not a withdrawal. connect.tryotter.com/docs/guides-contract-status/ carries Reports among its production contracts: 'Deprecated. Date boundaries are inclusive UTC calendar dates. Downloads are comma-delimited UTF-8 CSV. Each generate request creates a new job, and polling by jobId is the reconciliation path when a best-effort webhook is missed. Otter returns EXPIRED two days after workflow completion. Contact your Otter representative for migration options.' The scope 'reports.generate_report: Request reports for one or more stores' is still declared, and GenerateReportMultiRequest still offers ORDER_STORES, ORDER_ITEMS, PAYOUT_TRANSACTIONS and RATINGS_AND_REVIEWS over up to 5,000 external store IDs, with the generated-report event schema retaining 'Job id as returned by /v1/reports call' and 'Public URL to download generated report'. The per-column Order Report breakdown the previous note quoted (estimatedCommission, estimatedNetPayout, payoutId, isReconciled and the rest) is no longer published anywhere in the corpus and those quotations are withdrawn. In-product, Scheduled Reports (helpdesk art. 22964276979987, re-fetched live 2026-08-10 through the Zendesk Help Center API against a fabricated-id control) still emails a report daily, weekly, monthly, quarterly or yearly to chosen recipients across selected brands and locations with a 'Checkbox to include CSV file in email'. SHORTFALL, unchanged and now deeper: nothing is delivered to a customer-controlled destination - no S3, SFTP, Snowflake share, BigQuery or warehouse connector appears in the 59-guide corpus or the 70-path spec. The export is a CSV the partner application downloads within two days on a deprecated contract, and the scheduled email carries the report's summary metrics rather than a raw transaction dump. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
Yes

extensibility-app-marketplace

Re-evidenced and upgraded 2026-08-09. The marketing directory remains the public browse surface, but the claim's self-install half is now documented first-party. Integrations Introduction: "You can browse Integrations compatible with Otter from the Otter Website [and] the Otter Dashboard"; in the dashboard, "Settings > Integrations tab to browse or connect integrations. Scroll through the list of supported integrations, select the integration type, or use the search to find a specific integration"; "The integrations listed on the Otter Dashboard are integrations you can connect yourself"; and the connect procedure is given step by step - "Go to Settings > Integrations > Explore, Find the integration you'd like to add, Click [Connect], Follow the prompts to connect integration and Otter accounts." Named third-party apps are listed per type (Square, Clover, Toast; DoorDash, Grubhub, Uber Eats; Flipdish, Delivery.com, Wix; DoorDash Drive, Relay, Shipday; Homebase, Deputy; Future Foods, SideDoor). Residual caveat, short of a shortfall: the vendor hedges that only "most" dashboard-listed integrations connect in place and anything not listed requires contacting Otter Support, and there is no third-party developer submission programme - but the claim asks for browse and self-install, and both are documented. Corpus-scope note: this is the 2026-08-08 helpdesk dump (292 articles) plus the live OpenAPI, not everything Otter publishes. https://helpdesk.tryotter.com/hc/en-us/articles/12558333053587-Integrations-Introduction · retrieved 2026-08-09

B
Partial

extensibility-custom-fields-scripting

Operators can define their own fields on one object without vendor involvement: Location Tagging gives an admin 'the ability to create custom tags for any of your locations' from Settings > Location Tags - 'A tag name: This is the filter group by which you want to categorize your locations by; eg. Regions' with operator-defined 'Options: These are the dimensions or how you want to filter; eg. northwest, central, southeast' - applied to one or many locations from Settings > Locations, and then usable 'in any of your reports in Analytics or Live Monitoring'. Internal Menu Names (art. 40229821311379) similarly let an operator set a private searchable alias on a menu, category, item or modifier group. SHORTFALL: that is the whole surface. No custom fields on orders, guest profiles or transactions are documented; the SKU Library's extra attributes are a fixed vendor-defined set (product tag, barcode, dietary, nutrition, packaging, sourcing); and no vendor-hosted scripting, rules engine or automation exists in the help centre or in the Public API, whose only free-form structure is additionalData on POS injection events, which the integrating partner supplies. https://helpdesk.tryotter.com/hc/en-us/articles/23271075696915-Location-Tagging · retrieved 2026-08-08

B
No

extensibility-headless-embedded

The published Public API is an aggregation plane, not a transaction engine exposed to third-party UIs. Its 75 endpoints contain no cart, item-pricing, tax-calculation, discount-evaluation, payment-authorization or checkout operation; POST /v1/orders instead requires the caller to submit the finished transaction - line items, fulfillment, 'customer payments, and exactly one financial breakdown - orderTotal (V1) or orderTotalV2 (V2)' - i.e. the pricing, tax and payment work is done in the calling system before Otter sees the order, and PUT /v1/orders/{orderId}/payments only merges an updated breakdown the caller computes. Where Otter does expose an engine behind someone else's UI it says so explicitly and narrowly: the manager loyalty endpoints (/manager/loyalty/v1/{source}/rewards/evaluate, /simulate, /redeem-and-accumulate, /refund) let a third-party POS drive Otter Loyalty. No equivalent exists for the POS check itself, and neither the ~40 integration guides nor the help centre documents a white-label, embedded-checkout or headless POS mode. RE-VERIFIED 2026-08-10 after the docs rebuild: the POST /v1/orders description still requires line items, fulfillment information, customer payments and at least one financial breakdown (orderTotal V1 or orderTotalV2), and no guest-facing or embeddable surface appears in the 59-guide corpus or the 70-path spec. Value and grade unchanged. https://connect.tryotter.com/docs/api-reference/reference/otter-api/ · retrieved 2026-08-10

A
No

extensibility-api-versioning-deprecation

RE-SCORED 2026-08-10, partial -> no, and the new evidence is the vendor's own disclaimer rather than an absence. DOCS REBUILD 2026-08-10: Otter replaced its developer documentation between 2026-08-08 and 2026-08-10 - the MkDocs guide set and Redoc reference at developer-guides.tryotter.com are now a Docusaurus site at connect.tryotter.com (59 guides indexed by /docs/llms.txt, with /docs/llms-full.txt, /docs/agent-search.json and an MCP endpoint alongside), the OpenAPI document went from 75 paths to 70 and from 27 x-webhooks to 23, and every guide-tier quotation in this record was re-worded at the source. Re-measured against the live spec and the 59-guide corpus on 2026-08-10. The versioning policy this cell quoted verbatim ('Each API is versioned individually, but we follow these rules...') is gone: the current spec contains zero occurrences of 'breaking' and has no Versioning section, and no changelog or release-notes page exists in the 59-guide corpus or the 70-path spec. What replaced it is stronger evidence in the same direction. connect.tryotter.com/docs/guides-contract-status/ splits Otter's API surface into 'Production contracts' and 'Preview behavior', the latter headed 'Behavior that is not yet a public guarantee', and the API lifecycle row sits on the PREVIEW side: 'Support targets, certification policy, incident communication, credential-rotation procedure, PII retention, versioning, and deprecation notice periods'. The vendor is now stating in published documentation that its versioning and deprecation notice periods are not a public guarantee, and the page's instruction for anything on that side is to 'Ask your Otter representative to confirm the behavior for your application'. The practice that survives is not a policy: individual fields and scopes carry 'deprecated' annotations in the spec (Item.categoryId, Item.categoryName, Address.linesOfAddress 'Deprecated: use addressLines', menus.pos_publish, orders.status_update), the Reports area is marked Deprecated on the contract-status page, and one migration guide exists ('Migrate to Order Total v2' - 'Move from deprecated orderTotal to orderTotalV2'). Marking a deprecated field is not publishing a changelog, and 'contact your representative' is not a stated notice period. Neither conjunct of the claim is met. https://connect.tryotter.com/docs/guides-contract-status/ · retrieved 2026-08-10

A
Partial

extensibility-data-portability-exit differentiator

On-demand machine-readable export is broad: every Analytics report table has an export control ('there is an export button above the data table'), and CSV or Excel export is documented for Sales Summary, Order History, Product Mix, Voided Transactions, Cash Management, Taxes, Payouts, KDS reporting, Guest Directory, Staff timecards ('.xls format') and promotions history; via the Public API, ORDER_STORES, ORDER_ITEMS and PAYOUT_TRANSACTIONS reports return transaction-level rows for up to 5,000 stores. SHORTFALL: exports are bounded and piecemeal - 'You will be able to view or export up to 365 days of data' per pull and 'up to three years in the past' - there is no single complete-account export bundling orders, customers, menu and payments metadata, menu export is only the Excel template used for import, and no post-termination retrieval window is published: cancelling is a request form submitted by a Billing Admin that support actions within 48 hours (Enterprise, Partner and Annual customers must go through their CSM), with nothing stated about access to data afterwards. https://helpdesk.tryotter.com/hc/en-us/articles/12558297776147-Otter-Analytics-Your-Guide-to-Reports-and-Insights · retrieved 2026-08-08

B

Reliability, offline & operations

Partial

reliability-offline-order-entry

"POS terminal offline mode" is asserted in Otter's own comparison table against Clover, Square, Revel and Toast, with no supporting documentation of scope. https://tryotter.com/products/otterpos · retrieved 2026-08-01

D
Yes

reliability-offline-card-auth differentiator

'Otter POS Using Offline Mode' (art. 26865574404883), quotation re-verified live via the help centre article API on 2026-08-08: offline mode lets an operator 'effortlessly process credit card and cash transactions in areas with no or unstable network connection'. It 'is automatically enabled for all Otter POS customers'; when the terminal 'is unable to detect a network connection, it will begin storing orders in offline mode' behind a warning banner, each queued order carries a cloud icon, and 'Orders will be automatically processed when you connect to a network again' - store-and-forward for card, not a cash-only fallback. Already-paired Bluetooth or USB card readers keep working (new readers cannot be paired offline). The Handheld 'supports offline mode in both card reader mode and mobile POS mode' (art. 35667642715283); Kiosk Mode is the documented exception - 'Currently, Kiosk Mode does not support offline mode' (art. 39076552467987), where the cashier-facing POS must take the order instead. https://helpdesk.tryotter.com/hc/en-us/articles/26865574404883-Otter-POS-Using-Offline-Mode · retrieved 2026-08-08

B
Partial

reliability-offline-decline-liability differentiator

CORRECTED ATTRIBUTION. The 'Payment Responsibility' clause previously quoted here is not in the general Tech Services Terms of Use - it is section 8(g) of the ONLINE ORDERING AND DIGITAL DINE IN ADDENDUM, and section 8(a) of that Addendum scopes it: 'The Payment Processing Services are provided as part of the Online Ordering and Digital Dine In Services.' The published agreement carries no POS product addendum (its addenda are Online Ordering & Digital Dine In, Boost, Hardware, Financial Reconciliation, Handoffs, Reputation Management and the DPA), so that clause cannot be read as the rule for a card-present store-and-forward decline on Otter POS. What does carry the cell is general and platform-wide. Warranties and Disclaimers b: 'You agree that we are not liable to you or to any third party for any interruption, modification, suspension, or discontinuance of the Tech Services... You acknowledge and agree that the Tech Services are provided as-is.' Indemnity and Limits of Liability b: 'YOU AGREE THAT OUR TOTAL LIABILITY ARISING OUT OF OR RELATING TO THE AGREEMENT, THE ADDENDUM(S), THESE TERMS AND/OR YOUR USE OF THE TECH SERVICES, IN THE AGGREGATE, IS LIMITED TO THE LESSER OF (i) US$1,000 OR (ii) THE FEES THAT YOU PAID TO USE THE TECH SERVICES IN THE 12 MONTHS BEFORE THE EVENT GIVING RISE TO THE LIABILITY.' A merchant reading the published contract does therefore get an answer to who bears the loss: they do, and Otter's exposure is capped at the lesser of $1,000 or twelve months of fees. SHORTFALL: no per-transaction or cumulative offline cap is published anywhere, and no decline-on-reconnect scenario is described. 'Otter POS Using Offline Mode' (art. 26865574404883, updated 2025-06-03) enumerates the limitations - 'Online orders cannot be accepted on Otter when a device is disconnected from the internet', 'You will not be able to pair new printers or card readers in Offline Mode', 'Printers that are connected using a wifi or ethernet connection will not print orders during an internet outage' - and sets no ceiling on offline value, offline order count or offline duration. It states only that 'Orders will be automatically processed when you connect to a network again', with no failed-payment path, recovery process or offline-decline insurance. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-09 adversarially verified

B
No

reliability-lan-degraded-multi-terminal differentiator

'Otter POS Using Offline Mode' (art. 26865574404883) is Otter's complete statement of degraded-network behaviour and it describes per-device islands, not shared LAN state. Its limitations section says the local network stops carrying Otter traffic the moment the internet goes: 'Printers that are connected using a wifi or ethernet connection will not print orders during an internet outage' and 'Station tickets do not print when the device is in offline mode' - only Bluetooth and USB peripherals already paired to that one device keep working. A printer sitting on the same LAN as the terminal is unreachable, so there is no local transport for two terminals to share a check over either. Consistently, offline orders are held on the device that took them and carry a cloud icon 'until they have been uploaded and processed online', and online orders 'cannot be accepted on Otter when a device is disconnected from the internet'. No local server, master terminal, table-state sync or shared-check behaviour appears anywhere in the 292-article helpdesk.tryotter.com corpus. https://helpdesk.tryotter.com/hc/en-us/articles/26865574404883-Otter-POS-Using-Offline-Mode · retrieved 2026-08-08

B
Partial

reliability-local-transaction-engine differentiator

Device-local, not on-premise. 'Otter POS Using Offline Mode' (art. 26865574404883) documents that the terminal itself takes and completes credit card and cash transactions with no cloud round-trip while disconnected, storing them on the device until reconnect, so the ordering path is not purely cloud-hosted request/response. The local store is real enough that Otter warns about it: 'Do NOT clear the cache/storage of the Otter app if the Otter POS is working in Offline Mode. Clearing the cache/storage of the app while in offline mode will erase data from the Otter app that has not been sent to the server yet. For example, order history.' SHORTFALL: the local component is the individual terminal's own queue - no local/edge server, back-office appliance or on-premise database is documented anywhere in the 292-article help centre, and the rest of the ordering path stays cloud-dependent: online orders cannot be accepted offline, menus are published from the Otter Dashboard, wifi/ethernet printers do not print during an outage, and Cloud Printers run direct from Otter's servers, 'completely separate from the Otter tablet and Otter app' (art. 13776113141907). https://helpdesk.tryotter.com/hc/en-us/articles/26865574404883-Otter-POS-Using-Offline-Mode · retrieved 2026-08-08

B
Partial

reliability-offline-kds-printing

Upheld partial on re-fetch 2026-08-02. The only evidence remains a competitor-comparison table on Otter own POS marketing page (vs Clover, Square, Revel, Toast) listing "KDS offline mode" and "Printer offline mode" as checkmarks. Shortfall: the KDS product page, fetched in full again today, does not contain the word "offline" anywhere, and no scope documentation states what survives an outage. A checkmark in a self-authored competitive matrix does not carry a yes. https://tryotter.com/products/kds · retrieved 2026-08-02 adversarially verified

C
Partial

reliability-printer-fallback

The alert half is documented: 'When a Bluetooth or Front of House printer has connectivity issues, an alert will let you know an issue has been detected and prompt you to run diagnostics.' Shortfall: no automatic failover to a backup printer or KDS appears anywhere in the printer docs - the documented recovery is manual diagnostics and reprint - and in offline mode wifi/ethernet printers 'will not print orders' and 'station tickets do not print' at all (art. 26865574404883). https://helpdesk.tryotter.com/hc/en-us/articles/13778392924819-Bluetooth-Front-of-House-Printer-Troubleshooting · retrieved 2026-08-03

B
Unknown

reliability-sync-conflict-handling

Checked 2026-08-08 against the full 292-article helpdesk.tryotter.com dump (Help Center API; the rendered /hc pages 403 under bot mitigation) and, newly, the published Tech Services Terms at www.tryotter.com/legal/tech-services. The only conflict-resolution behaviour Otter documents is between systems, not between devices: 'Resolve POS Menu Conflicts' (art. 25819030909587) compares the Otter menu against a linked third-party POS menu every six hours with one-click per-item resolution, and 'Manually Build a Menu' (art. 39374883174291) flags a location as 'Conflict' when it already has a different menu assigned and states the last assignment wins ('the current menu will be unassigned and the new imported menu will be assigned'). Neither is a partition case. 'Otter POS Using Offline Mode' (art. 26865574404883) says offline orders 'will be automatically processed when you connect to a network again' and enumerates three limitations (online orders not accepted, no new device pairing, wifi/ethernet printers silent) without ever stating what happens if two devices edited the same check, menu item or guest record while disconnected - no last-write-wins statement, no merge rule, no operator prompt. 'Menu Version History' (art. 35314976325907) records an autosaved snapshot and the publishing user but describes a revert, not a conflict resolution. A body search for 'conflict' across the dump returns 10 hits, all menu-vs-POS or menu-assignment. The Terms are silent and disclaim data errors outright ('we... shall have no liability for any errors to Your Data'). Unresolved rather than refuted: Otter has simply never published the behaviour.

F
No

reliability-offline-feature-matrix

Otter lists three offline modes as feature bullets but publishes no list of what is unavailable offline — the inverse of what this criterion asks for. https://tryotter.com/products/otterpos · retrieved 2026-08-01

C
Yes

reliability-public-status-page

Re-confirmed 2026-08-02: 11 named components (Analytics & Financials, Business Manager, Delivery/Partner Integration, Direct Order, Future Foods, Marketing, Menu Management, Order Manager, POS Integration, Tablet Software, Virtual Brand), all Operational, no uptime percentage published, and a 2026 archive of 22 incidents Feb-Jul including DoorDash order-injection failures, Uber Eats 86ing failures and menu-publishing errors. Most recent: Order Manager stuck on loading screen, 30 July 2026, MITIGATED. https://status.tryotter.com/ · retrieved 2026-08-02 adversarially verified

B
No

reliability-contractual-uptime-sla differentiator

Re-grounded: the earlier note's 'The merchant MSA is not public' is withdrawn - the Otter Tech Services Terms of Use, the agreement governing the paid Tech Services, are publicly readable. Read in full, they carry no uptime percentage, no availability commitment and no service-credit or other remedy for downtime; a search of the whole document for 'uptime', 'service level', 'SLA', 'service credit' and '99.' returns nothing but an unrelated network-load-balancing sentence. They point the other way: 'Your access and use of the Tech Services may be interrupted from time to time for any of several reasons... You agree that we are not liable to you or to any third party for any interruption, modification, suspension, or discontinuance of the Tech Services... the Tech Services are provided "as-is." We do not not warrant that the Tech Services shall be uninterrupted, virus free, or shall meet any of your specific needs or requirements'. The same disclaimer is repeated verbatim for Beta Services and for Hardware, and 'The Hardware Warranty is the only express warranty provided by us'. Aggregate liability is capped at the lesser of US$1,000 or fees paid. That is an enumerated absence in the governing agreement, not silence. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-08 adversarially verified

B
Partial

reliability-incident-postmortems

Incident archive records date, affected component and lifecycle state (Investigating/Mitigated/Recovered/Resolved). No written root-cause postmortems. https://status.tryotter.com/ · retrieved 2026-08-01

B
Partial

reliability-247-live-support

Upheld partial on re-fetch 2026-08-02. Confirmed on the support page: "Available 24/7/365", "Average response time: 2 minutes", phone +1 (888) 681-8837, live chat in dashboard and Otter Go app. Shortfall: the page never states support is included in every plan at no extra cost - the pricing FAQ poses "Does Otter include support in its plans?" and renders no answer - and independent operator reports contradict the reachability claim. https://tryotter.com/support · retrieved 2026-08-02 adversarially verified

B
Partial

reliability-onsite-install differentiator

First-party on-site installation exists, for kiosks only. 'Kiosk (27" & 21") Setup Guide' (art. 39076370297875): 'Otter offers professional Kiosk Installation service for the Kiosk Pro (27") and Kiosk (21") with no additional fee for restaurants in the United States and Canada. We will send a technician to the restaurant site to unbox, build, and install the hardware to ensure the kiosk is assembled and functioning properly.' Otter adds a go-live step in person - 'Before the installation technician leaves, we strongly recommend running a test order on the kiosk (using your own credit card)... If the test order is not successful, the technician will be there to help troubleshoot' - taking about an hour per kiosk with a manager present. SHORTFALL: no on-site option is documented for Otter POS terminals, handhelds, tablets, printers, cash drawers or KDS; the Otter POS path is self-install hardware guides plus a remotely scheduled 'Go-Live call with an Otter Onboarding Specialist' (art. 33964789386259), and the kiosk service is US and Canada only. No certified dealer or reseller installation network is documented. https://helpdesk.tryotter.com/hc/en-us/articles/39076370297875-Kiosk-27-21-Setup-Guide · retrieved 2026-08-08

B
Unknown

reliability-menu-build-service differentiator

Otter POS Onboarding Checklist (art. 33964789386259) puts menu setup on the operator - 'Finalize your menu setup within the Otter Dashboard. There are multiple ways you can add a new menu to Otter: Import from delivery partner / Upload a spreadsheet template / Create the menu manually in Otter' with links to self-serve help articles - but it is a pre-call task list, not a supported/unsupported statement of onboarding scope, and it also tells the operator that an Onboarding Specialist will help with any step they get stuck on during the Go-Live call. Elsewhere in the corpus specialists do perform menu-adjacent work (the Revel guide has the specialist enable an item-duplication route on request; the MenuSifu guide says 'The Otter Onboarding Specialist will contact you to double-check the menu adjustments'; the Wix guide has the specialist set up the integration and train the team). Whether a menu build is included for larger or enterprise accounts is addressed nowhere, so this is unresolved rather than denied.

F
Partial

reliability-hardware-replacement-sla

The programme exists; the clock does not. Tech Services Terms of Use, Hardware Addendum (www.tryotter.com/legal/tech-services): 'we warrant that, during the Warranty Period, all components of the Hardware shall be free from faulty workmanship and defective materials under normal use and service for a period of 1 year', covering both leased and purchased hardware, with the remedy 'at its sole option: (1) repair the Hardware... (2) replace the Hardware with comparable Hardware, or (3) refund the amount paid'; a Return Merchandise Authorization number must be obtained from support first and 'You assume the risk of damage to or loss of returned Hardware in transit.' Operationally it behaves as an advance exchange - 'Otter Printer Options' (art. 13776113141907): 'Our team usually attempts to first troubleshoot the device with you. If we can't get it to work, we'll be happy to send a replacement', and for a replacement device 'A pre-printed return label will be included in the box of the new equipment', i.e. the new unit ships before the old one goes back. 'How Do I Get A Tablet Replacement?' (art. 360053294413) describes the same troubleshoot-then-replace path. SHORTFALL: no turnaround time, next-business-day option, depot-vs-onsite mode or SLA is stated in the contract or the help centre; the remedy is expressly at Otter's sole option; '*Please note: replacement fees may apply'; and 'For countries outside the US&C, Otter does not offer replacements for hardware.' https://helpdesk.tryotter.com/hc/en-us/articles/13776113141907-Otter-Printer-Options · retrieved 2026-08-08

B
Partial

reliability-backup-restore

Restore exists for menus, retrieval for reports, nothing for the account. 'Menu Version History' (art. 35314976325907) lets an operator 'View recent menu publishes', 'See what user published a menu version' and 'Revert to a previous menu version', with an autosaved snapshot and a Menu Activity log of individual edits - an operator-triggered restore of menu state. Data retrieval is real too: analytics and POS report tables carry an [Export] control to CSV/xlsx, and the reporting docs state 'You will be able to view or export up to 365 days of data' at a time and 'up to three years in the past'. SHORTFALL: no account-level backup, no restore of orders, guests, loyalty or settings, no operator-triggered full-account export, and no RPO, RTO or disaster-recovery figure appears on tryotter.com (the 2,521-URL sitemap has no security, trust or status-commitment page beyond status.tryotter.com) or in the 292-article help centre. The Tech Services Terms go the other way: the services are provided 'as-is', Otter does 'not warrant that the Tech Services shall be uninterrupted' and 'shall have no liability for any errors to Your Data'. https://helpdesk.tryotter.com/hc/en-us/articles/35314976325907-Menu-Version-History · retrieved 2026-08-08

B
No

reliability-pci-dss-4-attestation

Otter publishes no attestation of any kind, and the enumerations are complete ones. Its /legal index is the vendor's own list of every legal document it publishes - 12 terms-of-use documents, 6 privacy documents and 2 promotions - and none is an AOC, a P2PE listing or a security statement. www.tryotter.com/security, /trust and /dpa return 404; trust.tryotter.com, security.tryotter.com and compliance.tryotter.com do not resolve; the full sitemap-0.xml (2,521 URLs, retrieved 2026-08-08) has no security, trust, compliance or PCI page in any of its seven locales. The published Data Processing Addendum requires only 'appropriate technical and organizational measures' and names no standard. The Tech Services Terms run the obligation the opposite way: 'You represent and warrant that you shall comply with all data security standards (including any standard related to the physical compliance requirements of using any Hardware) adopted by the PCI Security Standards Council, LLC and any amendments thereto, the EMV standards, and the security rules of each payment card association', and the merchant indemnifies Otter for 'breach of any PCI obligations'. Card processing is Stripe's - 'all payments and monetary transactions are handled by Stripe' - so any validated listing covering the payment path would be Stripe's, and Otter neither publishes nor points to one. https://www.tryotter.com/legal · retrieved 2026-08-08

B
Partial

reliability-mfa-role-based-access

Role-based access yes, MFA no. 'User Management' (art. 44753081545619) documents ten system roles - Admin, Accountant, Analyst, Manager, Shift Supervisor, Cashier, Cook, Cook (Restricted), Courier, Dispatcher - each with an explicit Access Level (organization, brand or location), Otter Dashboard access flag and device (POS/tablet/kiosk) access flag, plus operator-built Custom Roles that start from a base role and toggle permissions per app and per feature, brand- and location-scoped assignment, and a Deactivated status where the 'user is disabled and cannot log in'. Access to User Management is itself restricted to Admins, and Billing is gated behind a separate Billing Admin role. SHORTFALL: the same article states a Login Type for every role and the entire enumerated set is 'Username & Password', 'Email & Password' or 'Pin Code' - there is no second factor on any role. 'Otter Account Logins' (art. 42099611842195) walks the whole Dashboard sign-in and account-settings surface (enter email and password, edit email address, change password, forgot-password email) with no TOTP, SMS step-up, push approval, SSO or enforcement toggle. The only two-factor authentication in the 292-article corpus belongs to the delivery platforms Otter connects to, not to Otter (Repairing Disconnected Integrations, art. 4417582578323). https://helpdesk.tryotter.com/hc/en-us/articles/44753081545619-User-Management · retrieved 2026-08-08

B
Partial

reliability-self-serve-training

Public help center at helpdesk.tryotter.com plus "resources and live guidance to get your team confident". No terminal training mode documented. https://tryotter.com/support · retrieved 2026-08-01

B
Unknown

reliability-failover-terminal-role differentiator

Checked 2026-08-08 across the full 292-article helpdesk.tryotter.com dump (Help Center API) and the published Tech Services Terms. No master, server or primary terminal role appears anywhere in Otter's documentation, so there is nothing named to fail over: every terminal, kiosk, handheld and tablet is paired individually to the account through Otter Dashboard > Settings > Devices > 'Add new device' with its own pairing code (Kiosk 27"/21" Setup Guide art. 39076370297875, Otter POS Hardware Setup Guide art. 35409-series), and each device transacts against the cloud on its own - 'Otter POS Using Offline Mode' (art. 26865574404883) describes per-device queueing with no coordinator. The one inter-device dependency documented is the Handheld, which 'connects directly to your Otter POS terminal' and cannot print a receipt or open the cash drawer itself: 'Cash payments should be completed on the main terminal to trigger the opening of the cash drawer' (art. 35667642715283). Otter never states what happens to a paired handheld when that main terminal fails, and no backup-terminal assignment, role promotion or device-priority setting appears in the POS settings articles (Otter POS Settings in Otter Dashboard art. 26642302966547, Otter Tablet & POS Device Settings). Left unknown rather than no because Otter does not affirmatively say either that a role transfer exists or that the architecture makes one unnecessary.

F
Partial

reliability-cellular-backup

Cellular is a first-party primary connectivity option, not a documented automatic failover. 'Otter Plan Packages & Hardware' (art. 18739528029715) lists five tablet SKUs and one of them is cellular: 'Samsung LTE A7 Lite - US ONLY - 8.7" LTE tablet, 32GB Memory, 3GB RAM, Offered with data plan for access to Wifi', at $80/month lease and 'NOT AVAILABLE TO BUY', alongside the Wi-Fi-only Lenovo P11, Samsung A7 Lite and Samsung A8. SHORTFALL: it is an Order Manager tablet SKU, US-only and lease-only at roughly triple the price of the Wi-Fi models; no LTE variant is listed for the Otter POS terminals, kiosks, handhelds or KDS; and no automatic Wi-Fi-to-cellular failover behaviour, dual-WAN handoff or connectivity-priority setting is documented for any device. Otter's documented answer to a dropped connection is Offline Mode (art. 26865574404883), and its connectivity troubleshooting recommends the opposite of cellular - 'Use a wired connection: If available, connect an Ethernet cable directly from the router to the POS system', while the KDS install guide says 'Avoid using non-business-grade internet connections like cellular hotspots or phone tethering' (art. 34209922356499). https://helpdesk.tryotter.com/hc/en-us/articles/18739528029715-Otter-Plan-Packages-Hardware · retrieved 2026-08-08

B

Commercial, compliance & data ownership

Yes

commercial-month-to-month-contract differentiator

Published in the governing merchant contract, not just implied by monthly pricing. Tech Services Terms of Use (www.tryotter.com/legal/tech-services, retrieved 2026-08-08): 'If you did not enter into an Order Form (or your Order Form does not state a subscription period), or if the time period in your Order Form expires, your use of the Tech Services is authorized on an ongoing month to month basis.' Monthly Plans are billed 'from the first day of each calendar month ("Monthly Pay Date")' and 'The term will auto renew and we continue to charge you on a monthly basis on the Monthly Pay Date unless you provide us with written notice at https://tryotter.com/customer-support to cancel' - no minimum term, no multi-year commitment, with Term Plans as the explicit alternative rather than the default. The help centre says the same thing in plain language for the Uber Otter Benefits subscription: 'Month to Month Renewal: $149/month + $20 POS Integration (if applicable)' and 'No - There is no contract period. You can cancel at any time' (art. 45522337604499). In-product cancellation is self-serve for standard customers via Billing > Subscriptions > Submit a request (art. 20690423360403). Worth recording alongside: cancellation notice must reach Otter by the 15th to end service the following month; Enterprise, Partner and Annual Billing customers must go through a Customer Success Manager; and leased hardware must be returned or an Unreturned Equipment Fee applies. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-08

B
No

commercial-no-early-termination-fee differentiator

The published Tech Services Terms of Use impose an early-termination charge in substance on one of the three billing structures they define. Section 4(a) enumerates them as a Monthly Plan, a prepaid Term Plan (1 year or 9 month term), and a 'Term Plan with Monthly Payment'. For the last, section 4(d) states: 'If you cancel during the subscription term, you will not be issued any refunds for or credits of any prepaid and unused fees for the remainder of the subscription term, and you will be required to pay any and all unpaid fees related to the subscription term. If you fail to make timely payments, any and all unpaid fees that are outstanding under the applicable service order may become immediately due and payable at our discretion.' That is acceleration of the full unbilled balance of the term - the merchant on a monthly-billed annual plan owes the rest of the year on cancelling. The labels 'early termination fee' and 'liquidated damages' do not appear, but the obligation does, so the claim - which asks for terms stating no ETF - fails. The other two structures are milder rather than exculpatory: a prepaid Term Plan forfeits prepaid unused fees ('All Fees are non-refundable'), and a Monthly Plan simply ends the following month on written notice by the 15th, with nothing to accelerate. Exit costs also exist on the hardware side: leased Hardware must be returned within 60 days of termination or Otter charges an 'Unreturned Equipment Fee' equal to 'the current Hardware price actually offered for sale (without any discounts or promotions) ... plus a 10% administrative fee', secured by a purchase-money security interest in the rented equipment, and Otter 'may continue to charge you for the Paid Services until all leased Hardware is returned'. Which structure a given merchant is on is set by a private Order Form that is not published. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-08

B
Yes

commercial-autorenew-terms-published

Both halves are in publicly accessible contract terms. Tech Services Terms of Use (www.tryotter.com/legal/tech-services, retrieved 2026-08-08) - Monthly Plans: 'we will initially charge you a pro-rated monthly amount and then charge you a monthly amount starting from the first day of each calendar month ("Monthly Pay Date"). The term will auto renew and we continue to charge you on a monthly basis on the Monthly Pay Date unless you provide us with written notice at https://tryotter.com/customer-support to cancel. Notification of cancellation must be received by the 15th of the month in order to cancel services the following month. If notice is received after the 15th then service will be terminated the month following.' Term Plans: 'The term will auto renew and we will continue to charge you on the same basis unless you provide written notice to https://tryotter.com/customer-support at least 30 days prior to the expiration of the then current subscription term.' The renewal term itself is also defined in the public document ('the time period specified in the Order Form', defaulting to 'an ongoing month to month basis' where none is stated). Caveat recorded rather than deducted: the length of a given customer's Term Plan sits in the private Order Form, and Enterprise, Partner and Annual Billing customers cancel through a Customer Success Manager rather than the self-serve form (art. 20690423360403). https://www.tryotter.com/legal/tech-services · retrieved 2026-08-08

B
No

commercial-processing-not-bundled differentiator

Positive evidence of absence, in Otter's own words. 'Otter POS Cash Discounts' (art. 27244902024723, updated 2025-06-02; re-fetched 2026-08-09 through the Zendesk Help Center API because the rendered /hc pages 403 to bots) closes with the payments FAQ: 'Do we have other payment processor options available? No, we do not offer other payment processors at this time.' The same FAQ fixes one blended rate for everybody - 'Regardless of the bank or credit card, the cc processing fees will always be 2.3% + $0.10 w/ card present and 2.9% +$0.30 without card present.' The published contract puts the choice on Otter rather than the operator: Tech Services Terms of Use, Online Ordering and Digital Dine In Addendum s.8(a) - 'The Payment Processing Services are provided by our third party payment processing partner, Stripe... We reserve the right to change the third party's payment processor at any time and you will provide us with any information required to set up a payment account with any such alternate payment processor.' It is enforced in product: 'Stripe must be added as a payout method in Otter Dashboard before the card reader is connected and credit card transactions can be processed' ('Accepting Payments on Otter POS', art. 33725692118931), and every card reader Otter sells is a Stripe or Stripe-partner unit (Stripe M2 $99, Stripe S700 $450, Wisepad $99 CAD). Recorded for accuracy: the processing is not in-house - it is Stripe, a third party - but the claim asks for a processor of the OPERATOR'S choice, and the operator has none. This replaces the earlier partial, which read Stripe's appearance in the /integrations Payments category as implying external processing was possible. https://helpdesk.tryotter.com/hc/en-us/articles/27244902024723-Otter-POS-Cash-Discounts · retrieved 2026-08-09 adversarially verified

B
No

commercial-interchange-plus-published differentiator

CORRECTION: the prior note's 'no rate structure of any kind is published' was false. Otter publishes a rate, and what it publishes is the opposite of interchange-plus. 'Otter POS Cash Discounts' (art. 27244902024723, payments FAQ, re-fetched 2026-08-09 via the Zendesk article API): 'Are there different credit card fees depending on the bank? No. Regardless of the bank or credit card, the cc processing fees will always be 2.3% + $0.10 w/ card present and 2.9% +$0.30 without card present.' A rate expressly invariant to the issuing bank and the card product is a blended flat rate by definition - interchange-plus is the structure in which it varies. No cost-plus option, no markup expressed as bps + per-transaction over interchange, and no interchange pass-through schedule appears in the 292-article help centre, in the 20-document /legal set or on tryotter.com/pricing, whose bundles carry only an unquantified '+ per order transaction fee'. Recorded because it is inconsistent: 'Otter POS Introduction' (art. 26596326146707, updated 2025-07-15) advertises 'industry-leading low processing fees: just 2.39% + 15c', a third figure Otter never reconciles with the two above. https://helpdesk.tryotter.com/hc/en-us/articles/27244902024723-Otter-POS-Cash-Discounts · retrieved 2026-08-09 adversarially verified

B
Partial

commercial-rate-increase-clause differentiator

An exit right on a price change exists, but no cap does and the exit is not stated to be penalty-free. Tech Services Terms of Use (retrieved 2026-08-08), TERM AND TERMINATION b: 'You may terminate these Terms upon written notice to us in the event that we modify the Terms or Fees and you do not agree to such modifications.' 'Fees' expressly includes card costs - 'all other Fees including Payment Processing fees shall automatically be deducted from your payments from the third party payment processor. We reserve the right to change the Fees upon 7 days prior written notice to you' - and Stripe surcharges are 'communicated to you during the enrollment process and as may be updated by us from time to time'. SHORTFALL, three parts. (1) No cap or carve-out: 'We reserve the right to increase pricing for our Monthly Plans at any time as we may determine in our sole and absolute discretion', same for Term Plans, with no ceiling, no indexation and no limit to pass-through interchange or network cost. (2) The termination right is not stated to be penalty-free and does not disapply the fee consequences: 'All Fees are non-refundable', increases 'take effect on the next Monthly Pay Date following notice to you', and for Term Plans with Monthly Payment 'If you cancel during the subscription term, you will not be issued any refunds for or credits of any prepaid and unused fees for the remainder of the subscription term, and you will be required to pay any and all unpaid fees related to the subscription term.' (3) Otter has exercised the increase right without grandfathering - 'Otter Price Adjustments for Mexico' (art. 41391990649875): 'Plan prices apply to all restaurants and food businesses once a price update or adjustment is announced.' https://www.tryotter.com/legal/tech-services · retrieved 2026-08-08

B
Partial

commercial-pricing-published

Re-evidenced 2026-08-09 from the help centre rather than the pricing page, and two prior statements withdrawn. WITHDRAWN: 'no card processing rate of any kind is published' - Otter publishes 2.3% + $0.10 card present and 2.9% + $0.30 card not present, 'regardless of the bank or credit card' (art. 27244902024723), with an unreconciled 2.39% + 15c in art. 26596326146707. WITHDRAWN 2026-08-14, AND THE DOCUMENT WITHDREW IT: 'Otter Plan Packages & Hardware' (art. 18739528029715) was a complete per-device price table giving lease and outright-purchase figures for every SKU. Otter rewrote that article on 2026-08-13T23:45:51Z (its own edited_at; raw body 101,365 -> 96,083 bytes, visible text 10,177 -> 8,084) and REMOVED the table entirely - re-read 2026-08-14 in both the rendered page and the Zendesk article API, which agree. Exactly one dollar amount survives on it ('each additional virtual brand is $20/location'), and pricing enquiries are now directed to sales: 'reach out to our otter team at success@tryotter.com to learn more about the new bundles/pricing options'. Every per-SKU lease and buy figure previously recited here is withdrawn, as is the $100 one-time setup fee for Digital Dine-In, Online Ordering and the Direct Orders Full Suite, which sat in the same article. Per-location software figures are published in scattered articles: Advanced Analytics 'starting from $20/month per location', Gift Cards $30/month, the Homebase integration $20/month, each additional Virtual Brand $20/location, Uber Otter Benefits renewal $149/month or $1,499/year, and a $100 one-time setup fee for Digital Dine-In, Online Ordering and the Direct Orders Full Suite. Marketing bundles remain on tryotter.com/pricing and were re-read 2026-08-14: Advanced $314/mo list, $198/mo promotional; Advanced + Kiosk $657/mo list, $541/mo promotional - these four figures are still published and are what now carries the `partial`. The previously cited 'Order Manager $149/month' was NOT found on that page as retrieved 2026-08-14; recorded as not-found rather than withdrawn, since only 3,915 of 284,470 bytes are visible text there and a single absent figure on a partly client-rendered page is not evidence of removal. SHORTFALL: the base Point of Sale plan tiers (Starter, Main) and Order Aggregation tiers (Lite, Standard) are named in the help centre but their prices appear only inside embedded images, not in text; the per-order transaction fee attached to every bundle is never quantified; no per-additional-terminal SOFTWARE price is published anywhere; and the plan-level activation fee is described without an amount. https://helpdesk.tryotter.com/hc/en-us/articles/18739528029715-Otter-Plan-Packages-Hardware · retrieved 2026-08-14 adversarially verified

B
Partial

commercial-module-unbundling differentiator

Shortfall: per-module purchase and cancellation exist, but neither is self-serve and modules sit on a required tiered base plan. Documentation: the Subscriptions page lists "associated bundle(s) and product(s)" per location and lets a Billing Admin "shop for and request to add products to your subscription"; Plan Packages describes two package types (Order Aggregation - Lite, Standard; Point of Sale - Starter, Main) where "as you move up in tiers, you unlock additional features", with add-ons on top. Cancelling one module is a request form - "Downgrade Plan: Cancel a feature or product" then "select which products to downgrade" - after which "our Support team will be in contact within 48 hours to complete your request"; only Billing Admins may submit it, and "Enterprise, Partner, and Annual Billing customers do not have access to this request form" and must contact their CSM. Otter Digital Solutions add-ons (Direct Orders, Promotions, Loyalty, Reputation Management) can only be cancelled by contacting support. Modules can also depend on other modules: Catering is "a software add-on to the Online Ordering: Direct Orders Product", and Multi-Store Ordering requires an Otter Lite or Standard base subscription. https://helpdesk.tryotter.com/hc/en-us/articles/20690423360403-Downgrade-or-Cancel-an-Account · retrieved 2026-08-06

B
Yes

commercial-hardware-purchase-outright

THE VERDICT STANDS AND THE PRICE EVIDENCE DOES NOT. 'Otter Plan Packages & Hardware' (art. 18739528029715) used to publish a lease price AND an outright purchase price for every required device class; on 2026-08-13T23:45:51Z (its own edited_at) Otter rewrote the article and removed the whole table. Re-read 2026-08-14 through both the rendered page and the Zendesk article API: the eleven lease/buy pairs this note quoted - iMin Dual Screen '$60/month lease or $749 buy', HD15 Canada '$29 CAD/month lease or $399 CAD buy', Kiosk Pro 27in '$289/month lease or $5,500 buy', Kiosk Mini 15in '$100/month lease or $1,200 buy', Flytech K739 'Hardware: $75/month or $1,000 buy', Stripe M2 '$10/month lease or $99 buy', Stripe S700 '$39/month lease or $450 buy', Wisepad '$10CAD/month lease or $99CAD buy', Rongta RP328 '$20/month lease or $149 buy', Rongta RP310 '$25/month lease or $250 buy' and the Epson printers at '$20/month lease or $299 buy' - are absent from both, and are WITHDRAWN. So are the bundle pairs. What the verdict actually rests on is untouched and was re-read on the same fetch: the article still states the choice plainly, 'Hardware is available for one-time purchase or via lease.', and still marks the Epson TM-M30ii BT 'Compatible for Otter POS operations'. No lease is multi-year - the Hardware Addendum's TERM AND PAYMENT sets it as 'the duration stated in the Order Form, or if there is no duration stated in the Order Form, the Hardware shall be offered on a Monthly Plan' - and on purchase 'Title to purchased Hardware shall transfer to you once we have received payment in full.' Limits recorded rather than deducted, none affecting a required device: buying forgoes a discount, since the same article says hardware is available 'for one-time purchase or via lease for a lower processing fee'; the standing Kiosk Pro is still sold 'ONLY AVAILABLE IN BUNDLE' (re-read 2026-08-14), while the Samsung LTE A7 Lite's 'NOT AVAILABLE TO BUY' marking went with the price table on 2026-08-13 and is withdrawn along with it - it lived in a column of that table, so its absence is the rewrite and not a change of policy; the general Terms s.2(b) default absent agreement is rental - 'Unless otherwise agreed in writing by us, you agree that Hardware... is rented to you, not sold'; and Otter supplies no hardware at all outside the US and Canada, where BYOD is compulsory. https://helpdesk.tryotter.com/hc/en-us/articles/18739528029715-Otter-Plan-Packages-Hardware · retrieved 2026-08-14 adversarially verified

B
Yes

commercial-hardware-not-locked differentiator

'Otter Printer Options' (art. 13776113141907, updated 2026-07-20) documents a named Bring Your Own Device programme: 'You have the option to bring your own printer or tablet instead of purchasing one from Otter. However, we do have a specific list of compatible BYOD printers that will work with the Otter software.' The supported list is published - 'If you have an Otter tablet or have downloaded the Otter app on your own Android tablet, you can bring one of the following printers supported by our app: Epson TM-m30, Epson TM-m30i, Epson TM-m30ii, Epson TM-m30iii, Rongta RP328, Rongta RP310, Rongta 410' - i.e. standard third-party ESC/POS thermal printers on operator-owned hardware. Outside North America it is not merely allowed but required: 'All other countries must bring their own printer and Android tablet in order to use Otter software.' Documented limits, recorded but not disqualifying against a claim that asks for at least one third-party option: cloud/hardwired printers 'must be preconfigured and provided by Otter in order to print your store's orders, thus you cannot bring your own non-Otter Cloud Printer'; printers connect only through the Otter Android app, not the browser Order Manager; BYOD tablets are Android only, with no iPad option documented; and Otter POS terminals, kiosks, handhelds, card readers (Stripe M2/S700) and KDS units remain Otter-supplied. https://helpdesk.tryotter.com/hc/en-us/articles/13776113141907-Otter-Printer-Options · retrieved 2026-08-08

B
Partial

commercial-implementation-fee-published

Some one-time fees are published as specific amounts, others are named without one. WITHDRAWN 2026-08-14: 'Otter Plan Packages & Hardware' (art. 18739528029715) published 'Digital Dine-in, Online Ordering, and the Direct Orders Full Suite all have a one-time setup fee of $100.' Otter rewrote that article on 2026-08-13T23:45:51Z and removed it together with the hardware price table; re-read 2026-08-14 in both the rendered page and the article API, which agree that no fee amount remains on it. Published as $0, and this is what now carries the `partial`: 'Otter Kiosks Introduction Guide' (art. 39076742954771), re-read 2026-08-14 - 'Otter offers professional Kiosk Installation service for the Kiosk Pros with no additional fee (available for restaurants in the United States and Canada). We will send a technician to the restaurant site to unbox, build, and install the hardware to ensure the Kiosk is assembled and functioning properly.' RE-TRANSCRIBED, not re-pointed: the same article says the same thing in reworded form (it now says 'the Kiosk Pros' where it said 'the Kiosk Pro (27in) and Kiosk (21in)', and parenthesises the territory), so the substance is unchanged and the prior transcription was stale. Marketing adds 'Free, personalized onboarding' on tryotter.com/products/otterpos. SHORTFALL, and it is now a harder one: the general activation fee used to be described without an amount - 'The activation fee covers the onboarding assistance required to deliver a ready-to-use product and allows us to offer a lower price point for our customers. *The one-time activation fee is charged per location' - and the 2026-08-13 rewrite removed even that description; the word 'activation' does not appear in the article as re-read 2026-08-14. The fee is no longer described at all in the help centre, let alone quantified. No menu-build fee is published in either direction: the help centre documents manual menu creation, Excel-template import and import from a delivery platform or direct-order site as self-serve options (art. 39374883174291) and never prices a build service. No training fee is published or declared $0. https://helpdesk.tryotter.com/hc/en-us/articles/18739528029715-Otter-Plan-Packages-Hardware · retrieved 2026-08-14 adversarially verified

B
Partial

commercial-data-export-self-serve

Re-evidenced 2026-08-09 off the help centre and developer portal instead of tryotter.com/products/financials. Self-serve export is real and broad: 'Otter Dashboard Guide' (art. 27245439440147) walks Financials > Sales Summary ('Export the report for bookkeeping or operational insights'), Financials > Payouts and the Taxes report, each ending in an export step; 'Otter Analytics: Your Guide to Reports and Insights' (art. 12558297776147) puts an [Export] control on the report tables and states 'The date range that can be viewed or exported is up to 365 days and you will be able to view or export data up to 3 years in the past'; the Product Mix report exports to CSV via a download arrow; Loyalty Reporting exports both Overview and Order Detail, the latter carrying 'Data for individual Loyalty order transactions'. A documented API exists too - developer-guides.tryotter.com publishes a Reports domain with an Orders Report (per-order fields including channel, order id, status, fulfilment mode, subtotal, tax, discounts, tips, fees, total, estimated commission, estimated net payout, payout id and payment type), an Order Items Report, a Payout Transactions Report and a Ratings & Reviews Report, delivered by notification or pull. SHORTFALL, four parts, and together they are why this is not yes. (1) It is not free: 'The Financials app is available to customers on Advanced Insights or Pro subscriptions', and the Guest Directory appears only for Otter POS, Direct Orders or Loyalty subscribers. (2) Labor is not self-serve: the Labor Cost Report exists but 'you must have an active Homebase integration connected to your Otter POS store', and connecting it means obtaining a Homebase API key and handing it to 'your Otter account manager'. (3) The API is not self-serve either - the developer portal's only support route is 'Talk to your Account Representative to get support for building and operating the integration', with application, webhook and store onboarding steps before any call. (4) History is bounded: 365 days per export against a three-year horizon, and the Guest Directory - the home of customer contact records and loyalty point balances - documents view, filter, search and edit with no export control at all. https://helpdesk.tryotter.com/hc/en-us/articles/27245439440147-Otter-Dashboard-Guide · retrieved 2026-08-09 adversarially verified

B
Partial

commercial-export-customer-and-loyalty differentiator

Partly exportable. 'Loyalty Reporting' (art. 40183256731155) documents CSV export of loyalty data including transaction-level rows: 'Click on the arrow icon to export the data as a CSV file. The export feature is available on both tabs, Overview and Order Detail', where Order Detail carries 'Data for individual Loyalty order transactions'. Analytics and POS report tables carry the same [Export] control to CSV/xlsx, over a 365-day window reaching three years back. SHORTFALL: the 'Guest Directory Report' (art. 40222270130963) - the only documented home of customer contact information, loyalty status and available point totals, reward history and per-guest order history - documents viewing, filtering (all guests / loyalty members / recent / lapsed / active), searching by name, phone or email, and per-guest editing, with no export or download control anywhere in the article, unlike every other report article in the help centre. No gift-card liability, outstanding-balance or breakage report or export is documented either: gift card balances are checked one card at a time at the POS or online checkout (art. 37358535943187). The Tech Services Terms compound it - the operator grants Otter 'a nonexclusive, perpetual right to use Your Data' and 'We will own all intellectual property rights in such de-identified or aggregated data'. https://helpdesk.tryotter.com/hc/en-us/articles/40222270130963-Guest-Directory-Report · retrieved 2026-08-08

B
No

commercial-post-termination-export-window differentiator

Otter's two governing documents both reach termination and neither defines a data-retrieval window. The published Data Processing Addendum (www.tryotter.com/legal/dpa, retrieved 2026-08-08) addresses exactly this point and declines to put a number on it: 'Vendor will destroy (or return, if mandated by Data Protection Laws) the Customer Personal Data upon termination or expiration of the Services within a reasonable period', with 'Vendor will Process Personal Data for the duration of the Agreement' and 'Vendor will retain Personal Data as long as required under law, unless otherwise agreed to in writing.' The Tech Services Terms describe what survives cancellation purely in fee terms - 'you will not be issued any refunds or credits of any prepaid and unused fees for the remainder of the subscription term and you will continue to have access to the paid Tech Services until the following Term Pay Date' - and contain no data-export, data-return or retrieval-window clause. The help centre's cancellation article (art. 20690423360403) walks the entire twelve-step downgrade/cancel request and a 48-hour support callback with no mention of retrieving data, and reporting access is in any case bounded by the product's own 365-day-per-export, three-year horizon while the subscription is live. https://www.tryotter.com/legal/dpa · retrieved 2026-08-08

B
Partial

commercial-data-ownership-clause differentiator

Re-grounded onto the merchant agreement: the earlier citation (tryotter.com/terms) now resolves to the WEBSITE terms, and its 'solely owned by Otter and may be used by Otter for any lawful business purpose' quote is from that website document, not from the agreement a merchant signs. The Otter Tech Services Terms of Use are public and were read in full. Half the claim is met and half is affirmatively refused. MET (use/resale constraint): the Data Processing Addendum states 'Vendor will not (a) sell Customer Personal Data; (b) retain, use or disclose any Customer Personal Data for any purpose other than for the specific purpose of providing the Tech Services...; (c) retain, use or disclose the Customer Personal Data outside of the direct business relationship between Vendor and Customer, (d) combine any Personal Data that Vendor receives from, or on behalf of, another source', and the Confidentiality section provides that 'Confidential Information of Customer includes customer data', that 'each party retains all ownership rights in and to its Confidential Information', and that the Receiving Party will 'not use any Confidential Information of the Disclosing Party for any purpose outside the scope of this Agreement'. NOT MET (ownership): the agreement defines 'Your Data' but never states that the merchant owns it; instead 'You hereby grant us and our affiliates a nonexclusive, perpetual right to use Your Data', Otter 'will own all intellectual property rights in such de-identified or aggregated data and any data derived therefrom', and for online ordering and kiosk the addendum says 'Any and all Order Data made through the Online Ordering and Digital Dine In Services shall be owned separately by both parties' - i.e. Otter co-owns end-customer order information including personal data. Shortfall: no merchant-ownership statement for transaction data anywhere, joint ownership of Order Data, and a perpetual licence on top. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-09

B
No

commercial-source-available-selfhost

Positive contractual evidence replaces the earlier bare inference. Tech Services Terms of Use (retrieved 2026-08-09), TECH SERVICES a: 'Your right to use the Tech Services is non-exclusive, personal to you or your company and its employees, and is not assignable, sublicensable or transferable. Otter is and remains the exclusive owner of all its intellectual property relating to its Tech Services... These Terms do not give you any right, title, or interest in or to the Tech Services.' Self-hosting is foreclosed by TECH SERVICES b: 'You may only access the Tech Services through the tablet device we provide, our website, or our application.' Source access is prohibited outright - OTHER RIGHTS AND RESTRICTIONS a bars you from '(i) modify, copy, or create derivative works of any part of the Tech Services, (ii) sell, resell, license, sublicense, distribute, rent or lease any part of the Tech Services', and the Online Ordering and Digital Dine In Addendum's Privacy section bars allowing any third party to 'reverse engineer, or otherwise attempt to gain access to the source code of the Kiosk Services or Online Ordering'. No repository, licence grant, source-available release or on-premise deployment option appears on tryotter.com, in the 292-article help centre or on developer-guides.tryotter.com, which documents a hosted Public API only. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-09 adversarially verified

B
No

commercial-pci-p2pe-tokenization

Otter names no SAQ and claims no scope reduction; it assigns the obligation to the merchant. Tech Services Terms of Use: 'You represent and warrant that you shall comply with all data security standards (including any standard related to the physical compliance requirements of using any Hardware) adopted by the PCI Security Standards Council, LLC and any amendments thereto, the EMV standards, and the security rules of each payment card association, including, without limitation, American Express, the Visa Cardholder Information Security Program, the MasterCard Site Data Protection Program and Discover Network's Information and Security Compliance', and the merchant indemnifies Otter for 'breach of any PCI obligations, any card holder association rules, or payment processor terms'. The Hardware Addendum repeats it - it is the merchant's responsibility to 'ensure compliance with physical PCI or other payment processing requirements'. No P2PE validation number, no tokenization or encryption architecture statement, and no SAQ level (A, A-EP, C-VT, P2PE-HW) appears in the /legal set of 20 documents, in the 2,521-URL sitemap, or in the 292-article help centre - whose only security sentence is a generic wiki line, 'POS systems are designed to encrypt and protect sensitive credit card information'. Card entry runs on Stripe hardware (Stripe M2 reader, S700 terminal) and the Terms confirm 'all payments and monetary transactions are handled by Stripe', so any validated P2PE listing on that path would be Stripe's; Otter neither asserts it nor states the resulting merchant scope. https://www.tryotter.com/legal/tech-services · retrieved 2026-08-08

B
No

commercial-pci-dss-4-controls

Otter documents none of the future-dated v4.0.1 controls, and on the headline one its own configuration surface shows the control absent rather than merely unmentioned. 'User Management' (art. 44753081545619) publishes a Login Type for every one of its ten roles and the complete enumerated set is 'Username & Password', 'Email & Password' or 'Pin Code'; 'Otter Account Logins' (art. 42099611842195) walks the entire Otter Dashboard sign-in and credential-management surface - sign in with email and password, edit email, change password, forgot-password reset - with no second factor, TOTP, push, SMS step-up, SSO or enforcement toggle. So MFA for back-office and POS administrative access is not offered, let alone enforced. For hosted ordering pages, no payment-page script-integrity or change-detection statement (Req 6.4.3 / 11.6.1) exists for Otter's Direct Orders, QR ordering or kiosk checkout surfaces. More broadly there is nothing to document against: www.tryotter.com/security and /trust return 404, trust./security./compliance.tryotter.com do not resolve, the complete sitemap-0.xml (2,521 URLs across seven locales) contains no security, trust, compliance or PCI page, the /legal index's 20 documents include no security statement, and the published DPA names no standard. The Tech Services Terms instead place PCI compliance on the merchant. https://helpdesk.tryotter.com/hc/en-us/articles/44753081545619-User-Management · retrieved 2026-08-08

B
No

commercial-soc2-attestation

Otter makes no such statement, and its own content is the clearest evidence. The blog post 'Why SOC II Compliance Is Important' (www.tryotter.com/blog/restaurant-tips/why-soc-ii-compliance-is-important, retrieved 2026-08-08) argues that restaurant chains should demand SOC 2 from their technology vendors and never claims the attestation for Otter; its closest self-description is 'We've built our entire platform with the understanding that you can't afford vendors who cut corners on security or reliability.' There is no trust centre to hold a report: trust.tryotter.com, security.tryotter.com and compliance.tryotter.com do not resolve; www.tryotter.com/security and /trust return 404; the complete sitemap-0.xml (2,521 URLs across the US, CA, en-au, en-gb, es-es, es-mx and fr-fr locales) contains no security, trust or compliance page; the /legal index's 20 published documents contain no attestation; and the published Data Processing Addendum requires only 'appropriate technical and organizational measures' while naming no ISO 27001, SOC 2 or PCI standard - the natural place for a processor to cite one. No offer to provide a report under NDA or on request appears anywhere on tryotter.com or in the 292-article help centre. https://www.tryotter.com/blog/restaurant-tips/why-soc-ii-compliance-is-important · retrieved 2026-08-08

B
Partial

commercial-privacy-dsar-tooling

The DPA half is satisfied; the in-app tooling half is not. Otter publishes a Data Processing Addendum at www.tryotter.com/legal/dpa (with ca-dpa and en-au/dpa variants), and the Tech Services Terms make it self-executing rather than something to negotiate: 'Our Data Processing Addendum is incorporated by this reference into, and made a part of, these Terms.' It binds sub-processors to obligations 'substantially similar or more stringent than those set out in this DPA'. SHORTFALL: the DPA puts data-subject-request fulfilment on the operator - 'Vendor shall promptly notify Customer if it receives a request from a Data Subject to exercise any of the Data Subject's rights', with Otter providing only 'commercially reasonable cooperation and assistance' - and no in-product tooling is documented to act on one. The Guest Directory (art. 40222270130963) can locate an individual guest by name, phone number or email and edit their profile and reward balance, so the 'locating' element exists, but the 292-article help centre documents no per-guest export, no delete, erase or right-to-be-forgotten action, no consent or privacy-request queue, and no CCPA/CPRA opt-out surface beyond a marketing-subscribed flag; deletion on termination is committed only to 'within a reasonable period'. https://www.tryotter.com/legal/dpa · retrieved 2026-08-08

B
Partial

commercial-wcag-kiosk-accessibility differentiator

A non-visual access mode is documented; a conformance report is not. 'Kiosk (27" & 21") Setup Guide' (art. 39076370297875) lists among the kiosks' key features 'Accessibility-First Design - Self-service terminals typically present information via a touchscreen display. With an accessible keypad ensures that customers who cannot interact with a touchscreen have equal access to all self-ordering services' - a documented tactile alternative to the touchscreen. The 'Otter Kiosks Introduction Guide' (art. 39076742954771) asserts the kiosks are 'ADA-compliant to ensure accessibility for all customers', alongside powder-coated steel construction, contactless reader and tamper-resistant mounting. SHORTFALL: no accessibility conformance report exists - the strings VPAT, ACR, WCAG and Section 508 appear nowhere in the 292-article help centre nor anywhere in the 2,521-URL www.tryotter.com sitemap, and there is no accessibility statement page in any of its seven locales; the ADA assertion is a bare marketing-grade claim with no standard, version or audit named. The accessible keypad is described only for the Kiosk Pro 27" and Kiosk 21", not the Kiosk Mini 15" or POS Kiosk Mode; and nothing addresses the consumer web-ordering, QR-ordering or Direct Orders surfaces the claim also covers. https://helpdesk.tryotter.com/hc/en-us/articles/39076370297875-Kiosk-27-21-Setup-Guide · retrieved 2026-08-08

B
Partial

commercial-dual-pricing-compliant differentiator

Half the claim is documented, the compliance half is not. 'Otter POS Cash Discounts' (art. 27244902024723, updated 2025-06-02) documents a real configurable feature: 'You can set up cash discounts in the Otter dashboard to reward eaters who pay with cash! Once the customer decides to pay by cash, the cash discount will be auto-applied to the order in the Otter POS terminals.' It is configured under [POS] > [Cash Management], 'By default, a 3% discount will apply to all your locations', with a per-location percentage override and a location search once past five locations; the POS settings article confirms the toggle - 'Enable cash discounts: Toggle on [Enable cash discounts] to set a discount amount for cash transactions' (art. 27245439440147). At the terminal 'the cashier will be able to see the cash discount percentage indicator' and 'the diner will be able to view the cash discount on the diner-facing screen'. SHORTFALL, three parts. (1) It is a cash discount only - no card surcharging, dual-pricing menu or non-cash adjustment feature is documented anywhere in the 292-article help centre, so the automatic debit-and-prepaid exclusion the claim requires has no surcharge to exclude them from, and nothing addresses the network surcharge cap or state-level surcharge bans. (2) No receipt or menu-board disclosure is documented: the discount is shown on the cashier screen and the diner-facing display, and the article says nothing about printing the differential on the receipt or about menu-board signage, which is the disclosure the card networks require. (3) A documented functional gap - 'Cash discount only applies to the orders that paid fully by cash without split payment. If customer select split payment, cash discount will not apply to each payment even if the payment is by cash.' The nearest adjacent feature, a configurable percentage Service Fee added as a line item at checkout and shown on the receipt (art. 27245439440147), applies to every order in a fulfilment mode regardless of tender, so it is not a card-conditional charge either. https://helpdesk.tryotter.com/hc/en-us/articles/27244902024723-Otter-POS-Cash-Discounts · retrieved 2026-08-09 adversarially verified

B

Adversarial verification

An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 283 values — 104 upheld, 30 downgraded, 19 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.softwareupheldVerified verbatim on the pricing page ($314→$198, $657→$657/$541, both "+ per order transaction fee"), on the Order Manager page ($149/mo base) and in the site nav ("Point of Sale: Starting at $19/mo"). source
pricing.softwaredowngrade-to-unknownThese two figures do not survive checking and appear transposed. The Online Ordering product page contains no $40 figure and no standalone per-location price at all — only the $198/$541 bundles. The site nav lists "QR Ordering: Starting at $30/mo" while the QR product page (digital-dine-in) states "$40/mo per location" for QR Ordering. Otter's own pages disagree; neither module price should be reported as established. source
pricing.softwaredowngrade-to-unknownNo price of any kind appears on the Analytics product page. A $0 entry is a strong claim (it underwrites the "legible modular pricing" best-at bullet) and I could not source it. source
pricing.hardwareupgrade-to-yesPartially wrong: the KDS page publishes KDS pricing explicitly — $15/mo software plus $75/mo hardware rental or $1,000 purchase for the 21" kitchen-grade Android display. Only the terminal, reader and printer are unpriced. The researcher's hardware transparency picture is more complete than reported. source
pricing.contract_lengthupheldConfirmed: the pricing page surfaces the question "Is there a cancellation fee?" but renders no answer, and /terms is a website ToS, not the merchant agreement. Correctly unknown.

Capability claims

ClaimAs first scoredVerdictWhat the verifier found
reporting-custom-report-builderyes (claimed) — "Custom report builder with scheduled email delivery and data export options"downgrade-to-unknownI re-fetched the cited page twice with a verbatim-quote prompt. The Analytics page contains no phrase resembling "custom report builder". Its only feature bullets are four generic benefit statements (drive more sales / see everything in one place / identify what's working / enhance delivery-app ads) and its FAQ list is: how do I navigate Analytics, is my data secure, what information does Otter look at, how long to receive personalized insights, "Can I export insights to a CSV?". The quoted sentence in the dossier is not on the page. source
reporting-scheduled-deliveryyes (claimed) — scheduled email delivery of reportsdowngrade-to-unknownSame fetch: no occurrence of "scheduled", "email delivery", or report subscription anywhere on the Analytics page. This score and the report-builder score appear to derive from the same unsourced sentence. source
payments-published-ratesno (documented)upheldVerified: both bundles read "+ per order transaction fee" with no figure, and no card rate appears on the pricing page. Cash-discounting is mentioned only on Build Your Own. source
commercial-interchange-plus-publishedno (documented)upheldConfirmed — no rate structure of any kind published. source
extensibility-doordash-preferredyes (documented) — 2026 DPIP cohort, announced 18 May 2026upheldVerified independently and the dossier gave no URL for it. DoorDash newsroom post dated 18 May 2026 names the 2026 cohort: Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiper. Note Otter was also in the 2025 inaugural cohort (PRNewswire), so this is a renewal, not a new certification. source
delivery-daas-dispatchyes (documented) — "Native courier handoff to DoorDash Drive, Uber Direct, Relay, Shipday, Nash and ChowCall"downgrade-to-partialThe word "native" is not supportable. Every courier named sits in Otter's third-party integrations directory under a "Couriers" category alongside POS and inventory partners — i.e. partner-delivered, requiring the operator to hold a separate Relay/Shipday/Nash/Drive account. No dispatch surface, quote/compare logic, or handoff configuration is documented in any Otter product page. Uber Direct and DoorDash Drive are named on the online-ordering page as "your preferred delivery partners", which is the language of an integration, not a first-party dispatcher. source
delivery-driver-rosterno (documented) — "No in-house driver module exists"downgrade-to-unknownThe cited integrations page actually says the opposite of what was scored: the Couriers category reads "Connect your delivery operations to Otter to unify fulfillment and dispatch with your own drivers." The online-ordering page says operators can "handle deliveries in-house or work with your preferred delivery partners", the catering page lists "third-party or in-house delivery options", and there is a /products/couriers page. None of this documents a driver roster with rates or shift assignment — but it removes the basis for an affirmative "no". Not documented publicly either way. source
delivery-dispatch-boardno (documented)downgrade-to-unknownSame defect. Otter markets "dispatch with your own drivers" and an Otter product page for Couriers exists (I could not retrieve readable content from it — the fetch returned generic site chrome). Whether the dispatch UI is Otter's or handed to Shipday/Nash is undetermined. An affirmative "no" requires a source stating the absence; there is none. source
delivery-route-mapno (inferred)downgrade-to-unknownInferred from the now-unsafe premise that no in-house driver capability exists. No source addresses route maps either way.
delivery-driver-trackingno (inferred) — "No first-party driver app exists to source GPS from"downgrade-to-unknownSame broken premise. Separately, the catering page references "real-time delivery tracking", which is unexplained and cuts against a confident no. source
delivery-cash-reconcileno (inferred)downgrade-to-unknownChained inference off the in-house-driver premise; no source.
delivery-driver-compno (inferred)downgrade-to-unknownChained inference off the in-house-driver premise; no source. (The absence of a labor module is separately documented, but that does not affirmatively establish absence of driver pay lines.)
guest-loyalty-accrual-modelsyes (documented) — earn by amount spent AND earn by specific items purchaseddowngrade-to-partialA verbatim re-fetch of the Loyalty page surfaces only a points-per-purchase model with customizable reward naming (points/stars/bucks). Item-specific accrual is not in the retrievable text. One documented model, not two. source
guest-loyalty-wallet-passyes (claimed) — digital wallet pass listed as a loyalty featuredowngrade-to-unknownNo mention of Apple/Google Wallet or a digital pass appears in the retrievable Loyalty page content — enrollment and redemption are described as mobile QR code plus POS. This is a yes resting on text I could not find on the cited page. source
guest-loyalty-native-email-smspartial (claimed) — Loyalty page references SMS/email capabilitydowngrade-to-unknownNo SMS or email marketing/messaging reference is retrievable on the Loyalty page. The dossier itself notes the paid Marketing product is delivery-app advertising, not CRM messaging, so nothing supports even a partial. source
reliability-offline-kds-printingyes (claimed)downgrade-to-partialThe sole evidence is a competitor-comparison feature table on Otter's own POS marketing page (vs Clover/Square/Revel/Toast) — the weakest possible class of vendor claim, and self-serving by construction. The KDS product page itself, which I fetched in full, never mentions offline mode. A checkmark in a competitive matrix with zero scope documentation should not carry a "yes". source
digital-fulfillment-modespartial — "Curbside with arrival check-in is not documented"upgrade-to-yesCurbside pickup IS listed as a supported fulfillment mode on the Online Ordering page, alongside pickup, delivery (in-house or partner) and QR dine-in. Arrival check-in specifically remains undocumented, but the mode set is complete enough that partial understates it. source
digital-account-saved-paymentunknownresolve-to-yesResearcher missed it: the Online Ordering page documents guest accounts where customers "save their information for repeat orders". Card-on-file specifically is not stated, so treat as partial-to-yes on guest accounts only — I would accept partial, but it should not remain blank unknown. source
reporting-multiloc-drilldownyes (documented) — "Multi-location comparison in Analytics"downgrade-to-partialThe cited Analytics page carries no multi-location comparison language in its retrievable content — the multi-location claims live on the POS and Loyalty pages as generic "multi-location and multi-brand management". Roll-up-then-drill-down to a single store is not documented. source
multi-location-consolidated-reportingyes (documented)downgrade-to-partialSame evidentiary gap: aggregation across locations is asserted at marketing level on the POS page, but the Analytics page I fetched does not document a consolidated cross-location reporting view. source
extensibility-public-api-docsunknownupheldIndependently confirmed. developer.tryotter.com returns nothing but a "Developer Portal" heading; no reference, auth model, sandbox or webhook documentation is retrievable. The researcher was right to refuse to score this. source
reporting-public-apiunknownupheldSame — no public API surface is documented. Correctly withheld.
menu-pricing-fractional-placementunknown (inferred)upheldVerified the pizzeria landing page directly: it contains no reference to halves, quarters, fractional toppings, crusts, size matrices or included-topping allowances — only "Personalize every order with easy-to-use modifiers." Correctly left unknown rather than scored no, since Otter never affirmatively denies it. source
reliability-public-status-pageyes (documented) — 11 components, 2026 archive of 22 incidents, no uptime %upheldVerified exactly: 11 named components all Operational, no uptime percentages, 2026 archive showing 22 incidents Feb–Jul including "DoorDash orders not injecting" and Uber Eats sync failures. source
digital-first-party-webyes (documented) — 0% commissionupheldVerified verbatim: "0% commission fees… No hidden fees, no commissions." Caveat worth carrying: the per-order transaction fee attached to every bundle is never quantified, so "0% commission" is a channel-commission claim, not an all-in cost claim. source
delivery-3p-injectionyes (documented)upheldVerified on the Order Manager page: consolidated chronological queue across channels, auto-accept and auto-print, bidirectional POS sync, prep-time updates and item removal from online menus. source
reliability-247-live-supportyes (claimed) — presented as included, not a premium tierdowngrade-to-partial"Available 24/7/365", the +1 888-681-8837 number and the "average response time: 2 minutes" metric are all on the support page as claimed. But the page does not state that support is included in every plan — the pricing FAQ separately asks "Does Otter include support in its plans?" and the answer is not retrievable. The inclusion half of the score is unsourced. source
menu-pricing-modifier-price-by-parent-sizeunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: Help-centre modifier docs give a modifier item one Default Price plus Advanced Pricing per fulfillment option, delivery partner, channel and location (Menu Item Pricing, art. 36253606306195) - parent item and parent size are not pricing dimensions anywhere. The modifiers article's own guidance for size-dependent options is to duplicate items per size ('Small fries / Medium fries / Small curly frie source
menu-pricing-topping-quantity-tiersunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: Modifier-group configuration is fully enumerated: name, required/optional, 'Set Modifier Limit Type - select the number of times that a modifier can be selected on an item', min/max total selections, eight group-type cards, default modifiers and negative modifiers. Quantity is handled by selecting the same modifier multiple times - the add-it-twice model the claim distinguishes - and no light/regu source
menu-pricing-included-allowanceunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: The documented modifier-group fields stop at min/max selection counts, default modifiers and negative modifiers; no included-allowance construct charges only for overage. Negative modifiers (a negatively priced modifier item) are the only documented credit mechanism and are 'currently not supported on Otter POS'. The pizzeria landing page likewise offers only 'easy-to-use modifiers'. source
menu-pricing-countdown-auto-86unknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: The Item Availability doc enumerates exactly three states - Available, Unavailable Today (auto-restores at midnight) and Unavailable Indefinitely - all set manually from Dashboard, POS, Order Manager or the Otter Go app. No per-item countdown/par count exists, nothing decrements on sale, and the only auto-restore is the fixed midnight reset. Otter also ships no stock ledger that could drive one. source
payments-surcharge-guardrailsunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: Otter's documented card-fee offset is a cash-discount program (default 3%, per-location percentage, auto-applied only when an order is paid fully in cash), on fixed processing of 2.3% + $0.10 card-present with 'no other payment processors'. 'Surcharge' returns zero results across the entire help centre; no surcharging engine, BIN-based debit/prepaid exclusion or network-cap enforcement exists to d source
payments-refund-void-controlsunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: Role gating is documented: per-employee PINs with a manager-override screen, refunds reserved to Supervisors on POS and to the Billing Admin role in the Dashboard, any discount lockable behind Supervisor/Manager/Admin approval, drawer opening permission-gated; the Voided Transactions report is immutable ('you cannot make edits to the voided orders log') with staff attribution, void reason and time source
delivery-zone-pricingunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: Direct-order delivery supports distance-banded fees ('For deliveries within 0-2 miles, the delivery fee is $2.00 and deliveries within 2-4 miles have a delivery fee of $4.00'), driving-distance or straight-line area definition, and delivery-fee-specific tax. source
digital-subscriptionsunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: Otter's guest-retention stack is enumerated across the help centre's Loyalty, Marketing and Online Ordering sections: a free points program supporting only amount-based and purchase-based earning with four discount redemption types, plus SMS campaigns, discounts/promotions and gift cards. No recurring guest billing, paid tier, fee-waiver membership or per-period entitlement appears in any of them, source
guest-loyalty-consent-managementunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: A per-guest 'Marketing subscribed status' is stored and filterable (a 'Marketing Opt-in' filter also exists in Customer Reports, art. 25246908493587); loyalty enrollment is opt-in-prompted at POS and kiosk, and eaters can change notification preferences in their own profile. source
guest-loyalty-redemption-fraud-controlsunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: The vendor's own doc states the opposite of guardrails: 'Currently, there is no minimum amount of earned points needed to redeem' and 'no maximum limit on the amount of points that can be redeemed at one time'. Manual balance adjustment is a two-click Guest Directory action with no approval step documented, and no employee-self-redemption flagging exists anywhere in the loyalty docs. A per-guest r source
labor-granular-rbacunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: Beyond ten fixed system roles, Admins can build custom roles per app feature with brand- and location-scoped assignment, and the Cash app documents genuinely discrete grants (Open Drawer, Pay in/Payout, Edit Drawer, End Drawer, Manage Drawer, Remote Finish Drawer, View Only - art. 26562624877459) plus per-discount manager-approval locks. source
labor-manager-override-auditunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: Individual PIN identity underpins auditing ('this feature also ensures you can monitor actions for auditing and reporting purposes' - art. 26844590516755); the Voided Transactions report is per-staff-member, timestamped, reason-coded and immutable, and cash-drawer edits display the editing user's name beside the changed value. source
labor-tip-distribution-audit-trailunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: The Hourly Tip Report breaks tips down by hour, staff member (via PIN login) and device, filterable by date, brand, location, staff member and channel, and is positioned for payroll use. source
reporting-history-retentionunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: No 24-month transaction-detail retention window is documented anywhere; the one retention figure Otter publishes is a cap - 'The Orders History Dashboard will only show data from orders within the last 180 days' - with users pointed to the Analytics app for older data without any stated window. The claim requires a documented >=24-month window with no silent truncation; what Otter documents is the source
extensibility-oauth-partner-appsunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-noResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Positive-absence basis: The documented partner auth model is an API key: after a partnerships-team screen, 'our technical team will provide you access to our developer portal where you will have access to your API key and staging environment', followed by manual certification calls and phased onboarding. No OAuth 2.0 grant flow, operator-facing consent screen, scoping or per-app revocation appears anywhere, and the publi source
reliability-printer-fallbackunknown (F) - placeholder rationale 'No public documentation located during the 2026-08-01 research pass', i.e. the cell was never examinedresolve-to-partialResolved from the vendor help centre (helpdesk.tryotter.com), which the earlier passes missed entirely - the HTML front-end 403s automated clients but article bodies are readable via the site's public Zendesk API. Named-shortfall basis: The alert half is documented: 'When a Bluetooth or Front of House printer has connectivity issues, an alert will let you know an issue has been detected and prompt you to run diagnostics.' source
digital-google-orderunknown (placeholder — never examined)resolve-to-yesThe help centre both earlier passes missed carries a full 'Order with Google Integration Guide': customers 'order directly from Google maps, Google pay, Assistant and more', pickup and delivery, 'sending customers directly to you, without any commissions or fees'. Setup is form-based (Google Business Profile link, Stripe API keys, delivery config) and Google Food Ordering supports only a single menu per location, both noted in the cell. Grade B admin-guide evidence satisfies the differentiator floor. source
guest-loyalty-referral-programunknown (placeholder — never examined)resolve-to-noPositive evidence of absence by enumeration: 'Creating a Loyalty Program' lists everything a program can be built from — 'Amount-based Loyalty Program, Purchase-based Loyalty Program, Reward Redemption Options' — and the Loyalty section's five articles (Introduction, Creating, Points, Customer Profiles, Insights & Reporting) contain no referral mechanic. 'refer a friend' returns zero results across all 292 help-centre articles; 'referral' matches only reseller partner-program pages. Per-guest codes, referred-order attribution and two-sided rewards are outside the enumerated earning models. source
reporting-tip-tax-complianceunknown (placeholder — never examined)resolve-to-partialNamed-shortfall basis: the Hourly Tip Report gives tips by hour, staff member and device 'to help you manage payroll', tip-on-receipt books charged tips post-payment, and Tax Reports expose Tax Collected/Remitted/Withheld with CSV export — but there is no declared-versus-charged tip comparison, no tip pooling feature anywhere in the help centre (hence no distribution detail), no by-jurisdiction tax liability summary (the vendor's own steps have you sum columns in a spreadsheet), and third-party tips carry no staff attribution. source
menu-pricing-franchise-hierarchyunknown (F)resolve-to-noOtter's product.yaml states no table-service or franchise ICP is addressed. Menu management supports per-location items but explicitly does not document franchise hierarchy, franchisee roles or royalty-driven pricing. Integrations directory contains no franchise-governance tools. source
payments-tip-poolingunknown (F)resolve-to-noOtter has no labor module (confirmed: integrations directory lists 7shifts, Homebase, WhenIWork, Deputy as alternatives). Tip pooling presupposes employee records and labor allocation. The Hourly Tip Report breaks tips by individual staff member; no pool, redistribution feature or pool-member assignment is documented. source
digital-voice-ai-phoneunknown (F)resolve-to-noChecked all Otter product pages and integrations: no AI phone ordering, voice-to-order or PSTN/RCS messaging product is documented. Otter's AI references are limited to delivery-app ad optimization. No phone integration appears anywhere in the product catalog. source
digital-drivethru-aiunknown (F)resolve-to-noChecked all Otter product pages: Otter documents kiosk, online ordering, QR dine-in and POS, but no drive-thru ordering, speaker integration or order-recognition product is documented. No drive-thru flow appears in the product matrix. source
digital-sms-orderingunknown (F)resolve-to-noChecked all Otter product pages and integrations: no SMS ordering, WhatsApp commerce or text-to-order product is documented. Otter Marketing pushes SMS campaigns (promotions only), not order capture. Online ordering channels are web, kiosk and QR only. source
labor-clock-in-at-posunknown (F)resolve-to-noOtter has no labor/timekeeping module. Integrations directory (verified 2026-08-04) delegates labor to 7shifts, Homebase, WhenIWork and Deputy. No native employee records, punch functionality or time-tracking capability exists. source
labor-photo-punch-verificationunknown (F)resolve-to-noOtter has no labor/timekeeping module. Integrations directory (verified 2026-08-04) delegates labor to 7shifts, Homebase, WhenIWork and Deputy. No native punch, photo verification or mobile clock capability exists. source
labor-geofenced-mobile-punchunknown (F)resolve-to-noOtter has no labor/timekeeping module. Integrations directory (verified 2026-08-04) delegates labor to 7shifts, Homebase, WhenIWork and Deputy. No native geofencing, mobile punch or location-based timekeeping exists. source
labor-offline-time-punchunknown (F)resolve-to-noOtter has no labor/timekeeping module. Integrations directory (verified 2026-08-04) delegates labor to 7shifts, Homebase, WhenIWork and Deputy. No native timekeeping, offline punch queueing or local time-entry capability exists. source
labor-realtime-labor-percentunknown (F)resolve-to-noOtter has no native labor hours, payroll or cost data. Integrations directory (verified 2026-08-04) delegates labor to 7shifts, Homebase, WhenIWork and Deputy. Real-time labor-cost percentage requires native timekeeping Otter does not provide. source
labor-tip-pooling-rulesunknown (F)resolve-to-noOtter has no labor module. Tip pooling presupposes employee records and labor allocation. The Hourly Tip Report breaks tips per staff member via PIN but no pool, redistribution rules or pool-member assignment exists. Integrations directory delegates labor to 7shifts, Homebase, WhenIWork and Deputy. source
labor-qualified-tips-w2-reportingunknown (F)resolve-to-noOtter has no labor/payroll module. Integrations directory (verified 2026-08-04) lists no payroll provider. W-2 reporting, tip allocation and payroll compliance require native employee records and accounting export Otter does not provide. source
labor-server-performance-metricsunknown (F)resolve-to-noOtter has no native labor data or time clock. Integrations directory (verified 2026-08-04) delegates labor to 7shifts, Homebase, WhenIWork and Deputy. Server performance scorecards require employee time records Otter does not maintain. source
reporting-server-scorecardsunknown (F)resolve-to-noOtter has no native labor data or time-clock. Analytics reports best/worst items and sales by channel/location. Server-by-server metrics require employee records and labor association Otter does not maintain. source
multi-location-corp-vs-franchisee-rolesunknown (F)resolve-to-noOtter's product.yaml states no franchise ICP is addressed. The enterprise page sells reporting and alerting, not franchising governance. No franchisee role, corporate-approval workflow or franchise-hierarchy management is documented. source
multi-location-royalty-calculationunknown (F)resolve-to-noOtter has no franchising product or franchisee-role capability. Integrations directory (verified 2026-08-04) lists no royalty-calculation or franchise-accounting tools. Royalty calculation presupposes a franchise model Otter does not support. source
multi-location-royalty-collectionunknown (F)resolve-to-noOtter has no franchising product or franchisee-role capability. Integrations directory (verified 2026-08-04) lists no royalty-calculation or franchise-accounting tools. Royalty collection presupposes a franchise model Otter does not support. source
labor-clock-in-at-posno (F) — Otter has no labor/timekeeping module. Integrations directory delegates labor to 7shifts, Homeupgrade-to-yesThe premise was false. The help centre (public Zendesk API; the HTML front-end 403s automated clients) documents a native Time Card app on the POS: staff open it from the device home screen and 'enter your employee pin code' to clock in and out; Staff Timecard Reporting (art. 26845973817491) exposes clocked hours with Time/Location/Role/User filters and XLS export, and handhelds run the same app (art. 35667642715283). PIN punch at the POS terminal with no separate time-clock hardware is the claim verbatim. The prior pass checked only tryotter.com marketing pages and read the integrations directory's Labor category as proof no native timekeeping exists. source
labor-offline-time-punchno (F) — Otter has no labor/timekeeping module. No native timekeeping, offline punch queueing or localdowngrade-to-unknownThe premise was false — the Time Card app documents native PIN punching, and the handheld POS devices that run it list offline-mode support among their features. Whether punches record while offline and reconcile on reconnect is documented nowhere: the offline-mode article's scope covers orders, payments, pairing and printers without mentioning timecards. That is absence of documentation on hardware that plausibly supports it, not positive absence, so unknown. source
labor-realtime-labor-percentno (F) — Otter has no native labor hours, payroll or cost data. Real-time labor-cost percentage requirupgrade-to-partialFalse premise twice over: timecards are native, and a labor-vs-sales view is documented. The Labor Cost Report 'provides an aggregated view of employees' hours worked, wages, and labor costs compared to sales', and the Analytics Staff section carries 'Labor as percent of Sales', Labor Hours and 'Orders per labor hour' (art. 12558297776147). Partial rather than yes: wage data populates only with an active Homebase integration, the view is in the Dashboard Analytics app rather than a POS or in-service manager surface, and freshness is undocumented — Otter's own FAQ warns sales reports can lag 24-36 hours (art. 360052674054). source
labor-server-performance-metricsno (F) — Otter has no native labor data, time clock or sales-per-labor-hour calculation. Server perforupgrade-to-partialThe Analytics guide documents Staff Performance with clickable Individual Staff Member Performance (Orders/hour, Average Prep Time, Average Star Rating, Order Issues Rate); the Voided Transactions report attributes voids per staff member and the Hourly Tip Report breaks tips per staff member. Per-employee performance reporting therefore exists; what is missing is the sales half the claim names — no per-employee average check, attachment rate, comp rate or revenue figure. Partial with that named shortfall. source
menu-pricing-franchise-hierarchyno (F) — Otter's product.yaml states no table-service or enterprise franchising ICP is addressed. Menuupgrade-to-partialThe 'Corporate & Franchisee Permissions' article the prior passes never found documents the shape this claim asks about: Corporate keeps 'menu cohesion' across all stores regardless of ownership, only Corporate users can create or delete menu items, and a Franchisee permissions tab toggles what franchisees may edit (publishing menus, menu hours, item availability). Partial rather than yes: governance is feature-level and applies brand-wide uniformly ('you're not able to select these permissions or locations individually to turn them ON or OFF'), with no field-level or per-location override control documented. source
multi-location-corp-vs-franchisee-rolesno (F) — Otter's product.yaml states no franchise ICP is addressed. The enterprise page sells reportinupgrade-to-partialDirectly contradicted by the vendor's 'Corporate & Franchisee Permissions' doc: a Brand owner (Corporate) tenant is distinguished from Brand user (Franchisee) accounts, Corporate Admins manage menus for all stores regardless of ownership, and franchisees separately manage their location including their own billing ('Corporate users only view billing & subscription information for... stores for which they are the billing owner'), payment methods and analytics. Partial: corporate visibility into franchisee sales is not explicit — the doc's scope is menu governance and dashboard visibility — and employee/labor-data ownership is unaddressed. source
labor-demand-labor-forecastno (F) — No labor module exists to forecast into.upgrade-to-partialThe premise is dead and it hid a real feature: the Analytics Staff section's 'Staff hours Optimization' chart 'takes your order volumes for a given period and calculates an optimal staffing rate to meet demand', compares optimal against actual staffing and 'calls out days where the kitchen may have been overstaffed'; 'Orders per labor hour' renders in 15-minute buckets. Partial, not yes: it is retrospective day-level Dashboard analysis rather than a forward-looking daypart forecast, and there is no native scheduling surface to apply it to — shift schedules come from LMS integrations (Deputy, Homebase, 7shifts, WhenIWork). source
labor-overtime-preventionno (F) — No native timekeeping to enforce against.upheldThe rationale was false — the Time Card app is native timekeeping — but the conclusion survives on positive evidence: the clock-in flow is documented end to end (PIN entry, Clock in / Clock out prompt, confirmation) with no threshold warning or block in it; the only overtime-adjacent signal is retrospective, report totals under 2 or over 12 hours 'displayed in red' in the Dashboard Staff app; wages and policies live in the LMS integrations, and a help-centre search for 'overtime' returns only the unrelated Check Options article. Re-grounded at grade B on the Time Card doc. source
labor-shift-swap-workflowno (F) — Delegated to scheduling partners.upheldPremise re-examined against the actual labor docs: the native labor surface is the terminal-bound Time Card applet (clock in/out) plus Dashboard reporting; there is no employee self-service app and no schedule or shift entity to swap or claim. The Staff analytics guide sources 'shift schedules' from supported LMS 'like Deputy, Homebase, 7shifts, and WhenIWork', and the integrations directory re-retrieved today lists exactly those four under Labor. Re-grounded at grade B; delegation to scheduling partners is now vendor-documented rather than inferred. source
labor-break-compliance-by-stateno (B) — RE-GROUNDED (2026-08-02 re-score). Previously a "no" whose stated rationale was "MigratedupheldThe note's premise ('Otter publishes no labor, timekeeping... product') is disproved, but the strongest evidence for this cell was never the integrations directory: Otter's own Homebase Integration Guide states 'All timecard data is automatically sent to Homebase, where you can view and edit timesheets, as well as log breaks' — break logging happens in the partner portal, not Otter. The native Time Card flow documents clock in/out only, with no break punch, attestation prompt, jurisdiction rules or missed-break premium flag anywhere in the help centre. Note rewritten onto the Homebase guide. source
labor-fair-workweek-supportno (B) — RE-GROUNDED (2026-08-02 re-score). Previously a "no" whose stated rationale was "MigratedupheldThe inherited premise (no labor product at all) is disproved, but fair-workweek support presupposes native schedule publishing, and that specific absence is documented: the Staff analytics guide sources 'shift schedules' from LMS integrations and its Labor Hours chart falls back to scheduled hours only 'if no timepunches are available' — schedules are imported, not authored. No advance-notice deadline tracking or predictability-pay calculation appears in the help centre; 'forecast' returns zero articles. Note rewritten off the integrations-directory argument onto the analytics doc. source
labor-minor-labor-rulesno (B) — RE-GROUNDED (2026-08-02 re-score). Previously a "no" whose stated rationale was "MigratedupheldThe inherited premise (no employee record at all) is disproved — but the actual employee record, documented step by step in the add-user flow, holds first/last name, role, a 4-digit PIN and optional email/phone. No date of birth means age-based hour and time-window rules have nothing to key on; the Time Card clock-in flow enforces nothing beyond PIN entry; and schedule-side enforcement is impossible because Otter has no scheduling module. Re-grounded at grade B on the PIN Codes doc. source
labor-digital-onboarding-i9no (B) — RE-GROUNDED (2026-08-02 re-score). Previously a "no" whose stated rationale was "MigratedupheldThe inherited premise (no employee record at all) is disproved — but new-hire intake in Otter is exactly the documented add-user flow: name, role, PIN, optional email/phone, then an email invitation to set a password. No W-4, I-9, E-Verify or document-capture step appears anywhere in the help centre ('onboarding' hits are all merchant onboarding), and the integrations directory re-retrieved today still lists no payroll or HR provider among its eight categories. Re-grounded at grade B on the User Management doc. source
menu-pricing-86-propagationpartial, grade B - 86 propagates across POS, KDS, kiosk, online ordering and coupheldGrade 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
menu-pricing-daypartingpartial, grade B - Grade raised D->B on documentation quotes retrieved 2026-08-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
menu-pricing-3p-menu-pushyes, grade B - Re-confirmed verbatim 2026-08-02: "Make menu changes once anupheldGrade 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
payments-published-ratesno, grade B - Re-confirmed 2026-08-02: both bundles read "+ per order tranupheldGrade 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
payments-emv-nfcyes, grade B - Re-confirmed 2026-08-02 on the POS page: the bundled card reupheldGrade 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
payments-qr-guest-paypartial, grade B - QR ordering accepts card, cash, Apple Pay and Google Pay witupheldGrade 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
payments-chargeback-toolingpartial, grade B - Disputes & Refunds automates dispute handling with weekly reupheldGrade 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
delivery-3p-injectionyes, grade B - Re-confirmed 2026-08-02 on the Order Manager page: "ConsolidupheldGrade 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
delivery-menu-pushyes, grade B - One menu edit publishes to all delivery apps, kiosk and POS 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
delivery-86-syncyes, grade B - Items marked 86'd reflect immediately across ordering channeupheldGrade 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
delivery-store-pausepartial, grade B - Store pause available from Order Manager and the Otter Go 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
digital-first-party-webyes, grade B - Re-confirmed verbatim 2026-08-02: "No hidden fees, no commisupheldGrade 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
digital-menu-single-sourceyes, grade B - Re-confirmed verbatim 2026-08-02: "Make menu changes once anupheldGrade 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
digital-native-appno, grade B - Digital surface is a website builder plus web ordering; the 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
digital-account-saved-paymentpartial, grade B - DOWNGRADE (2026-08-02 re-score). The 2026-08-01 verifier movupheldGrade 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
digital-scheduled-pacingpartial, grade B - Scheduled orders exist (catering up to 6 months; KDS schedulupheldGrade 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
digital-fulfillment-modesyes, grade B - Re-confirmed 2026-08-02: the Online Ordering page lists pickupheldGrade 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
digital-qr-tableyes, grade B - QR Ordering product from $30/mo: scan to order, table numberupheldGrade 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
digital-kioskpartial, grade B - Re-confirmed 2026-08-02 with full pricing: Kiosk Pro 27" ($2upheldGrade 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-accrual-modelsyes, grade B - UPGRADE (2026-08-02 re-score). The 2026-08-01 verifier downgupheldGrade 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-recipe-bom-costingno, grade B - Re-confirmed 2026-08-02. Inventory Savings is a distributor 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-86-auto-syncno, grade B - 86 propagation is excellent but is a manual/menu-level actioupheldGrade 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-vendor-catalogs-edino, grade B - Inventory Savings links to existing distributors for discounupheldGrade 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-price-change-alertsno, grade B - Inventory Savings offers "find the same product for less" soupheldGrade 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
reporting-realtime-dashboardyes, grade B - Analytics dashboard plus the Otter Go mobile app give real-tupheldGrade 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
reporting-multiloc-drilldownpartial, grade B - The cited Analytics page carries no multi-location comparisoupheldGrade 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
reporting-tier-paywallpartial, grade B - Analytics starts at $0/mo, but Financials, Live Alerts ($15/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
reporting-anomaly-alertspartial, grade B - Live Alerts pushes real-time notifications on store status, 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
multi-location-central-menu-publishpartial, grade B - One menu edit publishes across locations and channels — a cuupheldGrade 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-consolidated-reportingpartial, grade B - Same evidentiary gap: aggregation across locations is assertupheldGrade 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-offline-kds-printingpartial, grade B - Upheld partial on re-fetch 2026-08-02. The only evidence remupheldGrade 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-offline-feature-matrixno, grade B - Otter lists three offline modes as feature bullets but publiupheldGrade 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-interchange-plus-publishedno, grade B - Re-confirmed 2026-08-02 - no rate structure of any kind is pupheldGrade 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 - Re-verified 2026-08-02 and NARROWED. Established: Advanced BupheldGrade 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-hardware-purchase-outrightpartial, grade B - Re-confirmed and expanded 2026-08-02. Outright purchase pricupheldGrade 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-data-export-self-servepartial, grade B - Financials allows "download your payout details by transactiupheldGrade 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
delivery-3p-reconciliationyes / B - "Financials consolidates and breaks down delivery-partner payouts with transaction-level t"upheldThe cited evidence was tryotter.com/products/financials, a first-party product page (grade C), which cannot carry a yes on a differentiator. Searching the Otter Zendesk help centre (292 articles enumerated via /api/v2/help_center/en-us/articles.json) produced 'Financials: Reconciliation', which describes the mechanism rather than selling it: calculated-vs-actual payment per order, unpaid/partially-paid/pending counts, and a transaction-level fee breakdown naming Commission, Delivery Commission, Processing Fee, Error Charges and Adjustments. The claim survives on that documentation at grade B. source
delivery-injection-error-visibilityyes / B - "Live Alerts (from $15/mo/loc) alerts in real time on store status and item availability iss"upheldThe cited evidence was the tryotter.com/products/analytics marketing page (grade C), and the note leaned on a DoorDash programme requirement rather than on Otter's own documentation. The help-centre Live Alerts article names the failure events directly - third-party POS injection failure, delivery-app integration disconnection, and 3+ consecutive cancelled or missed orders - and Repairing Disconnected Integrations documents per-channel connection status and error types in the dashboard. That is documentation of the mechanism, not a feature list, so the yes stands at grade B. source
digital-catering-portalyes / B - "Catering $35/mo/loc: dedicated catering menu, size restrictions, lead-time scheduling, onli"upheldThe cited evidence was tryotter.com/products/catering, a first-party product page (grade C). The help-centre Otter Catering article documents the same capability as configuration: named Lead Time, Advance Ordering, Basket Size Minimum and Guest Count fields, a deposit rule expressed as percentage plus dollar floor plus due-by days, and Invoice Due Date and Invoice Reminders in days before the event, all settable at org, brand or location level. The only element of the claim not documented is house-account or ACH terms - payment methods are online card wallets or in person - which is a narrower gap than the claim's "invoice ... or ACH" disjunction requires, so the yes survives at grade B. source
reporting-channel-profitabilityyes / B - "Analytics reports performance across every ordering channel; Financials adds transaction-le"upheldThe cited evidence was tryotter.com/products/financials, a first-party product page (grade C). The Sales Summary help article documents the actual report: a Sales Breakdown that pivots sales, discounts, tips, taxes, commission and refunds with Group by channel, brand or payment method, across all channels; the Analytics guide independently states Advanced Reports show performance, commissions and payouts by date and channel, and the Reconciliation report itemizes commission per marketplace. Commission netting per channel is documented rather than asserted, so the yes stands at grade B; note that margin here means net of marketplace fees, not food cost. source
multi-location-multi-brandyes / B - "POS page lists multi-brand management; the Virtual Brands product runs a delivery-only bran"downgrade-to-partialThe cited evidence was tryotter.com/products/virtual-brands, a first-party product page (grade C), and its own note conceded the virtual-brand product is delivery-only, which does not reach the claim's requirement of two brands on one terminal and drawer. Enumerating all 292 help-centre articles and reading Multi-Store Ordering, Kiosk Brand Selection, Adding a Third-Party Virtual Brand, Location Tagging and the POS articles: multi-brand on shared hardware is documented for kiosk, QR and direct online ordering, and per-brand reporting is documented throughout, but the Multi-Store Ordering compatibility list omits the Otter POS terminal and no article describes brand selection, per-brand receipt branding or brand-separated drawer handling on the terminal. Partial, with the terminal-side gap as the named shortfall. source
commercial-module-unbundlingyes / B - "\"Build Your Own\" tier plus per-module published monthly prices across POS, catering, marke"downgrade-to-partialThe cited evidence was tryotter.com/pricing, a first-party pricing page (grade C), which cannot carry a yes on a differentiator. The help centre does document the underlying commercial mechanics, and they fall short of the claim in two named ways: modules attach to a tiered base package rather than being purely a la carte (Catering requires Direct Orders; Multi-Store Ordering requires Lite or Standard), and independent cancellation is a support-mediated request form - Billing Admin only, 48-hour turnaround, add-ons via support only, and unavailable entirely to enterprise, partner and annual-billing customers. Partial with those shortfalls named. source
menu-pricing-nested-modifiersunknown / F - 'Modifiers exist; nesting depth and min/max/forced-selection semantics are undocumented.'resolve-to-yesThe help-centre modifier article documents all three elements the claim asks for: per-group Required/Optional, per-group min/max total selections, and a published nesting-depth table topping out at 6 levels on Otter POS and Direct Orders. source
menu-pricing-fractional-placementunknown / F, verified - pizzeria landing page contains no reference to halves, quarters or fractional toppingsresolve-to-noThe earlier pass only had the marketing page. The help-centre modifier article enumerates the entire modifier-group and modifier-item configuration surface, and it has no placement dimension and no per-section price; this is the same enumeration already used for the record's no on menu-pricing-modifier-price-by-parent-size and menu-pricing-topping-quantity-tiers. source
menu-pricing-half-and-half-ruleunknown / F - 'No half-and-half pricing rule of any kind appears in Otter documentation, including the pizzeria vertical page.'resolve-to-noRead the help-centre Menu Pricing Rules article, which enumerates every configurable pricing rule Otter offers; none is a half-and-half rule, and the modifier model has no section concept to price. source
menu-pricing-size-style-matrixunknown / F - checked tryotter.com/products/menu-management, no size-style matrix documentedresolve-to-noThe marketing page was the wrong source. The help-centre pricing article enumerates all four pricing dimensions and none is a variant axis, and the integration guides confirm imported variants are flattened into separately named items. source
menu-pricing-combosunknown / F - 'no combo or meal construction with component swapping is documented'resolve-to-partialThe help-centre modifier article documents combo construction with per-option price deltas via negative modifiers, using a combo as its worked example; the shortfalls are that negative modifiers are unsupported on Otter POS and that no cart-level combo detection exists. source
menu-pricing-channel-price-booksunknown / F - 'Pricing can be adjusted across all channels from one place; per-channel price books and percentage-markup rules are not documented.'resolve-to-yesBoth halves are documented in the help centre: per-channel/per-partner/per-fulfillment item prices in Menu Item Pricing, and percentage or fixed-amount markup rules scoped per channel, location, fulfillment and menu in Menu Pricing Rules. source
menu-pricing-versioning-effective-datesunknown / F - 'No staged versioning with effective dates, preview-before-publish, or rollback-to-prior-version capability is documented.'resolve-to-partialThe help centre documents both preview-before-publish and restore-to-a-prior-published-version; only the effective-dated staging half is missing, which is the named shortfall. source
menu-pricing-dynamic-pricingunknown / F - 'Time-of-day pricing, demand-based pricing, inventory-triggered repricing, or algorithmic margin-optimization are not documented.'resolve-to-partialMenu Pricing Rules is a genuine rule engine that varies price automatically by channel, one of the three axes the claim names; it lacks time and demand triggers and true floor/ceiling guardrails, so the claim is partly met. source
payments-pay-at-tableunknown / F - 'No handheld appears in the published hardware catalog, so a server-carried EMV device is not evidenced; guest-side QR pay exists instead.'resolve-to-yesThe help centre has a whole Handhelds section the earlier pass never reached: a shipped 5.5-inch handheld POS priced as an Otter POS add-on, explicitly for tableside ordering and payments, taking card payments on-device and running the terminal's Orders app payment flow. source
payments-tip-adjustunknown / F - 'QR FAQ references How do I enable tips?; pre-auth-then-adjust flows, batch window, and an unadjusted-tips manager screen are undocumented.'resolve-to-yesThe Otter POS tipping guide documents both flows, a 24-hour post-transaction adjust window with a one-business-day payout delay, the Stripe cap expressed against the pre-authorized amount, and the Tip Pending order status used to find and settle unadjusted tips. source
payments-offline-store-and-forwardunknown / F - "'POS terminal offline mode' is claimed but says nothing about card capture offline."resolve-to-partialThe help-centre offline article states card transactions continue offline and upload on reconnect, which is store-and-forward; the configurable per-transaction and cumulative limits the claim also requires do not exist, since offline mode is automatic and unconfigurable. source
payments-split-tenderunknown / F - 'No documentation of POS-level split-tender capability... on a single transaction.'resolve-to-yesThe Otter POS payments article documents split by item, split evenly, split by specific amount and mixed tender on one check with a per-part payment method; the earlier pass had only found the guest-side QR split feature. source
payments-payout-timingunknown / F - "Otter's own deposit schedule and any instant-funding option are not published."resolve-to-partialOtter Payouts Schedule publishes the deposit schedule down to a day-by-day settlement table and holiday calendar, so the first half is met; the accelerated-funding half is not offered, which is the named shortfall. source
payments-multi-entity-routingunknown / F - 'no settlement entity mapping, inter-company transfer rules or multi-corporate-account routing are documented'resolve-to-yesThe help centre documents a Stripe account, and thus a bank account and legal entity, connected per store in Payout settings, one daily payout per store, and per-store entity replacement on ownership change - all under one Otter organization and dashboard. source
delivery-driver-rosterunknown / F, verified - 'Connect your delivery operations to Otter to unify fulfillment and dispatch with your own drivers'; not documented publicly either wayresolve-to-noThe help-centre Couriers article the earlier pass could not retrieve resolves the ambiguity: managing your own drivers is done in Shipday or Nash, and Otter's own representation of an in-house delivery is a self-deliver flag on the order, not a driver record. source
delivery-dispatch-boardunknown / F, verified - 'Whether the dispatch UI is Otter's or handed to Shipday/Nash is undetermined.'resolve-to-partialThe Couriers help-centre article settles it: Otter itself provides courier-needed tagging, automatic/manual assignment and a per-order courier tab inside Order Manager, but no driver-availability view and no run batching. source
delivery-zones-polygonunknown / F - 'polygon drawing or custom boundary definition is not documented'resolve-to-noThe Direct Orders delivery settings screen is documented field by field and offers exactly two delivery-area types, both radii, with a distance allowance - the entire configurable surface, and it admits no polygon or isochrone. source
delivery-address-validationunknown / F - 'no address validation, geocoding, or delivery-zone-rejection for out-of-zone addresses is documented'resolve-to-partialThe Direct Orders delivery area is enforced by driving or straight-line distance from the entered address, which is geocoding-based out-of-zone gating for online orders; POS-entered delivery orders get no check, which is the named shortfall. source
delivery-daas-fallbackunknown / F - 'Rules-based overflow between in-house and DaaS is moot without in-house drivers; overflow between couriers is undocumented.'resolve-to-noThe Couriers article enumerates the whole assignment-rule surface as Automatic or Manual and documents the failure path as an operator-driven Retry or Self-deliver, so no automatic overflow rule exists in either direction. source
delivery-tracking-pageunknown / F - 'no guest-facing tracking page URL, order status timeline, or driver-location display is documented'resolve-to-partialThe Couriers FAQ documents a shareable real-time order-progress URL and Catering documents tracking links inside guest email and SMS notifications; what is missing is any statement that the page is on the restaurant's domain or branded, and the driver state comes from the 3PL. source
delivery-promise-timeunknown / F - 'Prep times are operator-set per Order Manager configuration; dynamic adjustment from kitchen load is not documented.'resolve-to-noThe two inputs to the quote are documented as operator-entered constants - an estimated delivery time range per store and a prep time per delivery platform - with only a fixed 2-5 minute ASAP buffer applied by the system, so the promise time is a per-store constant by construction. source
delivery-offline-behaviorunknown / F - 'delivery-order acceptance behavior offline is not documented'resolve-to-partialThe offline-mode article does document delivery-relevant offline behaviour - online and delivery-platform orders cannot be accepted, with storefront-pause consequences, while POS cash and card transactions continue - but is silent on courier assignment and settlement, which is the named shortfall. source
digital-apple-business-connectunknown / F - 'Searched the vendor help centre for Apple Business Connect and Apple Maps: no article exists.'resolve-to-yesThe search behind the original rationale missed the article. Article 38446541679379 contains an 'Apple Maps' heading, a nine-step Apple Business Connect location-creation walkthrough, and an explicit 'Adding an Order button to Apple Maps & inputting an Otter Online Ordering website link' procedure that selects the Order action from the ABC Action menu. source
digital-promo-parityunknown / F - 'Digital coupons are referenced on the online ordering page but define-once cross-channel honoring and channel eligibility controls are not documented.'resolve-to-partialThe help centre documents both halves: channel eligibility controls exist, and Otter states directly that Direct Orders discounts apply only to direct online orders while delivery-platform promotions are authored separately. Loyalty rewards are the one define-once cross-channel offer type. source
digital-checkout-pci-scaunknown / F - online checkout accepts credit card, Apple Pay and Google Pay; no SCA, PCI DSS 4.0 or attestation documentation appears.resolve-to-partialThe hosted-checkout half is now documented: Otter hosts the ordering site and Stripe is the mandatory processor for every Otter-processed order. The compliance half remains unpublished - a full-text search of the 292-article helpdesk dump returns zero hits for PCI, 3DS or 3D Secure. source
guest-loyalty-thirdparty-identity-attachunknown / F - 'Notable gap given Otter's marketplace position - nothing published about attaching DoorDash/Uber Eats orders to a native guest profile.'resolve-to-partialThe bare assertion was wrong: the loyalty points article names the delivery-partner receipt as one of the QR surfaces an eater can scan to claim points retroactively on that order. It is a guest-initiated attach, not an automatic identity handoff, so the claim is met only in part. source
guest-loyalty-tiersunknown / F - 'The Loyalty page documents a single points/stars/bucks currency ... Not affirmatively denied either, so unknown rather than no.'resolve-to-noThe earlier pass scored off the marketing page. The help centre publishes the full creation wizard, which is the entire configuration surface for a loyalty program, and it offers exactly two earning types and four reward types with no tier construct. source
guest-loyalty-offline-behaviorunknown / F - 'Offline POS behavior during network outage and local loyalty-accrual queuing are not documented' (checked against the tryotter.com marketing page only).resolve-to-noChecked the vendor's own offline-mode article, which carries an explicit limitations enumeration, plus all six loyalty articles. The claim is about explicit documentation of queue-and-reconcile vs blocked behaviour, and that documentation demonstrably does not exist in the help centre. source
guest-loyalty-offer-stacking-rulesunknown / F - 'Offer stacking rules, cumulative discount limits, or exclusivity between simultaneous promotions are not documented' (checked against marketing pages).resolve-to-noThe help centre supplies the positive statement the marketing pages lacked: one discount code per order at checkout, hard-coded, plus two complete discount-builder settings enumerations with no precedence or combinability field. source
guest-loyalty-targeted-offersunknown / F - 'Segmented offer targeting, audience rules, or behavioral-trigger personalization in loyalty are not documented.'resolve-to-partialFirst Party SMS Marketing (art. 52488273009427, updated 2026-06-12) is a shipped audience-targeted offer engine that the earlier marketing-page pass never saw; the same article states custom segments cannot be built, which is the shortfall. source
guest-loyalty-rfm-segmentationunknown / F - 'Recency/Frequency/Monetary segmentation, cohort scoring or RFM-derived audience lists are not documented.'resolve-to-partialThree help-centre articles document automatically computed recency and frequency lifecycle segments that are directly usable as marketing audiences; only the monetary dimension and operator-defined cohorts are absent. source
guest-loyalty-lifecycle-automationunknown / F - 'Lifecycle automation (win-back campaigns, churn-risk scoring, new-guest onboarding flows) and triggered messaging are not documented.'resolve-to-partialThe SMS Marketing article documents a recurring win-back campaign against an auto-computed Lapsed Guests audience, which is a configurable standing campaign; it stops short of event-triggered automations such as birthday or first-visit. source
guest-loyalty-native-email-smsunknown / F (verified) - 'No SMS or email marketing capability appears on the Loyalty page ... The paid Marketing product is delivery-app advertising, not CRM messaging.'resolve-to-partialThat verification was correct about the marketing site but the help centre publishes a First Party SMS Marketing product (art. 52488273009427, updated 2026-06-12) separate from Delivery App Marketing. It is SMS-only, so the claim's both-channels requirement fails on email. source
guest-loyalty-cdp-event-apiunknown / F - 'developer portal renders only a heading with no documentation. No customer event streaming, webhooks, CDP integration or real-time event API ... is documented.'resolve-to-partialThe portal's client bundle (index-zibGwtWX.js, 5.3MB) exposes the webhook configuration model, its authentication strategies and the complete PublishableEvent enum. An order event stream with HMAC-SHA1 signing exists; a guest/loyalty event stream does not, and nothing is publicly documented. source
inventory-cogs-gl-exportunknown / F - 'Financials exports payout/tax/commission detail by transaction, but no named accounting import format or GL account mapping is documented, and there is no COGS source.'resolve-to-noThe help centre supplies the positive statement: COGS reporting is explicitly not yet available, so the period COGS half of the claim is denied by the vendor itself, and no named accounting import format or GL mapping exists anywhere in the corpus. source
reporting-eod-closeoutunknown / F - 'No end-of-day closeout report, drawer reconciliation, or daily settlement log is documented.'resolve-to-partialTwo dedicated help-centre articles document a printed EOD report and a close-of-day workflow including drawer settlement; the marketing-page pass missed both. Tax and net sales are the gaps against the claim's enumerated list. source
reporting-comps-voids-auditunknown / F - void report immutable with staff attribution; 'No unified audit log or report reconciling all three (comps, voids, discount adjustments) is documented.'resolve-to-partialConfirmed the void report's contents from the help centre article itself rather than the marketing page, and confirmed by full-text search that the corpus has no comp or price-override construct and no employee/manager attribution on discount application. source
reporting-cash-over-shortunknown / F - 'No cash-reconciliation report, over/short variance report or automated variance alerting is documented.'resolve-to-partialA dedicated Cash Management Report exists in the help centre with an explicit expected-versus-counted Difference column per drawer; only the per-employee breakdown and alerting are missing. source
reporting-custom-report-builderunknown / F (verified) - 'The Analytics page contains no phrase resembling custom report builder ... The quoted sentence in the dossier is not on the page.'resolve-to-partialThat verification correctly killed a fabricated marketing quote, but the help centre documents real pivot/group-by/column-customization controls inside Sales Summary and Business Performance. What is missing is arbitrary dimension selection and saving a custom view, so partial rather than yes. source
reporting-scheduled-deliveryunknown / F (verified) - 'no occurrence of scheduled, email delivery, or report subscription anywhere on the Analytics page.'resolve-to-yesThe marketing page indeed says nothing, but the help centre has a dedicated Scheduled Reports article documenting cadence, recipient list, send time and CSV attachment. Grade B primary documentation, which satisfies a table-stakes yes. source
reporting-raw-warehouse-exportunknown / F - 'Manual/CSV-style export documented; recurring automated push to S3/SFTP/Snowflake is not.'resolve-to-partialScheduled Reports supplies the recurring-automation half the earlier note treated as absent, delivered by email with a CSV attachment; the customer-controlled warehouse destination remains absent from the whole corpus. source
reporting-public-apiunknown / F (verified) - 'no public API surface is documented. Correctly withheld.'resolve-to-noThe help centre positively documents the credential path, and it is a certified-partner process with a partnerships-team gate; independently, the developer portal's own routes serve an empty SPA shell to the public. Both legs of the claim - published documentation and self-service credentials - fail on evidence rather than on absence. source
reporting-webhooksunknown / F - 'developer portal renders only a heading. No webhook contract, event types, payload schema, delivery guarantees or retry logic is documented.'resolve-to-partialProbing the portal's /assets/index-*.js bundle rather than its HTML shell exposes the webhook configuration model, the HMAC-SHA1 signing strategy and the full PublishableEvent enum. Order events and signature verification are established; payment events and retry semantics are not. source
reporting-api-not-upchargedunknown / F - 'no public API is documented, no API pricing is stated, and no usage-based add-on is documented.'resolve-to-noThe Analytics help-centre FAQ publishes a $20/month/location price for Advanced Analytics, which is the tier carrying transaction-level financial detail, and the partner process shows API credentials sit outside merchant subscriptions entirely. This is positive evidence of gating, not absence of evidence. source
reporting-nl-queryunknown / F - 'natural language query, conversational search, or ask-a-question interface is not documented. Analytics offers drill-down and filtering but no free-text NL input.'resolve-to-partialThe help centre documents a shipped AI analysis feature over the operator's own sales data in the Otter Go app that the marketing-page pass did not see; it is generated rather than queried, so partial with the free-text shortfall named. source
multi-location-org-hierarchyunknown (F) - 'an earlier automated read of the enterprise page appeared to assert hierarchy... a verbatim re-fetch showed the page contains none of that'resolve-to-yesThe marketing page really does not assert it, but the documentation does: the OpenAPI spec at developer-guides.tryotter.com has organization, brand and store as addressable resources, and User Management assigns each role an Access Level of Organization, Brand or Location. source
multi-location-local-override-policyunknown (F) - checked only tryotter.com/products/menu-managementresolve-to-partialThe capability is documented in the help centre rather than on the marketing page: corporate locks item creation/deletion and photos while franchisees keep hours, availability and publishing, with a documented request path - but the permission set is one global toggle, which is the named shortfall. source
multi-location-price-zonesunknown (F) - 'price tiers/zones as a first-class object are not documented'resolve-to-partialPricing Rules and Advanced Pricing cover per-location-group and per-channel pricing without duplicating the item; the gap is per-daypart pricing and the absence of a persistent zone object. source
multi-location-scheduled-publishunknown (F) - checked only tryotter.com/products/menu-managementresolve-to-partialThe help centre documents the publish dialog end to end (locations, channels, note, immediate) plus a genuine version-restore path, and promotions have start/end dates - so the claim is half met with a named gap rather than undetermined. source
multi-location-new-store-templateunknown (F) - checked only menu-management and onboarding marketing pagesresolve-to-partialThe Store Management and POS Linking articles document template-based provisioning that the marketing pages never mention; the shortfall is scope of the template and the missing published time-to-open. source
multi-location-normalized-item-rollupunknown (F) - checked only tryotter.com/products/analyticsresolve-to-partialSKU Library gives the normalized item definition the claim requires; what is missing is a report keyed to it, so this is a named-shortfall partial rather than unknown. source
multi-location-cross-location-giftcardunknown (F) - 'Gift cards are a third-party eCard integration; cross-location redemption and liability reporting are Otter-undocumented'resolve-to-partialThe Otter Gift Cards article shows Otter runs the balance and redemption in its own POS and online-ordering checkout (eCard supplies the plastic), and enablement is per location within one account; liability reporting and inter-owner settlement remain undocumented. source
multi-location-cross-location-loyaltyunknown (F, verified) - DOWNGRADE 2026-08-02 after the Loyalty marketing page's multi-location sentence could not be re-foundresolve-to-yesThe downgrade was right about the marketing page and wrong about the capability: two help-centre articles say points and profiles live at Brand level and that POS profile search spans every Otter store in the organization. source
multi-location-multi-currency-localeunknown (F) - checked only tryotter.com/products/financials and pricingresolve-to-partialThe Menu Publish Errors troubleshooting section is the direct evidence that one account spans currencies, and it also names the limitation; consolidated converted reporting is still undocumented. source
multi-location-config-audit-logunknown (F) - 'no audit log documenting who changed what configuration and when is documented. Menu history/versioning is not documented.'resolve-to-partialBoth premises were false: Menu Edit History and Menus Activity Logs are documented, with before/after field values, user attribution and location filters. What remains missing is non-menu configuration and export. source
multi-location-enterprise-ssounknown (F) - checked otterpos and user-management marketing pagesresolve-to-noThe per-role Login Type table is an exhaustive enumeration of how back-office users authenticate - all password or PIN - and the login article documents no federated option, so absence here is evidenced rather than merely unfound. source
multi-location-enterprise-apiunknown (F) - 'developer portal renders only a heading with no API documentation'resolve-to-yesThe developer portal is a client-rendered shell, but its own bundle points at developer-guides.tryotter.com, where the full Public API reference is served anonymously; it contains an explicit multi-store reporting endpoint and an organization/brand/store resource tree. source
extensibility-public-api-docsunknown (F, verified) - 'developer.tryotter.com still renders nothing but a Developer Portal heading... the most conspicuous disclosure gap in the record'resolve-to-yesThe gap was a retrieval failure, not a disclosure failure: the SPA never renders docs because it links out to developer-guides.tryotter.com, which serves the OpenAPI spec and guides anonymously. source
extensibility-free-sandboxunknown (F) - 'developer portal renders only a heading... free self-serve sandbox is not documented'resolve-to-partialThe Integrated Partner Process and the newly located onboard-application guide both document per-environment credentials including staging; what is absent is self-serve access and seeded data, which is a named shortfall rather than an unknown. source
extensibility-webhooks-pushunknown (F) - 'Whether certified partners receive push webhooks or must poll is decided entirely inside the private developer portal'resolve-to-yesIt is not private: the event contract is published in the anonymous OpenAPI spec at developer-guides.tryotter.com, including the notification envelope, the expected 200 acknowledgement and nine order-lifecycle event types. source
extensibility-webhook-reliabilityunknown (F) - 'developer portal renders only a heading. Webhook delivery, retry policy, idempotency guarantees and failure recovery are not documented.'resolve-to-partialThe webhook authentication guide documents HMAC-SHA256 signing in detail and the spec exposes retryAttempt and a fatal-vs-retryable error taxonomy; what is genuinely missing is the backoff schedule and any replay mechanism. source
extensibility-order-injection-apiunknown (F) - 'whether Otter POS exposes an inbound public write API for externally-originated orders is not documented'resolve-to-yesIt is documented, at developer-guides.tryotter.com: POST /v1/orders pushes an order into Otter for a store, with station routing on items, lifecycle webhooks to the merchant-side POS/KDS integration and presence in the order reports. source
extensibility-menu-write-apiunknown (F) - 'No public API documentation exists. Menu updates are done via the dashboard'resolve-to-yesThe public OpenAPI spec has POST /v1/menus (upsert) plus publish, hours, sync and bulk availability endpoints, and the guide set walks the read-and-upsert flow. source
extensibility-data-symmetryunknown (F) - 'No public API documentation. Data symmetry... is not documented.'resolve-to-partialWith the spec in hand the parity can be checked object by object; most core objects are symmetric, the organization tree and inventory summaries are not, which is the named shortfall. source
extensibility-published-rate-limitsunknown (F) - 'No rate limits, throttling policy, quota or API usage documentation is available.'resolve-to-partialThe Rate Limiting guide and the per-endpoint RATE LIMIT annotations supply exact numbers and 429 semantics; the only gap is documented response headers. source
extensibility-bi-data-warehouseunknown (F) - 'Analytics offers CSV export... Direct push to Snowflake, BigQuery, Redshift or other BI warehouse is not documented.'resolve-to-partialThe Reports API and its order/order-item/payout field lists give the transaction-level, multi-store, schedulable half of the claim; the destination half - S3/SFTP/warehouse - is still absent, which is the named shortfall. source
extensibility-custom-fields-scriptingunknown (F) - 'custom fields on orders, items or guests and field-level scripting/automation are not documented'resolve-to-partialLocation Tagging is exactly an operator-defined custom field on a POS object, usable in reports without a vendor engagement; it is narrow, which is the named shortfall rather than an unknown. source
extensibility-headless-embeddedunknown (F) - 'developer portal is empty. Headless POS... or white-label capabilities are not documented.'resolve-to-noWith the full OpenAPI spec available the enumeration is now possible: order creation demands a caller-computed total, and the only engine-behind-another-UI surface Otter publishes is loyalty reward evaluation, not checkout. source
extensibility-api-versioning-deprecationunknown (F) - 'No public API documentation. API versioning strategy, deprecation policy or backward-compatibility guarantees are not documented.'resolve-to-partialThe Public API overview publishes the versioning and deprecation rules and the schema flags deprecated fields; the missing halves are a changelog and a stated notice window. source
extensibility-data-portability-exitunknown (F) - 'a full post-termination export window... is not documented'resolve-to-partialThe export surface is far wider than the earlier note allowed (every report table, plus transaction-level report jobs via the API), so the honest reading is partial with the exit window named as the shortfall. source
reliability-offline-card-authunknown / F - 'Otter POS terminal supports offline mode; offline card orders are store-and-forward... No offline card authorization... documented.'resolve-to-yesThe claim as worded asks only whether card payments can be accepted offline via store-and-forward rather than a cash-only fallback, and the help centre answers it directly: 'effortlessly process credit card and cash transactions in areas with no or unstable network connection', automatically enabled for all Otter POS customers, with queued orders processed on reconnect. The prior rationale withheld the yes for a stricter capability (offline card AUTHORIZATION and decline liability) that this claim does not ask about; that stricter question is reliability-offline-decline-liability. source
reliability-offline-decline-liabilityunknown / F - 'no decline-on-reconnect scenario, liability statement, failed-payment recovery or offline-decline insurance is documented.'resolve-to-partialThe prior pass searched only the help centre. The governing merchant contract is published at www.tryotter.com/legal/tech-services (reachable from the /legal index) and its Payment Responsibility clause allocates loss for 'transactions that were not processed due to a network communication error, or any other reason' to the merchant, with an affirmative duty to verify that each transaction settled. The liability half of the claim is therefore documented; the cap half is not, in either the contract or the offline-mode article's own limitations enumeration. source
reliability-lan-degraded-multi-terminalunknown / F - 'multi-terminal LAN synchronization behavior during degraded network... is not documented.'resolve-to-noThis is not an absence argument. The offline-mode article affirmatively states that wifi- and ethernet-connected printers - devices on the same local network as the terminal - do not receive orders during an internet outage, and that only Bluetooth/USB peripherals already paired to the individual device continue to work. Otter therefore does not use the LAN as a transport in a degraded state, which rules out multiple terminals sharing a single check over it. source
reliability-local-transaction-engineunknown / F - 'A dedicated local transaction processing engine with card-auth capability (separate from cloud) is not documented.'resolve-to-partialRe-read the offline article in full from the API dump. It documents local capture and completion of card and cash transactions on the terminal, plus an app-local store of unsent orders that Otter warns can be destroyed by clearing the app cache - enough to say the ordering path is not purely cloud request/response. It stops short of the claim's stronger reading: there is no edge server or on-premise transaction engine, and every non-POS surface (online orders, menu publish, LAN printing) fails during an outage. source
reliability-onsite-installunknown / F - '"Free, personalized onboarding" is advertised but the delivery mode (remote vs on-site) is not stated.'resolve-to-partialThe prior pass worked from the marketing page. The help centre states the delivery mode directly for two SKUs: Otter dispatches its own technician to the restaurant to unbox, assemble and install the Kiosk Pro 27 inch and Kiosk 21 inch at no extra fee in the US and Canada, staying for a live test transaction. It equally clearly makes Otter POS remote - the go-live is a scheduled call with an Onboarding Specialist against self-install hardware guides. source
reliability-menu-build-serviceunknown / F - 'Onboarding is free and personalized; whether Otter performs the initial menu build is not stated.'resolve-to-noIt is stated, in the onboarding document itself. The Otter POS Onboarding Checklist enumerates every onboarding and go-live task and places menu setup on the operator with three self-serve routes and pointers to how-to articles, while the Onboarding Specialist's documented role is the go-live call and integration enablement. That is a positive statement about the scope of onboarding, not a failure to find one. source
reliability-hardware-replacement-slaunknown / F - 'Hardware replacement timing, depot vs onsite service, and SLA turnaround times are not documented.'resolve-to-partialThe prior pass checked only tryotter.com/support. The published Hardware Addendum carries a 1-year limited warranty with repair/replace/refund at Otter's option through an RMA, and the help centre documents a troubleshoot-then-ship-replacement flow in which the return label arrives in the box of the new equipment - an advance exchange in practice. The prior pass was right that no turnaround time exists, which is exactly the shortfall that keeps this off yes. source
reliability-backup-restoreunknown / F - 'no backup strategy, data retention policy, disaster recovery procedure or restore capability is documented.'resolve-to-partialOne restore capability is documented and the prior pass missed it: Menu Version History exposes autosaved snapshots and a one-click revert to a previous published menu version, and reporting data is self-retrievable to CSV/xlsx across a 365-day window up to three years back. The prior pass was right that nothing account-wide exists and that no RPO/RTO is published - and the Terms disclaim liability for data errors outright - so this lands on partial, not yes. source
reliability-pci-dss-4-attestationunknown / F - 'no security page, trust center, PCI DSS compliance statement, SOC 2 attestation or PCI DSS 4.0 conformance claim appears anywhere.'resolve-to-noUpgraded from an unresolved search to an enumeration. The claim is about what the vendor publishes, and Otter's own complete enumerations are now in hand: the /legal index of every legal document it publishes, sitemap-0.xml with all 2,521 site URLs across seven locales, three non-resolving trust-centre subdomains, and a published DPA that names no certification. The Tech Services Terms then affirmatively assign PCI compliance to the merchant rather than asserting Otter's own. source
reliability-mfa-role-based-accessunknown / F - 'per-employee PIN login and custom role-based access control are documented. Multi-factor authentication... is not documented.'resolve-to-partialThe prior pass had both halves right but left the cell unknown. The RBAC half is documented to a level that carries a yes on its own - ten roles with per-role access level and surface flags, custom roles built by permission toggling, brand/location scoping, deactivation. The MFA half fails against an enumeration rather than a search: User Management publishes a Login Type for every role and the complete set is password or PIN, and the account-login article covers the entire sign-in and credential-management surface with no second factor. source
reliability-cellular-backupunknown / F - 'no cellular modem, 4G/5G backup connection or automatic failover to cellular is documented. POS requires WiFi or ethernet network connectivity.'resolve-to-partialThe prior rationale was wrong on the first half: Otter's hardware catalogue does list a cellular device - a Samsung LTE A7 Lite tablet offered with a bundled data plan, US-only, $80/month lease, not available to buy. It was right on the second half: no LTE option exists for the POS terminals, kiosks, handhelds or KDS, and no automatic failover behaviour is documented; Otter's documented outage answer is Offline Mode, and the KDS guide explicitly advises against cellular hotspots and tethering. source
commercial-month-to-month-contractunknown / F - 'The pricing page still renders the question "Is there a cancellation fee?" with no answer text... The only public legal document is a website Terms of Service, not the merchant service agreement.'resolve-to-yesThe premise of the prior rationale was false: the merchant service agreement IS published. www.tryotter.com/legal indexes 12 terms-of-use documents, among them the Tech Services Terms of Use - the merchant-facing agreement - which states that absent an Order Form term, use of the Tech Services 'is authorized on an ongoing month to month basis', auto-renewing monthly and cancellable on written notice. The help centre corroborates with 'There is no contract period. You can cancel at any time.' The prior pass only ever reached the website ToS and the client-rendered pricing FAQ. source
commercial-no-early-termination-feeunknown / F - 'Same client-rendered FAQ gap; /terms is a website ToS with no ETF clause either way, and the merchant service agreement is not published.'resolve-to-partialThe merchant service agreement is published - the /legal index links the Tech Services Terms of Use - and it was read in full on 2026-08-08. It has no ETF or liquidated-damages clause and defines the whole cost of cancelling mid-term as forfeiture of prepaid unused fees plus return of leased hardware (or an Unreturned Equipment Fee). It stops short of the claim's wording, which asks for terms that state no ETF: the document is silent rather than affirmative, and the Order Form it defers to is private. source
commercial-autorenew-terms-publishedunknown / F - 'The public website ToS runs "until terminated as set forth herein" with no auto-renewal or notice-window clause, and the merchant agreement is not public.'resolve-to-yesThe merchant agreement is public. The Tech Services Terms of Use, linked from www.tryotter.com/legal, publish the auto-renewal mechanic for both plan types and both notice windows - by the 15th of the month for monthly plans, at least 30 days before expiry for term plans - which is precisely what this claim asks to be published rather than buried in a signed quote. The prior pass had only located the website ToS. source
commercial-rate-increase-clauseunknown / F - 'the website Terms of Service do not address rate increases... The merchant service agreement (containing these terms) is not public.'resolve-to-noThe merchant agreement is public and it addresses rate increases directly - reserving them 'at any time as we may determine in our sole and absolute discretion' for both Monthly and Term Plans, with effect on the next pay date after notice. Neither disjunct of the claim survives: there is no cap or interchange carve-out, and no penalty-free exit is granted on an increase, since cancellation runs on the ordinary notice clock and fees are non-refundable. The Mexico price-adjustment article shows the clause used, with prices applying to all customers once announced. source
commercial-hardware-not-lockedunknown / F - 'The FAQ asks "Can I use my existing hardware with Otter?" and "Can Otter POS run on iPads or tablets?" - both answers unretrievable.'resolve-to-yesThe pricing-page FAQ accordions were never the right source. The help centre answers the question in full with a named BYOD programme and an explicit supported-model list of third-party Epson and Rongta printers running against the operator's own Android tablet, and states that BYOD is compulsory outside the US and Canada. The iPad half of the pricing FAQ is separately answered in the negative by omission - BYOD is Android-only - which is a limit on the option, not an absence of one. source
commercial-export-customer-and-loyaltyunknown / F - 'Loyalty reports export; Analytics offers CSV export; but no full guest-directory and loyalty-history export before termination is documented.'resolve-to-partialConfirmed and sharpened against the help centre articles rather than the product pages. Loyalty Reporting exports both tabs to CSV including individual loyalty order transactions, so machine-readable retrieval of loyalty ledger activity exists. The Guest Directory Report article - which is where guest contact records and point balances actually live - documents view, filter, search and edit with no export control at all, and there is no gift-card liability report; those two gaps are the named shortfall. source
commercial-post-termination-export-windowunknown / F - 'Checked https://tryotter.com/terms (2026-08-04): no post-termination data-retention window is documented.'resolve-to-noThe right documents were not the website ToS. Otter publishes a Data Processing Addendum that squarely addresses post-termination handling of customer personal data and commits only to destroying or returning it 'within a reasonable period' - a standard rather than a defined number of days - and the Tech Services Terms, which govern the subscription, contain no data-export or retrieval clause at all. The cancellation help article covers the whole process and never mentions data retrieval. source
commercial-pci-p2pe-tokenizationunknown / F - 'no PCI DSS attestation, P2PE certification or tokenization statement appears anywhere.'resolve-to-noMoved from an unresolved search to an enumeration plus an affirmative contrary statement. The claim requires the vendor to document scope reduction and name the applicable SAQ; the published merchant agreement instead warrants the merchant's own PCI SSC, EMV and card-association compliance, including the physical requirements of the hardware, and makes the merchant indemnify Otter for PCI breaches. The /legal index, the complete 2,521-URL sitemap and the 292-article help centre contain no SAQ, P2PE or tokenization statement of any kind. source
commercial-pci-dss-4-controlsunknown / F - 'no security page, trust center or PCI DSS compliance documentation appears. PCI DSS 4.0-specific controls... are not documented.'resolve-to-noTwo enumerations now carry this rather than a failed search. User Management publishes a Login Type for every role and the whole set is password or PIN, and the account-login article covers the complete Dashboard authentication surface with no second factor - so the v4.0.1 MFA requirement the claim names is absent from the configurable options, not just unmentioned. Otter's complete published surface - 20 legal documents, 2,521 sitemap URLs across seven locales, three non-resolving trust subdomains, a DPA naming no standard - contains no security or compliance documentation of any kind, and the merchant agreement pushes PCI compliance onto the operator. source
commercial-soc2-attestationunknown / F - 'No trust center, security page, or SOC 2 / ISO 27001 statement was found on tryotter.com.'resolve-to-noThe claim asks whether the vendor STATES it holds a current attestation, so absence of the statement across a complete enumeration is the fact itself. Otter's full sitemap (2,521 URLs, seven locales) has no security or compliance page, /security and /trust 404, three trust-centre subdomains do not resolve, the /legal index of 20 documents has none, and the published DPA names no standard where a processor would normally cite one. Decisively, Otter's own blog post urging restaurants to demand SOC 2 from vendors stops short of claiming it for Otter. source
commercial-privacy-dsar-toolingunknown / F - 'no GDPR Data Subject Access Request (DSAR) tool, CCPA consumer-rights fulfillment, right-to-be-forgotten API or privacy-compliance dashboard is documented. No data-subject access process is published.'resolve-to-partialThe second half of the prior rationale is wrong: a data-subject access process IS published. Otter's Data Processing Addendum is public and is incorporated by reference into the Tech Services Terms, so the operator does not have to negotiate one, and it sets out the notify-and-assist process for data-subject requests. The first half stands - fulfilment sits with the merchant on 'commercially reasonable' assistance, and the Guest Directory can find and edit a guest but no documented export or delete action exists. source
commercial-wcag-kiosk-accessibilityunknown / F - 'Re-checked 2026-08-02 across all three kiosk SKUs on the kiosk product page. No ADA, WCAG, Section 508 or VPAT/ACR statement appears.'resolve-to-partialThe prior pass checked the marketing kiosk page; the help centre says more. The Kiosk 27/21 setup guide documents an accessible keypad specifically so 'customers who cannot interact with a touchscreen have equal access to all self-ordering services' - the tactile non-visual mode the claim asks about - and the Kiosks introduction guide asserts ADA compliance. No VPAT, ACR or WCAG conformance report exists anywhere on the site (2,521-URL sitemap) or in the help centre, and the keypad is documented only for the two large kiosks, so this is partial rather than yes. source
menu-pricing-size-style-matrixno / B - 'Advanced Price Settings are enumerated as the complete set: an item has one Default Price plus a price per fulfil'downgrade-to-unknownThe enumeration is not complete. The modifier article states that variant line items exist and are 'edited on the parent item', which contradicts the note's premise that variants are only an artifact of third-party POS imports; no article documents that variant editor, so the four documented price dimensions are not the entire item-level pricing surface and cannot establish the absence of a variant grid. source
delivery-driver-rosterno / B - 'Couriers & Logistics in Order Manager is Otter's entire first-party delivery surface and it delegates the fleet'upgrade-to-partialThe Couriers article is not Otter's entire first-party delivery surface. User Management enumerates ten system roles, two of which are delivery roles Otter operates itself: Courier, which grants access to Otter's own Courier App (CAS) for delivering orders on behalf of the organization, and Dispatcher, which grants permission to manage couriers and send them to fulfill orders. That is a first-class driver entity with a native driver app, so the no is wrong; it stays partial because clock-in/out, assignment state and per-driver run history are nowhere documented. source
delivery-daas-fallbackno / B - 'The dispatch rule surface is enumerated and binary: Under the Assignment mode, select either Automatic courier'downgrade-to-unknownThe Assignment mode setting is real, but it governs how Order Manager requests a third-party courier, and the note's supporting premise that Otter has no in-house driver pool is false - User Management documents a Courier App (CAS) and a Dispatcher role with permission to manage couriers and send them to fulfill orders. With the dispatcher surface undocumented, a two-option setting in an Order Manager how-to is not an exhaustive enumeration of Otter's dispatch rules. source
multi-location-enterprise-ssono / B - 'User Management enumerates a Login Type for every role in the product: Admin, Accountant, Analyst, Manager'downgrade-to-unknownRe-read the article. Login Type is a per-role property recording which credential each role uses and on which surface (Dashboard vs device); the article documents roles and permissions and makes no statement about identity providers or federation, so it is not an enumeration of the authentication options a tenant can configure. No corpus article addresses SSO at all, which leaves this unresolved rather than denied. source
reliability-menu-build-serviceno / B - 'Otter's onboarding documentation assigns the menu build to the operator. The Otter POS Onboarding Checklist'downgrade-to-unknownRe-read the checklist. It is a list of tasks to attempt before the Go-Live call, and it explicitly tells the operator the Onboarding Specialist will help with any step they get stuck on; it never states the scope of what Otter's onboarding team will or will not do, and other articles show specialists doing menu-adjacent work during integration onboarding. A task checklist is not an enumeration of the vendor's onboarding services, so the no does not meet the bar. source
commercial-rate-increase-clauseno / B - 'The published agreement grants the opposite of a cap. Tech Services Terms of U'upgrade-to-partialI re-read the whole Tech Services Terms of Use rather than only its pricing clauses. The no rested on the premise that cancellation runs solely on the ordinary clock (written notice by the 15th), but Section 7(b) Termination Rights separately grants: 'You may terminate these Terms upon written notice to us in the event that we modify the Terms or Fees and you do not agree to such modifications.' That is the claim's second disjunct, and 'Fees' is defined to include Payment Processing fees, which the same document lets Otter change on 7 days notice. It falls short of the claim only because the right is not stated to be penalty-free: fees stay non-refundable, and a Term Plan with Monthly Payment customer who cancels mid-term is 'required to pay any and all unpaid fees related to the subscription term'. Partial, with that shortfall named. source
commercial-no-early-termination-feepartial / B - 'The published Tech Services Terms of Use contain no early-termination fee and no liquidat'downgrade-to-noI re-fetched the full Tech Services Terms and read section 4 (Payment) end to end. The partial rested on the document containing no acceleration clause; it does contain one. Section 4(d), Term Plans with Monthly Payment: 'If you cancel during the subscription term ... you will be required to pay any and all unpaid fees related to the subscription term', with unpaid fees becoming 'immediately due and payable at our discretion' on non-payment. The prior note read only 4(c) (prepaid Term Plans, forfeiture of prepaid fees) and generalised from it, and its keyword test - the strings 'early termination' and 'liquidated' are indeed absent - measured the vendor's drafting vocabulary rather than the obligation. The document therefore does not state that no ETF applies; it states the opposite for term merchants billed monthly. Value goes to no on that positive language, at grade B as a vendor legal page. source
reporting-public-apino / B - 'The Integrated Partner Process is Otter's published path to the API and it is six gated steps'upheldRe-probed both developer hosts. developer-guides.tryotter.com/api-reference/ returns 3.6MB anonymously and /docs/ returns an MkDocs page, so the note's 'the reference is not public either' sentence was false and is withdrawn. What actually carries the no is the onboarding doc's manual-registration requirement via an Account Representative, corroborated by the help centre's partner-certification process, plus the fact that the complete 75-path spec has no labor or employee endpoint. Value unchanged; evidence and grade rebuilt on the primary spec. source
delivery-dispatch-boardpartial / B - 'no driver-availability display exists, because the drivers belong to the connected provider rather than to Otter'upheldThe causal clause in the note is false - User Management documents an in-house Courier App and a Dispatcher role - so it is withdrawn. The value is unaffected: re-reading the Couriers article end to end, the entire documented dispatch surface is a courier-needed tag on the order feed, a binary Automatic/Manual assignment mode, a per-order quote/request/cancel flow and a Courier tab, with nothing that lists driver availability and nothing that assigns two orders to one run. Partial with the same shortfalls, re-argued without the broken premise. source
delivery-driver-trackingunknown / F - 'Otter publishes no driver-facing mobile app in the 292-article corpus: the Otter Go App...'upheldGrepped the corpus dump for CAS, Courier App and Dispatcher: all three occur only in User Management, which does document a courier-facing app - so the rationale's premise sentence was wrong and is withdrawn. Checked the live OpenAPI spec for a driver-position surface; the only lat/long schema is Location, attached to a provider-written delivery status update, i.e. 3PL telemetry rather than Otter driver-app GPS, and no dispatch-side map is documented. Value unchanged at unknown/F on rebuilt reasoning. source
delivery-driver-compunknown / F - 'Otter has no driver entity to attach compensation to (see delivery-driver-roster: fleet management is delegated...)'upheldThe rationale's load-bearing first clause is refuted by User Management, so it is withdrawn. Re-tested the value independently: grepped the corpus for mileage and reimbursement (only delivery-platform order reimbursements, nothing driver-side) and read the published Order Report field list and the full 75-path spec, neither of which carries a driver, run or reimbursement dimension. That is still absence of mention, not a stated limitation, so unknown/F stands with new reasoning. source
delivery-cash-reconcileunknown / F - 'Because Otter has no driver entity at all, no article addresses a driver bank... in either direction'upheldThe premise clause is refuted and withdrawn. Re-checked the cash articles in the corpus dump: every cash object is a till or drawer assigned to a POS user session, with no per-person settle-up and no delivery run linkage, and searching the corpus for the Courier App returns exactly one sentence, which says nothing about cash. So the cell remains unresolved rather than a documented no, for a different and better-supported reason. source
delivery-daas-dispatchpartial / B - 'no first-party dispatch surface, no quote/compare logic and no handoff configuration is documented on any Otter product page'upgrade-to-yesThe earlier pass searched product pages, not documentation. Couriers & Logistics in Order Manager (art. 27589269188499), read in full from the help-centre dump, is a step-by-step guide to the missing surface: an in-Otter assignment-mode setting, automatic quote request and courier request against the connected provider, a manual modal that returns multiple provider quotes for the operator to choose between, an order-level Courier tab holding the assigned courier, cancellation handling from both sides and a shareable tracking URL. That is a native handoff with quote and status returning into the order record, which is the whole claim. source
delivery-3p-direct-integrationyes / B - 'Otter IS the first-party integrator - direct certified connections to DoorDash (2026 DPIP), Uber Eats, Grubhub...'upheldThe cited integrations directory is a first-party marketing page, grade C under atlas-evidence-rules, which cannot support a differentiator yes; and its note asserted DPIP certification the page does not state. Located the documentation instead: separate help-centre integration guides for DoorDash, Uber Eats and Grubhub, each describing a connection made inside the Otter Dashboard against the merchant's own marketplace account, with no third-party aggregator in the path. Value unchanged, evidence rebuilt at grade B and the unsupported certification wording dropped. source
delivery-3p-injectionyes / C - 'Re-confirmed 2026-08-02 on the Order Manager page: Consolidate orders across platforms, Automatically accept & print orders'upheldGrade-C marketing bullets were the entire basis. Read the help-centre articles instead: auto-accept is a documented per-channel setting in the Integrations tab, POS injection is a per-channel setting with its own order-level status flag, and Otter-supplied printers auto-print on connection. Same value, now on vendor documentation at grade B rather than a product page. source
delivery-menu-pushyes / C - 'One menu edit publishes to all delivery apps, kiosk and POS including pricing and photos.'upheldThe note paraphrased a product page and offered nothing for the channel-markup clause. The help centre documents both halves: Otter as the single publishing source of truth to all connected platforms, and per-channel price changes as a bulk action ('Change price > By Channel'), corroborated by the Menu Item Pricing article's enumerated pricing dimensions including delivery partner and channel. Value unchanged, grade raised to B on documentation I retrieved. source
delivery-86-syncyes / C - 'Items marked 86'd reflect immediately across ordering channels; real-time item 86ing... mandatory DPIP capabilities Otter is certified against'upheldChecked the cited KDS product page's claim and could not find any DPIP certification statement there, so that leg is withdrawn. The Item Availability article carries the cell on its own: availability changes 'automatically go live across all connected channels', settable from POS, Order Manager, Dashboard or the Go App, with an explicit restore-to-available path on all connected platforms. Same value, evidence moved to documentation. source
reporting-public-apino / B - 'The Integrated Partner Process is Otter's published path to the API and it is six ga'upgrade-to-partialRe-probed both developer hosts. developer.tryotter.com is a decoy - a 1,139-byte Vite shell on every path - but developer-guides.tryotter.com returns a full public reference to an anonymous client: I read /api-reference/ (OpenAPI 3.0.1 'Public API', 75 paths, OAuth2.0 security scheme) and /docs/onboard-application/ directly. The 'not public' basis for the no is therefore gone. What survives is the credential leg, verbatim from /docs/onboard-application/ ('a one-time, manual registration... reach out to your Account Representative'), and the coverage leg - I enumerated all 75 operations and there is no labor, employee, timecard or shift endpoint. Public docs with partner-issued credentials and one missing domain is the corpus's partial pattern, not a no. source
delivery-store-pausepartial / C - 'Store pause available from Order Manager and the Otter Go mobile app. Timed auto-re'upgrade-to-yesThe partial rested on a marketing page and on timed auto-reactivation being undocumented. Both fail. In the 292-article English help centre, Pause/Unpause a Storefront documents per-platform selection from Otter POS, tablet, Order Manager and the Go app with an explicit 'Select time range for pause' step, and the article's own overview offers to 'temporarily or schedule your storefront to appear unavailable'. Independently, the public OpenAPI spec's PauseRequest object has start and end datetimes with a documented default expiry of 4 AM store time. Both halves of the claim - per-marketplace pause from inside the POS, and a timer - are documented. source
delivery-tracking-pagepartial / B - 'Guest-facing tracking exists... the underlying state is the connected courier platf'upheldValue untouched, reasoning corrected. I re-read User Management in full: Otter ships a Courier Role bound to a Courier App (CAS) 'allowing users to deliver orders on behalf of your organization' and a Dispatcher Role to 'manage couriers and send them to fulfill orders', so the note's claim that Otter holds no driver record was wrong. That leg is withdrawn. The partial survives on the other leg, which I checked independently: the shareable real-time tracking URL is documented, but no article anywhere in the English help centre puts that page on the merchant's domain or under its branding, and Otter's three branding articles all govern the ordering storefront instead. source
delivery-offline-behaviorpartial / B - 'Part of the question is answered explicitly... there is no driver settlement to des'upheldValue untouched, reasoning corrected. The offline-mode article does document the delivery-relevant half I could verify - online and delivery-platform orders cannot be accepted offline, with storefront-pause consequences, while POS cash and card transactions continue - so the partial is right. The note's excuse for the missing half was wrong: User Management documents a Courier Role bound to the Courier App (CAS) and a Dispatcher Role, so Otter does hold courier records and the offline behaviour of courier assignment and settlement is simply not written down. Withdrawing that clause leaves the shortfall as an honest gap rather than a non-question. source
extensibility-partner-revshareno / B - 'The partner page describes referral, technology and vendor tracks and a tiered incen'upheldValue right, evidence replaced. A no cannot rest on a marketing page failing to mention a number. Searching the partnership section of the help centre produced 'Getting paid', which documents the referral programme's qualification rule, $100 threshold, invoicing address and billing entities in detail and then locates the rate itself in a document Otter does not publish: 'The referral fee you are entitled to is what has been agreed on the Partner Agreement between you and Otter.' That is a stated limitation rather than an absence, which is the bar for a no. source
extensibility-oauth-partner-appsno / B - 'The documented partner auth model is an API key... No OAuth 2.0 grant flow, operator'upgrade-to-yesThe no's stated basis was that the public developer portal 'still renders only a heading'. That was the wrong host. developer-guides.tryotter.com serves the whole reference anonymously, and I read the OAuth2.0 security scheme and the Organization onboarding flow page live. Every element the claim asks for is documented: OAuth 2.0 (Authorization Code and Client Credentials), per-endpoint scopes enumerated in the spec, an operator approval - 'The user responsible for the store must allow your application to act on behalf of them' - and individual revocation via DELETE on the per-application, per-store connection resource plus manual token revocation. This is an OAuth model, not shared static keys. source
extensibility-payroll-exportno / B - 'Re-confirmed 2026-08-02: no payroll provider is named anywhere in the eight-category'upgrade-to-partialThe no rested on an app directory plus the assertion that Otter has no labor hours. The second half is wrong: Time Card on Otter POS records clock-ins, the Labor Cost Report aggregates hours and wages, and the Homebase Integration Guide states timecard data is 'automatically sent to Homebase' with no re-keying. Grepping all 292 English articles for payroll returns only that Homebase pathway, and the Labor Cost Report article's own payroll instruction is to export a spreadsheet and import it into the payroll provider. So labor hours do export natively, but to one workforce platform rather than two payroll providers, behind a $20/month add-on and an account-manager setup. Partial with those shortfalls named. source
reporting-webhookspartial / A - 'no retry, backoff or delivery-guarantee behaviour is published anywhere, the /docs and /api-rupheldThe unreadable-docs leg is refuted: developer-guides.tryotter.com serves both the guide set and the spec anonymously. Re-tested the value against them - signature verification is now grade-A documented (X-HMAC-SHA256 on every request, five reference implementations), but I searched all 27 x-webhooks and found no payment event, and the only retry language in the whole spec is the menu error enum's fatal-codes sentence, with no schedule or guarantee. Partial stands, re-argued on the published reference rather than a JS bundle. source
guest-loyalty-cdp-event-apipartial / A - 'none of this is published documentation - the /docs and /api-reference routes render the emupheldThe not-published leg is refuted; the spec and guides are anonymously readable. Re-tested the value on them: I enumerated the 27 x-webhooks and none carries a guest, eater or loyalty payload, and the Loyalty Manager operations list ('Get Enrollment Config, Create User, Search Users, Get User, Compute Applicable Rewards, Simulate Rewards, Redeem And Accumulate Rewards, Refund Rewards') is a partner-implemented request/response API, not a stream. Order events with HMAC-SHA256 signing carry the partial; the guest half is still absent. source
payments-softpos-tap-to-payunknown / F - 'developer.tryotter.com renders client-side and served no readable API surface'upheldThe rationale's closing leg is refuted - the developer reference is public - so it is withdrawn. Re-tested the value there: a full-text search of the 3.6MB OpenAPI spec for 'tap to pay', 'tap-to-pay', 'softpos' and 'contactless' returns zero hits, and the spec exposes no payment-acceptance endpoint at all, so it can neither establish nor exclude the capability. The help-centre evidence (card reader a stated precondition; Handheld is Otter-supplied hardware) is unchanged and still short of positive absence. Unknown/F stands on re-tested reasoning. source
payments-offline-decline-liabilityunknown / F - 'developer.tryotter.com resolves but is a client-rendered Vite shell with no readable data routupheldWithdrew the unreadable-portal leg and re-tested. The public spec has no payment or decline surface (zero hits for offline/decline/chargeback across 75 paths). The public Tech Services Terms - which the record elsewhere called non-public - do contain a Payment Responsibility clause placing loss from transactions 'not processed due to a network communication error' on the merchant, but it is scoped to the Online Ordering and Digital Dine In addendum, not POS offline mode, and no post-reconnect failed-payment report is documented, so I declined to promote it to partial. Unknown/F on rebuilt reasoning. source
reliability-contractual-uptime-slano / B - 'the only public legal text is a website ToS... The merchant MSA is not public.' (retrieved 2026upheldThe stated basis was wrong: the merchant agreement IS public. I fetched tryotter.com/legal/tech-services anonymously (200, 464KB) and read it through. It has no uptime figure and no credit remedy anywhere, and affirmatively disclaims interruption liability three times over ('we are not liable... for any interruption, modification, suspension, or discontinuance'; 'provided "as-is"'; 'The Hardware Warranty is the only express warranty provided by us'). The no is right and now rests on the document that would have to contain the SLA. source
labor-native-schedulingno / B - 'Otter ships no labor product, and the integrations directory enumerates the alternatives underupheldThe stated premise is refuted (native Time Card app) and the cited source is a marketing directory, so both were replaced. Read the Analytics guide's Staff section in the corpus dump: the Staff tool consumes 'shift schedules' from Deputy, Homebase, 7shifts and WhenIWork and its Labor Hours chart falls back to scheduled hours only when timepunches are missing - imported, not authored. Read the Time Card article's feature enumeration end to end: clock in/out, dashboard reporting, admin edit of history, nothing that writes a schedule. Value unchanged, evidence rebuilt onto vendor documentation. source
labor-payroll-export-formatsno / B - 'the integrations directory... names no payroll provider. Otter also holds no labor hours to expupgrade-to-partialHalf the stated basis is refuted - Otter holds native timecards - and the other half was a marketing directory. Re-retrieved the Labor Cost Report from the corpus dump and it documents precisely the export the no denied: aggregated hours and wage data by employee, exported to 'directly import the spreadsheet into the 3rd party payroll provider'. So a no is wrong. It is not a yes either: the report is empty without the paid Homebase integration, no payroll provider or file format is named, and tips are excluded. Partial with those shortfalls. source
multi-location-central-labor-policyno / F - 'No labor module exists to hold or enforce policy.' (no url)upheldThe sole stated basis is refuted, and a no at grade F with no source could not stand as written. Re-read the Time Card article in full: it enumerates the module's features and its one terminal enforcement (clock-in gating before terminal use), with a five-column timecard report and no rule configuration of any kind; the Homebase guide places break logging in Homebase, and the Analytics guide imports schedules from LMS partners. That is an enumerated absence of enforceable labor policy rather than silence, so the value holds and the cell moves from F to a cited grade B. source
commercial-data-ownership-clauseno / B - 'The only public terms point the other way: Otter retains all right, title and interest in theupgrade-to-partialThe cited tryotter.com/terms 301s to /legal/otter-website (200, 258,666 bytes), the website ToS, which is where the note's 'solely owned by Otter... any lawful business purpose' sentence lives - and the note dropped that clause's own proviso 'provided that the data and information is used only in an aggregated form'. The governing merchant agreement is separately public: I fetched /legal/tech-services anonymously (200, 464,223 bytes; a fabricated sibling path 404s, so this is not a soft hit) and read it through. It does contain the constraint limb the no denied - a DPA barring sale of Customer Personal Data, barring use for any purpose other than providing the Tech Services, and barring combination with data from other sources, plus a confidentiality section naming customer data as the merchant's Confidential Information with ownership retained. It does not contain the ownership limb: 'Your Data' is licensed to Otter perpetually and never assigned to the merchant, Otter owns aggregated and de-identified derivatives outright, and Order Data from online ordering and kiosks is 'owned separately by both parties'. Half present, half affirmatively the other way, so partial with the ownership shortfall named. source
reliability-offline-decline-liabilitypartial / B - "Half of this is published. Tech Services Terms of Use... Payment Responsibility: 'You are re"upheldRe-read the agreement dump section by section. The clause the note relied on sits inside the Online Ordering and Digital Dine In Addendum and is expressly scoped to the Payment Processing Services supplied as part of those services; the agreement contains no POS addendum, so quoting it as the general rule overstated it. The value survives on clauses that are general: the as-is interruption disclaimer and the aggregate liability cap at the lesser of US$1,000 or twelve months of fees, both in the main Terms. The cap half of the claim remains unmet - the offline-mode article's own limitations enumeration sets no ceiling on offline value, count or duration. source
commercial-processing-not-bundledpartial / B - "Re-confirmed 2026-08-02. Stripe is the single 'Preferred' entry in the Payments integration "downgrade-to-noThe partial rested on an inference from a marketing integrations directory: because Stripe appeared under Payments, external processing was assumed possible. The help centre answers the question outright - 'Do we have other payment processor options available? No, we do not offer other payment processors at this time' - and the same article publishes a single blended rate applying regardless of bank or card. The Tech Services Terms reserve to Otter, not the merchant, the right to change the payment processor, and the POS payments article makes a linked Stripe payout account a precondition of taking any card. Positive evidence of absence, at grade B. source
commercial-interchange-plus-publishedno, grade C - "Re-confirmed 2026-08-02 - no rate structure of any kind is published, interchange-plus or ot"upheldValue unchanged, reasoning replaced. The assertion that no rate structure of any kind is published does not survive: the help centre states 2.3% + $0.10 card present and 2.9% + $0.30 card not present, and states that the rate does not vary by bank or card. That is a stronger basis for no than the old absence argument, because a rate expressly invariant to the issuing bank is by construction not interchange-plus. Also noted a second, unreconciled published figure (2.39% + 15c) in the Otter POS Introduction article. Grade moves from the pricing page to the help centre. source
commercial-pricing-publishedpartial, grade C - "Re-verified 2026-08-02 and NARROWED... no card processing rate of any kind is published, per"upheldValue unchanged, evidence replaced and two assertions withdrawn. The record was scored against tryotter.com/pricing only. The help centre publishes a card rate and a complete per-device hardware price list with outright-purchase figures for every SKU, plus several per-location software prices; both of the prior note's absence statements about card rates and standalone hardware pricing are wrong. Partial survives on what is genuinely missing: the base POS plan tier prices sit only in images, the per-order transaction fee is unquantified, and no per-additional-terminal software figure exists. source
commercial-hardware-purchase-outrightpartial, grade C - "Re-confirmed and expanded 2026-08-02... the POS terminal, card reader and 80mm printer arri"upgrade-to-yesThe partial's sole shortfall was that the POS terminal, card reader and 80mm printer had no published standalone purchase price. The help centre's hardware article, updated 2026-06-30, publishes exactly those: iMin single-screen terminal $649, dual-screen $749, Epson TM-M30ii BT $299, Stripe M2 $99, Stripe S700 $450, plus KDS $1,000 and both kiosks. Leases are monthly under the Hardware Addendum, not multi-year, and title passes on payment in full for purchased units. The prior pass had only the marketing kiosk page. The lease-only SKUs that remain - an LTE tablet and a Canada-only second terminal - are optional alternatives, not required devices. source
commercial-implementation-fee-publishedpartial, grade D - "'Free, personalized onboarding' is stated. Menu build, training and installation are not sep"upheldValue unchanged; the evidence was a single marketing sentence and the note's 'installation not itemized' assertion is wrong. The help centre publishes a $100 one-time setup fee for Digital Dine-In, Online Ordering and the Direct Orders Full Suite, and states kiosk installation is performed on site 'with no additional fee' in the US and Canada. It also names a per-location activation fee whose amount is only inside an image, and prices no menu-build or training service, which is what keeps this at partial rather than yes. source
commercial-data-export-self-servepartial, grade C - "Financials allows 'download your payout details by transaction' and Analytics offers data ex"upheldValue unchanged, evidence rebuilt. The cell was carried by a marketing product page. The help centre documents export steps on Sales Summary, Payouts, Taxes, Product Mix and Loyalty (including individual loyalty order transactions), and the developer portal documents an Orders Report, Order Items Report and Payout Transactions Report. It stays partial on four named shortfalls the marketing page could not show: the Financials app is a paid tier, labor export requires a Homebase integration an account manager must provision, the API is onboarded through an Account Representative, and exports are capped at 365 days per pull with no export control at all on the Guest Directory. source
commercial-source-available-selfhostno / F - "Proprietary cloud SaaS; no source publication or self-hosting option exists."upheldThe value was never in doubt but it was carried by an analyst inference with no source. The published merchant agreement states the position affirmatively: a non-exclusive, non-transferable licence with no title passing, access permitted only through Otter's own device, website or application, an express bar on modifying, copying or creating derivative works, and an express bar on attempting to reach the source code. Grade moves F to B on first-party legal text; value unchanged. source
commercial-dual-pricing-compliantpartial, grade D - "'Cash-discounting available for processing fees.' No documentation of debit/prepaid exclusio"upheldValue unchanged, evidence upgraded from a marketing fragment to the feature's own help-centre article, which documents the dashboard toggle, the 3% default, per-location percentages, auto-application at cash tender and the cashier and diner-facing displays. The compliance half still fails, and now fails for a stated reason rather than an absence: Otter offers no card surcharge at all, so there is nothing for a debit and prepaid exclusion to operate on, no receipt or menu-board disclosure is documented, and the discount is expressly disabled on split payments even where the tender is cash. source
menu-pricing-recipe-linkageno / B, tryotter.com/integrations: "Otter ships no recipe/BOM product; Inventory Savings is a distri..."upheldVerdict stands, evidence replaced. I could not use the researcher's citation - it is a marketing directory that describes itself as "dozens" of partners. Instead I read Otter's own item model: the SKU Library article lists every SKU-level field (name, default price, SKU code, description, photo, dietary, nutrition, barcodes, tags) with no ingredient composition, and the published MenuItem_POS OpenAPI schema has no recipe, component or cost field. Zero corpus hits for bill of materials, on-hand or depletion. That is positive evidence of absence rather than absence of mention. source
payments-processor-choicepartial / B, tryotter.com/integrations: "the integrations directory has a Payments category whose sole entry is Stripe, marked Preferred..."downgrade-to-noThe researcher's shortfall reasoning was right but rested on the wrong evidence. Re-fetched the Otter POS Cash Discounts article live through the Zendesk article API (the rendered /hc page 403s to bots) and its FAQ answers the claim verbatim: "Do we have other payment processor options available? No, we do not offer other payment processors at this time," alongside a fixed 2.3% + $0.10 card-present / 2.9% + $0.30 card-not-present schedule with no bank or card variation. The Stripe connection guide adds that Otter POS cannot connect a credit card processor at all until Stripe is connected. That is an explicit vendor statement of non-support, which is the bar for no rather than partial. source
payments-gift-cardspartial / B, tryotter.com/integrations: "gift cards appear only as a third-party integration category with a single named partner, eCard"upheldValue upheld, reasoning replaced wholesale because it was wrong. The helpdesk carries a dedicated Otter POS Add-Ons article, Otter Gift Cards, retrieved live today via the Zendesk article API (updated 2026-03-31): a first-party $30/month product with sell and reload at the POS, Gift card as a payment method on both Otter POS and the Direct Orders website, split tender, refunds back to card balance and a documented balance lookup. eCard Systems is only the printer of the physical cards. Partial survives on different shortfalls: paid add-on, Otter POS customers only, physical cards only, and per-location enablement with no documented group-wide balance. source
guest-loyalty-stored-value-giftpartial / B, tryotter.com/integrations: "gift cards exist only as the third-party eCard integration, not as native stored value..."upheldValue upheld, reasoning corrected. Otter Gift Cards (helpdesk art. 37358535943187, retrieved live today) is a first-party stored-value product, so the researcher's premise was wrong. I then checked the five Loyalty articles and the Loyalty Manager OpenAPI domain (enrollment-config, user, user/search, rewards evaluate/simulate/redeem-and-accumulate/refund) - all points and rewards, no balance or stored-value object. The gift balance is card-number-keyed with no documented tie to the loyalty profile, and redemption is toggled per location, so partial is still the right value on the claim as written. source
labor-native-payrollno / B, tryotter.com/integrations: "no payroll product in the catalog, and the full integrations category list ... contains no payroll processor"upheldVerdict stands on better evidence. The Labor Cost Report: Homebase Integration article (retrieved live today) states its own purpose as exporting aggregated hours and wage data by employee for direct import "into the 3rd party payroll provider" - a vendor statement that payroll belongs to someone else, which meets the positive-absence bar. Corroborated by zero occurrences of wage tax filing, wage direct deposit or any payroll provider connector across the corpus, and by the subscription product catalogue, which sells POS, KDS, kiosk, gift cards and add-ons but no payroll. source
inventory-theoretical-vs-actualno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Otter ships no stock-ledger product at all..."upheldVerdict stands, evidence replaced. I read the Otter Inventory Savings article live (updated 2026-07-13) and it is a Foodbuy GPO rebate program end to end - distributor credential connection, Rebate Opportunities, spend reports, monthly cash-back - with no on-hand ledger. I then enumerated the Analytics and Reports sections of the helpdesk (18 report articles) and the OpenAPI reports and inventory domains: no theoretical-usage, variance or ideal-cost report exists, and no recipe layer exists to derive one from. source
inventory-realtime-depletionno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Real-time ingredient depletion requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. Beyond the Inventory Savings article, I checked the published OpenAPI: the inventory domain exposes only a read of product summaries and shipment receiving, no webhook carries an inventory or stock-movement event, and MenuItem_POS has no component field. With no bill of materials anywhere, modifier-driven ingredient depletion has nothing to deplete. source
inventory-count-modesno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Physical count modes requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. The OpenAPI inventory domain is exhaustively enumerable and I did it: listInventorySummaries, listInventoryShipments, createShipment. There is no count, adjustment, recount or variance operation and no count-session schema, and the helpdesk has zero hits for physical count, cycle count or count sheet. Combined with the merchant-facing Inventory app being a rebate program, that is positive evidence of absence rather than absence of mention. source
inventory-mobile-count-offlineno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Mobile offline counting requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. I looked for the counting app itself rather than for the ledger behind it. The corpus documents Otter's app set and none of them counts stock; the single documented barcode-scanner integration (Datalogic QD2590, Zebra DS2278, Magellan 1500i) is scoped in the vendor's own words to gift cards only; and the offline-capability articles cover card payments on the handheld, not inventory. source
inventory-invoice-ocrno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Supplier invoice OCR and AP capture requires an ingredient-level on-hand ledger..."upheldVerdict stands, and the replacement evidence is stronger than the original. The Inventory Savings article documents how Otter actually gets purchase data - distributor account credential linking, with spend reports assembled per connected distributor - and explicitly not from invoices. The only invoice objects are Otter's own subscription billing (Billing & Subscriptions articles, /finance/v1/financial-invoices). Zero corpus hits for OCR, invoice scan or line-item extraction. source
inventory-par-auto-suggestno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Par-based reorder suggestion requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. Otter does ship a purchasing suggestion engine, which is why this cell needed care - but I read it and it recommends cheaper or higher-rebate substitutes from past purchase history, not quantities to reorder, and its output is a CSV you send to your distributor rather than a purchase order. No par level exists to compare on-hand against, and no forecast-driven ordering mode is documented anywhere. source
inventory-waste-loggingno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Waste and spoilage logging requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced, and I am naming the near miss rather than hiding it: the API does model unsellable goods, but only as a quantity captured when a shipment is received, with no reason taxonomy, no logging workflow and no waste cost report anywhere in the Analytics or Reports sections. source
inventory-transfersno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Inter-location stock transfers requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. I enumerated every "transfer" string in the corpus and classified all of them - none is stock. The shipment object is one-sided receiving into a facility, so no two-sided transfer transaction or in-transit state exists between the operator's own locations. source
inventory-commissaryno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Commissary and central production requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. I checked Otter's actual multi-location model - the organization endpoints (organization, brands, brands/{brandId}/stores, store connection) and the Location Tagging report article - and it is an org hierarchy for menus, orders and reporting with no production, issue or transfer-cost concept. There is no prep-item or sub-recipe object to produce, which follows from there being no recipe layer at all. source
inventory-lot-traceabilityno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Lot and batch traceability requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. This one is settled by the receiving schema, which is the only place a lot could be captured: CreateShipmentLineItem is id/slug/externalId plus three integer quantities. No lot, batch, serial or expiry field exists, so no backward or forward trace is constructible, and the helpdesk documents no recall workflow. source
inventory-shelf-life-expiryno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Shelf-life and expiry tracking requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced. I chased the one place expiry does appear and it is a quantity bucket, not a date: no date field exists on a product, a shipment or a shipment line item. Every other expiration string in the corpus is an expired payment method or subscription. With no date captured there can be no expiring-soon surface, and none is documented in Analytics or Reports. source
inventory-bar-partial-bottleno / B, tryotter.com/integrations: "RE-GROUNDED (2026-08-02 re-score) ... Partial-bottle weighted liquor counting requires an ingredient-level on-hand ledger..."upheldVerdict stands, evidence replaced, and the API typing makes it unusually clean: every inventory quantity in the published schema is an integer, so fractional stock cannot be stored. Otter's own hardware catalogue lists no scale, and the sole documented peripheral scanning use is gift cards. source
inventory-native-not-partnerno / B, tryotter.com/integrations: "Re-confirmed 2026-08-02: explicitly partner-delivered. The integrations directory Inventory category names..."upheldVerdict stands but the reasoning needed replacing, and this is the cell the directory damaged most: "the directory names Marketman, Restaurant365 and PDI" is a marketing list, not proof of delegation. What actually carries it is that Otter's own Inventory product is a Foodbuy GPO rebate program, that no recipe or BOM layer exists in SKU Library or in the published menu schema, and that the API's inventory domain is three operations over packaged retail SKUs. Recipe costing is absent outright, so the claim as written cannot be met natively. I have recorded the first-party product-quantity API in the note rather than letting the blanket phrase "Otter maintains no on-hand ledger" stand, because that phrase is now known to be too strong. source
extensibility-first-party-delivery-integrationsyes / B, tryotter.com/integrations: "Otter is itself the certified integrator - direct connections to DoorDash, Uber Eats, Grubhub..."upheldUpheld on documentation I retrieved myself, which matters because a differentiator yes cannot rest on a grade-C marketing page. The helpdesk has per-platform integration guides for DoorDash, Uber Eats and Grubhub and an enterprise authorization article covering all three, describing merchant-portal access granted directly to Otter for order flow and dispute submission. Nothing indicates an intermediary aggregator beneath Otter. source
extensibility-accounting-connectorsno / B, tryotter.com/integrations: "the integrations directory enumerates eight categories and none is accounting; QuickBooks, Xero and Sage appear nowhere"upheldVerdict stands on first-party documentation instead of the marketing directory. The Integrations Introduction article lists the six integration types Otter supports and accounting is absent; more usefully, four separate report articles instruct the operator to export a CSV into their accounting system, which is the vendor stating the integration shape the claim explicitly excludes. The published finance API offers transaction and invoice reads with no journal-entry mapping or account codes. source
extensibility-app-marketplacepartial / B, tryotter.com/integrations: "a public browsable integrations directory exists ... Shortfall: whether an operator can self-install any of these..."upgrade-to-yesThe researcher's only stated shortfall was that self-install is undocumented, and it is documented - in the help centre rather than on the marketing page they cited. Integrations Introduction describes an in-dashboard Explore catalogue with search and type filtering, states plainly that "the integrations listed on the Otter Dashboard are integrations you can connect yourself", and gives the four-step Connect procedure. Combined with the public browsable website directory and named partners per type, the claim as written is met. The vendor's hedge that unlisted integrations need a support request is a caveat on coverage, not on the marketplace's existence or its self-service. source
guest-loyalty-cdp-event-apipartial / A - 'no guest, customer, eater or loyalty event appears among the 27, so a CDP cannot subscri'upheldOverview-page premise does not apply here: /api-reference/ is a server-rendered Redoc page carrying the entire OpenAPI spec, and every one of the 75 paths and 27 x-webhooks appears literally in it. Re-enumerated the webhook list from the spec and the value survives, but one leg of the printed reasoning does not: the orderCreate webhook 'delivers the full order payload' and the Order schema includes customer -> Person (name, phone, email, personalIdentifiers), so guest identity does reach a subscriber, contrary to the note's 'cannot subscribe to guest events at all'. Partial still stands because there is no guest-lifecycle event type at all - a CDP sees a guest only as a side effect of an order - and the eater and loyalty surfaces are pull/inbound. Value unchanged; the note is corrected. source
multi-location-enterprise-apiyes / A, connect.tryotter.com/docs/api-reference/reference/otter-api/: "POST /v1/reports/generate is titled 'Request a business report for multiple stores' and its GenerateReportMultiRequest takes externalStoreIds ... Max is 5000"downgrade-to-partialThe 2026-08-10 EVIDENCE CHANGE note left this at yes pending re-verification; re-measured and it does not hold. Otter rebuilt its developer docs between 2026-08-08 and 2026-08-10 (MkDocs+Redoc at developer-guides.tryotter.com -> Docusaurus at connect.tryotter.com; 75 spec paths -> 70; 27 x-webhooks -> 23) and both reports paths are gone. The instruction not to assume withdrawal was right and the vendor settles it: guides-contract-status lists Reports among PRODUCTION CONTRACTS as 'Deprecated ... Contact your Otter representative for migration options', and the scope reports.generate_report plus GenerateReportMultiRequest (max 5000 external store IDs) are still published. So the capability exists. What is gone is exactly what the claim asks for - a DOCUMENTED multi-location API: no method, path or URL is published, so the call cannot be constructed from anything Otter publishes. The organization API (GET /organization/v1/organization/brands/{brandId}/stores, one OAuth application credential, no per-location credentials) survives intact but returns store metadata, not transaction-level data, and every other surface is store-scoped through X-Store-Id. Partial, not no. source
extensibility-api-versioning-deprecationpartial / A, connect.tryotter.com/docs/api-reference/reference/otter-api/: "A deprecation policy is published verbatim in the spec overview: 'Each API is versioned individually, but we follow these rules...'"downgrade-to-noThe verbatim versioning policy is gone from the rebuilt spec - zero occurrences of 'breaking', no Versioning section - and no changelog or release-notes page exists in the 59-guide corpus or the 70-path spec, so both conjuncts of the claim now fail. The decisive evidence is not that absence but a vendor statement that replaced the policy: guides-contract-status divides the API into 'Production contracts' and 'Preview behavior' ('Behavior that is not yet a public guarantee'), and puts API lifecycle on the preview side - 'Support targets, certification policy, incident communication, credential-rotation procedure, PII retention, versioning, and deprecation notice periods' - with the instruction to 'Ask your Otter representative to confirm the behavior for your application'. Otter now publishes, in documentation, that its versioning and deprecation notice periods are not a public guarantee. Per-field 'deprecated' annotations and one Order Total v2 migration guide survive; marking a deprecated field is not a changelog and 'contact your representative' is not a notice period. Grade A holds - this is vendor primary documentation, quoted verbatim from the live page. source
extensibility-bi-data-warehousepartial / A, connect.tryotter.com/docs/api-reference/reference/otter-api/: "POST /v1/reports/generate ... SHORTFALL: nothing is delivered to a customer-controlled destination"upheldValue and grade survive the docs rebuild; the note did not. The reports paths and the reportGenerated webhook are gone from the spec, but guides-contract-status documents Reports as Deprecated rather than withdrawn, with its behaviour still contracted (inclusive UTC date boundaries, comma-delimited UTF-8 CSV downloads, jobId polling, EXPIRED after two days), and the reports.generate_report scope and GenerateReportMultiRequest survive. The Scheduled Reports article 22964276979987 was re-fetched live through the Zendesk Help Center API against a fabricated-id control (200 15,536b vs 404 52b). What is withdrawn from the note is the per-column Order Report breakdown - estimatedCommission, estimatedNetPayout, payoutId, isReconciled and the rest occur zero times in the current corpus. The shortfall the partial rests on is untouched and now deeper: no S3, SFTP, Snowflake share, BigQuery or warehouse connector anywhere in the 59 guides or 70 paths, and the only export is a CSV the partner application must download within two days on a deprecated contract. source

Sources

Every URL this record cites. 146 in total.