Skip to main content

Reports, Settings, and Compliance

These pages use the selected store. Before reviewing data or saving a change, confirm the store shown in the portal sidebar.

Page access​

Navigation pathWhat it coversAccess neededFeature needed
Reports > ReportsSales, inventory, and member reportsstore.reports.read or store.transactions.readpeakpos.sales
Reports > Scheduled ReportsRecurring report emails for the selected storestore.reports.readpeakpos.sales
Settings > SettingsStore timezone, hours, and checkout behaviorstore.settings.readpeakpos.operations
Settings > ComplianceAge-verification activity and effective policy rulesstore.compliance.readpeakpos.compliance
Settings > Restricted Sales ReviewDenied and overridden restricted-sale incidentsstore.reports.readpeakpos.compliance
Settings > SMS ConsentThe selected store's phone-number consent ledgerstore.consent.readpeakpos.compliance

A page appears only when its listed PeakPOS feature is enabled for your organization. Controls that change data require the additional write access described below. If a page or control is missing, ask an organization administrator to review your feature access and permissions.

Run and export a report​

  1. Select the store in the sidebar.
  2. Go to Reports > Reports.
  3. Optionally start with a Popular Reports shortcut: Today's sales, Last 7 days, Inventory health, or Staff schedule. A shortcut selects the matching tab and parameters.
  4. Choose a tab:
    • Sales for net and gross sales, transactions, average ticket, tender mix, taxes, discounts, sales by category branch, and register cash payouts.
    • Inventory for stock value, out-of-stock and low-stock items, and category totals.
    • Members for member count and roles, scheduled and worked hours, no-shows, and top performers.
  5. For Sales or Members, set Start Date and End Date. The Today, 7 days, and 30 days buttons set common ranges.
  6. On Sales, choose Day, Week, or Month under Group By.
  7. On Inventory, optionally use Filter inventory by category branch. A category-filtered result cannot be exported; select All category branches to enable the complete inventory export.
  8. Review the results. Sales and Inventory have an Export menu with CSV, Excel, and PDF. The Members report has no export control.

The report reloads when its tab or parameters change. If loading fails, use the page's retry control rather than relying on an older result.

Total charged and Transactions retain completed gross sales and sale counts; a refund does not erase the original sale. Voided sales are excluded. Refunds shows completed money handed back, and Total collected is total charged minus refunds. Net Sales, tax, and taxable/non-taxable sales deduct the exact components of completed refunds when their breakdown is known. Cash and card totals deduct refunds to that same tender. Invoice payments and terminal sales follow these same rules.

For an amount-only refund without item rows, taxable and non-taxable sales use the original sale's proportional merchandise breakdown when available, including its discounts. If the original sale has no item breakdown, the refund retains that sale's existing tax classification rather than inventing a new one; its recorded merchandise and tax amounts remain unchanged.

Refunds use their own completion/receipt date, not the original sale's date. Sales date ranges use store-local calendar days, with an inclusive start and an exclusive midnight after the selected end date. A refund on a later day can therefore make that day's net sales or tender totals negative.

The portal shows Refunds (no tax breakdown) separately; downloads and scheduled emails call this Unallocated refund. This positive amount is the subset of completed refunds whose merchandise/tax components have not been established. It already reduces total collected and its recorded tender, but does not change known pre-tax sales or tax amounts. Do not subtract it twice or count it as a register cash payout. It does not mean zero-tax or non-taxed merchandise. A blank amount in a download, or — in an email, means the source did not report this field; an explicit 0.00 means it reported zero.

Customer report time zones​

Customer Reports can cover one store or the organization. Last visit shows the time in the store where that visit occurred, with its zone abbreviation (for example, EST or EDT) and store name. It does not use the customer's home store or the viewer's browser timezone. A customer without a visit has no visit time or visit-store timezone.

