Vendors / Open source & self-hostable

POS Awesome

POS Awesome (ERPNext POS)

The highest-starred project in this batch (510 stars) and the deadest: the last release is Version-6-2-0 published 2024-02-09, the default branch's last commit is the same day, and the README still advertises ERPNext Version 14 support — roughly two and a half years stale with no successor fork showing meaningful traction, so listicles calling it a live ERPNext POS are wrong.

scored unknown legacy rubric

Claims in scope
278
Scored
45
Assessed
33
Unknown
245
Not applicable
36
Cells challenged
0
88% of in-scope claims are unknown. This record measures what POS Awesome publishes at least as much as what it does. A vendor that documents little scores low here whether or not the capability exists. Absence of evidence is recorded as unknown, never as no.

Identity

Owner
ucraft-com / original author's project (GPL-3.0). Not a Frappe Technologies product — a third-party ERPNext app.
Parent
Frappe/ERPNext ecosystem
Who it is for
Existing ERPNext/Frappe deployments — mostly retail, pharmacy and small hospitality, heavily used in East Africa and the Middle East — wanting a faster POS front end than stock ERPNext POS
Site
https://github.com/ucraft-com/POS-Awesome

Pricing

transparency: unknown · unit: free app (GPL-3.0); cost is inherited from the underlying ERPNext hosting · processor lock-in: no

Software
Free and open source under GPL-3.0 as a Frappe app installed onto an existing ERPNext site. No published pricing of its own; total cost is whatever the ERPNext hosting or Frappe Cloud plan costs.

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

Unknown

order-capture-floor-plan-editor

Not scored by this record.

Unknown

order-capture-seat-level

Not scored by this record.

Unknown

order-capture-coursing-hold-fire

Not scored by this record.

No

order-capture-split-merge

Source (HEAD a86fd29): there is no check, table or seat model anywhere — a sale is a single ERPNext Sales Invoice cart, and the only order-holding constructs are held Drafts and Sales Orders. No operation divides one invoice by item, seat, N-way or amount, and none merges invoices or tables; every 'split'/'merge' hit in the code is String.split or bundled-library internals. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

order-capture-bar-tab-preauth differentiator

Not scored by this record.

Unknown

order-capture-transfer-audit

Not scored by this record.

Unknown

order-capture-native-handheld

Not scored by this record.

Partial

order-capture-offline-order-entry

Source (HEAD a86fd29, 2024-02-09): the Vue client has no offline layer — no service worker, no IndexedDB, no local order queue; invoice save/submit and item/customer lookups are live frappe.call requests to the ERPNext server, and the posa_local_storage toggle only caches item/customer lists for search speed. Order entry survives a WAN outage only when the ERPNext site is self-hosted on the local network, and the project publishes no statement of offline scope. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

order-capture-qr-same-check differentiator

Not scored by this record.

Unknown

order-capture-kiosk-first-party differentiator

Not scored by this record.

Unknown

order-capture-drive-thru

Not scored by this record.

Unknown

order-capture-drive-thru-timers

Not scored by this record.

Unknown

order-capture-voice-ai differentiator

Not scored by this record.

Unknown

order-capture-throttling differentiator

Not scored by this record.

Partial

order-capture-scheduled-orders

Future-dated capture exists: a posa_delivery_date custom field on the invoice and, when the POS Profile enables posa_allow_sales_order, before_submit maps the cart to a submitted ERPNext Sales Order carrying that delivery date (invoice.py create_sales_order/make_sales_order). The shortfall is everything after capture: the product has no make queue at all (no KDS or kitchen printing exists), no per-channel lead time, and no computed fire time — the future order just sits as an ERPNext Sales Order document until someone acts on it. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

order-capture-catering

Not scored by this record.

Unknown

order-capture-order-ready-signal differentiator

Not scored by this record.

Unknown

order-capture-void-comp-controls

Not scored by this record.

Menu, modifiers & pricing engine

Unknown

menu-pricing-nested-modifiers

README documents template items with variants and item bundles, which is a retail construct, not restaurant modifier groups with min/max.

F
No

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

The full source contains no modifier data model at all — no doctype, Vue component or field for modifier groups, toppings or option pricing ('modifier' and 'topping' appear nowhere in the code). Item customization is ERPNext template items with variants (Variants.vue), which swaps in a differently priced item code; a per-parent, per-size modifier price matrix has no substrate to exist on. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

menu-pricing-fractional-placement differentiator

Not scored by this record.

Unknown

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

Not scored by this record.

No

menu-pricing-topping-quantity-tiers

No modifier or topping construct exists anywhere in the source, and there is no quantity-tier or per-tier price-multiplier logic; quantity is the plain sales-invoice line qty. Light/regular/extra/double tiering is absent from the code. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

