Skip to main content

Reports & KPIs

Reports (/reports"Compliance filings, financial data, and business reports") is the index for every report in Avero. Two more analytical surfaces live under Admin: the KPI Catalog at /admin/kpis and Raw Data Export at /admin/data-export.

Who can use it

Each report is gated by its own permission, and the index only shows the cards you can open. If you hold none of them, the page says so plainly: "You don't have permission to view any reports. Please contact your administrator."

ReportPermissionWho has it
Daily Sales Summaryreports.daily_salesManager, Admin
Payment Reconciliation and Error Triagereports.payment_reconciliationManager, Admin
Wholesale Ordersreports.wholesaleManager, Admin
Compliance reports (filing, events, history)company.readManager, Concierge, Admin
Financialsstripe.financials.readManager, Admin
KPI Catalogreports.kpi.readAdmin only
Raw Data Exportreports.export.run (reports.export.pii for clear-text PII)Admin only
Audit Logaudit.readAdmin only

The reports index

The index groups its cards into four sections — Compliance Reports, Financial Reports, Operations & Sales, and Administration:

CardWhereWhat it covers (card copy)
TX Winery Filing/reports/filing"Generate and view TABC Winery Permit (G) compliance filings for locked periods."
Event Detail/reports/events"Browse and export individual compliance events with filtering and search."
Filing History/reports/history"Review previously locked filing periods with snapshots and audit trails."
Financials/reports/financials"View Stripe payment volume, transactions, refunds, payouts, and export financial data."
Daily Sales Summary/reports/daily-sales"End-of-day sales by tender, top items, top servers, voids, comps, and refunds for any date."
Payment Reconciliation/reports/payment-reconciliation"Reconcile internal payment tenders against Stripe ledger events and surface exceptions."
Payment Error Triage/reports/payment-errors"Filter and resolve failed payments across POS, deposits, gift cards and online — guest-fixable declines first."
Wholesale Orders/reports/wholesale-orders"Open and recent wholesale orders grouped by customer with outstanding balances and CSV export."
Audit Log/admin/audit"Browse, filter, and export sensitive-action audit events for your company."

The Financials card opens the same page documented in Payments & refunds — one page, reachable at /reports/financials, /financials, and /admin/financials.

Day-of sheets live under Operations

The printable run-sheet (/operations/daily-sheet) and cash-drawer counts (/operations/cash-drawer) are Operations pages, not reports — see Daily operations.

Daily Sales Summary

/reports/daily-sales (Daily Sales Summary) is the end-of-day picture for one date. Filter by Date (UTC), Brand (All brands), and Location (All locations — the list narrows to the chosen brand), then Refresh.

The Daily Sales Summary — KPI tiles, sales by tender, top items and servers.

The Daily Sales Summary — KPI tiles, sales by tender, top items and servers.

The KPI tiles are Closed Checks, Gross Sales, Net Sales ("subtotal − discounts"), Total Billed ("incl. tax"), Discounts, Voids, Tax, Tips, and Refunds. Below them:

  • Sales by Tender — settled tenders with count and amount.
  • Top Items — item, quantity, gross.
  • Top Servers — user, checks, net sales.
  • Voids, Comps, and Refunds — each line with its reason, program, or status.

This report has the fullest set of output actions: Print opens a printable HTML view, and CSV downloads the day's summary.

Payment Reconciliation

/reports/payment-reconciliation (Payment Reconciliation) proves that what Avero recorded matches what Stripe paid out. Set a From / To range and read the Reconciliation Status card — when everything ties out, the badge reads Reconciled; otherwise it counts payouts against pending items. The status tiles are Payout Net, Stripe Charges, Internal Stripe Tenders, and Δ Discrepancy ("internal − stripe").

The tables below break the window down: Exceptions, Payouts (each row deep-links to the payout in the Stripe dashboard), Pending Payouts, Pending Payment Links, Internal Tenders (settled), Stripe Ledger, and Reconciliation Worker Outcomes. CSV exports the summary. The report's own footer states the contract: "Numbers reconcile to /reports/financials."

A Platform mode switch exists for Avero platform operators (platform.reconciliation.read); winery staff stay in tenant view — if you flip it without the permission you'll see "You do not have permission to view platform-mode reconciliation." and a Switch to tenant view button.

Payment error triage

/reports/payment-errors (Payment error triage) is the fix-it queue for failed payments. Four summary tiles bucket the problems — Guest-fixable, Retry, Needs action, Setup — and the list filters by date range, Status (Open / Resolved / Ignored / All) and Group (declines, outages, setup, shipping, and more). Sort: Easy first floats guest-fixable declines to the top; Sort: Recent is chronological.

Work a row with Resolve or Ignore; rows tied to another surface show a View → link instead. A clean window reads "No payment errors in this window." There is no export on this page.

Wholesale Orders

