Vendors / Open source & self-hostable

URY

URY (ury-erp)

dossier live legacy rubric

Claims in scope
278
Scored
278
Assessed
278
Unknown
0
Not applicable
36
Values challenged
75

Identity

Owner
Tridz Technologies Pvt Ltd (India). Listed as a Frappe-incubated project and published on the Frappe Cloud marketplace by Tridz (info@tridz.com). NOTE on the brief's premise: URY is not 'owned by the Frappe ecosystem' — Tridz owns the code; Frappe (whose backers include Zerodha's Rainmatter) incubates and hosts it. The brief's third URL, ury.erpgulf.com, does not resolve at all; the real docs site is ury.app.
Parent
Frappe ecosystem / Zerodha-backed contributors
Founded
Repository created 9 Oct 2023 (github.com/ury-erp/ury); still actively pushed as of 30 Jul 2026.
Scale
Small and pre-commercial. 324 GitHub stars / 195 forks on ury-erp/ury; 89 installs recorded on the Frappe Cloud marketplace listing (cloud.frappe.io/marketplace/apps/ury); README claims 'serving over 10+ outlets for the past 10 months.' No ARR, customer count or market share is public — treat as unknown.
Who it is for
Independent and small multi-outlet restaurants (realistically 1-15 outlets) in India/GCC that already run ERPNext, or have Frappe engineering capability in-house or via a Frappe partner. URY's own support page states 'URY is still an early-stage product' and recommends experienced ERPNext experts for production deployments.
Site
https://github.com/ury-erp/ury

Pricing

transparency: published · unit: free · processor lock-in: no

Software
$0. The URY app is AGPL-3.0 and listed as 'Free' on the Frappe Cloud marketplace. No URY subscription, no per-terminal fee, no tiers. The only money in the stack is optional hosting and optional implementation labour. Frappe Cloud hosting (the vendor-endorsed managed path) publishes 'Sites from $5/mo onwards' and 'Servers from $40/mo onwards' with a 14-day free trial (frappe.io/cloud/pricing). Self-hosting is $0 software plus your own infrastructure. Commercial support/implementation from Tridz or a Frappe partner is quote-only — ury.app/support/ says only that users 'may need a commercial arrangement' and gives no figures.
Card processing
Not applicable. URY does not process payments and takes no cut; payments are recorded only as ERPNext 'Mode of Payment' ledger entries.
Contract
None. No subscription exists for the software. Frappe Cloud hosting is month-to-month.
Early termination
None. TERMS.md contains no fees, no term and no termination penalty; clause 5 reads in full: 'You may stop using the App at any time.'

API posture

public API: open

Cost to integrate
$0. No partner program, no certification, no revenue share, no marketplace fee. API access is inherent to the AGPL software you already run. There is also no partner program at all — nothing to pay, and nobody to call.
Webhooks
Yes, at the platform level. Frappe ships a Webhook DocType with per-DocType document-event triggers, conditional filters, custom headers, Jinja-templated JSON payloads, request logging, and HMAC-SHA256 request signing via an 'X-Frappe-Webhook-Signature' header (docs.frappe.io/framework/user/en/guides/integration/how_to_setup_webhooks). Retry/backoff behaviour is NOT documented on that page. URY itself defines zero webhooks — a repo-wide grep for 'webhook' returns no hits in URY code — so any order-lifecycle webhook is something the operator configures against the POS Invoice / URY Order DocTypes.
Data export on exit
Total and unrestricted — the strongest position of any vendor in this set. You hold the database. Frappe provides self-serve CSV/Excel export on every list view and report, a REST API over every DocType, and bench backup / site migration to move the whole site elsewhere. AGPL-3.0 guarantees you can keep running the software after you stop paying anyone.
Notes
The API is Frappe's, not URY's — that is the key nuance. You get a generic, well-documented, uniformly CRUD-able ORM-over-REST across every DocType (read and write symmetry is automatic), plus OAuth 2.0 as a first-class Frappe auth method. What you do not get is a restaurant-domain API: no order-injection contract, no menu-sync contract, no versioning or deprecation policy for URY's own whitelisted endpoints in ury/ury_pos/api.py, and no published rate limits anywhere (the Frappe REST docs state none). Two open security issues (#162, #163) show the whitelisted endpoint surface is not permission-audited.

Capabilities

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

Order capture & FOH workflow

Partial

Provides a graphical floor-plan editor where an operator can draw sections, place tables of varying shape/capacity, save multiple floor-plan layouts per location, and assign sections to servers.

order-capture-floor-plan-editor

Score survives but the note's central claim does not. ury.app/setup shows URY Table as a config record with a 'Table Shape' field, and ury.app/features/pos describes tables 'visually represented as cards'. Neither page documents any drag-and-drop or visual layout editor. Partial rests on room-scoped table records with shape and seating capacity only — the editor language should be struck. https://ury.app/features/pos/ · retrieved 2026-08-01 adversarially verified

C
No

Order lines can be tagged to a seat number at entry, and the check can be split by seat afterward without re-keying items.

order-capture-seat-level

Only a table-level minimum_seating capacity exists in the code; no per-seat tagging on order lines. Splitting is by item/group, not seat. https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

Items can be assigned to courses and held, with a fire-next-course action available from a handheld or terminal that releases only that course to the kitchen.

order-capture-coursing-hold-fire

URY Menu Course is a menu category (starters/mains/desserts) only. No hold state and no fire-next-course action. https://ury.app/setup/ · retrieved 2026-08-01

B
Partial

Supports splitting a check by item, by seat, by even N-way, and by arbitrary dollar/percentage amount, and merging checks or tables back together, including after partial payment.

order-capture-split-merge

Verified independently, but not at the cited URL — neither ury.app/setup nor ury.app/features/core nor /features/pos documents bill split, bill consolidation or table merge. The evidence is code only: pos/src/components contains BillSplitDialog.tsx, SplitGroupPanel.tsx, BillMergeDialog.tsx, TableMergeDialog.tsx, TableUnmergeDialog.tsx and MergedBillPanel.tsx. Partial holds; confidence should be 'code-verified, undocumented'. https://github.com/ury-erp/ury/tree/develop/pos/src/components · retrieved 2026-08-01 · not refetchable · site policy · graded B when read adversarially verified

C
No

Opens a bar tab against a card pre-authorization with a configurable auth amount, supports incremental re-auth as the tab grows, and auto-closes stale tabs at end of day. differentiator

order-capture-bar-tab-preauth

URY performs no card authorization at all, so pre-auth is structurally impossible. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
Partial

An open check can be transferred between servers, tables, and devices, and the transfer is recorded in an audit log naming both employees.

order-capture-transfer-audit

Table transfer and captain transfer are documented POS actions. No audit log naming both employees; repo grep for 'audit' returns nothing. https://ury.app/features/pos/ · retrieved 2026-08-01

C
No

Ships a first-party handheld ordering app running natively on the handheld device (not a remote/mirrored desktop session) that can send to kitchen and take a card payment tableside.

order-capture-native-handheld

Mobile-first responsive React web POS usable on phones in a browser. No native handheld app, no card reader, no tableside payment. https://ury.app/introduction/ · retrieved 2026-08-01

B
No

With the internet down, terminals and handhelds can still create orders, apply modifiers, send to kitchen, and tender cash, and the vendor publishes what does and does not work offline.

order-capture-offline-order-entry

README claims 'offline mode' but repo-wide grep finds no service worker, IndexedDB or offline queue. POS v2 talks to Frappe exclusively over REST. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
No

Guest QR at-table ordering writes items onto the same open check as server-entered items, rather than creating a separate order ticket. differentiator

order-capture-qr-same-check

No guest-facing QR ordering surface; the only QR/QZ references in the repo are the QZ Tray print library. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Offers a first-party self-order kiosk that renders the same menu and modifier tree as the POS with no separate menu build, and the vendor documents ADA/accessibility conformance for it. differentiator

order-capture-kiosk-first-party

Repo grep for 'kiosk' matches only the browser silent-print kiosk-mode flag, not a self-order kiosk product. https://ury.app/features/core/ · retrieved 2026-08-01

C
No

Supports drive-thru-specific order flow: order-point/pay-window/pickup-window separation, order sequencing or tandem-lane assignment, and pull-forward or parking-spot assignment.

order-capture-drive-thru

Order types are Dine In, Take Away, Delivery, Phone In and Aggregators. No drive-thru concept. https://ury.app/setup/ · retrieved 2026-08-01

B
No

Captures and reports drive-thru speed-of-service timers by segment (order, total, window) tied to individual orders.

order-capture-drive-thru-timers

https://ury.app/setup/ · retrieved 2026-08-01

B
No

Vendor ships a first-party AI voice ordering agent for phone and/or drive-thru that injects orders directly as POS orders, or publishes a documented API partner program for third-party voice AI. differentiator

order-capture-voice-ai

No voice product and no partner program of any kind. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports order throttling: per-channel capacity limits per time slot with automatic quote-time extension when kitchen load exceeds a configured threshold. differentiator

order-capture-throttling

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Accepts future-dated/scheduled orders with a per-channel lead time and automatically injects them into the make queue at a computed fire time rather than on receipt.

order-capture-scheduled-orders

CLAIM: accepts future-dated/scheduled orders with per-channel lead time and injects them into the make queue at a computed fire time. VERDICT: no. EVIDENCE: URY's order doctype enumerates its fields and none is a due/fire/pickup time: "table ... take_away ... customer_name no_of_pax ... cart_items grand_total last_invoice ... waiter pos_profile cashier comments ... current_order modified_time" (https://raw.githubusercontent.com/ury-erp/ury/511819051986bfda707ddd7c4210d67b0bc3de31/ury/ury/doctype/ury_order/ury_order.json); AGENTS.MD's "Scheduled KOT validation (every minute)" is a validation job, not deferred firing. SURFACE: ury-erp/ury (org slug confirmed by product.yaml and README) read as full source trees via api.github.com git/trees?recursive=1 (truncated:false) + raw.githubusercontent.com at two commits: develop 58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d (735 blobs, 710 text fetched, 0 failures) and v3-stg 511819051986bfda707ddd7c4210d67b0bc3de31 (847 commits ahead of develop; 1864 entries, 1520 text fetched, 0 failures); frappe/hrms version-15 e68a3deaa95ae5b2c3d743297d0a4ab505733fc1 (1847 entries, 1429 text fetched, 0 failures). github.com robots.txt NAMES ClaudeBot and bars /*/tree/, /*/raw/, archive/tarball/zipball and *.git paths, so no github.com page, archive or clone is relied on; api.github.com and raw.githubusercontent.com serve no robots.txt (404). BOUND/CONTROLS: tokenised case-insensitive regex over both URY trees for scheduled_order/scheduled_time/scheduled_for/scheduled_pickup, future_dated/future_order, advance_order, pre-order/preorder, order_later, fire_time/fire_at, pickup_time, delivery_time/delivery_date, promised_time, lead_time, order_for = 0 hits in develop and 0 in v3-stg except demo seed data (ury/setup/demo.py "delivery_date": posting_date on an ERPNext order). Positive controls fire (develop/v3-stg): kot 544/1915, aggregator 131/202, takeaway 33/45, delivery 32/39. POISON: every 'schedule' token is the Frappe scheduler_events cron, 'URY Branch Operating Schedule'/'URY Branch Service Window' (opening hours), payment_schedule, a yield-check 'Scheduled' type, or jsrsasign _keySchedule; 'reservation' is STOCK reservation (ury_stock_reservation), not an order. Unmerged branch order_delay (3 ahead) only adds a print-time-limit badge ("display badge if print time limit has exceeded"). ERPNext's generic Sales Order delivery_date exists underneath but never reaches URY's KOT/KDS queue. Retrieved 2026-09-16. https://raw.githubusercontent.com/ury-erp/ury/511819051986bfda707ddd7c4210d67b0bc3de31/ury/ury/doctype/ury_order/ury_order.json · retrieved 2026-09-16 adversarially verified

B
No

Provides a distinct catering order flow with quotes, deposits, balance-due tracking, and a delivery/event schedule separate from the standard order queue.

order-capture-catering

No catering flow. ERPNext Quotation/Sales Order exist underneath but are not wired into URY POS. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Pushes an order-ready signal back to third-party marketplaces (e.g. DoorDash) from POS or KDS state, rather than requiring a tablet tap. differentiator

order-capture-order-ready-signal

No marketplace integrations exist, so there is no channel to signal. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
Partial

Voids, comps, and discounts require a reason code and can be gated behind role-based manager approval, with all instances recorded in an exception report.

order-capture-void-comp-controls

Cancelled Invoices report captures Cancelled By and Cancellation Reason; billing is role-gated. But issue #163 states cancel_order has no permission check at all. https://github.com/ury-erp/ury/issues/163 · retrieved 2026-08-01

B

Menu, modifiers & pricing engine

No

Supports modifier groups nested at least three levels deep, each level with independent min/max selection counts and a forced-selection (required) flag.

menu-pricing-nested-modifiers

'Item Add On' is a child table with exactly one field, a Link to Item. No groups, no nesting, no min/max, no required flag. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/item_add_on/item_add_on.json · retrieved 2026-08-01

B
No

A single modifier can carry different prices depending on the parent item and the selected size, configured as a matrix rather than by duplicating the modifier.

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

Add-ons are plain Items carrying their own single price-list rate; no parent- or size-dependent matrix exists. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/item_add_on/item_add_on.json · retrieved 2026-08-01

B
No

Supports fractional/sectioned modifier placement (at minimum halves, ideally quarters) with independent pricing per section. differentiator

menu-pricing-fractional-placement

No portion, half or section concept anywhere in the menu or order doctypes. https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

The half-and-half pricing rule is operator-configurable among at least two of: charge the higher-priced half, average the halves, or charge each topping at a fraction of full price. differentiator

menu-pricing-half-and-half-rule

https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

Supports modifier quantity tiers (light / regular / extra / double) with a configurable price multiplier per tier, distinct from adding the modifier twice.

menu-pricing-topping-quantity-tiers

Cart quantity adjusters increment the whole add-on item; no light/regular/extra tiering with price multipliers. https://ury.app/features/core/ · retrieved 2026-08-01

C
No

Item base price can be defined as a grid across two variant axes (e.g. size x crust/preparation) with a per-cell price override. differentiator

menu-pricing-size-style-matrix

'POS Item Variants' is a single-field child table linking to other Items — a flat sibling list, not a two-axis priced grid. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/pos_item_variants/pos_item_variants.json · retrieved 2026-08-01

B
No

Items can define an included-modifier allowance (e.g. three toppings included) that automatically charges only for overage and credits or forbids substitutions per configuration. differentiator

menu-pricing-included-allowance

https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
Partial

Supports combo/meal construction where components can be swapped with a price delta, and the system can automatically detect and convert eligible a-la-carte items in the cart into the combo price.

menu-pricing-combos

ERPNext Product Bundle is recognised by URY's COGS calculation so bundles can be sold. No component swap with price delta, no cart auto-detection. https://ury.app/features/pulse/ · retrieved 2026-08-01

E
No

Upsell/suggestive-sell prompts can be configured per item and per channel (POS, kiosk, online), and the vendor reports attach-rate on those prompts. differentiator

menu-pricing-upsell-prompts