menu-pricing-size-style-matrix differentiator

Not scored by this record.

Unknown

menu-pricing-included-allowance differentiator

Not scored by this record.

Unknown

menu-pricing-combos

Not scored by this record.

Unknown

menu-pricing-upsell-prompts differentiator

Not scored by this record.

Unknown

menu-pricing-86-propagation

Not scored by this record.

Unknown

menu-pricing-countdown-auto-86 differentiator

Not scored by this record.

Unknown

menu-pricing-dayparting

Not scored by this record.

Unknown

menu-pricing-channel-price-books

Not scored by this record.

Unknown

menu-pricing-dual-pricing differentiator

Not scored by this record.

Unknown

menu-pricing-allergen-nutrition

Not scored by this record.

Unknown

menu-pricing-recipe-linkage differentiator

Not scored by this record.

Unknown

menu-pricing-3p-menu-push

Not scored by this record.

Unknown

menu-pricing-dynamic-pricing

Not scored by this record.

Payments & money movement

Unknown

payments-processor-choice differentiator

Not scored by this record.

Unknown

payments-published-rates differentiator

Not scored by this record.

Unknown

payments-dual-pricing differentiator

Not scored by this record.

Unknown

payments-surcharge-guardrails differentiator

Not scored by this record.

No

payments-emv-nfc

Software-only ERPNext app with no first-party terminals; README lists Mpesa mobile payment and cash as tender modes. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

E
Unknown

payments-softpos-tap-to-pay differentiator

Not scored by this record.

Unknown

payments-pay-at-table

Not scored by this record.

Unknown

payments-qr-guest-pay differentiator

Not scored by this record.

Unknown

payments-tip-adjust

Not scored by this record.

Unknown

payments-tip-pooling differentiator

Not scored by this record.

Unknown

payments-offline-store-and-forward differentiator

Not scored by this record.

Unknown

payments-offline-decline-liability differentiator

Not scored by this record.

Unknown

payments-gift-cards

README documents POS Coupons, customer credit notes and referral codes, but not stored-value gift cards with cross-location balance tracking.

F
Unknown

payments-house-accounts

Not scored by this record.

Unknown

payments-split-tender

Not scored by this record.

Partial

payments-refund-void-controls

README documents returns from POS as cash or customer credit; role-gated void approval with an immutable approver audit log is not documented. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

B
Unknown

payments-chargeback-tooling differentiator

Not scored by this record.

Unknown

payments-card-on-file differentiator

Not scored by this record.

Unknown

payments-payout-timing differentiator

Not scored by this record.

Unknown

payments-p2pe-pci4

Not scored by this record.

Kitchen & production

No

kitchen-station-routing

The complete doctype list (POS Opening/Closing Shift, POS Offer, POS Coupon, Delivery Charges, Referral Code, Mpesa doctypes) and the full Vue component list contain no KDS, kitchen-printer, station or routing artifact; 'kitchen' and 'kds' appear nowhere in the source. The only print path opens a browser window on the ERPNext Sales Invoice /printview, so there is nothing to route. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
No

kitchen-expo-consolidation