/reports/wholesale-orders (Wholesale Orders"Wholesale orders grouped by customer with outstanding balances.") filters by From / To, Status (Pending through Cancelled), and a Customer search ("Search name or email"). Tiles: Customers, Orders, Total Volume, Outstanding Balance. Each customer expands into its orders — order #, status, placed, expected ship, items, total, outstanding. Export CSV downloads the filtered set.

Compliance reports

Three pages cover TABC compliance for Texas wineries:

  • TX Winery Filing (/reports/filing) — pick a Permit and a Locked Period to render the filing: the schedule of sales in gallons (onsite/offsite by class), certification, and audit hash. Download as PDF, CSV, or JSON. No locked period yet? "No locked periods available for this permit. Lock a period in Admin to generate reports." The page also shows a Tax Summary — Current Month widget (Tax Collected, Active Nexus States, Jurisdictions) with a View Full Report link to /admin/tax — see Settings.
  • Event Detail (/reports/events) — every individual compliance event, filterable by date, Channel (Onsite / Offsite), Type (Onsite Sale / Offsite Sale / Reversal), location, and search. Export CSV or JSON.
  • Filing History (/reports/history) — the locked periods for a permit with gallons and hash; per-row actions view the filing or download its PDF.
Filing needs a complete company identity

If the filing page warns "Company identity information is incomplete. Update your company settings before filing.", finish the Corporate tab at /admin/company first — see Settings.

The KPI Catalog

/admin/kpis (KPI Catalog"Canonical metrics across Revenue, Wine Club, POS, Inventory, and Compliance. Values are cached for one hour and recomputed on demand.") is the admin's metric library. Tabs split the catalog by domain — All, Revenue, Wine Club, POS / Hospitality, Inventory, Compliance — with metrics such as Gross Merchandise Value (GMV), Refund Rate, Active Club Members, Wine Club MRR, Average Check Size, Covers (Guests Served), On-Hand Inventory Value, and Tax Owed.

The KPI Catalog — domain tabs and per-KPI cards with sparklines.

The KPI Catalog — domain tabs and per-KPI cards with sparklines.

Each card shows the value for the chosen Range start / Range end (default: the last 30 days), a cached / fresh badge, a sparkline, a per-card refresh button, and a View report link to the domain's deeper surface. Reload refreshes the page's values and Export CSV downloads a snapshot of every KPI in range.

Inventory on-hand

There isn't a standalone inventory report page — on-hand value is the On-Hand Inventory Value KPI here, and live stock levels are at /admin/inventory (Products & inventory).

Raw Data Export

/admin/data-export (Raw Data Export"Stream tenant-scoped data to CSV. PII fields are hashed by default and the download is gated by a per-tenant signed URL that expires in 7 days.") is the bulk pipe for analysts:

  1. In New export, tick the Tables you need — tables carrying personal data are marked contains PII.
  2. Optionally bound the job with Start date (optional) / End date (optional).
  3. Pick the FormatCSV today (Parquet (coming soon) is not yet selectable).
  4. Enqueue export. The job appears under Recent exports as Queued → Running → Ready (or Failed / Expired), with a Download link and row/byte counts when ready.
Exporting personal data is audited

When a PII table is selected the page warns: "By default, email and phone are SHA-256 hashed and addresses are coarsened to city + state + postal. To export plain values you must hold the reports.export.pii permission." Ticking Export PII in clear-text (audited) writes an audit event.

Reference

ControlWhereWhat it does
PrintDaily Sales SummaryOpens the printable HTML day view.
CSVDaily Sales, Payment Reconciliation, Event DetailDownloads the current view as CSV.
Export CSVWholesale Orders, KPI CatalogDownloads the filtered orders / the KPI snapshot.
PDF / CSV / JSONTX Winery FilingDownloads the locked filing in each format.
Resolve / IgnorePayment error triage rowCloses out a failed-payment task.
ReloadKPI CatalogRecomputes the visible KPI values.
Enqueue exportRaw Data ExportQueues a bulk table export with a 7-day download link.

Troubleshooting

  • "You don't have permission to view any reports. Please contact your administrator." — your role holds none of the report permissions; reports are Manager/Admin surfaces (see the table above).
  • "Failed to load daily sales summary." — refresh; if it persists, check the date and location filters.
  • "No payouts in this window." — widen the reconciliation date range; Stripe payouts land on a delay.
  • "Company identity information is incomplete. Update your company settings before filing." — complete legal name and address on the Corporate tab of /admin/company.
  • "No locked filings found for this permit. Lock a filing period in Admin to create history." — periods must be locked before history or filings render.
  • A KPI card reads "Adapter failed:" — that metric's computation errored; use the per-card refresh, then Reload.
  • An export sits at "Failed" — the row shows the error message; re-enqueue with a narrower date range.
  • Payments & refunds — the Financials page, payouts, and where refunds live.
  • Daily operations — the day-of Daily Sheet and cash drawers.
  • Settings — the tax dashboard, audit log, and company identity the filings depend on.