Reports
Review Register Sessions, Sales and Payment Tally
Register Reports connect a named till session to its cashier, open and close time, sales and payment count. Use them after every close and when investigating a drawer difference.
- Menu path
- Reports -> Sales -> Register
- Verified from
- Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence
Live local Posnic Register Reports audited and captured 2026-09-10, frontend/modules/registerReport.html register selector table detail sidebar and export controls, frontend/static/script/js/modules/js/report_registers.js registerreportTable registerdetailsTable and CSV projection, api/src/controllers/registers.controller.js server-decided report visibility, api/src/repositories/register.repository.js registerReportPage and registerSaleDetailsPage calculations
Before You Run the Report
- Use a separate named register for each physical till or checkout point.
- Open the register with the real starting float before taking sales.
- Record Cash In and Cash Out during the session rather than changing the drawer silently.
- Count and close the register at handover or day end. An open session can appear in the list, but it has no final count evidence.
- Choose the same business period when comparing Register, Payment, Return Sale and Day-End reports.
Find Register Sessions
- Open Reports -> Sales -> Register.
- Set the date range in the report filter.
- Choose the required register, such as Main Counter.
- Wait for Detailed Report to refresh and confirm the result count.
- Review every page when the result has more than the selected rows-per-page value.
- Use Time Opened, Time Closed and the cashier handover record to identify the correct session.
- Select the register name in a row to open that session's details.
Read the Session List
| Column | Meaning | Operator check |
|---|---|---|
| Name | The configured register used by the session. It opens the session detail view. | Confirm it is the physical till being reconciled. |
| Time Opened | When this register session began. | Match the shift start and opening-float handover. |
| Time Closed | When Close Register finalized the session; N/A means it is still open. | Do not treat N/A as completed reconciliation. |
| Float Amount | Opening cash saved when the session was opened. | Compare it with the signed starting count. |
| Register Amount | Calculated session amount: opening float plus register sale amounts plus Cash In minus Cash Out. | Use the detail and close evidence to explain the number; it is not simply gross sales. |
Inspect One Session
The detail view belongs to one register-session row, not the entire date range.
- A closed session can legitimately have no sales, as shown in the verified count-only example.
- Split tenders contribute to their individual payment-method buckets.
- Credit Card and CreditCard are normalized into the Card bucket in the current detail calculation.
- The detail view resolves a saved sale reference to the human-readable sale number where possible.
- Select the register name on the required row.
- Under Cash Drawer Info, verify User, Branch, Opening, Closing and Status.
- Under Sales history, review the sale number, date, payment label, return amount and net register amount.
- Page through every sale when the session contains more than five rows.
- Under Payment Tally, compare Expected, Counted and Difference for each payment method.
- Close the detail panel and repeat for each session that needs review.
Understand Payment Tally Difference
In the current Register Report detail, Difference is calculated as Expected minus Counted. This is the opposite sign from the active close-register screen, where the displayed difference is Counted minus Expected.
| Report result | Meaning in Register Report detail | Action |
|---|---|---|
| 0.00 | Expected and Counted match for that payment method. | Retain the close evidence and continue. |
| Positive | Expected is greater than Counted: a shortage under this report's sign convention. | Review sales, refunds, Cash In/Out and physical/provider evidence. |
| Negative | Counted is greater than Expected: an overage under this report's sign convention. | Check the opening float, unrecorded movement and tender classification. |
| Blank tally | No expected or positive counted payment bucket was available for the session. | Do not assume it reconciled; inspect the close record and session activity. |
Export Register Sessions to CSV
- Export All requests all matching rows, not only the current visible page.
- The current CSV contains RegisterName, OpenDate, CloseDate, FloatAmount and RegisterAmount.
- The CSV does not include cashier, branch, sale lines, payment tally, counted values, notes or denomination breakdown.
- Export is disabled when there are no matching rows and is also restricted on the Free plan.
- Set the register and date range first.
- Select Export All To CSV.
- Open the downloaded register-reports CSV.
- Confirm the file contains the expected number of sessions for that filter.
- Retain it with the close summaries and investigation notes required by the business.
Who Can See Which Sessions
- The server decides report visibility; the browser cannot request broader access.
- Super admin, owner, admin, manager and store manager roles can see all matching sessions on the selected register.
- A cashier-level user sees only sessions owned by their signed-in user account.
- Report access also depends on the role's report permissions and current license context.
- If a manager and cashier see different row counts, verify role and session ownership before assuming records are missing.
Reconcile a Register Difference
- Confirm the correct register, session, cashier and branch.
- Compare Opening Float with the shift-start count.
- Review every Sales history row, including returns and split payment methods.
- Review Cash In and Cash Out entries for the same session.
- Compare payment-method Expected values with Payment Reports and external card or UPI settlement evidence.
- Interpret the report Difference using Expected minus Counted, not the close-screen sign.
- Check the printable Register Summary and the close Payment Note retained by the store.
- Escalate missing counted values or unexplained differences; never alter a later session to hide an earlier mismatch.
Known Limits and Troubleshooting
| Problem | Likely reason | Action |
|---|---|---|
| No register can be selected | No branch register is configured or available to the user. | Create or assign the register, then reopen the report. |
| Expected session is missing | Wrong register, date range, license context or cashier-only visibility. | Verify each filter and compare with a manager account. |
| Time Closed is N/A | The session remains open. | Finish the physical count and Close Register; do not call it reconciled yet. |
| Register Amount differs from sales total | It also includes opening float and Cash In/Out, while saved register sale amounts can be net of returns. | Rebuild the session equation from the detail and movement records. |
| Difference sign looks reversed | Register Report uses Expected minus Counted; the close screen uses Counted minus Expected. | Label the convention in exported review work and compare absolute amount plus direction. |
| CSV lacks payment details | The current export is session-summary only. | Use the on-screen detail, Payment Report and retained Register Summary together. |
| Export button is disabled | No rows matched or the account is on the Free plan. | Correct the filters or review plan access; do not fabricate report data. |
| Closed session has blank tally | No positive expected/count value was stored, including a possible blind close. | Treat it as missing reconciliation evidence and escalate. |
Manager Sign-Off
- Register name, cashier, branch and session timestamps match the shift.
- Opening float and all Cash In/Out movements are supported.
- Every sale and return exception is understood.
- Expected and Counted are compared using the correct sign convention.
- CSV, Register Summary, provider totals and investigation notes are retained where required.
- The next register session was not used to correct or conceal this session.