Date filters start at midnight on Start Date, inclusive, and stop at midnight on End Date, exclusive. Selecting the same date for both includes that whole local calendar day. Across stores, each activity uses its own store's configured timezone: the same calendar dates can therefore have different instant boundaries. Daylight-saving changes produce 23- or 25-hour days rather than fixed 24-hour windows. New-customer dates use the first visit's store; retention cutoffs use the last visit's store.

Customer CSV exports preserve the original instant columns for compatibility and append Last visit (store local), Last visit store, and the configured IANA Last visit time zone.

Dashboard totals​

The store dashboard uses server-calculated totals, not a downloaded transaction page. All starts at the selected store's earliest transaction, even when it is older than 90 days or the store has more than 5,000 transactions. Today, seven-day, and thirty-day windows use the store's configured timezone and include the current store-local date: seven days starts six dates before today, and thirty days starts twenty-nine dates before today. The response includes the exact inclusive start, exclusive end, timezone, and store currency.

Android requests the totals-only /reports/dashboard/totals endpoint. It returns the complete sales and tender totals and server-owned range metadata without loading transaction history or calculating hourly/product series. The portal's full dashboard and live stream retain those series; omitted series in the totals-only contract do not represent zero activity. Both endpoints require store.reports.read, and unrecognized reporting periods are rejected.

Sales include completed, settled, partially refunded, and refunded sales. Refunds are reported separately and do not erase the original sale. Cash and card totals use the recorded tender amounts minus completed refunds to the same tender; a split-tender sale counts in both tender transaction counts while counting once overall. Gift-card amounts are not included in cash or card totals.

The full dashboard's returns count and amount summarize completed financial refunds, including invoice refunds without item-return rows. Cash already handed back is included at its acknowledgement time even if a separate card refund is still being resolved; the later card result does not count that cash twice.

Service Reporting​

The Service Reporting tab shows appointment counts and a Current-price estimate: completed appointments multiplied by each service's current catalog price. It is not historical booked value or collected revenue, and changing a catalog price changes the estimate in the page and CSV.

Appointment and service-catalog failures make the report unavailable. Staff, resource, booking-site, and shift-conflict sections update independently as each read finishes: successful sections show their counts, and pending sections say Loading…, not zero. A failed read immediately produces an explicitly Partial report with that section marked Unavailable and Retry unavailable sections available, without waiting for other optional reads. Core appointment/service metrics and their CSV remain available while optional sections are pending or unavailable; the export contains only appointment/service metrics. Retry reloads the report. Changing stores or dates clears the prior scope's results.

Manage Scheduled Reports​

Scheduled reports belong to the selected store, even though recipients can be outside PeakPOS.

View schedules​

  1. Select the store.
  2. Go to Reports > Scheduled Reports.
  3. Review each schedule's Type, Frequency, Recipients, Next Run, and Status.

Viewing requires store.reports.read. Creating, running, pausing, resuming, or deleting a schedule requires both store.reports.write and org.admin.

Create a schedule​

  1. Select + New Schedule.
  2. Choose a Report Type: Sales, Inventory, Members, or Tax.
  3. Choose Hourly, Daily, Weekly, or Monthly. An hourly schedule emails the previous complete hour.
  4. Enter one or more recipient email addresses. Separate multiple addresses with commas.
  5. Select Create Schedule.

Use addresses owned by the business and review the recipient list whenever staff responsibilities change. Run now sends the report immediately without changing its next scheduled delivery. Pause keeps a schedule but stops automatic delivery; Resume restarts it. Delete asks for confirmation before removing the schedule.

Review or change Store Settings​

  1. Select the store.
  2. Go to Settings > Settings.
  3. Review Store information. Name, address, and phone are shown here but are edited from Organization > Locations.
  4. Under Operational settings, review:
    • Timezone and its IANA timezone value, such as America/New_York.
    • Coverage hours, derived from the store's coverage templates.
    • Checkout behavior, including Prompt for a tip during checkout.
  5. If you have store.settings.write, save each changed section with its exact control: Save for timezone or Save checkout behavior for the tip prompt. To change coverage hours, use Employees > Coverage templates; coverage hours are not edited in Store Settings.