POS shows a returning customer's top three previously ordered items — a favourites list, not configurable per-channel upsell. No attach-rate reporting. https://ury.app/features/core/ · retrieved 2026-08-01

C
Partial

A single 86 action propagates automatically to POS, KDS, the vendor's own online ordering, kiosk, and connected third-party marketplaces, with a documented propagation latency.

menu-pricing-86-propagation

URY Menu Item has a 'disabled' checkbox removing the item from that menu. No online/kiosk/marketplace channels to propagate to, no published latency. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/ury_menu_item/ury_menu_item.json · retrieved 2026-08-01

B
No

Supports per-item countdown/par counts that decrement on sale and automatically 86 the item at zero, with a scheduled auto-restore. differentiator

menu-pricing-countdown-auto-86

No par or countdown counts. A stock validation error surfaces at payment (issue #249) but nothing 86s the item. https://github.com/ury-erp/ury/issues/249 · retrieved 2026-08-01

B
No

Menus, individual items, and prices can be scheduled to activate and deactivate automatically by day and time in the location's own timezone.

menu-pricing-dayparting

Menus are scoped by room and order type, not by time. No schedule-activation fields on menus. https://ury.app/setup/ · retrieved 2026-08-01

B
Partial

Supports distinct price books per channel (dine-in, pickup, delivery, kiosk, each third-party marketplace) including percentage-markup rules applied to a base price rather than manual per-item entry.

menu-pricing-channel-price-books

Order Type Menu maps Phone In / Take Away / Delivery to distinct URY Menus with their own rates; aggregators get their own Price List. No markup rules — menus are duplicated. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/order_type_menu/order_type_menu.json · retrieved 2026-08-01

B
No

Supports dual pricing / cash-discount at the item level with the card price displayed as the base price, applied consistently across POS, kiosk, and online ordering, and printed on the receipt. differentiator

menu-pricing-dual-pricing

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Stores allergen flags and nutrition values per item and publishes them to online ordering and third-party menus, and can derive nutrition from linked recipe components rather than manual entry.

menu-pricing-allergen-nutrition

Repo-wide grep for allergen and nutrition returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Menu items and modifiers can be linked to recipes/bills of materials so that a sale depletes theoretical inventory and yields item-level theoretical food cost. differentiator

menu-pricing-recipe-linkage

ERPNext BOMs drive URY's COGS and materials-consumed figures in the Daily P&L, giving item-level theoretical cost. Live inventory depletion from BOM is not documented. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Pushes menus to third-party marketplaces through a certified direct integration (not scraping or a menu-management middleman) and surfaces per-item sync status and rejection errors to the operator.

menu-pricing-3p-menu-push

Aggregator Settings holds only a Customer, Price List and Mode of Payment — a manual mapping with no API credentials, endpoints or sync status. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Supports rule-based dynamic pricing where item price varies automatically by time, demand, or channel, with configurable floor/ceiling guardrails.

menu-pricing-dynamic-pricing

https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Payments & money movement

Partial

The POS operates with third-party payment processors of the merchant's choosing (documented list of supported processors/gateways) rather than requiring the vendor's in-house processing. differentiator

payments-processor-choice

No integrated processing exists — payments are ERPNext Mode of Payment ledger entries — so any external terminal works, but no processor or gateway is certified or listed. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

Vendor publishes card-processing pricing publicly (a specific flat rate or interchange-plus markup) rather than quote-only. differentiator

payments-published-rates

URY takes no processing revenue and publishes no rates because it does not process cards. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
No

Native dual-pricing / cash-discount mode stores two prices per item and prints both cash and card totals on the guest check and receipt. differentiator

payments-dual-pricing

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Surcharging engine automatically excludes debit and prepaid cards via BIN/product-code detection, enforces the network percentage cap, and can be enabled or disabled per location. differentiator

payments-surcharge-guardrails

Repo-wide grep for surcharge returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

All first-party payment terminals accept EMV chip and NFC contactless including Apple Pay and Google Pay.

payments-emv-nfc

URY ships no payment terminals and no card-present integration. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

Accepts contactless payments directly on a phone (Tap to Pay on iPhone and/or Android tap-to-pay) with no separate card reader. differentiator

payments-softpos-tap-to-pay

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Vendor ships a handheld that takes EMV/NFC payment at the table, including tip prompt and check splitting, without carrying the card away.

payments-pay-at-table

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Guest can scan a QR code on the printed check or table tent to view and pay the check from their own phone, with the payment closing the check in the POS automatically. differentiator

payments-qr-guest-pay

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports both pre-auth-then-tip-adjust and on-device tip prompt flows, with a documented batch/adjust window and a manager screen for unadjusted tips.

payments-tip-adjust

Repo-wide grep finds no tip handling of any kind. With no card authorization there is nothing to adjust. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Configurable tip pooling and distribution rules (by hours worked, sales, role percentage, or points) that produce a per-employee tip allocation exportable to payroll. differentiator

payments-tip-pooling

No tip fields or tip-pool logic exist in the codebase. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Card payments can be captured while the internet is down via store-and-forward, with configurable per-transaction and cumulative offline limits. differentiator

payments-offline-store-and-forward

No offline capability at all, and no card processing to forward. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
No

Vendor publicly documents who bears the loss when a stored offline transaction declines on reconnect, and surfaces a post-reconnect report of failed offline payments. differentiator

payments-offline-decline-liability

Nothing to document — no offline card capture exists. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
No

First-party gift cards with real-time balance tracking, redeemable across every location in the group and through the online-ordering channel.

payments-gift-cards

Repo-wide grep for 'gift' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

House/on-account tabs with per-account credit limits, running balance, and periodic statement or invoice generation.

payments-house-accounts

ERPNext Customer credit limits, outstanding balances and statements exist underneath and URY creates real Customers, but no house-account tab flow is exposed in the POS.

F
Partial

A single check can be settled with multiple tenders and split by seat, by item, by even shares, or by arbitrary amount, with no hard cap below eight ways.

payments-split-tender

Multiple ERPNext Modes of Payment can settle one invoice, and bill splitting exists in POS v2. No seat-based or even-N-way split documented. https://ury.app/features/pos/ · retrieved 2026-08-01

C
Partial

Voids, refunds, discounts, and no-sales require role-based authorization (manager PIN or approval) and write to an immutable audit log identifying the approver.

payments-refund-void-controls

I verified the underlying issue rather than trusting the summary: #162 '[Security] Exposed QZ Private Key via Public API' is Critical and open (1 Jul 2026); #163 '[Security] Missing Permission Checks on Critical Endpoints' is High and open (1 Jul 2026), alleging any authenticated user can cancel any invoice and that cancel_order manipulates the database via raw SQL, bypassing Frappe's document lifecycle. Both cited accurately. This equally upholds order-capture-void-comp-controls, labor-granular-rbac and reliability-mfa-role-based-access at partial. https://github.com/ury-erp/ury/issues/163 · retrieved 2026-08-01 adversarially verified

B
No

In-product dispute/chargeback dashboard that lists open disputes and allows evidence submission assembled from the POS transaction record. differentiator

payments-chargeback-tooling

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Tokenized card-on-file for a guest profile, reusable across online ordering, phone orders, and in-store, with no PAN stored by the merchant. differentiator

payments-card-on-file

No tokenization or card storage of any kind. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Vendor publishes its deposit schedule and offers a next-day or same-day/instant funding option. differentiator

payments-payout-timing

URY moves no money and therefore has no deposit schedule. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Vendor provides point-to-point encryption and a current PCI DSS 4.x Attestation of Compliance / P2PE listing available to merchants on request.

payments-p2pe-pci4

Repo-wide grep for PCI returns zero hits and no AOC or P2PE listing is published on ury.app. https://ury.app/support/ · retrieved 2026-08-01

B

Kitchen & production

Yes

Items route to specific KDS stations by item, category, order type, or revenue center, with routing rules configurable per location without vendor involvement.

kitchen-station-routing

Verified verbatim: 'Production units are used to rule multiple kitchens. Each production unit has its own dedicated web-based interface, displaying specific items' and 'Printers can be configured separately for each production unit.' Native first-party, not a partner integration. https://ury.app/features/mosaic/ · retrieved 2026-08-01 adversarially verified

C
No

An expo screen consolidates items from multiple prep stations into a single order view and only marks the order complete when every contributing station has bumped its items.

kitchen-expo-consolidation

Each production unit has an independent screen showing its own KOT cards. No consolidating expo view gated on all contributing stations bumping. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Items can be assigned to courses and held, then fired to the kitchen on demand from a server terminal, handheld, or expo screen. differentiator

kitchen-course-firing

Menu courses categorise items and drive a serve_priority sort on the KDS, but there is no hold state and no fire action. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Per-item cook times are configurable and the KDS staggers item start/display times so that all items on an order finish simultaneously. differentiator

kitchen-prep-time-pacing

Only a flat KOT Warning Time exists. No per-item cook times and no staggered start calculation. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Kitchen load throttling automatically paces or delays release of incoming digital orders, or extends quoted prep times, once a configurable order-volume or ticket-time threshold is crossed. differentiator

kitchen-order-throttling

https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Pausing a store or 86ing an item from the POS/KDS propagates the pause or availability change back to connected third-party marketplaces (DoorDash, Uber Eats, Grubhub) automatically. differentiator

kitchen-channel-pause-propagation

No marketplace API integrations exist to propagate to. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Bumping an order ready on the KDS sends an order-ready status event back to the third-party marketplace so couriers are dispatched on actual readiness. differentiator

kitchen-order-ready-callback

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

KDS supports physical bump bars or programmable keypads in addition to touchscreen interaction, with documented supported models.

kitchen-bump-bar-hardware

Mosaic documents click-to-Serve and click-to-Confirm touch interaction only. No bump bar support and no supported-model list. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

An all-day view aggregates outstanding quantities per item (and per modifier) across all open tickets on the station.

kitchen-all-day-counts

The KDS renders per-order cards with item quantities. No cross-ticket all-day aggregation is documented. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
Yes

Configurable target cook times per station or order type, with visual color escalation and/or audible alert when a ticket exceeds target.

kitchen-sla-alerts

Verified: 'KOT Warning Time' field in the POS profile triggers the warning, plus 'KOT Audio Alert' and 'Notify KOT Delay' toggles. Configurable, native. https://ury.app/features/mosaic/ · retrieved 2026-08-01 adversarially verified

C
No

If a KDS screen or kitchen printer goes offline, tickets automatically fail over to a designated backup printer or screen with no ticket loss. differentiator

kitchen-printer-fallback

A URY KOT Error Log doctype records print failures, but no automatic failover to a backup printer or screen is documented. https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

KDS continues to receive and display tickets from on-site POS terminals when the internet or cloud backend is unreachable. differentiator

kitchen-offline-operation

Mosaic's only offline handling is a 'You are Offline' status banner in kot.vue. KOTs arrive over Frappe Socket.io from the cloud backend. https://github.com/ury-erp/ury/blob/develop/URYMosaic/src/components/kot.vue · retrieved 2026-08-01

B
Partial

Station screens can display item-level build/assembly detail (recipe steps, portioning, or full modifier breakout) rather than only the ticket line text. differentiator

kitchen-item-build-screens

KOT cards show items, quantities and item-level plus order-level KOT comments. No recipe steps, portioning or structured modifier breakout. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Sectioned/fractional topping placement (halves, quarters, specific sections) is rendered visually and unambiguously on the make-line screen or ticket. differentiator

kitchen-pizza-fractional-display

No fractional placement exists upstream in the menu, so nothing fractional can be rendered. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/item_add_on/item_add_on.json · retrieved 2026-08-01

B
Partial

A bumped ticket can be recalled/unbumped, and an individual item can be refired or reprinted without re-entering the order.

kitchen-recall-refire

Items can be toggled served/unserved on the KDS and KOTs reprint. A full bumped-ticket recall and per-item refire workflow is not documented. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
Yes

Edits made in the POS to an order already displayed in the kitchen visually flag the added, changed, or removed items on the live ticket. differentiator

kitchen-order-modification-alerts

KDS source: updateColorandTable colours the live ticket amber (bg-[#FFD493]/#FFC700) when type == 'Order Modified' and red (bg-[#FFD2D2]/#FAA7A7) for 'Cancelled' or 'Partially cancelled'; takeaway blue, plain dine-in white. Within the ticket each line shows '[Old Qty = <n>]' when the KOT type is Cancelled/Partially cancelled, so removed or reduced items are visible line by line, and served lines can be struck through. https://github.com/ury-erp/ury/blob/develop/URYMosaic/src/components/kot.vue · retrieved 2026-08-06 adversarially verified

A
No

Bumping an order ready triggers a guest-facing notification — SMS/text, app push, or an order-status display board — without a separate product purchase. differentiator

kitchen-guest-ready-notification

Notifications go to staff recipients for KOT delays only. No guest SMS, push or status board. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Waste, spoilage, and remakes can be logged directly at the kitchen/KDS screen with reason codes, and the entry depletes inventory.

kitchen-waste-logging

Repo-wide grep for 'waste' returns zero hits. ERPNext Stock Entry exists underneath but is not surfaced at the KDS. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Reports actual ticket and per-station times (average and percentile) sliced by daypart, station, and order channel, exportable to CSV or an API.

kitchen-speed-of-service-reporting

KOT creation and serve times are captured (calculate_and_set_times) and Time Wise Sales exists, but no per-station average or percentile ticket-time report is published. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Generates prep lists or predicted prep quantities from historical sales and forecast demand, surfaced to kitchen staff as a daily prep task list.

kitchen-prep-forecasting

Repo-wide grep for 'forecast' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Delivery, dispatch & third-party channels

No

Product includes a native in-house driver module: drivers are first-class entities with clock-in/out, assignment state (in-store / on-run / returning), and per-driver run history reportable from the POS itself (not via a third-party add-on).

delivery-driver-roster

There is no driver entity. Repo-wide grep for driver/dispatch returns only the QZ Tray print library and an unrelated React call. https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

Provides a dedicated dispatch/expo screen showing undispatched orders, driver availability, and elapsed time per order, with multi-order run batching (assigning 2+ orders to one driver as a single run).

delivery-dispatch-board

Delivery is an order type on the POS, nothing more. No dispatch screen exists. https://ury.app/setup/ · retrieved 2026-08-01

B
No

Dispatch includes a live map view with geocoded stops and system-generated route sequencing (turn order optimization) for a multi-stop run, not just a static address list. differentiator

delivery-route-map

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Captures live driver GPS position from a driver-facing mobile app and surfaces it back to the dispatch screen. differentiator

delivery-driver-tracking

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Delivery areas can be defined as arbitrary map polygons or by drive-time isochrones, not solely as a radius or a ZIP/postcode list. differentiator

delivery-zones-polygon

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Each delivery zone carries its own independently configurable delivery fee, order minimum, and quoted promise time, applied automatically from the validated customer address.

delivery-zone-pricing

No zone concept exists. Delivery pricing is a whole-menu price-list difference, not zone-based. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/order_type_menu/order_type_menu.json · retrieved 2026-08-01

B
No

Address entry is validated/geocoded against a mapping service at order time and rejects or flags out-of-zone addresses before the order is accepted.

delivery-address-validation

Customer addresses are free-text ERPNext Address records; no geocoding or mapping service is integrated. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Tracks per-delivery driver compensation inputs — mileage or distance driven per run, per-delivery flat reimbursement, and driver-retained tips — and exports them to payroll as separate reimbursement vs. wage lines. differentiator

delivery-driver-comp

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Provides a driver cash bank / settle-up flow that reconciles cash collected, orders assigned, and tips owed at end of shift, producing a per-driver over/short figure.

delivery-cash-reconcile

POS Opening/Closing Vouchers reconcile cash per profile and shift, but there is no per-driver bank or settle-up flow. https://ury.app/features/core/ · retrieved 2026-08-01

C
No

Can hand a first-party order to an on-demand courier marketplace (DoorDash Drive, Uber Direct, Nash, Relay or equivalent) natively from the POS, with the courier quote and status returning into the order record.

delivery-daas-dispatch

No courier marketplace integration of any kind. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports hybrid dispatch: rules that automatically overflow an order to a DaaS courier when no in-house driver is available, out of zone, or past a wait threshold. differentiator

delivery-daas-fallback

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Offers direct, first-party certified API integrations with DoorDash, Uber Eats, and Grubhub marketplaces (vendor-owned, not solely resold through Otter/Deliverect/Chowly/ItsaCheckmate middleware). differentiator

delivery-3p-direct-integration

Aggregator Settings is a manual mapping of Customer, Price List and Mode of Payment. No API keys, endpoints or webhooks — aggregator orders are hand-keyed. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Third-party marketplace orders inject automatically into the POS as normal tickets that fire to KDS/printers without tablet re-keying or manual accept.

delivery-3p-injection

Marketplace orders must be re-keyed into the POS under an Aggregators order type. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Menu, pricing, modifiers, and photos publish from the POS master menu out to connected third-party marketplaces, including channel-specific price markups, without maintaining a separate menu in each portal.

delivery-menu-push

https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Marking an item or modifier 86'd in the POS pushes item-level out-of-stock status to connected third-party channels in near real time, and restores it on availability (DoorDash requires item and item-option 86ing of new POS partners).

delivery-86-sync

https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Store can be paused/deactivated on each connected third-party marketplace from inside the POS with a timed auto-reactivation, rather than only from each marketplace's own tablet or portal.

delivery-store-pause

https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
Partial

Produces a third-party reconciliation report matching marketplace payout deposits to POS-recorded 3P sales, itemizing commission, marketing fees, refunds/adjustments, and identifying missing or unpaid orders. differentiator

delivery-3p-reconciliation

Each aggregator maps to its own Customer and Mode of Payment, so Service Wise Sales segments 3P revenue. No payout matching, commission itemisation or missing-order detection. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Vendor exposes integration health to the operator — failed/rejected order injections, connection status per channel, and alerts on failure — rather than failing silently. differentiator

delivery-injection-error-visibility

There is no injection path, so no health surface. A URY KOT Error Log exists for print failures only. https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

Guests receive a branded order status / driver tracking page or SMS link on the restaurant's own domain for first-party delivery orders, driven by real order and driver state.

delivery-tracking-page

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Quoted delivery promise times adjust dynamically from current kitchen load, driver availability, and zone drive time, rather than a fixed per-store constant. differentiator

delivery-promise-time

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Vendor documents explicit offline behavior for delivery: whether cash delivery orders, driver assignment, and driver settlement continue during an internet outage.

delivery-offline-behavior

No offline behaviour is documented for any subsystem; the README's 'offline mode' bullet is unsupported by the code. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B

Digital ordering & guest-facing channels

No

Vendor ships a first-party, commission-free web ordering site on the restaurant's own branding/domain that writes orders directly into the POS with no per-order marketplace commission.

digital-first-party-web

URY ships no guest-facing ordering site. The web surfaces are the staff POS (/pos), the admin UI (/ury) and the KDS (/URYMosaic). https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

The web/app ordering menu is generated from the same POS menu record as in-store — one item edit propagates to all first-party digital channels without a separate digital menu build.

digital-menu-single-source

No first-party digital channel exists to share the menu with. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

Vendor offers a branded native iOS and Android ordering app (published under the restaurant's own brand in the App Store/Play Store), not only a mobile web page or a shared multi-restaurant marketplace app. differentiator

digital-native-app

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Guests can create an account with saved addresses, saved (tokenized) payment methods, and one-tap reorder of a previous order across first-party channels.

digital-account-saved-payment

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Digital checkout presents configurable or algorithmic upsell/cross-sell suggestions (rules-based add-ons or personalized recommendations from order history), with attach-rate reporting on those suggestions. differentiator

digital-upsell-engine

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports future/scheduled orders with per-daypart throttling — capacity limits on orders or items per time slot that automatically close slots when the kitchen is saturated.

digital-scheduled-pacing

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Single digital ordering flow supports pickup, curbside (with arrival check-in), dine-in/QR table ordering, and delivery, with mode-specific fees and prep timing.

digital-fulfillment-modes

Order types exist only in the staff POS, not in any guest-facing flow. https://ury.app/setup/ · retrieved 2026-08-01

B
No

Supports guest-facing QR scan-to-order and/or scan-to-pay at the table that opens or attaches to the existing POS check, including splitting and tipping.

digital-qr-table

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Vendor ships a self-order kiosk running the same menu and modifier logic as the POS, with accessibility-compliant UI and unattended EMV payment. differentiator

digital-kiosk

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports group ordering: a shareable link where multiple participants add their own items to one order under a per-person or total spend cap, with split or single payment.

digital-group-ordering

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Offers a distinct catering ordering flow with separate catering menu/minimums, lead-time rules, quotes or proposals, deposits, and invoice/house-account or ACH payment terms. differentiator

digital-catering-portal

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Vendor offers AI voice phone ordering (native or a named certified partner) that answers inbound calls and injects the completed order into the POS without staff transcription. differentiator

digital-voice-ai-phone

A 'Phone In' order type exists for manual staff entry; there is no voice AI. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/order_type_menu/order_type_menu.json · retrieved 2026-08-01

B
No

Supports AI voice ordering at the drive-thru lane, integrated with the POS menu/modifiers and with escalation-to-human handoff.

digital-drivethru-ai

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports conversational SMS or chat ordering/reordering (text-to-order or text-a-link) that lands in the POS.

digital-sms-ordering

Repo-wide grep for SMS returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports Order with Google — the restaurant's direct ordering link is provisioned to the Google Business Profile as an ordering option (ideally set as 'Preferred by Business'), rather than leaving marketplace links as the only choice. differentiator

digital-google-order

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports Apple Business Connect ordering placement — an 'Order Food' custom action on the Apple Maps place card pointing at the vendor's first-party ordering flow.

digital-apple-business-connect

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Loyalty accrual and redemption work inside the first-party digital ordering flow using the same guest identity as in-store, not as a separate post-purchase enrollment.

digital-loyalty-attach

Repo-wide grep for 'loyalty' returns zero hits in URY code, and there is no digital channel regardless. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports guest subscription / membership programs (recurring billing for a delivery-fee waiver, a per-period item entitlement, or a paid loyalty tier) managed in the platform.

digital-subscriptions

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Discounts, coupon codes, and loyalty offers are defined once and honored identically across POS, kiosk, and first-party digital channels, with channel eligibility controls.

digital-promo-parity

Discounts are applied per invoice at the POS only; there are no other channels for parity to apply to. https://ury.app/features/pos/ · retrieved 2026-08-01

C
Yes

Vendor documents that the operator owns and can export first-party guest records (email, phone, consented marketing status, order history) in bulk, without a fee or vendor approval. differentiator

digital-guest-data-ownership

Operator holds the database outright under AGPL self-hosting, with Frappe list-view CSV export and full REST access to Customer records. No fee, no approval. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
No

Digital checkout uses vendor-hosted fields or a hosted payment page so card data never touches the restaurant's page, with the vendor publishing PCI DSS 4.0 compliance (including the client-side script-integrity requirements effective March 2025) and supporting 3DS.

digital-checkout-pci-sca

No digital checkout exists and no PCI documentation is published. https://ury.app/support/ · retrieved 2026-08-01

B
No

Digital channels support the same service-fee / dual-pricing / card-surcharge configuration as the POS, with the required guest-facing disclosure and correct handling of jurisdictions and card brands where surcharging is prohibited. differentiator

digital-surcharge-transparency

https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Guest data, loyalty & marketing

Partial

Maintains a single guest profile that automatically merges transactions from in-store POS, first-party web/app ordering, and kiosk under one identity (phone or email match), with documented dedup/merge behavior.

guest-loyalty-unified-profile

All orders attach to a single ERPNext Customer record and the POS surfaces past-order favourites, but there is only one channel and no documented dedup/merge behaviour. https://ury.app/features/core/ · retrieved 2026-08-01

C
No

Orders arriving from third-party marketplaces (DoorDash, Uber Eats, Grubhub) attach to a native guest profile with usable guest identity rather than landing as anonymous tickets. differentiator

guest-loyalty-thirdparty-identity-attach

Aggregator orders attach to a single generic per-aggregator Customer, not to individual guests. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

Supports at least two of points-per-dollar, visit/punch-count, and spend-tier accrual as configuration, without custom development or a bolt-on loyalty vendor.

guest-loyalty-accrual-models

Repo-wide grep for 'loyalty' returns zero hits in URY. ERPNext has a Loyalty Program doctype but URY's POS does not surface or reference it. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports status tiers with automatic promotion and demotion driven by rolling-window spend or visit counts. differentiator

guest-loyalty-tiers

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Documents explicitly what loyalty lookup, accrual, and redemption do when the POS loses connectivity (queue-and-reconcile vs blocked). differentiator

guest-loyalty-offline-behavior

No loyalty and no offline mode, so nothing is documented. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Offer/discount engine exposes explicit stacking and precedence rules (exclusive vs combinable, order of application) as configuration. differentiator

guest-loyalty-offer-stacking-rules

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Offers can be issued to a dynamically defined audience (rules over recency, frequency, spend, or items purchased) rather than only broadcast to the whole list. differentiator

guest-loyalty-targeted-offers

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Automatically computes recency/frequency/monetary or equivalent lifecycle segments (new, regular, at-risk, lapsed, VIP) without the operator building the queries. differentiator

guest-loyalty-rfm-segmentation

Pulse ships Customer Data and Repeated Customers reports. These are raw frequency listings, not computed lifecycle segments. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Ships triggered lifecycle automations (birthday, first-visit thank-you, lapsed win-back) as configurable always-on campaigns rather than one-off manual sends.

guest-loyalty-lifecycle-automation

Frappe Notifications can fire on document events, but URY ships no birthday, first-visit or win-back campaign. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Sends both email and SMS campaigns natively from the platform, not solely by handing the list to a third-party ESP. differentiator

guest-loyalty-native-email-sms

Frappe's email engine is used for KOT delay notifications to staff. No SMS at all and no guest campaign tooling. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Handles or explicitly documents A2P 10DLC brand and campaign registration required for the operator to send SMS through the platform.

guest-loyalty-10dlc-registration

No SMS capability exists; 10DLC is not addressed anywhere. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Reports redemption and incremental sales attributable to a specific campaign or offer, tying redeemed offers to actual check totals. differentiator

guest-loyalty-campaign-attribution

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Yes

Provides self-serve export of the full guest list and transaction history, including contact PII, via CSV or API, without a vendor fee or support ticket. differentiator

guest-loyalty-data-export-portability

Frappe provides self-serve CSV/Excel export on every list and report plus REST read access to Customer and POS Invoice data. No fee, no ticket. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
No

Triggers post-transaction feedback requests and routes responses by score, sending low scores to private service recovery and high scores toward public review sites. differentiator

guest-loyalty-review-capture-routing

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Includes a native referral mechanic with per-guest codes or links, attribution of the referred guest's first order, and two-sided rewards.

guest-loyalty-referral-program

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Issues an Apple Wallet or Google Wallet loyalty pass with push-updatable balance, as an alternative to requiring a branded app download. differentiator

guest-loyalty-wallet-pass

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Provides admin tooling to fulfill guest data access and deletion requests (CCPA/CPRA-style) including deletion propagation to loyalty and marketing records.

guest-loyalty-privacy-rights-tooling

OVERTURNED from `no`, and the source tree gives an unusually exact answer. The prior rationale said "no purpose-built DSAR access or deletion workflow is provided"; that is false -- the Frappe framework URY runs on ships three dedicated doctypes (read via api.github.com/repos/frappe/frappe/contents/frappe/website/doctype) for exactly this, `personal_data_deletion_request`, `personal_data_deletion_step` and `personal_data_download_request`, and the deletion controller implements `anonymize`, `redact`, `full_match_privacy_docs` and `partial_privacy_docs`. So an admin does have a built-in access-and-erasure workflow. What is missing is the propagation half of the claim, and URY's own code says so: the framework drives deletion from each app's `user_data_fields` hook, and in `ury/hooks.py` that entire block is COMMENTED OUT under the heading "User Data Protection" -- it is the untouched template stub, `# user_data_fields = [` over placeholder `{doctype_1}` / `redact_fields` entries. URY therefore registers ZERO doctypes with the erasure engine, so a Personal Data Deletion Request does not reach URY's own Customer, order or loyalty records. `partial`: the tooling is there and unwired. Measured over the publisher's complete manifest -- `api.github.com/repos/ury-erp/ury/git/trees/develop?recursive=1` answers `truncated: false` at 913 paths, of which none matches gdpr, dsar, privacy, erasure, consent or anonymi. Grade A: source code. https://github.com/ury-erp/ury/blob/develop/ury/hooks.py · retrieved 2026-09-09

A
No

Enforces loyalty fraud controls such as redemption velocity limits, manager approval on manual point adjustments, and flagging of employee self-redemption, with an audit log.

guest-loyalty-redemption-fraud-controls

No loyalty exists. Separately, issue #163 shows core endpoints lack permission checks entirely. https://github.com/ury-erp/ury/issues/163 · retrieved 2026-08-01

B
No

Vendor documents AI/ML-generated recommendations for offer content, target audience, or send timing (claim-level; verify it is a shipped product feature, not a roadmap statement). differentiator

guest-loyalty-ai-offer-recommendation

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Offers native stored-value/gift card balances tied to the same guest profile and redeemable across all locations of the brand.

guest-loyalty-stored-value-gift

Repo-wide grep for 'gift' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Labor & workforce

Partial

Employees clock in and out at the POS terminal using a PIN, badge, or card, with no separate time-clock hardware required.

labor-clock-in-at-pos

Frappe HRMS is a required install and provides Employee Checkin; URY's Daily P&L consumes employee costs. Clock-in is not documented as a POS terminal action. https://ury.app/installation/ · retrieved 2026-08-01

B
No

Captures a photo at punch (or performs facial verification) attached to the timecard entry, with a photo-only mode available that stores no biometric template. differentiator

labor-photo-punch-verification

CLAIM: photo at punch or facial verification attached to the timecard, with a photo-only mode. VERDICT: no. URY ships no timekeeping; its INSTALLATION.md installs Frappe HR ("Frappe HR is a dependency for employee management reports in URY", https://raw.githubusercontent.com/ury-erp/ury/58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d/INSTALLATION.md) and SETUP.md sends operators to Frappe HR Attendance docs. EVIDENCE: Frappe HR's Employee Checkin doctype (the punch record) enumerates its fields: employee, employee_name, log_type, shift, time, device_id, skip_auto_attendance, attendance, shift_start, shift_end, shift_actual_start, shift_actual_end, geolocation, latitude, longitude, fetch_geolocation, offshift - no Attach Image field (https://raw.githubusercontent.com/frappe/hrms/e68a3deaa95ae5b2c3d743297d0a4ab505733fc1/hrms/hr/doctype/employee_checkin/employee_checkin.json); the PWA frontend/src/components/CheckInPanel.vue captures navigator.geolocation only. SURFACE: ury-erp/ury (org slug confirmed by product.yaml and README) read as full source trees via api.github.com git/trees?recursive=1 (truncated:false) + raw.githubusercontent.com at two commits: develop 58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d (735 blobs, 710 text fetched, 0 failures) and v3-stg 511819051986bfda707ddd7c4210d67b0bc3de31 (847 commits ahead of develop; 1864 entries, 1520 text fetched, 0 failures); frappe/hrms version-15 e68a3deaa95ae5b2c3d743297d0a4ab505733fc1 (1847 entries, 1429 text fetched, 0 failures). github.com robots.txt NAMES ClaudeBot and bars /*/tree/, /*/raw/, archive/tarball/zipball and *.git paths, so no github.com page, archive or clone is relied on; api.github.com and raw.githubusercontent.com serve no robots.txt (404). BOUND/CONTROLS (tokenised, word-boundary, case-insensitive) over frappe/hrms: photo 0, photos 0, selfie 0, camera 0, webcam 0, getUserMedia 0, facial 0, fingerprint 0; positive controls geolocation 64, checkin 533. Over URY develop and v3-stg: selfie/camera/webcam/getUserMedia/facial/biometric 0. POISON: HRMS 'biometric' (4) is one Shift Type help string "Recommended for a single biometric device / checkins via mobile app" (external device feed via device_id) plus 3 translations; 'face' is CODE_OF_CONDUCT and Romanian "face" (make) in hrms, CSS @font-face in URY; URY 'photo' is Unsplash menu-image URLs. Retrieved 2026-09-16. https://raw.githubusercontent.com/frappe/hrms/e68a3deaa95ae5b2c3d743297d0a4ab505733fc1/hrms/hr/doctype/employee_checkin/employee_checkin.json · retrieved 2026-09-16 adversarially verified

B
No

Records time punches while the POS is offline and reconciles them on reconnect without loss or duplicate entries, with the behavior documented. differentiator

labor-offline-time-punch

Nothing in the stack operates offline. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
Partial

Permissions are grantable per discrete action (void, comp, discount, refund, drawer open, price change, report access) per role and per location, not limited to fixed cashier/manager/admin tiers.

labor-granular-rbac

Frappe role permissions plus URY's three roles, a Role Permitted table, 'Role Allowed For Billing' and 'Role Restricted For Table Order'. But issue #163 documents critical endpoints with no permission check. https://ury.app/setup/ · retrieved 2026-08-01

B
Partial

Manager overrides and approvals are attributed to the individual approver and written to an immutable audit trail queryable after the fact.

labor-manager-override-audit

Cancellation reason and cancelled-by are captured and reported, and Frappe versions documents. No manager-approval step and no immutable override trail. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Builds and publishes employee shift schedules inside the same platform that holds the timekeeping data, rather than requiring a third-party scheduling app. differentiator

labor-native-scheduling

CLAIM: builds and publishes shift schedules in the same platform that holds timekeeping. VERDICT: partial. EVIDENCE: URY's own install guide installs Frappe HR on the same site ("bench --site sitename install-app hrms"; "Frappe HR is a dependency for employee management reports in URY", https://raw.githubusercontent.com/ury-erp/ury/58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d/INSTALLATION.md), and SETUP.md derives "Daily Gross Salary Cost is calculated from employees attendance." via Frappe HR. Frappe HR version-15 (e68a3deaa95ae5b2c3d743297d0a4ab505733fc1) ships Shift Type, Shift Assignment, Shift Schedule, Shift Schedule Assignment and Shift Assignment Tool doctypes, a Roster month-view app (roster/src/views/MonthView.vue; hrms/api/roster.py create_shift_schedule_assignment, insert_shift, swap_shift, break_shift) and an employee PWA listing Shift Assignments, alongside Employee Checkin/Attendance (https://raw.githubusercontent.com/frappe/hrms/e68a3deaa95ae5b2c3d743297d0a4ab505733fc1/hrms/api/roster.py). SHORTFALL: the scheduling is Frappe HR's, a separate app from a different publisher that URY installs as a dependency; URY itself contains no shift-scheduling code or UI (develop and v3-stg doctype lists have no shift/roster doctype; its 'shift' hits are POS opening/closing metrics). SURFACE: ury-erp/ury (org slug confirmed by product.yaml and README) read as full source trees via api.github.com git/trees?recursive=1 (truncated:false) + raw.githubusercontent.com at two commits: develop 58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d (735 blobs, 710 text fetched, 0 failures) and v3-stg 511819051986bfda707ddd7c4210d67b0bc3de31 (847 commits ahead of develop; 1864 entries, 1520 text fetched, 0 failures); frappe/hrms version-15 e68a3deaa95ae5b2c3d743297d0a4ab505733fc1 (1847 entries, 1429 text fetched, 0 failures). github.com robots.txt NAMES ClaudeBot and bars /*/tree/, /*/raw/, archive/tarball/zipball and *.git paths, so no github.com page, archive or clone is relied on; api.github.com and raw.githubusercontent.com serve no robots.txt (404). Retrieved 2026-09-16. https://raw.githubusercontent.com/frappe/hrms/e68a3deaa95ae5b2c3d743297d0a4ab505733fc1/hrms/api/roster.py · retrieved 2026-09-16 adversarially verified

B
No

Generates recommended staffing levels or labor hours by daypart from the operator's own POS sales history, not just a static template. differentiator

labor-demand-labor-forecast

Repo-wide grep for 'forecast' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Displays labor cost as a percentage of sales in real time during service on a manager view or POS, not only in end-of-day or next-morning reports. differentiator

labor-realtime-labor-percent

URY Daily P&L reports total employee costs with a percent-of-sales column and a per-employee breakup, but it is a daily document, not a live service view. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Warns or blocks at clock-in when an employee is approaching or would cross a configured overtime threshold, before the overtime is incurred. differentiator

labor-overtime-prevention

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Configures meal and rest break rules per state or jurisdiction, prompts required break attestation, and flags missed breaks for premium pay. differentiator

labor-break-compliance-by-state

URY is India/GCC-oriented; no US state break rules exist anywhere in the product. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Enforces minor-labor restrictions (age-based maximum hours, prohibited time windows, school-day limits) at both scheduling and clock-in.

labor-minor-labor-rules

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Computes tip pooling and tip-outs automatically per shift from configurable rules (percentage of sales, hours worked, points, or role), rather than requiring a manual spreadsheet.

labor-tip-pooling-rules

Repo-wide grep finds no tip handling whatsoever. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Retains a per-shift, per-employee record of tips received, amounts contributed to the pool, and amounts distributed from the pool, exportable for audit.

labor-tip-distribution-audit-trail

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Payroll export separates cash from charged qualified tips and carries a Treasury tipped-occupation code, supporting the W-2 Box 12 code TP and Box 14b reporting required for tax year 2026. differentiator

labor-qualified-tips-w2-reporting

No tips, no US payroll, no W-2 concept. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Vendor processes payroll itself as a first-party product (tax filing and direct deposit), as opposed to exporting to a third-party payroll provider only. differentiator

labor-native-payroll

Challenged the 'required dependency' framing and it holds: the installation guide installs frappe/hrms and calls it 'a dependency for employee management reports in URY'. Payroll is HRMS's, not URY's, and is not US tax-filing payroll — partial is right. https://ury.app/installation/ · retrieved 2026-08-01 adversarially verified

B
No

Exports timecards, wages, and tips in documented formats or via direct integration for at least two major payroll providers (e.g. Gusto, ADP, Paychex, QuickBooks).

labor-payroll-export-formats

No Gusto, ADP, Paychex or QuickBooks payroll connector is documented for URY. https://ury.app/installation/ · retrieved 2026-08-01

B
No

Employees can request shift swaps or claim open shifts in a self-service app, subject to a manager approval workflow that enforces overtime and role eligibility. differentiator

labor-shift-swap-workflow

CLAIM: employees request shift swaps or claim open shifts self-service, under a manager approval workflow enforcing overtime and role eligibility. VERDICT: no. q317 proposed partial off Frappe HR's Shift Request and it was refused (an employee requesting a shift type for a date range is neither a swap nor an open-shift claim); this row replaces it with the source-census absence. CENSUS (production branches only): ury-erp/ury develop 58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d (699 text files, read via api.github.com git/trees recursive truncated:false + raw.githubusercontent.com, no clone) and frappe/hrms version-15 e68a3deaa95ae5b2c3d743297d0a4ab505733fc1 (1,354 text files; URY's INSTALLATION.md installs hrms, https://raw.githubusercontent.com/ury-erp/ury/58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d/INSTALLATION.md); the frappe/hrms develop tree b22e55f6727b18765cf2046959eb4b5f1ff7ff90 (2,039 entries, truncated:false) re-listed 2026-09-17 holds no swap/open-shift/trade path beyond the version-15 set (shift_request, shift_assignment, shift_assignment_tool, shift_schedule, shift_schedule_assignment, api/roster.py, roster/). The ury v3-stg branch is staging and carries no weight for this no. CONTROLS, tokenised, word-boundary, case-insensitive, translation files excluded (ury develop / hrms v15): swap|swaps|swapped|swapping 4/1; open shift(s) 0/1; claim (an|the|open) shift 0/0; shift trade|trade shift 0/0; pick up shift 0/0; shift cover|cover shift 0/0; shift exchange 0/0. POISON named: every ury 'swap' is Google Fonts 'display=swap' (frontend/index.html, pos/index.html, self-order/index.html) or a code comment 'which swaps to' (frontend/src/pages/Reports/ReportsLayout.tsx); the one hrms 'swap' is the MANAGER roster drag-and-drop (roster/src/components/MonthViewTable.vue, url 'hrms.api.roster.swap_shift', toast 'Shift ${dropCell.value.shift ? "swapped" : "moved"} successfully!'), a manager action, not an employee request; the one hrms 'open shift' is 'There are no open Shift Requests based on the given filters.' (shift_assignment_tool.js). Positive control: 'shift request' = 164 hits in hrms. Shift Request validation (validate_default_shift, validate_approver, validate_overlapping_shift_requests) checks no overtime or role eligibility. Retrieved 2026-09-17. https://raw.githubusercontent.com/frappe/hrms/e68a3deaa95ae5b2c3d743297d0a4ab505733fc1/hrms/hr/doctype/shift_request/shift_request.py · retrieved 2026-09-17 adversarially verified

B
Partial

Reports per-employee sales performance metrics (average check, items or category attachment rate, void and comp rate) by server or cashier. differentiator

labor-server-performance-metrics

Two per-employee reports ship in the app source. Employee Sales (Query Report on POS Invoice) groups by waiter and date and returns only 'Total Invoices' (count) and 'Sales Amount' (SUM(grand_total)); Employee Item Wise Sales filters to one employee and returns item name, item group, SUM(qty), SUM(amount). Shortfall: no per-server average check (Average Bill Value is outlet-level), no attachment rate, and no void/comp rate by server - the Cancelled Invoices report carries only Date, Time, Invoice, Cancelled By and Cancellation Reason, attributing the cancellation to the cancelling user rather than the ordering server, and reports no rate. https://github.com/ury-erp/ury/tree/develop/ury/ury/report · retrieved 2026-08-06 · not refetchable · site policy · graded A when read adversarially verified

B

Inventory, purchasing & cost control

Yes

Supports multi-level recipe/BOM costing where a recipe can contain sub-recipes (prep items) and plate cost recalculates automatically when any component ingredient's cost changes.

inventory-recipe-bom-costing

Verified: Daily P&L 'Cost of Goods Sold' 'includes the cost of the items sold, factoring in product bundles and Bill of Materials (BOM) sub-items.' Native to the same install, though the BOM engine is ERPNext's rather than URY's. https://ury.app/features/pulse/ · retrieved 2026-08-01 adversarially verified

C
Partial

Stores purchase unit, recipe unit, and count unit per item with explicit conversion factors, plus a yield/waste percentage applied to raw-to-usable conversion.

inventory-unit-conversion-yields

ERPNext Items carry stock UOM plus conversion factors and BOMs support scrap. Yield/waste percentage on raw-to-usable conversion is not documented for URY.

F
Partial

Produces a theoretical-vs-actual usage variance report per item for a defined count period, showing theoretical usage from POS sales times recipe, actual usage from counts plus receipts, and the variance in both units and currency. differentiator

inventory-theoretical-vs-actual

URY Daily P&L reports materials consumed and BOM-derived COGS per branch per day; ERPNext Stock Reconciliation records actual counts. No packaged variance report. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Depletes ingredient on-hand quantities in near real time as orders are fired at the POS, including depletion driven by modifier selections, not only in an end-of-day batch. differentiator

inventory-realtime-depletion

ERPNext POS Profile can update stock on invoice submit, depleting the sold Item. Ingredient-level depletion driven by BOM or modifier choice is not documented.

F
No

Automatically 86s (marks unavailable) menu items on the POS, online ordering, and connected third-party delivery menus when a component ingredient hits zero or a configured threshold. differentiator

inventory-86-auto-sync

A stock validation error surfaces at payment time (issue #249, and it shows a generic message), but nothing auto-86s the item on any channel. https://github.com/ury-erp/ury/issues/249 · retrieved 2026-08-01

B
Partial

Supports full physical inventory, ad-hoc spot counts of a subset, and scheduled recurring cycle counts, with each count's variance recorded as separate history rather than overwriting prior counts.

inventory-count-modes

ERPNext Stock Reconciliation supports full and partial counts with retained history. Scheduled recurring cycle counts are not documented as a URY feature.

F
No

Provides a mobile/tablet counting app supporting barcode or QR scanning that continues to accept counts with no network connectivity and syncs on reconnect.

inventory-mobile-count-offline

No offline capability anywhere in the stack. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
No

Ships pre-built electronic vendor catalog and order-transmission integrations with named broadline distributors (e.g. Sysco, US Foods, Performance Food Group) that send purchase orders and receive invoices electronically rather than by emailed PDF. differentiator

inventory-vendor-catalogs-edi

ERPNext has Supplier and Purchase Order objects, but no Sysco/US Foods/PFG catalog or EDI transmission integration exists. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Ingests supplier invoices from photo, PDF, or email and extracts line-item detail (item, quantity, unit, price) into the inventory ledger without manual line entry. differentiator

inventory-invoice-ocr

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Tracks per-item purchase price history across invoices and alerts when a received price exceeds the prior or contracted price by a configurable threshold. differentiator

inventory-price-change-alerts

ERPNext retains per-item purchase rate history across Purchase Invoices and can enforce a maintain-same-rate rule, but no configurable threshold alert is documented.

F
Partial

Maintains par levels per item per location and generates suggested purchase order quantities from on-hand versus par, with at least one mode driven by a sales forecast rather than a static par. differentiator

inventory-par-auto-suggest

ERPNext Item reorder levels generate Material Requests from static reorder points. No sales-forecast-driven mode exists.

F
No

Provides a structured waste/spoilage logging workflow with reason codes that debits inventory and reports waste cost separately from usage variance.

inventory-waste-logging

Repo-wide grep for 'waste' returns zero hits in URY. ERPNext Stock Entry can write off stock but no reason-coded waste workflow is exposed. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Tracks expiration or use-by dates on received and prepped items and surfaces an expiring-soon report or alert before spoilage.

inventory-shelf-life-expiry

ERPNext batches carry expiry dates and shelf life; no expiring-soon alert is documented as a URY feature.

F
No

Supports partial-bottle liquid inventory by weight (scale integration) or by bottle fraction for bar and beverage counting.

inventory-bar-partial-bottle

No scale integration or bottle-fraction counting anywhere. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Exports period COGS and accounts-payable invoice detail in a named accounting system's import format (e.g. QuickBooks, Sage Intacct, NetSuite) with GL account mapping configurable per item category.

inventory-cogs-gl-export

COGS posts natively into ERPNext's own general ledger rather than exporting — arguably better. But no QuickBooks, Intacct or NetSuite export format is documented. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Yes

Inventory and recipe costing are delivered natively by the POS vendor rather than requiring a separately-contracted third-party product (e.g. MarginEdge, MarketMan, Restaurant365) to function. differentiator

inventory-native-not-partner

Challenged as a possible add-on and it survives: the installation guide makes ERPNext a hard prerequisite ('bench get-app --branch version-15 erpnext'), so inventory/BOM/purchasing are in the same site and database. No third-party contract. https://ury.app/installation/ · retrieved 2026-08-01 adversarially verified

B
Partial

Joins recipe cost to actual item sales mix to report contribution margin per menu item, and flags items whose margin fell below a configured threshold after ingredient cost changes. differentiator

inventory-menu-margin-linkage

Item Wise Sales plus the BOM-derived Cost of Goods table give the inputs for per-item margin, but no joined contribution-margin report or threshold flagging exists. https://ury.app/features/pulse/ · retrieved 2026-08-01

C

Reporting, BI & data access

Partial

Provides a live sales dashboard reflecting transactions within minutes of the sale, accessible from both a browser and a mobile app off-premise.

reporting-realtime-dashboard

A Today's Sales report plus Frappe number cards and dashboards work in any browser including mobile web. No mobile app and no documented refresh latency. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Yes

Generates a daily close-out/EOD report reconciling gross sales, net sales, tax, tips, discounts, refunds, tender types, and expected cash deposit in one document.

reporting-eod-closeout

POS Closing Voucher consolidates the day's invoices per profile, and URY Daily P&L reconciles gross sales, discounts/round-off, tax, net sales, COGS and expenses per branch. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Provides a product mix (PMIX) report at individual menu item AND modifier level with quantity, gross and net sales, filterable by daypart and revenue center.

reporting-pmix-modifier-level

Item Wise Sales and Time Wise Sales cover item-level mix with daypart slicing. Add-ons are separate Items so they appear as lines, not as modifier-level attribution. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Produces an audit report of comps, voids, discounts, and price overrides attributed to the employee who applied them and the manager who approved them, with reason codes and timestamps.

reporting-comps-voids-audit

Cancelled Invoices report carries Cancelled By and Cancellation Reason with timestamps. No comps, no discount-override attribution, no approving-manager field. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Reports cash over/short per drawer, per shift, and per employee, comparing counted cash to expected cash from tendered transactions and paid-outs.

reporting-cash-over-short

ERPNext POS Opening/Closing Vouchers compute expected versus counted cash per profile and shift, including URY's Sub POS Closing tables. Per-employee over/short is not documented. https://ury.app/features/core/ · retrieved 2026-08-01

C
Partial

Reports sales per labor hour and labor cost as a percentage of sales by hour, by department, and by employee, using actual clocked hours from the POS time clock.

reporting-labor-productivity

Daily P&L gives total employee cost and percent of sales with a per-employee breakup table. No sales-per-labour-hour metric and no hourly slicing. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Reports per-server metrics including average check, items per check, attachment rate for named categories, and tips as a percentage of sales. differentiator

reporting-server-scorecards

Employee Sales and Employee Item Wise Sales plus Average Bill Value. No tip percentage (no tips exist) and no named-category attachment rate. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Partial

Reports revenue and margin by fulfillment channel — dine-in, direct online, first-party delivery, and each third-party marketplace separately — net of marketplace commission fees. differentiator

reporting-channel-profitability

Service Wise Sales segments revenue by order type including aggregators. Margin net of marketplace commission is not computed. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
Yes

Supports scheduling any report for automatic recurring delivery by email or to a shared destination on a defined cadence and recipient list.

reporting-scheduled-delivery

Same sourcing defect: the REST page does not mention Auto Email Report. The feature is real and documented at docs.frappe.io/erpnext/auto-email-reports (recipient list, frequency, HTML/XLSX/CSV, 500-row cap, midnight send). Note it is an ERPNext feature, not URY's, and send timing is fixed at midnight — worth stating. https://docs.frappe.io/erpnext/auto-email-reports · retrieved 2026-08-01 adversarially verified

B
Yes

Publishes a documented public REST or GraphQL API covering orders, payments, menu, and labor data, with self-service developer credentials obtainable without a signed partner agreement. differentiator

reporting-public-api

Frappe's REST API covers every DocType including POS Invoice, URY Order, URY Menu and Employee, with self-serve api_key/api_secret token auth and OAuth2 bearer tokens. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
Partial

Emits outbound webhooks for order and payment lifecycle events to a customer-supplied endpoint, with documented retry behavior and payload signature verification. differentiator

reporting-webhooks

Frappe Webhooks fire on a selected DocType's doc_event to a configured request URL; enabling a Webhook Secret adds 'an additional header (X-Frappe-Webhook-Signature) ... generated from the secret as a base64-encoded HMAC-SHA256 hash of the payload', and 'a webhook request log is created for every successful request'. No retry or backoff behaviour is documented anywhere on the page. (Prior citation .../how_to_setup_webhooks now redirects here; re-verified against the destination 2026-08-09.) https://docs.frappe.io/framework/user/en/guides/integration/webhooks · retrieved 2026-08-09

B
Yes

API and raw-data access are included in the standard subscription rather than gated behind an additional per-location fee, revenue share, or enterprise-only contract. differentiator

reporting-api-not-upcharged

The software is free and self-hostable under AGPL-3.0; there is no subscription to gate API access behind. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Yes

Core reporting beyond basic sales summaries — labor vs sales, PMIX, comps/voids audit, multi-location comparison — is available on the entry-level paid plan rather than requiring a higher tier or an add-on analytics SKU. differentiator

reporting-tier-paywall

Nothing is tiered: the whole product is a single AGPL-3.0 Frappe app, so installing it gives every report. ury/ury/report ships 14 query reports (today's_sales, daywise_sales, daywise_invoices, daywise_customer_details, month_wise_sales, average_bill_value, cancelled_invoices, item_wise_sales, customer_data, repeated_customers, employee_sales, employee_item_wise_sales, service_wise_sales, time_wise_sales), and the URY Daily P and L doctype adds labour-vs-sales via employee cost from attendance. PMIX is item_wise_sales, comps/voids audit is cancelled_invoices. Caveat, not a paywall: the reports take a single branch filter, so cross-location comparison means running them per branch. https://github.com/ury-erp/ury/tree/develop/ury/ury/report · retrieved 2026-08-06 · not refetchable · site policy · graded A when read adversarially verified

B
Partial

Documents a historical retention window of at least 24 months of transaction-level detail queryable in the reporting UI, with no silent truncation or archive retrieval fee. differentiator

reporting-history-retention

Scored 'yes' with no source URL at all, in violation of the evidence bar. It holds for self-hosting only; operators on the vendor-endorsed Frappe Cloud path are bound by that plan's storage and backup-retention terms, which URY does not address. Partial. https://frappe.io/cloud/pricing · retrieved 2026-08-01 adversarially verified

C
Partial

Sends proactive push or email alerts when an operator-configured metric breaches a threshold or deviates from its historical pattern (e.g. void spike, sales below forecast, discount rate anomaly). differentiator

reporting-anomaly-alerts

Frappe Notifications fire on document conditions and URY uses this for KOT delay alerts. No metric-threshold or historical-deviation alerting on sales, voids or discounts. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Offers a natural-language query or AI assistant that answers ad-hoc questions against the operator's own sales and labor data and returns a figure or chart, not a generic help-article response.

reporting-nl-query

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Reports guest-level analytics including new versus returning guest counts, visit frequency, and lifetime spend cohorts tied to identifiable guest records from loyalty or online ordering. differentiator

reporting-guest-cohorts

Customer Data, Repeated Customers and Daywise Customer Details reports give new-versus-returning and frequency data. No lifetime-spend cohort analysis. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Produces a forward sales forecast at daypart or hourly granularity from the location's own history, exposed in the reporting UI and consumable by scheduling or ordering workflows. differentiator

reporting-sales-forecast

Repo-wide grep for 'forecast' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Generates payroll- and tax-ready tip reporting: declared versus charged tips per employee, tip pool distribution detail, and a tax liability summary by jurisdiction.

reporting-tip-tax-compliance

No tip data is captured anywhere in the product. https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Multi-location, franchise & enterprise governance

Partial

Supports a named organizational hierarchy of at least three levels (e.g. enterprise > region/group > location) as a first-class object that reporting and permissions can be scoped to, not just a flat list of locations.

multi-location-org-hierarchy

URY Restaurant and Branch are first-class objects scoping users, POS profiles, menus and reporting, on top of ERPNext Company. No named region or group middle tier. https://ury.app/setup/ · retrieved 2026-08-01

B
No

A corporate-level menu can be authored once and published to a chosen set of locations in a single action, with a publish/version history showing what was pushed, when, and by whom.

multi-location-central-menu-publish

URY Menus are configured per branch, room and order type. No corporate authoring, no single-action publish to a set of locations, no publish history. https://ury.app/setup/ · retrieved 2026-08-01

B
Partial

Supports price tiers/zones so one menu item carries different prices per location group, per order channel, and per daypart without duplicating the item record.

multi-location-price-zones

ERPNext Price Lists plus per-room and per-order-type URY Menus give differentiated pricing, but each variation duplicates the menu record rather than tiering one item. https://ury.app/setup/ · retrieved 2026-08-01

B
Partial

Provides above-store reporting that aggregates sales, labor, discounts, voids, and item mix across any selected set of locations in one view, with store-vs-store ranking and variance flags.

multi-location-consolidated-reporting

Branch is a filter across Pulse reports and Daily P&L, and the README claims outlet comparison. No packaged store-versus-store ranking or variance flagging is documented. https://ury.app/introduction/ · retrieved 2026-08-01

B
No

Gift cards issued at one location are redeemable at any other location in the brand, with a reported outstanding-liability balance and inter-store settlement/redemption reconciliation between owners.

multi-location-cross-location-giftcard

No gift card capability exists. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

A single customer loyalty profile, balance, and stored order history is shared across all locations in the brand rather than being per-location.

multi-location-cross-location-loyalty

No loyalty capability exists. Customer records are shared across branches, but that is a contact list, not a loyalty profile. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

A single location/terminal can operate two or more distinct brands or virtual brands with separate menus, receipts/branding, and separately reportable revenue, on the same hardware and drawer. differentiator

multi-location-multi-brand

ERPNext multi-Company plus per-branch POS profiles and print formats could run two brands, but URY documents no virtual-brand or same-drawer multi-brand pattern.

F
Partial

Tax configuration is per-location with support for multiple simultaneous tax rates, jurisdiction-specific rules (e.g. prepared-food vs grocery, inclusive vs exclusive tax), and per-location tax exemptions.

multi-location-multi-tax-jurisdiction

I read the cited page. ury.app/setup documents exactly one tax control — a 'Default Tax Template' field on URY Restaurant — plus an aggregator 'Create Invoice without Tax' checkbox. It does NOT document multiple simultaneous rates, inclusive-vs-exclusive handling, or per-branch tax variation. Those are ERPNext platform capabilities the researcher imported into a URY cell without a URY source. Partial is the defensible ceiling. https://ury.app/setup/ · retrieved 2026-08-01 adversarially verified

B
No

Labor rules (overtime, break enforcement, predictive-scheduling compliance) are configurable per location or location group and enforced at the terminal, not just reported after the fact.

multi-location-central-labor-policy

No labour rule enforcement at the terminal exists at all. https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Hardware & physical footprint

Yes

The POS software runs on commodity off-the-shelf hardware (standard iPads, Android tablets, or PCs) that the operator can buy from a third party, rather than only on vendor-supplied proprietary terminals. differentiator

hardware-commodity-devices

Browser-based React and Vue apps served from a Frappe site. Any desktop, tablet or smartphone with a modern browser works; URY sells no hardware. https://ury.app/introduction/ · retrieved 2026-08-01

B
No

Vendor documentation names the specific client operating systems supported (iOS/iPadOS, Android, Windows, Linux/web) and states minimum OS versions and device specs.

hardware-os-platforms

Documentation names only a Node 18.20+ server-side build requirement. No client OS list, no minimum browser versions, no device specs. https://ury.app/installation/ · retrieved 2026-08-01

B
No

Offers a purpose-built handheld ordering device with an integrated card reader (not a phone case add-on), with published drop rating and IP ingress rating.

hardware-handheld-purpose-built

No hardware is offered. The 'handheld' story is the responsive web POS on a phone. https://ury.app/introduction/ · retrieved 2026-08-01

B
No

The handheld supports hot-swappable or field-replaceable batteries, or the vendor publishes a rated battery life for a full shift. differentiator

hardware-handheld-battery-swap

https://ury.app/introduction/ · retrieved 2026-08-01

B
No

Handhelds support cellular/LTE connectivity as a documented fallback when store Wi-Fi drops, either built into the device or via a vendor-supplied failover.

hardware-handheld-lte

https://ury.app/introduction/ · retrieved 2026-08-01

B
No

Terminals continue to take orders, print to kitchen, and record cash sales with the internet down, and the vendor documents explicitly which functions degrade (card auth, loyalty lookup, refunds).

hardware-offline-mode

README lists 'offline mode' but the POS architecture doc states it communicates exclusively with Frappe over REST, and no offline storage exists in the repo. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
Partial

Sells or supports a dedicated kitchen display system with bump-bar or touch input, station routing, and course/fire timing, as a first-party product rather than an integration-only dependency.

hardware-kds

URY Mosaic is a genuine first-party KDS with per-kitchen production units, live Socket.io updates, colour states and timers. Touch and click only, no bump-bar support. https://ury.app/features/mosaic/ · retrieved 2026-08-01

C
No

Offers a self-order kiosk running the same menu and modifier engine as the POS, in both countertop and freestanding form factors, with integrated payment and accessibility (ADA) compliance documented. differentiator

hardware-kiosk

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports drive-thru-specific hardware: outdoor digital menu boards, order confirmation displays, and speaker/headset integration, with a documented timer/speed-of-service measurement.

hardware-drive-thru

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Partial

Works with standard ESC/POS thermal receipt and kitchen printers from more than one manufacturer (e.g. Epson and Star), including LAN/Ethernet printers, rather than only vendor-branded printers.

hardware-printer-compatibility

URY Printer Settings supports network printers by IP and port plus QZ Tray, WebSocket and browser printing for receipts and KOTs. No named manufacturer compatibility list. https://ury.app/features/core/ · retrieved 2026-08-01

C
No

Supports the standard peripheral set — cash drawers (including multi-drawer per terminal), barcode scanners, scales for by-weight items, and customer-facing displays — with a published compatibility list.

hardware-peripherals

No published peripheral compatibility list. Cash drawer, scanner, scale and customer display support is not documented anywhere in URY's docs. https://ury.app/setup/ · retrieved 2026-08-01

B
No

Card entry happens on a PCI-listed PTS device using validated point-to-point encryption, so the POS application and tablet stay out of PCI scope; the vendor states the merchant's SAQ type.

hardware-p2pe-terminal

No card entry happens in URY at all, so no PTS device, no P2PE and no SAQ guidance is given. https://ury.app/support/ · retrieved 2026-08-01

B
No

Supports contactless acceptance directly on a commodity phone or tablet (Tap to Pay on iPhone / Tap to Pay on Android) with no separate reader. differentiator

hardware-tap-to-phone

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Hardware prices are published per SKU on the vendor's public site, rather than quote-only. differentiator

hardware-pricing-transparency

No hardware is sold, so no SKUs are published. The operator sources everything independently. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Yes

Hardware can be purchased outright (owned) as an alternative to a mandatory lease or subscription-bundled rental, and the vendor states which. differentiator

hardware-ownership-vs-lease

Nothing to lease — the operator buys and owns all hardware from third parties. There is no vendor rental or subscription-bundled hardware at all. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Yes

Vendor documentation confirms whether hardware purchased from the vendor remains usable with other software after cancellation, i.e. it is not software-locked or remotely bricked. differentiator

hardware-usable-after-churn

Hardware is commodity third-party equipment the vendor never touches, so it cannot be software-locked or bricked. AGPL also lets you keep running the software. https://github.com/ury-erp/ury/blob/develop/LICENSE · retrieved 2026-08-01

B
No

Publishes a hardware warranty term and a replacement/advance-exchange SLA with a stated turnaround (e.g. next-business-day depot swap). differentiator

hardware-rma-sla

No hardware and therefore no warranty or exchange program. TERMS.md disclaims all warranties. https://github.com/ury-erp/ury/blob/develop/TERMS.md · retrieved 2026-08-01

B
Partial

Staff can run the ordering or payment app on their own personal phone (BYOD) with a documented permission and security model.

hardware-byod

Any staff phone can open the responsive web POS and log in with Frappe role permissions. No documented BYOD security model or device policy. https://ury.app/introduction/ · retrieved 2026-08-01

B
No

Provides a remote device-management console showing each terminal, printer, and KDS as online/offline, with remote reboot, software-version visibility, and staged rollout of updates. differentiator

hardware-remote-device-management

No device console. Printer failures surface only as a URY KOT Error Log record after the fact. https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read

C
No

Integrates with specialty beverage hardware — self-pour tap walls, flow meters, or liquor pour spouts — such that pours post to a POS tab automatically.

hardware-selfpour-scales

https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

Supports inbound caller ID hardware or a telephony integration that pops the customer record and order history at the POS on an incoming call.

hardware-callerid-integration

A 'Phone In' order type exists for manual entry, but there is no caller-ID pop or telephony integration. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/order_type_menu/order_type_menu.json · retrieved 2026-08-01

B

Integrations, API & extensibility

Yes

Public, self-serve API reference documentation is readable without a signed partner agreement, NDA, or sales call.

extensibility-public-api-docs

Frappe's REST API reference is fully public with no agreement, NDA or sales call. URY's own whitelisted endpoints are readable directly in ury/ury_pos/api.py. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
Yes

API access is included in the base subscription at no additional per-location fee, surcharge, or upgraded plan requirement. differentiator

extensibility-api-access-cost

Free software, no subscription, no per-location fee, no plan gating. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Partial

A free sandbox or test environment with seeded data is available to developers without owning a paid production account. differentiator

extensibility-free-sandbox

A developer can stand up a free throwaway environment without any paid account: INSTALLATION.md documents creating a new Frappe site and running bench get-app/install-app for ERPNext, Frappe HR and URY (Node 18.20+), and the code is AGPL-3.0. Shortfall: no seeded sandbox. The docs say nothing about demo or test data, and the repo's DEMO/ folder is 13 PNG screenshots of configuration screens (URY Restaurant, URY Table, POS Profile QZ, Network Printer Settings, ...), not a fixture set; the only vendor-hosted route is Frappe Cloud's paid signup, so a seeded test instance must be built by hand. https://github.com/ury-erp/ury/blob/develop/INSTALLATION.md · retrieved 2026-08-06 adversarially verified

B
Partial

Third-party apps authenticate via OAuth 2.0 with scoped, operator-granted, individually revocable permissions (not shared static API keys or credential sharing).

extensibility-oauth-partner-apps

Frappe supports OAuth 2.0 bearer tokens with scoped, revocable client apps. But URY defines no scopes of its own, and issue #163 shows whitelisted endpoints bypass permissions. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
Partial

The platform pushes real-time webhooks for order lifecycle events (created, modified, paid, voided, refunded) rather than requiring polling.

extensibility-webhooks-push

Frappe Webhooks are push, not polling: 'when the doc_event occurs, the source site makes an HTTP request to the URI configured for the webhook', configured per DocType with an optional condition, so POS Invoice on_submit and on_cancel can be wired up by hand. URY itself ships no preconfigured webhooks and defines no order-lifecycle event contract (created/paid/voided/refunded are not named anywhere). (Prior citation .../how_to_setup_webhooks now redirects here; re-verified 2026-08-09.) https://docs.frappe.io/framework/user/en/guides/integration/webhooks · retrieved 2026-08-09

B
Partial

Webhooks are cryptographically signed (e.g. HMAC) AND documented to retry with backoff, with a replayable event log for missed deliveries. differentiator

extensibility-webhook-reliability

Half the claim is met: a Webhook Secret adds 'X-Frappe-Webhook-Signature ... a base64-encoded HMAC-SHA256 hash of the payload', and 'a webhook request log is created for every successful request with all the relevant details'. The other half is absent - the page documents no retry, no backoff, and no replay of missed deliveries, and the log is explicitly of successful requests only, so it is not a redelivery queue. (Prior citation .../how_to_setup_webhooks now redirects here; re-verified 2026-08-09.) https://docs.frappe.io/framework/user/en/guides/integration/webhooks · retrieved 2026-08-09

B
Partial

A public write API accepts externally originated orders into the POS as first-class tickets that fire to KDS/printers and land in reporting.

extensibility-order-injection-api

Frappe's generic REST API can create POS Invoice and URY Order documents, and URY's doc_events hooks generate KOTs on POS Invoice creation. No documented injection contract exists. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
Partial

Menu items, modifiers, and prices can be written and updated via API, not just read. differentiator

extensibility-menu-write-api

The only source is Frappe's generic REST reference, which never mentions URY Menu. This is inference from 'everything is a DocType', not a documented menu-sync contract — no payload shape, no validation semantics for the child tables, no example. The same researcher scored extensibility-order-injection-api 'partial' on identical reasoning; the two cells must be consistent. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01 adversarially verified

B
No

The vendor is a named DoorDash Preferred Integration Partner (DPIP) under the 2026 program requirements. differentiator

extensibility-doordash-preferred

DoorDash publishes its own complete provider registry at https://merchants.doordash.com/api/partner-integrations — 64 providers, each carrying a `qualityStatus` of PREFERRED (12), CERTIFIED (47) or AT_RISK_OF_SUSPENSION (5), plus a count of how many of the eight high-quality features the provider has built. It is served anonymously and merchants.doordash.com/robots.txt permits it (Allow: / with only /cdn-cgi/ and /monitoring barred). This is what the program page means when it says the roster is tracked in real time, and it is a CENSUS rather than a floor: every provider integrated with DoorDash appears in it with a tier, so a vendor that is absent altogether is not in the programme at any tier. This vendor appears nowhere in the 64 entries, under any provider id or friendly name — checked mechanically against both fields, with the only near-misses being substring coincidences (Speedline against Lightspeed, vroom_restaurant against Restaurant365) that were read and rejected. SUPERSEDES the 2026 announcement post most of this corpus cited: that post introduces its ten names with the word `include`, which makes it a floor and never a ceiling, and reading it as a ceiling is what produced this cell's prior grade. GRADE HARMONISED TO B, 2026-09-11: this URL was first written at grade A. The adversarial pass ruled E on the principle that the rubric grades by the publisher's relationship to the SCORED vendor, and DoorDash is not that vendor. B is the settlement, for two reasons that are not preference: 39 rows already graded a DoorDash-published document B on this claim before today, and one URL on one claim cannot carry two grades; and E is unworkable, because nine of the 47 rows are `yes` on a differentiator-weight claim, which the grade floor refuses below B. B reads as the product documentation of the programme's own publisher, which is what this registry is. The dissent is recorded in verification.jsonl. https://merchants.doordash.com/api/partner-integrations · retrieved 2026-09-11

B
No

Direct, first-party certified integrations exist with DoorDash, Uber Eats, and Grubhub without requiring a paid middleware layer (Otter/Chowly/Deliverect/Checkmate). differentiator

extensibility-first-party-delivery-integrations

Aggregator support is a manual Customer, Price List and Mode of Payment mapping with no API of any kind. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01

B
No

The POS is a supported endpoint for at least two major aggregation middleware platforms (Deliverect, Chowly, Otter, Checkmate, ItsaCheckmate).

extensibility-middleware-compatibility

URY is not a listed endpoint for Deliverect, Chowly, Otter or Checkmate, and no middleware connector exists in the repo. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
Yes

Native, vendor-maintained connectors exist for QuickBooks Online and at least one other GL/accounting system, with mapped journal entries rather than CSV-only export.

extensibility-accounting-connectors

No connector needed — ERPNext IS the general ledger. Sales, COGS and tax post directly as journal entries in the same database. https://ury.app/features/pulse/ · retrieved 2026-08-01

C
No

Labor hours export natively to at least two named payroll providers (e.g. Gusto, ADP, Paychex, Paylocity) without manual re-keying.

extensibility-payroll-export

Frappe HRMS runs payroll natively in-stack, but no export or integration exists for Gusto, ADP, Paychex or Paylocity. https://ury.app/installation/ · retrieved 2026-08-01

B
Partial

The vendor operates a public integrations marketplace listing named third-party apps that operators can browse and self-install.

extensibility-app-marketplace

The Frappe Cloud marketplace lists 150+ installable apps including URY itself, but it is Frappe's ecosystem marketplace, not a URY restaurant-integration directory. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Partial

The vendor supports a headless/embedded mode where a third-party UI (kiosk, web ordering, drive-thru) drives the POS transaction engine via API.

extensibility-headless-embedded

Already headless in practice — three separate SPAs (POS, admin, KDS) drive the same Frappe backend over REST, so a fourth UI is straightforward. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
Yes

A complete historical data export (orders, customers, menu, payments metadata) is available to the operator on demand, in a documented machine-readable format, at contract end. differentiator

extensibility-data-portability-exit

Full database ownership, bench backup, Frappe CSV export and REST access to every object. AGPL-3.0 also lets you keep running the software indefinitely. https://github.com/ury-erp/ury/blob/develop/LICENSE · retrieved 2026-08-01

B

Reliability, offline & operations

No

Order entry, ticket routing, and check printing continue on-terminal when the internet connection is lost.

reliability-offline-order-entry

Held to the highest bar and confirmed with an affirmative absence, not an inference. pos/src contains only assets, components, data, i18n, lib, pages, store — no service worker, no IndexedDB/Dexie, no sync-queue module; the 44-component listing has no offline component. The README bullet 'POS: Dine-in, takeaway, delivery, offline mode, printer management' is verbatim as quoted and is contradicted by the shipped code. Same finding upholds payments-offline-store-and-forward, hardware-offline-mode, kitchen-offline-operation and reliability-sync-conflict-handling. https://github.com/ury-erp/ury/tree/develop/pos/src · retrieved 2026-08-01 · not refetchable · site policy · graded B when read adversarially verified

C
No

Card payments can be accepted while offline via store-and-forward, not just cash-only fallback. differentiator

reliability-offline-card-auth

No card processing exists in the product at all. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

The vendor publicly documents who bears the loss when a store-and-forward transaction declines after connectivity returns, and states any per-transaction or cumulative offline cap. differentiator

reliability-offline-decline-liability

Nothing to document — no offline card capture exists. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
No

Multiple terminals continue to share a single check/table state over the local network while the internet is down (LAN-only degraded operation, not per-terminal islands). differentiator

reliability-lan-degraded-multi-terminal

All terminals are thin browser clients against one Frappe site. If the site is unreachable, every terminal stops. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
Partial

The vendor documents a local/on-premise transaction engine or edge server (not purely cloud-hosted request/response) for the ordering path. differentiator

reliability-local-transaction-engine

Self-hosting lets you run the whole Frappe stack on an in-store server, a genuine on-premise transaction engine — but URY documents no such deployment pattern. https://ury.app/installation/ · retrieved 2026-08-01

B
No

Kitchen display and/or kitchen printer routing continues to function while offline.

reliability-offline-kds-printing

KOTs arrive via Frappe Socket.io from the backend; the KDS's only offline handling is a 'You are Offline' banner. https://github.com/ury-erp/ury/blob/develop/URYMosaic/src/components/kot.vue · retrieved 2026-08-01

B
No

The system automatically fails over to a backup printer or KDS station when a configured kitchen printer is unreachable, and alerts staff.

reliability-printer-fallback

Four print transports exist (QZ, network, WebSocket, browser) but no automatic failover between them and no staff alert; failures land in a KOT Error Log. https://ury.app/features/core/ · retrieved 2026-08-01

C
No

The vendor documents its conflict-resolution behavior for edits made on two devices during a network partition (e.g. last-write-wins, merge, or operator prompt).

reliability-sync-conflict-handling

No offline mode means no partition to resolve, and no conflict-resolution behaviour is documented. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01

B
No

The vendor publishes an explicit list of which features are unavailable offline (gift cards, loyalty lookup, refunds, manual card entry, text-to-pay).

reliability-offline-feature-matrix

No offline feature matrix is published. The README's one-word 'offline mode' claim is contradicted by the code and the POS architecture doc. https://github.com/ury-erp/ury · retrieved 2026-08-01

B
No

A public, per-component status page exists showing current and historical incident state without a login.

reliability-public-status-page

URY is self-hosted software with no vendor-operated service, so there is no status page. https://ury.app/support/ · retrieved 2026-08-01

B
No

24/7/365 live human support by phone is included in the base subscription, not sold as a premium support tier.

reliability-247-live-support

Support is a Telegram community channel, the ERPNext forum, GitHub issues, or emailing Tridz. No phone support at any hour, at any tier. https://ury.app/support/ · retrieved 2026-08-01

B
No

The vendor offers in-person on-site installation and go-live support (first-party or certified dealer network), not remote-only self-install. differentiator

reliability-onsite-install

MOVED unknown -> no (330th) ON A VENDOR SENTENCE, NOT A ZERO-HIT. CLAIM: the vendor offers in-person on-site installation and go-live support (first-party or certified dealer network), not remote-only self-install. WHAT THE PRIOR PASS DID NOT QUOTE: ury.app/support/ (Nextra page, 'Last updated on August 21, 2026') tells the operator to bring its OWN experts or hire a THIRD PARTY, and says so about production go-live specifically: 'For ongoing support, users may need a commercial arrangement with one of these service providers. While anyone can raise issues through the URY/ERPNext ticket channels, URY is still an early-stage product. For any production deployment or operational use, it is strongly recommended to have experienced ERPNext/Frappe experts involved, either on the company's payroll or via an official partner, to ensure stability, configuration accuracy, and reliable lifecycle management.' The 'official partner' it points at is not URY's - the page's only resources are 'ERPNext/Frappe Forum: https://discuss.erpnext.com' and 'Frappe Partner Directory: https://frappe.io/partners', i.e. Frappe's ERPNext network, and the same page says partners 'may ALSO work with URY'. There is no certified URY dealer network and no first-party cutover service; the vendor positively delegates go-live to the customer's payroll or to somebody else's partner directory. NEW SURFACES (330th): (a) the Frappe Cloud marketplace listing, cloud.frappe.io/marketplace/apps/ury - publisher-authored ('Publisher Tridz Technologies', 'Email info@tridz.com', '96 installs', 'Version 15, Nightly', 'About URY is developed by Tridz Technologies Pvt Ltd and supported by Frappe'), 4,820 chars of stripped text - whose only onboarding sentence is self-serve: 'To start using URY, you need to first install URY and then setup your first restaurant. URY Installation Guide. URY Setup Instructions.' No services, implementation or on-site line anywhere in it. (b) The ury-erp GitHub org's FULL repo set, which prior passes had only partly read: 5 repos (ury 913 files, pos 105, mosaic 117, pulse 123, .github 2), every tree `truncated:false`, read via api.github.com trees + raw.githubusercontent.com at named shas (ury 58e1cb8dcccc7bb093d8b9f7c843e0dc2432474d, pos 39f2f814, mosaic 28b1b17c, pulse 32a2e30c, .github c7b3db36) - never cloned. (c) URY's own published TERMS.md (ury repo, the 'Terms of Service' the marketplace listing links) enumerates the whole relationship in 953 bytes and contains no service at all: 'The App is provided "as is" without any warranties of performance, reliability, or fitness for a particular purpose', 'You are solely responsible for how you use the App', and a Termination clause that is simply 'You may stop using the App at any time.' A vendor that sells an on-site cutover does not ship those as its only commercial terms. (d) ury.app re-derived today: still exactly 9 routes (/, /introduction/, /installation/, /setup/, /support/, /features/{core,pos,mosaic,pulse}/), and /installation/ + /setup/ are a DIY bench guide plus a 15-step self-configuration wizard. CONTROLS over the joined 79,456-byte corpus (9 ury.app routes stripped of <script>, the 9 repo .md files, and the marketplace text), tokenised, word-boundary, case-insensitive: on-site/onsite 0, in-person 0, go-live 0, implementation 0, technician 0, engineer 0, visit 0, dealer 0, reseller 0, certified 0, 'professional services' 0, training 0. Live positives prove the corpus is the right one: install 42, installation 33, bench 52, restaurant 92, support 27, partner(s) 10, self-host* 3. POISON NAMED: the 42 'install' hits are NOT an installation service - every one is the `bench get-app` / `bench --site install-app` self-install or the ERPNext setup wizard; and the single 'deployment' hit is the sentence quoted above, which points AWAY from the vendor. RESIDUAL RISK, stated: Tridz Technologies is an IT-services firm and may sell an unpublished on-site engagement off this surface (tridz.com is a single 13.7 KB brochure page with a generic services list and a WhatsApp number, no URY implementation offering); this `no` is bounded to everything URY and Tridz publish about URY. Retrieved 2026-09-18. https://ury.app/support/ · retrieved 2026-09-18 adversarially verified

B
No

The vendor performs the initial menu build as part of onboarding rather than leaving it entirely to the operator. differentiator

reliability-menu-build-service

Menu build is entirely the operator's job per the setup guide. No onboarding service is offered. https://ury.app/setup/ · retrieved 2026-08-01

B
No

A hardware replacement/advance-exchange program with a stated turnaround time is included or purchasable.

reliability-hardware-replacement-sla

No hardware is sold. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
No

The vendor publishes a current PCI DSS v4.0/4.0.1 Attestation of Compliance or equivalent (e.g. validated P2PE listing) covering the post-March-2025 future-dated requirements.

reliability-pci-dss-4-attestation

Repo-wide grep for PCI returns zero hits and nothing is published on ury.app. No cardholder data flows through URY, but no attestation exists either. https://ury.app/support/ · retrieved 2026-08-01

B
Partial

Multi-factor authentication is enforceable on back-office and POS administrative logins, with role-based permissions.

reliability-mfa-role-based-access

URY documents three roles plus User Permissions scoped by POS Profile and Branch. MFA is not addressed by URY, and issue #163 shows RBAC is not enforced on key endpoints. https://ury.app/setup/ · retrieved 2026-08-01

B
Partial

A public, free training library (video/LMS) and a practice/training mode on the terminal exist for staff onboarding.

reliability-self-serve-training

Public free documentation covering setup, core, POS, Mosaic and Pulse exists at ury.app. No video library, no LMS and no terminal training mode. https://ury.app/introduction/ · retrieved 2026-08-01

B
No

Any terminal can assume the master/server role automatically if the designated primary terminal or local server fails. differentiator

reliability-failover-terminal-role

Architecture is thin clients to one server; there is no master-terminal role to fail over. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

Terminals support an automatic cellular/LTE failover for connectivity, first-party or documented.

reliability-cellular-backup

No first-party hardware and no documented connectivity failover. https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Commercial, compliance & data ownership

Yes

Vendor publicly offers a month-to-month subscription with no minimum multi-year term commitment for its core POS software tier. differentiator

commercial-month-to-month-contract

There is no subscription at all — AGPL software, free on the Frappe Cloud marketplace. Optional Frappe Cloud hosting is month-to-month from $5/mo. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Yes

Vendor's published terms of service or MSA state no early termination fee / no liquidated damages for cancelling the software subscription before term end. differentiator

commercial-no-early-termination-fee

TERMS.md clause 5 in full: 'You may stop using the App at any time.' No fees, no term, no liquidated damages anywhere in the document. https://github.com/ury-erp/ury/blob/develop/TERMS.md · retrieved 2026-08-01

B
Partial

The auto-renewal term and the required cancellation notice window (e.g. 30/60/90 days) are stated in publicly accessible contract terms rather than only in a signed quote.

commercial-autorenew-terms-published

TERMS.md is public but covers only usage, open source, no-warranty, liability and termination. No renewal or notice term exists because there is no subscription. https://github.com/ury-erp/ury/blob/develop/TERMS.md · retrieved 2026-08-01

B
Yes

The POS software can be purchased and operated with a third-party payment processor of the operator's choice (no mandatory in-house processing lock). differentiator

commercial-processing-not-bundled

URY has no in-house processing and takes no share. Payments are recorded as ERPNext Modes of Payment; the operator uses whatever acquirer and terminal they like. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01

B
No

Vendor publishes an interchange-plus (cost-plus) processing rate option with the markup stated as a specific bps + per-transaction figure, rather than only blended/flat card-present rates. differentiator

commercial-interchange-plus-published

URY is not a payment facilitator and publishes no processing rates of any structure. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
No

The processing agreement caps or prohibits unilateral vendor-initiated rate increases outside of pass-through interchange/network changes, or grants penalty-free exit on any increase. differentiator

commercial-rate-increase-clause

There is no processing agreement. The vendor cannot raise a rate it does not charge, but no clause exists to cite. https://github.com/ury-erp/ury/blob/develop/TERMS.md · retrieved 2026-08-01

B
Yes

Per-location and per-additional-terminal software pricing is published as specific dollar figures on the vendor's public site (not 'contact sales' only).

commercial-pricing-published

Published as Free on the Frappe Cloud marketplace listing, with no per-terminal or per-location software charge. Hosting tiers are separately published by Frappe Cloud. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01

B
Partial

Individual modules (online ordering, KDS, loyalty, inventory, payroll, marketing) can be purchased à la carte and cancelled independently without repricing the base POS subscription. differentiator

commercial-module-unbundling

POS, Mosaic KDS and Pulse install as one app, but everything is free so bundling carries no cost. ERPNext and Frappe HRMS are separate installable apps. https://ury.app/installation/ · retrieved 2026-08-01

B
Yes

All required terminals, KDS screens, and printers can be purchased outright at a published price, with no mandatory multi-year hardware lease or rental.

commercial-hardware-purchase-outright

All hardware is third-party commodity equipment the operator buys outright. No lease or rental exists because the vendor sells no hardware. https://ury.app/introduction/ · retrieved 2026-08-01

B
Yes

Vendor documents support for at least one non-proprietary/third-party hardware option (e.g. standard iPad, Epson/Star ESC/POS printers, generic cash drawer) rather than requiring vendor-only devices. differentiator

commercial-hardware-not-locked

Setup guide: 'Set up CUPS (Common Unix Printing System) for network printing', add your printers and select the corresponding printer on the URY Room for invoice printing from POS, with per-room printers for multi-room outlets; for QZ Tray, 'Check this box to enable QZ printing' and 'Enter the Network IP for QZ printing' (cert at ury/public/files/cert.pem). The URY Printer Settings doctype holds only a Bill check and a Link to ERPNext's generic Network Printer Settings, so any CUPS/ESC-POS network printer works, and the POS itself is a browser app on desktops, tablets or phones. No vendor-only device is required or sold. https://github.com/ury-erp/ury/blob/develop/SETUP.md · retrieved 2026-08-06 adversarially verified

B
Yes

Operators can self-serve export their full transactional history (orders, line items, payments, labor) to CSV or a documented API without contacting support or paying a fee.

commercial-data-export-self-serve

Frappe list-view and report CSV/Excel export, full REST access to POS Invoice and line items, and direct database access when self-hosted. No support ticket, no fee. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
Partial

Guest/customer records, loyalty balances or point ledgers, and gift-card liability balances are exportable in machine-readable form by the operator. differentiator

commercial-export-customer-and-loyalty

Customer records export freely, but there are no loyalty balances or gift-card liabilities to export because neither feature exists. https://docs.frappe.io/framework/user/en/api/rest · retrieved 2026-08-01

B
Partial

Contract or documentation specifies a post-termination data retrieval window (a defined number of days during which the operator can still export their data) rather than immediate cutoff. differentiator

commercial-post-termination-export-window

Sourced to LICENSE, which is a copyright licence and says nothing about data or post-termination access. True for self-hosters by construction; undefined for the Frappe Cloud path URY itself recommends. No published export window exists either way. https://github.com/ury-erp/ury/blob/develop/LICENSE · retrieved 2026-08-01 adversarially verified

B
Partial

Published terms explicitly state the merchant owns its transaction and customer data, and constrain the vendor's right to use or resell that data (beyond aggregated/de-identified use) for its own products or marketing. differentiator

commercial-data-ownership-clause

TERMS.md is silent on data ownership and vendor data use — a real gap. In practice self-hosting means the vendor never receives your data at all. https://github.com/ury-erp/ury/blob/develop/TERMS.md · retrieved 2026-08-01

B
No

Vendor documents validated P2PE or hardware-encrypted card entry plus tokenization such that the merchant's PCI scope is reduced to SAQ A / SAQ P2PE-HW, and names the applicable SAQ.

commercial-pci-p2pe-tokenization

No card entry, no tokenization, no P2PE and no SAQ guidance published. Card data is handled entirely outside the product by whatever terminal the operator chose. https://ury.app/support/ · retrieved 2026-08-01

B
No

Vendor documents PCI DSS v4.0.1 future-dated controls in effect since 31 Mar 2025 — notably MFA for all access to the cardholder data environment including POS and back-office logins, and (for hosted ordering pages) payment-page script integrity monitoring per Req 6.4.3/11.6.1.

commercial-pci-dss-4-controls

Not addressed anywhere. Open issue #162 documents the opposite posture: a whitelisted endpoint returning the QZ Tray private key in plaintext to any authenticated user. https://github.com/ury-erp/ury/issues/162 · retrieved 2026-08-01

B
No

Product provides in-app tooling for CCPA/CPRA and GDPR data-subject requests — locating, exporting, and deleting an individual guest's records — plus a published DPA the operator can execute.

commercial-privacy-dsar-tooling

No DSAR workflow and no published DPA. An admin can manually delete a Customer document, which is not the same thing. https://ury.app/support/ · retrieved 2026-08-01

B
No

Vendor publishes an accessibility conformance report (VPAT/ACR) claiming WCAG 2.1 AA (or later) for its self-order kiosk and consumer web-ordering surfaces, including a documented tactile/audio non-visual access mode on kiosks. differentiator

commercial-wcag-kiosk-accessibility

No VPAT or ACR published, and no kiosk product exists. https://ury.app/support/ · retrieved 2026-08-01

B
No

POS supports card-network-compliant dual pricing / cash discount or surcharging with automatic exclusion of debit and prepaid cards from any surcharge, and required receipt and menu-board disclosure of the fee. differentiator

commercial-dual-pricing-compliant

Repo-wide grep for surcharge returns zero hits, and there is no card-brand awareness in the product. https://github.com/ury-erp/ury · retrieved 2026-08-01

B

Adversarial verification

An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 75 values — 68 upheld, 6 downgraded, 1 upgraded. It separately resolved 0 previously unknown values. 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 against the vendor pages, not roundups. cloud.frappe.io/marketplace/apps/ury shows Free, publisher Tridz Technologies Pvt Ltd (info@tridz.com), 89 installs. frappe.io/cloud/pricing shows 'Sites $5 onwards /mo', 'Servers $40 onwards /mo', 14-day free trial, monthly card billing. source
pricing.early_termination_feeupheldConsistent with a free AGPL app with no subscription; nothing in the commercial record contradicts it. No ETF can exist where no contract exists. Same reasoning upholds commercial-month-to-month-contract and commercial-no-early-termination-fee. source

Capability claims

ClaimAs first scoredVerdictWhat the verifier found
multi-location-multi-tax-jurisdictionyes — Sales Taxes and Charges Templates apply per POS profile and branch with multiple simultaneous rates, inclusive or exclusive, and aggregator invoices can omit taxdowngrade-to-partialI read the cited page. ury.app/setup documents exactly one tax control — a 'Default Tax Template' field on URY Restaurant — plus an aggregator 'Create Invoice without Tax' checkbox. It does NOT document multiple simultaneous rates, inclusive-vs-exclusive handling, or per-branch tax variation. Those are ERPNext platform capabilities the researcher imported into a URY cell without a URY source. Partial is the defensible ceiling. source
extensibility-menu-write-apiyes — URY Menu, URY Menu Item and Item are ordinary DocTypes writable through Frappe's generic REST resource endpointsdowngrade-to-partialThe only source is Frappe's generic REST reference, which never mentions URY Menu. This is inference from 'everything is a DocType', not a documented menu-sync contract — no payload shape, no validation semantics for the child tables, no example. The same researcher scored extensibility-order-injection-api 'partial' on identical reasoning; the two cells must be consistent. source
reporting-history-retentionyes (inferred) — no vendor-imposed retention window or archive feedowngrade-to-partialScored 'yes' with no source URL at all, in violation of the evidence bar. It holds for self-hosting only; operators on the vendor-endorsed Frappe Cloud path are bound by that plan's storage and backup-retention terms, which URY does not address. Partial. source
commercial-post-termination-export-windowyes — self-hosted operators never lose access, AGPL guarantees continued usedowngrade-to-partialSourced to LICENSE, which is a copyright licence and says nothing about data or post-termination access. True for self-hosters by construction; undefined for the Frappe Cloud path URY itself recommends. No published export window exists either way. source
reporting-scheduled-deliveryyes — Frappe Auto Email Report, sourced to the REST API pageupheldSame sourcing defect: the REST page does not mention Auto Email Report. The feature is real and documented at docs.frappe.io/erpnext/auto-email-reports (recipient list, frequency, HTML/XLSX/CSV, 500-row cap, midnight send). Note it is an ERPNext feature, not URY's, and send timing is fixed at midnight — worth stating. source
order-capture-floor-plan-editorpartial — 'interactive drag-and-drop placement of circle/square/rectangle tables with capacity'upheldScore survives but the note's central claim does not. ury.app/setup shows URY Table as a config record with a 'Table Shape' field, and ury.app/features/pos describes tables 'visually represented as cards'. Neither page documents any drag-and-drop or visual layout editor. Partial rests on room-scoped table records with shape and seating capacity only — the editor language should be struck. source
order-capture-split-mergepartial, sourced to ury.app/setupupheldVerified independently, but not at the cited URL — neither ury.app/setup nor ury.app/features/core nor /features/pos documents bill split, bill consolidation or table merge. The evidence is code only: pos/src/components contains BillSplitDialog.tsx, SplitGroupPanel.tsx, BillMergeDialog.tsx, TableMergeDialog.tsx, TableUnmergeDialog.tsx and MergedBillPanel.tsx. Partial holds; confidence should be 'code-verified, undocumented'. source
reliability-offline-order-entrynoupheldHeld to the highest bar and confirmed with an affirmative absence, not an inference. pos/src contains only assets, components, data, i18n, lib, pages, store — no service worker, no IndexedDB/Dexie, no sync-queue module; the 44-component listing has no offline component. The README bullet 'POS: Dine-in, takeaway, delivery, offline mode, printer management' is verbatim as quoted and is contradicted by the shipped code. Same finding upholds payments-offline-store-and-forward, hardware-offline-mode, kitchen-offline-operation and reliability-sync-conflict-handling. source
kitchen-station-routingyesupheldVerified verbatim: 'Production units are used to rule multiple kitchens. Each production unit has its own dedicated web-based interface, displaying specific items' and 'Printers can be configured separately for each production unit.' Native first-party, not a partner integration. source
kitchen-sla-alertsyesupheldVerified: 'KOT Warning Time' field in the POS profile triggers the warning, plus 'KOT Audio Alert' and 'Notify KOT Delay' toggles. Configurable, native. source
kitchen-order-modification-alertsyesupheldVerified colour semantics on the live board: white new table orders, blue takeaway, orange modified, red cancelled/partially cancelled. source
inventory-recipe-bom-costingyesupheldVerified: Daily P&L 'Cost of Goods Sold' 'includes the cost of the items sold, factoring in product bundles and Bill of Materials (BOM) sub-items.' Native to the same install, though the BOM engine is ERPNext's rather than URY's. source
inventory-native-not-partneryesupheldChallenged as a possible add-on and it survives: the installation guide makes ERPNext a hard prerequisite ('bench get-app --branch version-15 erpnext'), so inventory/BOM/purchasing are in the same site and database. No third-party contract. source
labor-server-performance-metricsyesupheldVerified in the Pulse report list: Employee Sales, Employee Item Wise Sales, Average Bill Value, Cancelled Invoices all present. source
labor-native-payrollpartialupheldChallenged the 'required dependency' framing and it holds: the installation guide installs frappe/hrms and calls it 'a dependency for employee management reports in URY'. Payroll is HRMS's, not URY's, and is not US tax-filing payroll — partial is right. source
reporting-tier-paywallyes — 'all 14 Pulse reports'upheldScore correct (no tiers, nothing paywalled), but the count is wrong: the Pulse page enumerates 13 reports (Today's Sales, Daywise Sales, Daywise Invoices, Month Wise Sales, Average Bill Value, Cancelled Invoices, Item Wise Sales, Customer Data, Repeated Customers, Employee Sales, Employee Item Wise Sales, Service Wise Sales, Time Wise Sales), plus the separate Daily P&L. source
extensibility-doordash-preferredno, with a note listing the '2026 DPIP cohort' as Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiperupheldThe 'no' is safe. But the DPIP roster is unsourced — the attached URL points at a URY aggregator_settings JSON file, which obviously cannot evidence a DoorDash program cohort. That roster should be cut or given a DoorDash-owned source; as written it is exactly the kind of plausible-but-uncited detail this review exists to strip. source
payments-refund-void-controlspartial, resting on issue #163upheldI verified the underlying issue rather than trusting the summary: #162 '[Security] Exposed QZ Private Key via Public API' is Critical and open (1 Jul 2026); #163 '[Security] Missing Permission Checks on Critical Endpoints' is High and open (1 Jul 2026), alleging any authenticated user can cancel any invoice and that cancel_order manipulates the database via raw SQL, bypassing Frappe's document lifecycle. Both cited accurately. This equally upholds order-capture-void-comp-controls, labor-granular-rbac and reliability-mfa-role-based-access at partial. source
order-capture-floor-plan-editorpartial, grade B - Score survives but the note's central claim does not. ury.apupheldGrade 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
order-capture-transfer-auditpartial, grade B - Table transfer and captain transfer are documented POS 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
order-capture-kiosk-first-partyno, grade B - Repo grep for 'kiosk' matches only the browser silent-print 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-topping-quantity-tiersno, grade B - Cart quantity adjusters increment the whole add-on item; no 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-upsell-promptsno, grade B - POS shows a returning customer's top three previously ordereupheldGrade 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-recipe-linkagepartial, grade B - ERPNext BOMs drive URY's COGS and materials-consumed figuresupheldGrade 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-split-tenderpartial, grade B - Multiple ERPNext Modes of Payment can settle one invoice, 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
kitchen-station-routingyes, grade B - Verified verbatim: 'Production units are used to rule multipupheldGrade 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
kitchen-expo-consolidationno, grade B - Each production unit has an independent screen showing its oupheldGrade 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
kitchen-course-firingno, grade B - Menu courses categorise items and drive a serve_priority sorupheldGrade 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
kitchen-prep-time-pacingno, grade B - Only a flat KOT Warning Time exists. No per-item cook times 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
kitchen-order-throttlingno, grade B - 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
kitchen-bump-bar-hardwareno, grade B - Mosaic documents click-to-Serve and click-to-Confirm touch iupheldGrade 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
kitchen-all-day-countsno, grade B - The KDS renders per-order cards with item quantities. No croupheldGrade 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
kitchen-sla-alertsyes, grade B - Verified: 'KOT Warning Time' field in the POS profile triggeupheldGrade 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
kitchen-item-build-screenspartial, grade B - KOT cards show items, quantities and item-level plus order-lupheldGrade 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
kitchen-recall-refirepartial, grade B - Items can be toggled served/unserved on the KDS and KOTs repupheldGrade 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
kitchen-guest-ready-notificationno, grade B - Notifications go to staff recipients for KOT delays only. NoupheldGrade 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
kitchen-speed-of-service-reportingpartial, grade B - KOT creation and serve times are captured (calculate_and_setupheldGrade 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-cash-reconcilepartial, grade B - POS Opening/Closing Vouchers reconcile cash per profile and 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-3p-reconciliationpartial, grade B - Each aggregator maps to its own Customer and Mode of PaymentupheldGrade 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-promo-parityno, grade B - Discounts are applied per invoice at the POS only; there areupheldGrade 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-unified-profilepartial, grade B - All orders attach to a single ERPNext Customer record and thupheldGrade 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-rfm-segmentationpartial, grade B - Pulse ships Customer Data and Repeated Customers reports. ThupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
guest-loyalty-native-email-smsno, grade B - Frappe's email engine is used for KOT delay notifications toupheldGrade 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
labor-manager-override-auditpartial, grade B - Cancellation reason and cancelled-by are captured and reportupheldGrade 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
labor-realtime-labor-percentpartial, grade B - URY Daily P&L reports total employee costs with a percent-ofupheldGrade 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-costingyes, grade B - Verified: Daily P&L 'Cost of Goods Sold' 'includes the cost 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-theoretical-vs-actualpartial, grade B - URY Daily P&L reports materials consumed and BOM-derived COGupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
inventory-cogs-gl-exportpartial, grade B - COGS posts natively into ERPNext's own general ledger ratherupheldGrade 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-menu-margin-linkagepartial, grade B - Item Wise Sales plus the BOM-derived Cost of Goods table givupheldGrade 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-dashboardpartial, grade B - A Today's Sales report plus Frappe number cards and dashboarupheldGrade 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-eod-closeoutyes, grade B - POS Closing Voucher consolidates the day's invoices per profupheldGrade 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-pmix-modifier-levelpartial, grade B - Item Wise Sales and Time Wise Sales cover item-level mix 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
reporting-comps-voids-auditpartial, grade B - Cancelled Invoices report carries Cancelled By and CancellatupheldGrade 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-cash-over-shortpartial, grade B - ERPNext POS Opening/Closing Vouchers compute expected versusupheldGrade 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-labor-productivitypartial, grade B - Daily P&L gives total employee cost and percent of sales 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
reporting-server-scorecardspartial, grade B - Employee Sales and Employee Item Wise Sales plus Average BilupheldGrade 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-channel-profitabilitypartial, grade B - Service Wise Sales segments revenue by order type including 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-history-retentionpartial, grade B - Scored 'yes' with no source URL at all, in violation of 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
reporting-anomaly-alertspartial, grade B - Frappe Notifications fire on document conditions and URY useupheldGrade 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-guest-cohortspartial, grade B - Customer Data, Repeated Customers and Daywise Customer DetaiupheldGrade 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
hardware-kdspartial, grade B - URY Mosaic is a genuine first-party KDS with per-kitchen proupheldGrade 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
hardware-printer-compatibilitypartial, grade B - URY Printer Settings supports network printers by IP and porupheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
extensibility-accounting-connectorsyes, grade B - No connector needed — ERPNext IS the general ledger. Sales, upheldGrade only, value untouched. Corpus-wide mechanical pass (workflows/regrade-marketing-pages.mjs): the cited page is a first-party pricing/feature/product page, which atlas-evidence-rules grades C ("vendor pricing page or feature page - first-party, but written to sell"), not B ("vendor product documentation - the manual, the help centre, the admin guide"). No claim was re-researched in this pass and no evidence was re-read; only the grade was brought into line with the source type. source
reliability-printer-fallbackno, grade B - Four print transports exist (QZ, network, WebSocket, browserupheldGrade 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
kitchen-order-modification-alertsyes/B - Verified colour semantics on the live board: white new table orders, blue takeawupheldThe feature page was marketing; the capability is in the shipped KDS component. kot.vue assigns a distinct ticket colour for 'Order Modified' and for 'Cancelled'/'Partially cancelled', and renders the prior quantity per line item on cancelled/partially-cancelled tickets. source
labor-server-performance-metricsyes/B - Verified in the Pulse report list: Employee Sales, Employee Item Wise Sales, Averagdowngrade-to-partialThe Pulse feature page only lists report names. The report JSON in the repo shows Employee Sales aggregates count of invoices and sum of grand_total by waiter and Employee Item Wise Sales aggregates qty and amount per item for one employee; neither derives average check, attachment rate nor void/comp rate, and Cancelled Invoices has no server column. source
reporting-tier-paywallyes/B - Score correct (no tiers, nothing paywalled), but the count is wrong: the Pulse pagupheldChecked the source rather than the Pulse marketing page: all 14 reports plus the Daily P and L live in the one AGPL-3.0 app, with no separate analytics app, licence check or paid edition anywhere in ury-erp/ury. source
extensibility-free-sandboxyes/B - Frappe Cloud offers a 14-day free trial with no payment, and self-hosting a throwadowngrade-to-partialThe cited evidence was Frappe Cloud's pricing page and an assumption that DEMO/ holds seeded data; DEMO/ is 13 configuration screenshots. Free self-hosting is real and documented in INSTALLATION.md, but no seeded sandbox or vendor-hosted developer environment is published. source
commercial-hardware-not-lockedyes/B - Runs in a browser on any device, and printing supports generic network printers byupheldReplaced the ury.app features page with the repo setup guide and doctype source: printing is via CUPS network printers registered as ERPNext Network Printer Settings or via QZ Tray at an operator-supplied IP, and URY ships no hardware of its own. source
reporting-webhookspartial / B - "Frappe Webhooks fire on document events with HMAC-SHA256 signing via X-Frappe-Webhook-Signature and request logg"upheldCitation-staleness check: the recorded URL is a 301 to https://docs.frappe.io/framework/user/en/guides/integration/webhooks. I fetched the destination and read the article body rather than trusting the 200. Every quoted element is present at the new URL - HMAC-SHA256 signing header, doc_event triggering, and the request log - and a search of the full text finds no mention of retry, backoff or redelivery, so the shortfall that makes this partial rather than yes is still positively supported. Re-pointed the citation; value and grade stand. source
extensibility-webhooks-pushpartial / B - "Frappe Webhooks push on document events, so POS Invoice created, submitted and cancelled can b"upheldCitation-staleness check. The cited page 301s to .../integration/webhooks; I read the destination body and it still says 'when the doc_event occurs, the source site makes an HTTP request to the URI configured for the webhook', which is the push mechanism this cell asserts. It documents generic DocType events only - no named order lifecycle - and nothing in it, or anywhere in URY's own material, ships a preconfigured POS Invoice webhook, so the partial's shortfall is unaffected. URL re-pointed only. source
extensibility-webhook-reliabilitypartial / B - "HMAC-SHA256 signing via X-Frappe-Webhook-Signature plus a webhook request log are documented. R"upheldCitation-staleness check on a differentiator cell. The recorded URL 301s to .../integration/webhooks; I read the destination article rather than accepting the 200. Its 'Webhook Security' section gives the HMAC-SHA256 signature header word for word and its 'Webhook Request Log' section confirms the log, so the supporting leg is live at the new URL. Searching the whole page for retry, backoff or redelivery returns nothing, and the log is scoped to successful requests, which is positive support for the withheld half rather than mere silence. Partial stands at grade B; citation re-pointed. source
guest-loyalty-privacy-rights-toolingno (grade F), uncited: Frappe lets an admin find and delete any Customer document directly, but no purpose-built DSAR access or deletion workflow is provided.upgrade-to-partialOverturned. Frappe ships personal_data_deletion_request, personal_data_deletion_step and personal_data_download_request with anonymize/redact/full_match_privacy_docs/partial_privacy_docs in the controller, so purpose-built DSAR tooling does exist. But URY's hooks.py leaves the whole `user_data_fields` block commented out as the template stub, so no URY doctype is registered with the erasure engine and deletion does not propagate to its Customer or loyalty records. Measured over the complete 913-path tree (`truncated: false`), which contains no gdpr/dsar/privacy/erasure path of its own. source

Sources

Every URL this record cites. 42 in total.