Vendors / Open source & self-hostable
URY
URY (ury-erp)
dossier live legacy rubric
- Claims in scope
- 278
- Scored
- 278
- Assessed
- 273
- Unknown
- 5
- Not applicable
- 36
- Cells challenged
- 74
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
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
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
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
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
order-capture-bar-tab-preauth differentiator
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
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
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
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
order-capture-qr-same-check differentiator
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
order-capture-kiosk-first-party differentiator
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
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
order-capture-voice-ai differentiator
No voice product and no partner program of any kind. https://github.com/ury-erp/ury · retrieved 2026-08-01
order-capture-scheduled-orders
No scheduled/future-order handling found in URY code; ERPNext posting dates exist but no fire-time injection. Could not confirm either way.
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
order-capture-order-ready-signal differentiator
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
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
Menu, modifiers & pricing engine
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
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
menu-pricing-fractional-placement differentiator
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
menu-pricing-half-and-half-rule differentiator
https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read
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
menu-pricing-size-style-matrix differentiator
'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
menu-pricing-included-allowance differentiator
https://github.com/ury-erp/ury/tree/develop/ury/ury/doctype · retrieved 2026-08-01 · not refetchable · site policy · graded B when read
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
menu-pricing-upsell-prompts differentiator
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
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
menu-pricing-countdown-auto-86 differentiator
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
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
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
menu-pricing-allergen-nutrition
Repo-wide grep for allergen and nutrition returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
menu-pricing-recipe-linkage differentiator
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
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
Payments & money movement
payments-processor-choice differentiator
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
payments-published-rates differentiator
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
payments-surcharge-guardrails differentiator
Repo-wide grep for surcharge returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
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
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
payments-tip-pooling differentiator
No tip fields or tip-pool logic exist in the codebase. https://github.com/ury-erp/ury · retrieved 2026-08-01
payments-offline-store-and-forward differentiator
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
payments-offline-decline-liability differentiator
Nothing to document — no offline card capture exists. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01
payments-gift-cards
Repo-wide grep for 'gift' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
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.
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
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
payments-card-on-file differentiator
No tokenization or card storage of any kind. https://github.com/ury-erp/ury · retrieved 2026-08-01
payments-payout-timing differentiator
URY moves no money and therefore has no deposit schedule. https://github.com/ury-erp/ury · retrieved 2026-08-01
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
Kitchen & production
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
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
kitchen-course-firing differentiator
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
kitchen-prep-time-pacing differentiator
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
kitchen-channel-pause-propagation differentiator
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
kitchen-order-ready-callback differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
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
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
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
kitchen-printer-fallback differentiator
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
kitchen-offline-operation differentiator
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
kitchen-item-build-screens differentiator
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
kitchen-pizza-fractional-display differentiator
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
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
kitchen-order-modification-alerts differentiator
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
kitchen-guest-ready-notification differentiator
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
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
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
kitchen-prep-forecasting
Repo-wide grep for 'forecast' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
Delivery, dispatch & third-party channels
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
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
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
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
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
delivery-daas-dispatch
No courier marketplace integration of any kind. https://github.com/ury-erp/ury · retrieved 2026-08-01
delivery-3p-direct-integration differentiator
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
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
delivery-menu-push
https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01
delivery-86-sync
https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01
delivery-store-pause
https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01
delivery-3p-reconciliation differentiator
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
delivery-injection-error-visibility differentiator
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
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
Digital ordering & guest-facing channels
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
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
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
digital-voice-ai-phone differentiator
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
digital-sms-ordering
Repo-wide grep for SMS returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
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
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
digital-guest-data-ownership differentiator
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
digital-checkout-pci-sca
No digital checkout exists and no PCI documentation is published. https://ury.app/support/ · retrieved 2026-08-01
digital-surcharge-transparency differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
Guest data, loyalty & marketing
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
guest-loyalty-thirdparty-identity-attach differentiator
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
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
guest-loyalty-offline-behavior differentiator
No loyalty and no offline mode, so nothing is documented. https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-offer-stacking-rules differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-targeted-offers differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-rfm-segmentation differentiator
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
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
guest-loyalty-native-email-sms differentiator
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
guest-loyalty-10dlc-registration
No SMS capability exists; 10DLC is not addressed anywhere. https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-campaign-attribution differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-data-export-portability differentiator
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
guest-loyalty-review-capture-routing differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-privacy-rights-tooling
Frappe lets an admin find and delete any Customer document directly, but no purpose-built DSAR access or deletion workflow is provided.
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
guest-loyalty-ai-offer-recommendation differentiator
https://github.com/ury-erp/ury · retrieved 2026-08-01
guest-loyalty-stored-value-gift
Repo-wide grep for 'gift' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
Labor & workforce
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
labor-photo-punch-verification differentiator
Possibly available in Frappe HRMS; not verified, and URY surfaces nothing.
labor-offline-time-punch differentiator
Nothing in the stack operates offline. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01
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
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
labor-native-scheduling differentiator
Frappe HRMS covers leave and attendance; shift scheduling was not verified. URY itself ships none.
labor-demand-labor-forecast differentiator
Repo-wide grep for 'forecast' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
labor-realtime-labor-percent differentiator
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
labor-break-compliance-by-state differentiator
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
labor-tip-pooling-rules
Repo-wide grep finds no tip handling whatsoever. https://github.com/ury-erp/ury · retrieved 2026-08-01
labor-qualified-tips-w2-reporting differentiator
No tips, no US payroll, no W-2 concept. https://github.com/ury-erp/ury · retrieved 2026-08-01
labor-native-payroll differentiator
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
labor-payroll-export-formats
No Gusto, ADP, Paychex or QuickBooks payroll connector is documented for URY. https://ury.app/installation/ · retrieved 2026-08-01
labor-shift-swap-workflow differentiator
Possibly available in Frappe HRMS; not verified and not surfaced by URY.
labor-server-performance-metrics differentiator
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
Inventory, purchasing & cost control
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
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.
inventory-theoretical-vs-actual differentiator
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
inventory-realtime-depletion differentiator
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.
inventory-86-auto-sync differentiator
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
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.
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
inventory-vendor-catalogs-edi differentiator
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
inventory-price-change-alerts differentiator
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.
inventory-par-auto-suggest differentiator
ERPNext Item reorder levels generate Material Requests from static reorder points. No sales-forecast-driven mode exists.
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
inventory-shelf-life-expiry
ERPNext batches carry expiry dates and shelf life; no expiring-soon alert is documented as a URY feature.
inventory-bar-partial-bottle
No scale integration or bottle-fraction counting anywhere. https://github.com/ury-erp/ury · retrieved 2026-08-01
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
inventory-native-not-partner differentiator
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
inventory-menu-margin-linkage differentiator
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
Reporting, BI & data access
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
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
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
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
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
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
reporting-server-scorecards differentiator
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
reporting-channel-profitability differentiator
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
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
reporting-public-api differentiator
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
reporting-webhooks differentiator
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
reporting-api-not-upcharged differentiator
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
reporting-tier-paywall differentiator
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
reporting-history-retention differentiator
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
reporting-anomaly-alerts differentiator
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
reporting-guest-cohorts differentiator
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
reporting-sales-forecast differentiator
Repo-wide grep for 'forecast' returns zero hits. https://github.com/ury-erp/ury · retrieved 2026-08-01
reporting-tip-tax-compliance
No tip data is captured anywhere in the product. https://github.com/ury-erp/ury · retrieved 2026-08-01
Multi-location, franchise & enterprise governance
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
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
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
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
multi-location-cross-location-giftcard
No gift card capability exists. https://github.com/ury-erp/ury · retrieved 2026-08-01
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
multi-location-multi-brand differentiator
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.
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
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
Hardware & physical footprint
hardware-commodity-devices differentiator
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
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
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
hardware-handheld-battery-swap differentiator
https://ury.app/introduction/ · retrieved 2026-08-01
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
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
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
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
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
hardware-pricing-transparency differentiator
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
hardware-ownership-vs-lease differentiator
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
hardware-usable-after-churn differentiator
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
hardware-rma-sla differentiator
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
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
hardware-remote-device-management differentiator
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
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
Integrations, API & extensibility
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
extensibility-api-access-cost differentiator
Free software, no subscription, no per-location fee, no plan gating. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01
extensibility-free-sandbox differentiator
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
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
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
extensibility-webhook-reliability differentiator
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
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
extensibility-menu-write-api differentiator
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
extensibility-doordash-preferred differentiator
The '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. https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json · retrieved 2026-08-01 adversarially verified
extensibility-first-party-delivery-integrations differentiator
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
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
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
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
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
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
extensibility-data-portability-exit differentiator
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
Reliability, offline & operations
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
reliability-offline-card-auth differentiator
No card processing exists in the product at all. https://github.com/ury-erp/ury/blob/develop/AGENTS.MD · retrieved 2026-08-01
reliability-offline-decline-liability differentiator
Nothing to document — no offline card capture exists. https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD · retrieved 2026-08-01
reliability-lan-degraded-multi-terminal differentiator
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
reliability-local-transaction-engine differentiator
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
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
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
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
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
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
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
reliability-onsite-install differentiator
Tridz or Frappe partners may offer paid on-site implementation, but URY publishes no such offering, no terms and no pricing.
reliability-menu-build-service differentiator
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
reliability-hardware-replacement-sla
No hardware is sold. https://cloud.frappe.io/marketplace/apps/ury · retrieved 2026-08-01
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
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
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
reliability-failover-terminal-role differentiator
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
reliability-cellular-backup
No first-party hardware and no documented connectivity failover. https://github.com/ury-erp/ury · retrieved 2026-08-01
Commercial, compliance & data ownership
commercial-month-to-month-contract differentiator
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
commercial-no-early-termination-fee differentiator
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
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
commercial-processing-not-bundled differentiator
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
commercial-interchange-plus-published differentiator
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
commercial-rate-increase-clause differentiator
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
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
commercial-module-unbundling differentiator
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
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
commercial-hardware-not-locked differentiator
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
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
commercial-export-customer-and-loyalty differentiator
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
commercial-post-termination-export-window differentiator
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
commercial-data-ownership-clause differentiator
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
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
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
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
commercial-wcag-kiosk-accessibility differentiator
No VPAT or ACR published, and no kiosk product exists. https://ury.app/support/ · retrieved 2026-08-01
commercial-dual-pricing-compliant differentiator
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
Adversarial verification
An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 74 values — 68 upheld, 6 downgraded, 0 upgraded. This is published in full because a reader who can see which values were contested, on what evidence, and which way they moved has something no affiliate-funded comparison offers.
Pricing and identity
| Field | Verdict | What the verifier found |
|---|---|---|
| pricing.software | upheld | Verified 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_fee | upheld | Consistent 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
| Claim | As first scored | Verdict | What the verifier found |
|---|---|---|---|
| multi-location-multi-tax-jurisdiction | yes — Sales Taxes and Charges Templates apply per POS profile and branch with multiple simultaneous rates, inclusive or exclusive, and aggregator invoices can omit tax | downgrade-to-partial | 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. source |
| extensibility-menu-write-api | yes — URY Menu, URY Menu Item and Item are ordinary DocTypes writable through Frappe's generic REST resource endpoints | downgrade-to-partial | 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. source |
| reporting-history-retention | yes (inferred) — no vendor-imposed retention window or archive fee | downgrade-to-partial | 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. source |
| commercial-post-termination-export-window | yes — self-hosted operators never lose access, AGPL guarantees continued use | downgrade-to-partial | 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. source |
| reporting-scheduled-delivery | yes — Frappe Auto Email Report, sourced to the REST API page | upheld | 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. source |
| order-capture-floor-plan-editor | partial — 'interactive drag-and-drop placement of circle/square/rectangle tables with capacity' | upheld | 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. source |
| order-capture-split-merge | partial, sourced to ury.app/setup | upheld | 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'. source |
| reliability-offline-order-entry | no | upheld | 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. source |
| kitchen-station-routing | yes | upheld | 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. source |
| kitchen-sla-alerts | yes | upheld | Verified: '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-alerts | yes | upheld | Verified colour semantics on the live board: white new table orders, blue takeaway, orange modified, red cancelled/partially cancelled. source |
| inventory-recipe-bom-costing | yes | upheld | 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. source |
| inventory-native-not-partner | yes | upheld | 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. source |
| labor-server-performance-metrics | yes | upheld | Verified in the Pulse report list: Employee Sales, Employee Item Wise Sales, Average Bill Value, Cancelled Invoices all present. source |
| labor-native-payroll | partial | upheld | 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. source |
| reporting-tier-paywall | yes — 'all 14 Pulse reports' | upheld | Score 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-preferred | no, with a note listing the '2026 DPIP cohort' as Checkmate, Chowly, Deliverect, Otter, PAR, Qu, Square, Stream, Toast, UrbanPiper | upheld | The '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-controls | partial, resting on issue #163 | upheld | 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. source |
| order-capture-floor-plan-editor | partial, grade B - Score survives but the note's central claim does not. ury.ap | upheld | Grade 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-audit | partial, grade B - Table transfer and captain transfer are documented POS actio | upheld | Grade 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-party | no, grade B - Repo grep for 'kiosk' matches only the browser silent-print | upheld | Grade 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-tiers | no, grade B - Cart quantity adjusters increment the whole add-on item; no | upheld | Grade 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-prompts | no, grade B - POS shows a returning customer's top three previously ordere | upheld | Grade 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-linkage | partial, grade B - ERPNext BOMs drive URY's COGS and materials-consumed figures | upheld | Grade 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-tender | partial, grade B - Multiple ERPNext Modes of Payment can settle one invoice, an | upheld | Grade 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-routing | yes, grade B - Verified verbatim: 'Production units are used to rule multip | upheld | Grade 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-consolidation | no, grade B - Each production unit has an independent screen showing its o | upheld | Grade 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-firing | no, grade B - Menu courses categorise items and drive a serve_priority sor | upheld | Grade 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-pacing | no, grade B - Only a flat KOT Warning Time exists. No per-item cook times | upheld | Grade 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-throttling | no, grade B - | upheld | Grade 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-hardware | no, grade B - Mosaic documents click-to-Serve and click-to-Confirm touch i | upheld | Grade 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-counts | no, grade B - The KDS renders per-order cards with item quantities. No cro | upheld | Grade 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-alerts | yes, grade B - Verified: 'KOT Warning Time' field in the POS profile trigge | upheld | Grade 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-screens | partial, grade B - KOT cards show items, quantities and item-level plus order-l | upheld | Grade 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-refire | partial, grade B - Items can be toggled served/unserved on the KDS and KOTs rep | upheld | Grade 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-notification | no, grade B - Notifications go to staff recipients for KOT delays only. No | upheld | Grade 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-reporting | partial, grade B - KOT creation and serve times are captured (calculate_and_set | upheld | Grade 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-reconcile | partial, grade B - POS Opening/Closing Vouchers reconcile cash per profile and | upheld | Grade 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-reconciliation | partial, grade B - Each aggregator maps to its own Customer and Mode of Payment | upheld | Grade 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-parity | no, grade B - Discounts are applied per invoice at the POS only; there are | upheld | Grade 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-profile | partial, grade B - All orders attach to a single ERPNext Customer record and th | upheld | Grade 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-segmentation | partial, grade B - Pulse ships Customer Data and Repeated Customers reports. Th | upheld | Grade 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-sms | no, grade B - Frappe's email engine is used for KOT delay notifications to | upheld | Grade 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-audit | partial, grade B - Cancellation reason and cancelled-by are captured and report | upheld | Grade 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-percent | partial, grade B - URY Daily P&L reports total employee costs with a percent-of | upheld | Grade 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-costing | yes, grade B - Verified: Daily P&L 'Cost of Goods Sold' 'includes the cost | upheld | Grade 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-actual | partial, grade B - URY Daily P&L reports materials consumed and BOM-derived COG | upheld | Grade 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-export | partial, grade B - COGS posts natively into ERPNext's own general ledger rather | upheld | Grade 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-linkage | partial, grade B - Item Wise Sales plus the BOM-derived Cost of Goods table giv | upheld | Grade 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-dashboard | partial, grade B - A Today's Sales report plus Frappe number cards and dashboar | upheld | Grade 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-closeout | yes, grade B - POS Closing Voucher consolidates the day's invoices per prof | upheld | Grade 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-level | partial, grade B - Item Wise Sales and Time Wise Sales cover item-level mix wit | upheld | Grade 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-audit | partial, grade B - Cancelled Invoices report carries Cancelled By and Cancellat | upheld | Grade 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-short | partial, grade B - ERPNext POS Opening/Closing Vouchers compute expected versus | upheld | Grade 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-productivity | partial, grade B - Daily P&L gives total employee cost and percent of sales wit | upheld | Grade 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-scorecards | partial, grade B - Employee Sales and Employee Item Wise Sales plus Average Bil | upheld | Grade 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-profitability | partial, grade B - Service Wise Sales segments revenue by order type including | upheld | Grade 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-retention | partial, grade B - Scored 'yes' with no source URL at all, in violation of the | upheld | Grade 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-alerts | partial, grade B - Frappe Notifications fire on document conditions and URY use | upheld | Grade 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-cohorts | partial, grade B - Customer Data, Repeated Customers and Daywise Customer Detai | upheld | Grade 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-kds | partial, grade B - URY Mosaic is a genuine first-party KDS with per-kitchen pro | upheld | Grade 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-compatibility | partial, grade B - URY Printer Settings supports network printers by IP and por | upheld | Grade 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-connectors | yes, grade B - No connector needed — ERPNext IS the general ledger. Sales, | upheld | Grade 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-fallback | no, grade B - Four print transports exist (QZ, network, WebSocket, browser | upheld | Grade 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-alerts | yes/B - Verified colour semantics on the live board: white new table orders, blue takeaw | upheld | The 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-metrics | yes/B - Verified in the Pulse report list: Employee Sales, Employee Item Wise Sales, Averag | downgrade-to-partial | The 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-paywall | yes/B - Score correct (no tiers, nothing paywalled), but the count is wrong: the Pulse pag | upheld | Checked 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-sandbox | yes/B - Frappe Cloud offers a 14-day free trial with no payment, and self-hosting a throwa | downgrade-to-partial | The 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-locked | yes/B - Runs in a browser on any device, and printing supports generic network printers by | upheld | Replaced 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-webhooks | partial / B - "Frappe Webhooks fire on document events with HMAC-SHA256 signing via X-Frappe-Webhook-Signature and request logg" | upheld | Citation-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-push | partial / B - "Frappe Webhooks push on document events, so POS Invoice created, submitted and cancelled can b" | upheld | Citation-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-reliability | partial / B - "HMAC-SHA256 signing via X-Frappe-Webhook-Signature plus a webhook request log are documented. R" | upheld | Citation-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 |
Sources
Every URL this record cites. 39 in total.
- https://ury.app/features/pos/
- not refetchable
- https://ury.app/setup/
- not refetchable
- https://github.com/ury-erp/ury/blob/develop/AGENTS.MD
- https://ury.app/introduction/
- https://github.com/ury-erp/ury/blob/develop/pos/AGENTS.MD
- https://github.com/ury-erp/ury
- https://ury.app/features/core/
- https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/aggregator_settings/aggregator_settings.json
- https://github.com/ury-erp/ury/issues/163
- https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/item_add_on/item_add_on.json
- https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/pos_item_variants/pos_item_variants.json
- https://ury.app/features/pulse/
- https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/ury_menu_item/ury_menu_item.json
- https://github.com/ury-erp/ury/issues/249
- https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/order_type_menu/order_type_menu.json
- https://cloud.frappe.io/marketplace/apps/ury
- https://ury.app/support/
- https://ury.app/features/mosaic/
- https://github.com/ury-erp/ury/blob/develop/URYMosaic/src/components/kot.vue
- https://docs.frappe.io/framework/user/en/api/rest
- https://ury.app/installation/
- https://docs.frappe.io/erpnext/auto-email-reports
- https://docs.frappe.io/framework/user/en/guides/integration/how_to_setup_webhooks
- https://frappe.io/cloud/pricing
- https://github.com/ury-erp/ury/blob/develop/LICENSE
- https://github.com/ury-erp/ury/blob/develop/TERMS.md
- not refetchable
- https://github.com/ury-erp/ury/issues/162
- https://github.com/ury-erp/ury/blob/develop/ury/ury/report/employee_sales/employee_sales.json
- https://github.com/ury-erp/ury/blob/develop/ury/ury/report/employee_item_wise_sales/employee_item_wise_sales.json
- https://github.com/ury-erp/ury/blob/develop/ury/ury/report/cancelled_invoices/cancelled_invoices.json
- not refetchable
- https://github.com/ury-erp/ury/blob/develop/INSTALLATION.md
- not refetchable
- https://github.com/ury-erp/ury/blob/develop/SETUP.md
- https://github.com/ury-erp/ury/blob/develop/ury/ury/doctype/ury_printer_settings/ury_printer_settings.json
- https://docs.frappe.io/framework/user/en/guides/integration/webhooks