No expo or kitchen display surface exists anywhere in the source — the product ships no kitchen screen of any kind (consistent with this record's hardware-kds: no), so there are no stations to consolidate and no bump state to track. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

kitchen-course-firing differentiator

Not scored by this record.

Unknown

kitchen-prep-time-pacing differentiator

Not scored by this record.

Unknown

kitchen-order-throttling differentiator

Not scored by this record.

Unknown

kitchen-channel-pause-propagation differentiator

Not scored by this record.

Unknown

kitchen-order-ready-callback differentiator

Not scored by this record.

No

kitchen-bump-bar-hardware

No KDS of any kind ships — 'bump', 'kds' and 'kitchen' appear nowhere in the source (consistent with this record's hardware-kds: no) — so there is no kitchen screen for a bump bar or keypad to drive, and no supported-models documentation exists. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

kitchen-all-day-counts

Not scored by this record.

Unknown

kitchen-sla-alerts

Not scored by this record.

Unknown

kitchen-printer-fallback differentiator

Not scored by this record.

Unknown

kitchen-offline-operation differentiator

Not scored by this record.

Unknown

kitchen-item-build-screens differentiator

Not scored by this record.

Unknown

kitchen-pizza-fractional-display differentiator

Not scored by this record.

Unknown

kitchen-recall-refire

Not scored by this record.

Unknown

kitchen-order-modification-alerts differentiator

Not scored by this record.

Unknown

kitchen-guest-ready-notification differentiator

Not scored by this record.

Unknown

kitchen-waste-logging

Not scored by this record.

Unknown

kitchen-speed-of-service-reporting

Not scored by this record.

Unknown

kitchen-prep-forecasting

Not scored by this record.

Delivery, dispatch & third-party channels

No

delivery-driver-roster

'driver', 'dispatch' and 'courier' appear nowhere in the source. The product's entire delivery footprint is the Delivery Charges doctype (a fee attached to the invoice) plus the posa_delivery_date field; there is no driver entity, no clock-in/out, no assignment state and no per-driver run history. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
No

delivery-dispatch-board

The complete Vue surface (Navbar, Pay, ClosingDialog, Customer, Drafts, Invoice, ItemsSelector, Mpesa-Payments, NewAddress, OpeningDialog, Payments, Pos, PosCoupons, PosOffers, Returns, SalesOrders, UpdateCustomer, Variants) is cashier screens only — no dispatch or expo board, no undispatched-order view, no driver availability, no elapsed-time display and no run batching exist anywhere in the source. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

delivery-route-map differentiator

Not scored by this record.

Unknown

delivery-driver-tracking differentiator

Not scored by this record.

Unknown

delivery-zones-polygon differentiator

Not scored by this record.

Unknown

delivery-zone-pricing

README lists a delivery charges feature, but nothing indicates address-validated zones with per-zone minimums and promise times.

F
Unknown

delivery-address-validation

Not scored by this record.

Unknown

delivery-driver-comp differentiator

Not scored by this record.

Unknown

delivery-cash-reconcile

Not scored by this record.

Unknown

delivery-daas-dispatch

Not scored by this record.

Unknown

delivery-daas-fallback differentiator

Not scored by this record.

Unknown

delivery-3p-direct-integration differentiator

Not scored by this record.

Unknown

delivery-3p-injection

Not scored by this record.

Unknown

delivery-menu-push

Not scored by this record.

Unknown

delivery-86-sync

Not scored by this record.

Unknown

delivery-store-pause

Not scored by this record.

Unknown

delivery-3p-reconciliation differentiator

Not scored by this record.

Unknown

delivery-injection-error-visibility differentiator

Not scored by this record.

Unknown

delivery-tracking-page

Not scored by this record.

Unknown

delivery-promise-time differentiator

Not scored by this record.

Unknown

delivery-offline-behavior

Not scored by this record.

Digital ordering & guest-facing channels

No

digital-first-party-web

The only web surface the app ships is the /posapp cashier page (posawesome/posawesome/page/posapp); templates/pages is empty. There is no guest-facing ordering site of any kind in the product — no cart, checkout or menu page a customer could reach — so no first-party web ordering exists to be commission-free or branded. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
No

digital-menu-single-source

Structurally impossible here: the product ships no first-party digital ordering channel at all (its only web surface is the cashier /posapp page), so there is no digital menu to generate from the ERPNext Item catalog and no channel for an item edit to propagate to. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

digital-native-app differentiator

Not scored by this record.

No

digital-account-saved-payment

No guest-facing channel exists for an account to live on, and the source contains no tokenization or card-on-file construct ('tokeniz', saved-card and reorder constructs appear nowhere); tender is cashier-side cash, Mpesa and ERPNext payment modes. Customer addresses exist only as cashier-entered ERPNext Address records (NewAddress.vue), not a guest self-service account. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

digital-upsell-engine differentiator

Not scored by this record.

Unknown

digital-scheduled-pacing

Not scored by this record.

Unknown

digital-fulfillment-modes

Not scored by this record.

Unknown

digital-qr-table

Not scored by this record.

Unknown

digital-kiosk differentiator

Not scored by this record.

Unknown

digital-group-ordering

Not scored by this record.

Unknown

digital-catering-portal differentiator

Not scored by this record.

Unknown

digital-voice-ai-phone differentiator

Not scored by this record.

Unknown

digital-drivethru-ai

Not scored by this record.

Unknown

digital-sms-ordering

Not scored by this record.

Unknown

digital-google-order differentiator

Not scored by this record.

Unknown

digital-apple-business-connect

Not scored by this record.

Unknown

digital-loyalty-attach

Not scored by this record.

Unknown

digital-subscriptions

Not scored by this record.

Unknown

digital-promo-parity

Not scored by this record.

Unknown

digital-guest-data-ownership differentiator

Not scored by this record.

Unknown

digital-checkout-pci-sca

Not scored by this record.

Unknown

digital-surcharge-transparency differentiator

Not scored by this record.

Guest data, loyalty & marketing

No

guest-loyalty-unified-profile

The product has exactly one channel — the in-store cashier page — so there are no first-party web/app or kiosk transactions to merge. Guest identity is the host site's ERPNext Customer record selected by the cashier, and no dedup or merge behavior exists anywhere in the source or README ('dedup'/customer-merge constructs absent). https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

guest-loyalty-thirdparty-identity-attach differentiator

Not scored by this record.

Partial

guest-loyalty-accrual-models

README documents customer loyalty points plus POS Offers and coupons; only one accrual model is evidenced, not two. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

B
Unknown

guest-loyalty-tiers differentiator

Not scored by this record.

Unknown

guest-loyalty-offline-behavior differentiator

Not scored by this record.

Unknown

guest-loyalty-offer-stacking-rules differentiator

Not scored by this record.

Unknown

guest-loyalty-targeted-offers differentiator

Not scored by this record.

Unknown

guest-loyalty-rfm-segmentation differentiator

Not scored by this record.

No

guest-loyalty-lifecycle-automation

The app stores a posa_birthday custom field on Customer, but nothing consumes it beyond returning it in the customer-info panel, and the app ships no guest messaging capability at all — no email/SMS send anywhere in the source, and hooks.py's scheduler_events block is commented out, so no triggered job of any kind runs. The 'campaign' references are ERPNext Campaign attribution on coupons/referral codes, not lifecycle sends. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

guest-loyalty-native-email-sms differentiator

Not scored by this record.

Unknown

guest-loyalty-consent-management

Not scored by this record.

Unknown

guest-loyalty-10dlc-registration

Not scored by this record.

Unknown

guest-loyalty-campaign-attribution differentiator

Not scored by this record.

Unknown

guest-loyalty-data-export-portability differentiator

Not scored by this record.

Unknown

guest-loyalty-review-capture-routing differentiator

Not scored by this record.

Unknown

guest-loyalty-referral-program

Not scored by this record.

Unknown

guest-loyalty-wallet-pass differentiator

Not scored by this record.

Unknown

guest-loyalty-privacy-rights-tooling

Not scored by this record.

Unknown

guest-loyalty-redemption-fraud-controls

Not scored by this record.

Unknown

guest-loyalty-ai-offer-recommendation differentiator

Not scored by this record.

Unknown

guest-loyalty-stored-value-gift

Not scored by this record.

Labor & workforce

Unknown

labor-clock-in-at-pos

POS shifts exist for cashier sessions, but that is a drawer session concept, not employee time and attendance.

F
Unknown

labor-photo-punch-verification differentiator

Not scored by this record.

Unknown

labor-offline-time-punch differentiator

Not scored by this record.

Partial

labor-granular-rbac

Discrete-action gates exist, but as POS Profile custom fields — posa_allow_delete, posa_allow_return, posa_allow_user_to_edit_rate, posa_allow_user_to_edit_item_discount, posa_allow_user_to_edit_additional_discount, posa_max_discount_allowed, posa_allow_credit_sale, posa_allow_print_draft_invoices — which are per-profile booleans applying uniformly to every user of that profile, not per-role grants; doctype and report access falls back to Frappe's fixed role list. No comp, void-approval or drawer-open permission exists. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
No

labor-manager-override-audit

The source contains no override or approval flow of any kind — searching for override/approve/supervisor/PIN constructs finds none. Restricted actions are simply enabled or disabled in advance per POS Profile, so there is no individual approver to attribute and no override event to audit; Frappe's generic document versioning is not an override trail. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

labor-native-scheduling differentiator

Not scored by this record.

Unknown

labor-demand-labor-forecast differentiator

Not scored by this record.

Unknown

labor-realtime-labor-percent differentiator

Not scored by this record.

Unknown

labor-overtime-prevention differentiator

Not scored by this record.

Unknown

labor-break-compliance-by-state differentiator

Not scored by this record.

Unknown

labor-minor-labor-rules

Not scored by this record.

Unknown

labor-tip-pooling-rules

Not scored by this record.

Unknown

labor-tip-distribution-audit-trail

Not scored by this record.

Unknown

labor-qualified-tips-w2-reporting differentiator

Not scored by this record.

Unknown

labor-native-payroll differentiator

Not scored by this record.

Unknown

labor-payroll-export-formats

Not scored by this record.

Unknown

labor-shift-swap-workflow differentiator

Not scored by this record.

Unknown

labor-server-performance-metrics differentiator

Not scored by this record.

Inventory, purchasing & cost control

Unknown

inventory-recipe-bom-costing

Underlying ERPNext has multi-level BOMs, but POS Awesome itself documents no recipe or plate-cost feature.

F
Partial

inventory-unit-conversion-yields

README documents UOM-specific barcode and pricing plus weighted/scale product sales; yield and waste percentages are not documented. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

B
Unknown

inventory-theoretical-vs-actual differentiator

Not scored by this record.

Unknown

inventory-realtime-depletion differentiator

Not scored by this record.

Unknown

inventory-86-auto-sync differentiator

Not scored by this record.

Unknown

inventory-count-modes

Verified against the full source at HEAD a86fd29: POS Awesome itself ships no counting feature — no doctype, page, component or API endpoint touches stock counting ('stock_reconcil', 'cycle_count', physical-count constructs appear nowhere), and neither the README's 31-feature list nor the wiki index mentions counts. Any counting would be the host ERPNext's generic Stock Reconciliation in the ERP desk UI, outside this product, and whether that satisfies full/spot/scheduled-cycle counts with per-count variance history was not established from this product's own documentation — same boundary as this record's inventory-recipe-bom-costing.

F
Unknown

inventory-mobile-count-offline

Not scored by this record.

Unknown

inventory-vendor-catalogs-edi differentiator

Not scored by this record.

Unknown

inventory-invoice-ocr differentiator

Not scored by this record.

Unknown

inventory-price-change-alerts differentiator

Not scored by this record.

Unknown

inventory-par-auto-suggest differentiator

Not scored by this record.

Unknown

inventory-waste-logging

Not scored by this record.

Unknown

inventory-shelf-life-expiry

Not scored by this record.

Unknown

inventory-bar-partial-bottle

Not scored by this record.

Unknown

inventory-cogs-gl-export

Not scored by this record.

Unknown

inventory-native-not-partner differentiator

Not scored by this record.

Unknown

inventory-menu-margin-linkage differentiator

Not scored by this record.

Reporting, BI & data access

Partial

reporting-realtime-dashboard

The app ships zero report or dashboard artifacts of its own (no report/ or dashboard/ directory in the package). Sales post immediately as standard ERPNext Sales Invoices, so the host ERPNext site's browser-based reports and dashboards reflect them in real time from anywhere the site is reachable — but there is no first-party live sales dashboard, no mobile app, and the posa_allow_submissions_in_background_job option defers invoice submission to a queue. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

reporting-eod-closeout

POS shift closing exists, but no published report reconciling tax, tips, discounts, refunds and expected deposit in one document.

F
No

reporting-pmix-modifier-level

Modifier-level PMIX is structurally impossible here: the app has no modifier data model and ships no reports at all. Item-level sales analysis exists only through generic ERPNext Sales Invoice reports, which carry no daypart or revenue-center dimension of POS Awesome's making. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

reporting-comps-voids-audit

Not scored by this record.

Unknown

reporting-cash-over-short

Not scored by this record.

Unknown

reporting-labor-productivity

Not scored by this record.

Unknown

reporting-server-scorecards differentiator

Not scored by this record.

Unknown

reporting-channel-profitability differentiator

Not scored by this record.

Unknown

reporting-scheduled-delivery

Not scored by this record.

Unknown

reporting-public-api differentiator

Not scored by this record.

Unknown

reporting-webhooks differentiator

Not scored by this record.

Unknown

reporting-api-not-upcharged differentiator

Not scored by this record.

Unknown

reporting-tier-paywall differentiator

Not scored by this record.

Unknown

reporting-history-retention differentiator

Not scored by this record.

Unknown

reporting-anomaly-alerts differentiator

Not scored by this record.

Unknown

reporting-nl-query

Not scored by this record.

Unknown

reporting-guest-cohorts differentiator

Not scored by this record.

Unknown

reporting-sales-forecast differentiator

Not scored by this record.

Unknown

reporting-tip-tax-compliance

Not scored by this record.

Multi-location, franchise & enterprise governance

Unknown

multi-location-org-hierarchy

Verified against the full source at HEAD a86fd29: the app has no organizational hierarchy construct of its own — locations are flat per-company POS Profiles, and no region/group object, hierarchy-scoped report or hierarchy-scoped permission exists anywhere in the code, README or wiki. The host Frappe/ERPNext platform does have a Company tree and user permissions, but whether that amounts to a named three-level hierarchy that this POS's reporting and permissions can be scoped to was not established from this product's own documentation, so the cell stays unresolved rather than crediting or denying substrate behavior.

F
No

multi-location-central-menu-publish

The catalog is the host ERPNext site's shared Item and Price List masters — there are no per-location menu instances, so an item edit is simply live site-wide the moment it is saved. No publish action, location targeting, or push/version history exists anywhere in the app ('publish' appears only as the app_publisher metadata field); the claim's publish-with-history workflow has no substrate to exist on. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Partial

multi-location-price-zones

README documents customer and customer-group price lists and batch-based pricing; per-location, per-channel and per-daypart tiers are not documented. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

B
Unknown

multi-location-consolidated-reporting

Not scored by this record.

Unknown

multi-location-cross-location-giftcard

Not scored by this record.

Unknown

multi-location-cross-location-loyalty

Not scored by this record.

Unknown

multi-location-multi-brand differentiator

Not scored by this record.

Unknown

multi-location-multi-tax-jurisdiction

Not scored by this record.

Unknown

multi-location-central-labor-policy

Not scored by this record.

Hardware & physical footprint

Unknown

hardware-commodity-devices differentiator

Not scored by this record.

Unknown

hardware-os-platforms

Browser-based Vue/Vuetify front end for ERPNext, but no supported-browser list, minimum OS versions, or device specs are published.

F
Unknown

hardware-handheld-purpose-built

Not scored by this record.

Unknown

hardware-handheld-battery-swap differentiator

Not scored by this record.

Unknown

hardware-handheld-lte

Not scored by this record.

Partial

hardware-offline-mode

The browser client has no offline layer — no service worker, no IndexedDB, no queued orders; posa_local_storage only caches item/customer lists for search. Order taking, cash sales and receipt printing survive an internet outage only when the ERPNext site is self-hosted on the local network (a deployment topology, not a terminal capability); kitchen printing does not exist in the product at all, and the vendor publishes no statement of which functions degrade offline. Those are the shortfalls carrying the partial, consistent with this record's order-capture-offline-order-entry. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
No

hardware-kds

The README enumerates 29-plus features with no kitchen display; it is a retail-oriented POS front end for ERPNext. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

E
Unknown

hardware-kiosk differentiator

Not scored by this record.

Unknown

hardware-drive-thru

Not scored by this record.

Unknown

hardware-printer-compatibility

Not scored by this record.

Unknown

hardware-peripherals

Not scored by this record.

Unknown

hardware-p2pe-terminal

Not scored by this record.

Unknown

hardware-tap-to-phone differentiator

Not scored by this record.

Unknown

hardware-pricing-transparency differentiator

Not scored by this record.

Unknown

hardware-ownership-vs-lease differentiator

Not scored by this record.

Unknown

hardware-usable-after-churn differentiator

Not scored by this record.

Unknown

hardware-rma-sla differentiator

Not scored by this record.

Unknown

hardware-byod

Not scored by this record.

Unknown

hardware-remote-device-management differentiator

Not scored by this record.

Unknown

hardware-selfpour-scales

Not scored by this record.

Unknown

hardware-callerid-integration

Not scored by this record.

Integrations, API & extensibility

Partial

extensibility-public-api-docs

Full GPL-3.0 source is public and it inherits Frappe's public REST API, but POS Awesome publishes no API reference of its own. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

E
Unknown

extensibility-api-access-cost differentiator

Not scored by this record.

Unknown

extensibility-free-sandbox differentiator

Not scored by this record.

Unknown

extensibility-oauth-partner-apps

Frappe framework provides OAuth 2.0, but POS Awesome documents no scoped, operator-granted, revocable third-party app model.

F
Unknown

extensibility-webhooks-push

Frappe supports webhooks generically, but POS Awesome documents no order lifecycle event webhooks of its own.

F
Unknown

extensibility-webhook-reliability differentiator

Not scored by this record.

Unknown

extensibility-order-injection-api

Not scored by this record.

Unknown

extensibility-menu-write-api differentiator

Not scored by this record.

Unknown

extensibility-doordash-preferred differentiator

Not scored by this record.

Unknown

extensibility-first-party-delivery-integrations differentiator

Not scored by this record.

Unknown

extensibility-middleware-compatibility

Not scored by this record.

Unknown

extensibility-accounting-connectors

Not scored by this record.

Unknown

extensibility-payroll-export

Not scored by this record.

Unknown

extensibility-app-marketplace

Not scored by this record.

Unknown

extensibility-headless-embedded

Not scored by this record.

Unknown

extensibility-data-portability-exit differentiator

Not scored by this record.

Reliability, offline & operations

Partial

reliability-offline-order-entry

Nothing continues on-terminal: every invoice save/submit and lookup is a live frappe.call to the ERPNext server, and check printing is a browser window on the server-rendered /printview. Order entry and receipt printing therefore survive a lost internet connection only when the ERPNext site is self-hosted on the LAN; ticket routing does not exist in the product in any connectivity state. Server-dependence and the absent routing are the named shortfalls. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

reliability-offline-card-auth differentiator

Not scored by this record.

Unknown

reliability-offline-decline-liability differentiator

Not scored by this record.

Unknown

reliability-lan-degraded-multi-terminal differentiator

Not scored by this record.

Unknown

reliability-local-transaction-engine differentiator

Not scored by this record.

No

reliability-offline-kds-printing

There is no kitchen display and no kitchen printer routing in the product at all — 'kitchen' and 'kds' appear nowhere in the source and the only print path is the browser /printview receipt window — so no kitchen output path exists to keep functioning offline. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
No

reliability-printer-fallback

No printer management layer exists: printing is window.open on the ERPNext /printview URL with trigger_print — browser receipt printing only. There are no configured kitchen printers, no printer-reachability monitoring, and no failover or alert logic anywhere in the source. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-04

A
Unknown

reliability-sync-conflict-handling

Not scored by this record.

Unknown

reliability-offline-feature-matrix

Not scored by this record.

Unknown

reliability-public-status-page

Not scored by this record.

Unknown

reliability-247-live-support

Not scored by this record.

Unknown

reliability-onsite-install differentiator

Not scored by this record.

Unknown

reliability-menu-build-service differentiator

Not scored by this record.

Unknown

reliability-hardware-replacement-sla

Not scored by this record.

Unknown

reliability-pci-dss-4-attestation

Not scored by this record.

Unknown

reliability-mfa-role-based-access

Not scored by this record.

Unknown

reliability-self-serve-training

Not scored by this record.

Unknown

reliability-failover-terminal-role differentiator

Not scored by this record.

Unknown

reliability-cellular-backup

Not scored by this record.

Commercial, compliance & data ownership

Unknown

commercial-month-to-month-contract differentiator

Not scored by this record.

Unknown

commercial-no-early-termination-fee differentiator

Not scored by this record.

Unknown

commercial-autorenew-terms-published

GPL-3.0 app with no subscription of its own; any renewal terms belong to the ERPNext host, not this project.

F
Unknown

commercial-processing-not-bundled differentiator

Not scored by this record.

Unknown

commercial-interchange-plus-published differentiator

Not scored by this record.

Unknown

commercial-rate-increase-clause differentiator

Not scored by this record.

Yes

commercial-pricing-published

Unambiguously free: GPL-3.0 licensed ERPNext app with no commercial tier; hosting cost is separate and external. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

B
Unknown

commercial-module-unbundling differentiator

Not scored by this record.

Partial

commercial-hardware-purchase-outright

No first-party hardware sold, so no mandatory lease; operators supply their own terminals, scales and printers. https://github.com/ucraft-com/POS-Awesome · retrieved 2026-08-01

E
Unknown

commercial-hardware-not-locked differentiator

Not scored by this record.

Unknown

commercial-data-export-self-serve

Not scored by this record.

Unknown

commercial-export-customer-and-loyalty differentiator

Not scored by this record.

Unknown

commercial-post-termination-export-window differentiator

Not scored by this record.

Unknown

commercial-data-ownership-clause differentiator

Not scored by this record.

Unknown

commercial-pci-p2pe-tokenization

Not scored by this record.

Unknown

commercial-pci-dss-4-controls

Not scored by this record.

Unknown

commercial-privacy-dsar-tooling

Not scored by this record.

Unknown

commercial-wcag-kiosk-accessibility differentiator

Not scored by this record.

Unknown

commercial-dual-pricing-compliant differentiator

Not scored by this record.

Adversarial verification

An independent pass was instructed to refute this record, defaulting to downgrade when uncertain. It challenged 24 values — 0 upheld, 0 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.

Capability claims

ClaimAs first scoredVerdictWhat the verifier found
order-capture-offline-order-entryunknown, grade F — "No public documentation located during the 2026-08-01 research pass." (placeholder; cell never examined)resolve-to-partialRead the full source at HEAD a86fd29: no service worker, no IndexedDB, no local order queue — every invoice save/submit is a live frappe.call to the ERPNext server; posa_local_storage only caches item/customer lists. Continuity through a WAN outage exists only when the ERPNext site is self-hosted on-LAN, and no offline scope is published — that named shortfall is the partial. source
menu-pricing-modifier-price-by-parent-sizeunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence from complete source: no modifier doctype, component or field exists anywhere ('modifier'/'topping' appear nowhere); customization is ERPNext item variants, which substitutes a different item code. A modifier price matrix cannot exist without a modifier model. source
menu-pricing-topping-quantity-tiersunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence from complete source: no modifier/topping construct and no quantity-tier or per-tier multiplier logic; quantity is the plain invoice line qty. source
kitchen-station-routingunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence from complete source: the full doctype and Vue component inventory contains no KDS, kitchen printer, station or routing artifact; the only print path is a browser window on the Sales Invoice /printview. source
kitchen-expo-consolidationunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence from complete source: no kitchen display surface of any kind ships, so there are no stations to consolidate and no bump state; consistent with the existing hardware-kds: no. source
labor-granular-rbacunknown, grade F — placeholder rationale, cell never examinedresolve-to-partialSource shows real discrete-action gates (posa_allow_delete, posa_allow_return, posa_allow_user_to_edit_rate, item/additional discount toggles, posa_max_discount_allowed) but they are per-POS-Profile booleans applying uniformly to all users of the profile, not per-role grants; no comp, void-approval or drawer-open permission exists. Named shortfall carries the partial. source
labor-manager-override-auditunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence from complete source: no override/approval flow exists anywhere — restricted actions are pre-enabled or disabled per POS Profile, so there is no approver to attribute and no override event to write to any audit trail. source
reporting-realtime-dashboardunknown, grade F — placeholder rationale, cell never examinedresolve-to-partialThe app ships no report or dashboard artifacts of its own, but sales post immediately as standard ERPNext Sales Invoices visible to the host site's browser reporting in real time. Shortfalls named: no first-party dashboard, no mobile app, and the background-job submission option defers invoice submission. source
reporting-pmix-modifier-levelunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: modifier-level PMIX is structurally impossible in a product with no modifier data model and no shipped reports; item-level analysis exists only via generic ERPNext reports with no daypart/revenue-center dimension. source
reliability-offline-kds-printingunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: there is no KDS and no kitchen printer routing at all in the source, so no kitchen output path exists to continue functioning offline. source
reliability-printer-fallbackunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: no printer management layer exists — printing is a browser window.open on /printview with trigger_print, with no configured kitchen printers, no reachability monitoring and no failover or alerting logic. source
order-capture-split-mergeunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence from complete source at HEAD a86fd29: no check/table/seat model exists — a sale is one Sales Invoice cart, order-holding is Drafts or Sales Orders, and no operation splits an invoice by item/seat/N-way/amount or merges invoices; all 'split'/'merge' hits are String.split or bundled-library code. source
order-capture-scheduled-ordersunknown, grade F — placeholder rationale, cell never examinedresolve-to-partialFuture-dated capture is real: posa_delivery_date plus the posa_allow_sales_order profile flag makes before_submit map the cart to a submitted Sales Order carrying the delivery date (invoice.py). The named shortfall is that no make queue, per-channel lead time or computed fire time exists — the product has no kitchen output at all, so the order just sits as an ERPNext document. source
kitchen-bump-bar-hardwareunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: no KDS ships ('bump'/'kds'/'kitchen' appear nowhere in source), so there is no screen for a bump bar to drive and no supported-models documentation; consistent with the record's hardware-kds: no. source
delivery-driver-rosterunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: 'driver'/'dispatch'/'courier' appear nowhere in source; the delivery footprint is the Delivery Charges fee doctype and posa_delivery_date — no driver entity, clock-in/out, assignment state or run history. source
delivery-dispatch-boardunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: the complete Vue component inventory is cashier screens only; no dispatch/expo board, undispatched-order view, driver availability, elapsed-time display or run batching exists anywhere. source
digital-first-party-webunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: the app's only web surface is the /posapp cashier page and templates/pages is empty — no guest-facing ordering site, cart, checkout or menu page exists in the product. source
digital-menu-single-sourceunknown, grade F — placeholder rationale, cell never examinedresolve-to-noStructural absence: with no first-party digital ordering channel in the product, no digital menu exists to be generated from the Item catalog and no channel exists for an edit to propagate to. source
digital-account-saved-paymentunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: no guest-facing channel for an account to live on, and no tokenization or card-on-file construct anywhere in source; addresses are cashier-entered ERPNext Address records, tender is cash/Mpesa/ERPNext payment modes. source
guest-loyalty-unified-profileunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: the product has one channel (the cashier page), so there are no cross-channel transactions to merge; identity is the cashier-selected ERPNext Customer record and no dedup/merge behavior exists in source or README. source
guest-loyalty-lifecycle-automationunknown, grade F — placeholder rationale, cell never examinedresolve-to-noPositive absence: posa_birthday is stored on Customer but nothing consumes it beyond display; the app has no email/SMS send anywhere, hooks.py's scheduler_events block is commented out so no triggered job runs, and 'campaign' references are ERPNext Campaign attribution on coupons/referrals, not sends. source
multi-location-central-menu-publishunknown, grade F — placeholder rationale, cell never examinedresolve-to-noStructural absence: the catalog is the single ERPNext site's shared Item/Price List masters with no per-location menu instances, so edits are instantly live site-wide; no publish action, location targeting or push/version history exists anywhere in the app. source
hardware-offline-modeunknown, grade F — placeholder rationale, cell never examinedresolve-to-partialSame substrate finding as order-capture-offline-order-entry: no client offline layer (no service worker, IndexedDB or order queue), continuity only under LAN self-hosting, no kitchen printing in the product, and no vendor documentation of offline degradation. Those named shortfalls carry the partial. source
reliability-offline-order-entryunknown, grade F — placeholder rationale, cell never examinedresolve-to-partialEvery save/submit and lookup is a live frappe.call and check printing is the server-rendered /printview, so nothing continues on-terminal; order entry and receipt printing survive internet loss only with a LAN-hosted ERPNext site, and ticket routing does not exist in any connectivity state. Server-dependence and absent routing are the named shortfalls. source

Sources

Every URL this record cites. 4 in total.