Users without write access see the effective values in read-only form. A saved tip-prompt change applies to all POS terminals in that store after their next configuration refresh.

Android register customer prompt​

Android checkout follows the store's server-managed customer/loyalty prompt setting; there is no customer-prompt switch in POS Settings. This setting is managed by Peak Support in Support Portal > Store Settings > Loyalty Prompt, not in the Merchant Portal.

When enabled, eligible retail checkouts without an attached customer show the customer/loyalty prompt before payment selection. When disabled, checkout skips that automatic prompt but manual customer lookup remains available. The store setting does not enable loyalty when it is unavailable for the register.

Changes take effect after the terminal accepts refreshed configuration, not after catalog Sync Now. Configuration refresh runs on app startup, foreground return, and periodically while foregrounded; an active sale defers replacement until it finishes. To verify a changed setting, start with an empty cart, restart and unlock the app, wait for normal startup readiness, then start a fresh checkout. Confirm the expected prompt behavior before selecting a payment method.

Use the Compliance report​

Compliance is an audit view; it does not replace your store's legal or policy review.

  1. Select the store and go to Settings > Compliance.
  2. Filter by Start date, End date, Cashier, or Action.
  3. Under Action, choose Permit, Deny, Override, or All actions.
  4. Review Total Checks, Passed, Failed, Overrides, and Pass Rate.
  5. Review Policy Rules to see the jurisdiction, minimum age, whether the row is effective or a fallback, and whether the rule is active.
  6. Select a check to open Compliance Check Detail. It can show cashier, check type, product, required and verified age, ID type and expiry, reason codes, transaction, approval, and override notes.
  7. Use Export to download the currently filtered checks as CSV or PDF.

Interpret Action separately from Result:

  • Permit means the result was recorded as a pass and no override reason was recorded.
  • Deny means the result was not a pass and no override reason was recorded.
  • Override means an override reason was recorded. It does not by itself prove that a manager approval ID exists; open Compliance Check Detail and review Approval and Override.
  • Passed and Failed summarize non-overridden permits and denials, while Overrides is counted separately.
  • A policy marked Fallback means no effective jurisdiction row was used. Product-level 18+/21+ flags can still provide the fallback requirement.

Work the Restricted Sales Review queue​

This page joins restricted-sale exceptions with compliance, manager override, transaction, tax, and audit evidence.

  1. Select the store and go to Settings > Restricted Sales Review.
  2. Set Start Date and End Date, or use Today, 7 days, or 30 days.
  3. Filter by Category and Approval. Approval choices are All approvals, Manager approved, Approval pending, Denied checks, and No approval.
  4. Review the summary counts for Incidents, Needs review, Denied / blocked, and Incomplete evidence.
  5. Select an incident and inspect its outcome, review status, owner, risk flags, and evidence cards.
  6. Use CSV to export the current incident report when you need an offline review record.

Users with store.reports.read can review the queue. Users with store.reports.write can also assign an owner, add a resolution note, and set the review status to Needs review, Resolved, Blocked denied, Evidence incomplete, or No action needed, then save the incident review.

Treat Incomplete evidence as a reason to investigate, not as proof that a sale was compliant or noncompliant.

SMS consent records are store ledger entries, but marketing delivery checks consent across the organization.

  1. Select the store and go to Settings > SMS Consent.
  2. Enter a phone number in Search selected-store ledger by phone and select Search.
  3. Review Phone, Method, Consented, and Status.
  4. Select the result or View History to see when consent was recorded or revoked and who performed the action.

Users with store.consent.read can search and view history. Users with store.consent.write can also:

  • Select Record Consent, enter the phone number, choose Digital, Verbal, or Written, and select Record.
  • Select Revoke Consent and confirm Revoke.

Record only an explicit opt-in collected by the method you select. Revoking consent here ends this store's active ledger row. If the same phone number still has active consent at another store in the organization, organization-wide marketing campaigns and automations may still be eligible to send. Check the history and contact support if an organization-wide opt-out needs review.