Financial Reports
The Wallet Reports screen gives you an accurate picture of your wallet program's financial exposure. Every figure is derived from the append-only wallet ledger, so it stays correct even after orders are refunded or edited. You get outstanding liability, credits issued and redeemed (each with a period-over-period change), an active-wallet count, a six-month issued vs redeemed chart, a top-balances liability-concentration view, plus CSV exports for transactions, balances, a GL-friendly ledger, and top balances.
Where to find it
WalletPro adds two read-only screens under the WordPress WooCommerce admin menu:
- Wallet Reports (WooCommerce > Wallet Reports). Totals, period-over-period changes, active wallets, the monthly activity chart, liability and breakage, CSV exports, reconciliation, and ledger integrity.
- Wallet Top Balances (WooCommerce > Wallet Top Balances). The largest balances and how concentrated your liability is, with a per-customer share bar and its own CSV export.
Both screens require the manage_woocommerce capability, so administrators and shop managers can open them and customers cannot. There is no separate per-report permission to configure.
Reports read the ledger directly rather than deriving figures from order totals, so the totals, the liability snapshot, the reconciliation, and every export all agree to the cent. All money is computed with bcmath at four decimal places.
Wallet Reports screen
Date range filter
A simple From / To date filter sits at the top of the screen. Leave a field blank to leave that side of the range open. The range drives the totals, the period-over-period comparison, the active-wallet counts, and the breakage figure. The outstanding liability snapshot is taken as of the To date when set, otherwise as of now.
Totals
The totals table summarises ledger movement for the selected range:
| Row | What it shows |
|---|---|
| Deposits (top-ups) | Customer-funded top-ups added in the range. |
| Granted (rewards + refunds) | Store-issued credit: manual credit, cashback, refunds to wallet, and top-up bonuses, combined. |
| Spent | Wallet spend (debits) in the range. |
| Expired | Credit that expired or was forfeited in the range (breakage). |
| Net manual adjustments | The signed net of admin manual adjustments. Can be negative. |
| Outstanding liability | Total of all wallet balances, the amount the store currently owes customers. |
Period-over-period change New in 1.83.x
Three of the totals carry a small coloured change badge comparing the selected range against the immediately preceding period of the same length: Outstanding liability, Granted (rewards + refunds), and Spent. The badge reads as a signed percentage, for example "+50%" for an increase, "-20%" for a decrease, or "0%" when unchanged. When the prior period was zero there is no base to compare against, so the badge reads new instead of a percentage. Each badge is announced to screen readers as a change relative to the previous period, so the figure is never read in isolation.
Active wallets New in 1.83.x
Below the totals, an Active wallets row reports how many wallets are active for the selected range, with a "(+N new this period)" note beside it. A wallet counts as active when it has a positive current balance or any ledger movement inside the range. A wallet counts as new this period when its first funding (its earliest balance-increasing entry) falls inside the range.
Monthly wallet activity New in 1.83.x
A Monthly wallet activity chart plots credits issued versus credits redeemed across the last six calendar months. Issued mirrors the "Granted" definition (manual credit, cashback, refunds, and top-up bonuses); redeemed is wallet spend. Each month shows two columns scaled to the largest bar in the window, with a colour legend for issued and redeemed.
The chart is accessible: it carries a descriptive image label, and every figure is also printed beneath it in a plain Month / Issued / Redeemed table, so no value is conveyed by colour or bar height alone. Hovering a bar reveals that month's exact amount.
The monthly chart always covers the trailing six months and is independent of the From / To filter, so you can compare a filtered range above it against the recent six-month trend at a glance.
Liability & breakage
A compact table reports two accounting figures:
- Outstanding liability as of [date], the signed sum of every ledger entry up to the as-of date (the To date when set, otherwise today). This is the balance-sheet liability line.
- Breakage (expired credit) for range, the total credit that expired within the selected range. Depending on your jurisdiction and accounting method, breakage may be recognisable as revenue.
WalletPro does not make revenue recognition decisions. Consult your accountant or finance team before booking breakage as income. Rules vary by country, state, and credit type.
Reconciliation and ledger integrity
Two status sections close out the screen. Reconciliation checks that each customer's stored balance matches the sum of their ledger entries and lists any customer whose stored balance, ledger sum, and difference do not agree. Ledger integrity verifies the HMAC hash chain over the ledger and reports how many entries were checked, flagging the first affected entry if any entry fails its hash. Run these before exporting figures for an audit.
Wallet Top Balances screen New in 1.83.x
The Wallet Top Balances screen (WooCommerce > Wallet Top Balances) shows the largest wallet balances and how concentrated your outstanding liability is, a risk view on who the store owes the most. A Top N filter (1 to 100, default 10) controls how many customers are listed; it is a display filter only.
Liability concentration
A summary table reconciles the concentration figures to the store-wide liability:
| Row | What it shows |
|---|---|
| Outstanding liability | Total liability across every customer with a balance. |
| Held by top N customers | Sum of the top N balances. |
| Held by everyone else | The remainder. Top N plus remainder always equals the outstanding liability. |
| Concentration (top N share) | The top N balances as a percentage of the total liability. |
| Customers with a balance | Count of customers holding any balance. |
| Average balance | Mean balance across those customers. |
| Top balance | The single largest customer balance. |
Top balances table with share bar New in 1.83.x
The table below lists each top customer by rank, customer (email and user ID), and balance. The Share of liability column pairs a percentage with a visual bar whose width is that customer's share of the total liability, so you can see at a glance how much of the program's exposure sits with a single customer. The bar width is clamped to the 0 to 100 range, so it can never overflow its track, and the same percentage is always shown as text beside it.
Exporting to CSV
Each report screen offers CSV exports as buttons. Exports are generated server-side and download immediately. Every export link is protected by a nonce, and the endpoints require the manage_woocommerce capability.
| Export | From | Columns |
|---|---|---|
| Transactions | Wallet Reports | ID, Email, Type, Amount, Balance after, Order, Note, Date (UTC). Respects the From / To filter. |
| Balances | Wallet Reports | User ID, Email, Balance. A point-in-time list of every wallet balance. |
| GL | Wallet Reports | Date (UTC), Type, Debit, Credit, Running liability, Customer. Respects the From / To filter. |
| Top balances | Wallet Top Balances | Rank, Customer, Balance, Share of liability (%). Uses the current Top N value. |
GL export
The GL (general-ledger) export is built for handing to accounting. Each in-range ledger movement is a row with the amount placed in a Debit or Credit column and a running outstanding liability. A summary footer follows the detail rows so the file reconciles on its own, without a spreadsheet formula:
- Opening liability, the signed ledger total immediately before the range.
- Totals, the period debit and credit totals.
- Breakage (expired), credit that expired within the range.
- Closing liability, which by construction equals opening plus total credit minus total debit.
Top balances export
The top-balances export lists each ranked customer with their balance and share of liability, then a footer carrying the Outstanding liability, the Top-N total with its concentration percentage, and the Remainder, so the file is self-reconciling: top N plus remainder equals the liability.