Reports

Reconcile Kiosk and Self-Order Summary Totals

Summary Details rolls eligible Kiosk and Self-Order records from all selected branches into ten cards. Use it as a quick operational view, then reconcile the underlying sales because the current formulas do not subtract refunds or discounts from Net Sales and only expose exact Upi and Cash payment buckets.

Menu path
Reports -> Sales -> Kiosk Reports -> Summary Details
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

frontend/modules/kioskReport.html Summary Details cards labels and tooltips, frontend/static/script/js/modules/js/report_kiosk.js summary filters rendering and visible payment keys, api/src/controllers/sales.controller.js summary access and request normalization, api/src/repositories/sale.repository.js summary eligibility aggregation and formulas, demo.posnic.io Summary Details captured on 2026-09-11

Kiosk Summary DetailsLive demo captured 2026-09-11. The selected full demo scope currently returns zero for every Summary Details card; the screen remains useful for identifying the exact cards and controls operators receive.

Run Summary Details

  1. Open Reports, then Sales, then Kiosk Reports.
  2. Select Summary Details.
  3. Open Filter and choose the reporting date range.
  4. Select one or more branches.
  5. Choose All Methods, Kiosk or Self-Order.
  6. Select Apply and wait for all ten cards to refresh.
  7. Record the selected scope with any exported or reconciled result; the cards do not display branch or channel breakdowns.

Which Records Are Included

RuleCurrent behaviorOperational meaning
ChannelAll Methods means sale_method Kiosk or Self-Order; a selected method is an exact match.Normal cashier sales are excluded.
Sale processAdd, Edit, PartialReturn and FullReturn are included.This differs from Detailed kiosks, which excludes FullReturn.
DateThe original sale date field is filtered from start through end of day in the shop timezone.This differs from Detailed kiosks, which filters updated_date.
BranchEvery valid selected branch is combined.The cards do not separate outlet totals; run branches individually when attribution matters.
SessionThe summary endpoint does not apply the Sales Session Filter.A cashier's summary can span eligible sales outside that user's permitted sales-history session scope.
AccessReport Read permission must be exactly true.A permission failure is not a zero-value report.

Understand Every Card

CardCurrent calculationImportant interpretation
Sales (Include Tax)Sum of saved items_total.Gross saved totals; refunds and discounts are not explicitly removed.
Net SalesSum of items_total minus tax.In the current implementation this is identical to Sales (Exclude Tax); refunds are not subtracted.
Sales (Exclude Tax)Sum of items_total minus tax.Refunds are not explicitly removed.
Net Sales TaxSum of saved tax.Despite the tooltip wording, refunded kiosk tax is not separately subtracted.
DiscountsSum of saved discount.The card does not calculate a refunded-discount adjustment.
Gross ProfitSum of items_total minus tax minus total_companyprice.Refunds and discounts are not separately subtracted from this formula.
RefundsSum of items_return_total.When this field is an array, only its first value is used.
COGSSum of total_companyprice.When this field is an array, only its first value is used.
UPI / QR PayFull items_total for records whose raw payment_mode key is exactly Upi.Other capitalization or labels do not enter this visible card.
CashFull items_total for records whose raw payment_mode key is exactly Cash.Refunds are not subtracted from the payment bucket.

Why Summary and Detailed Can Disagree

  • Summary filters the original sale date; Detailed kiosks filters updated_date. An edited old order can appear only in Detailed for the edit period.
  • Summary includes FullReturn records; Detailed kiosks includes Add, Edit and PartialReturn only.
  • Summary combines all selected branches into cards, while Detailed rows also omit the branch column; run one branch at a time for a dependable comparison.
  • Summary is an aggregation of stored sale fields, while Detailed reconstructs some line prices, discounts and taxes for display.
  • The summary endpoint does not apply the Sales Session Filter used by some transaction reports.
  • Net Sales and Sales (Exclude Tax) are expected to match under the current code because they use the same formula.

Payment Buckets

  • The backend groups every raw payment_mode value and totals the full items_total for matching records.
  • The browser renders only two exact keys: Upi and Cash. Card, split tender, gateway names, differently capitalized UPI labels and Unknown are not shown as separate cards.
  • A missing payment mode is grouped as Unknown by the backend but remains invisible on this screen.
  • Payment totals include the same eligible FullReturn records and do not directly subtract items_return_total.
  • Do not expect UPI plus Cash to equal Sales (Include Tax) when other payment modes, split tenders, returns or inconsistent labels exist.
  • Use Payment Reports and source receipts for tender reconciliation.

Reconcile the Cards

  1. Run Summary Details for one branch, one channel and a short date range.
  2. Record all ten displayed values before changing filters.
  3. Run Detailed kiosks for the same visible filters, remembering that its updated-date and sale-process rules differ.
  4. Open the contributing Sale IDs in Sales History and identify edits, partial returns and full returns.
  5. Compare tender totals in Payment Reports; specifically look for modes other than exact Upi and Cash.
  6. Verify Refunds against return transactions and receipts, especially records that store return totals as arrays.
  7. Use Day-End or accounting reports for financial close rather than treating these cards as a ledger.

Export and Audit Limits

  • Summary Details has no card-level pagination, drilldown or dedicated Summary export control.
  • The page-level PDF, CSV, Excel and Email controls remain visible, but their output should be verified separately instead of assumed to match the ten cards.
  • The cards omit branch, sale ID, operator, customer, payment-mode detail, sale process, record count and calculation timestamp.
  • Backend payment totals are rounded to cents; the browser formats every card to two decimals.
  • Multi-branch and All Methods results cannot be decomposed from the summary screen after the fact.
  • Retain the selected filters and supporting transaction reports with any close or audit evidence.

Troubleshooting

ProblemCheckAction
Every card is zeroSelected dates, branches, method, Report Read permission and the original sale dateTest a known Kiosk or Self-Order sale in the same exact scope.
Net Sales equals Sales Exclude TaxCurrent formulaThis is expected behavior in the current implementation; both subtract only tax from items_total.
Summary differs from DetailedOriginal sale date versus updated date, plus FullReturn inclusionReconcile source Sale IDs and run a narrow period.
UPI looks too lowWhether stored payment_mode is exactly UpiUse Payment Reports to find UPI, QR, gateway or differently capitalized labels.
UPI plus Cash does not match salesOther tenders, split payments, missing modes and returnsReconcile all payment transaction categories.
Refund or COGS seems incompleteWhether the stored field is an arrayInspect source sales; the summary reads only the first array value.
Gross Profit seems high after returnsWhether refunds or discounts were expected to reduce itUse a financial report that explicitly handles returns and discounts before sign-off.