Financial Reports
WalletPro generates liability, breakage, and program ROI reports that give you an accurate picture of your wallet program's financial exposure and performance. These reports are designed to integrate with standard accounting workflows and can be exported as GL-friendly CSV files or delivered automatically by email on a schedule.
Overview
WalletPro tracks every credit and debit through a tamper-evident, HMAC-chained audit ledger. The Financial Reports section surfaces that ledger data in four report types:
| Report | What it shows | Primary use |
|---|---|---|
| Liability Summary | Total outstanding wallet balances across all customers at a point in time | Balance sheet liability line item |
| Liability Detail | Per-customer outstanding balance with last activity date | Audit support, customer-level reconciliation |
| Breakage Report | Credit that has expired or been forfeited, aggregated by expiry period | Revenue recognition for expired store credit |
| Program ROI & Cohort Analytics | Top-up volume, redemption rate, repeat purchase lift, cashback cost, referral cost | Program performance and spend justification |
All four reports are available under WooCommerce > WalletPro > Reports. Each can be filtered by date range and exported as CSV. The Liability Summary and Breakage Report are also surfaced inside the native WooCommerce Analytics panel under the WalletPro tab.
How It Works
Every wallet transaction, top-up, redemption, manual credit, cashback, expiry, transfer, withdrawal, writes an immutable ledger entry. Each entry stores:
- Transaction type and amount
- Customer ID and wallet currency
- Order or trigger reference (where applicable)
- Timestamp and the actor (customer self-service or admin user ID)
- HMAC chain hash linking to the previous entry for that wallet
Reports query this ledger directly rather than deriving figures from order totals, so they remain accurate even when orders are refunded, deleted, or edited after the fact.
The HMAC chain is verified automatically by wp wallet doctor. If any entry has been tampered with outside of WalletPro, the chain check will fail and flag the affected wallet. Run this before exporting reports for audit purposes.
Liability Reports
Liability Summary
The Liability Summary shows your total outstanding wallet balance, the aggregate amount customers could spend right now, as of any date you choose.
Menu path: WooCommerce > WalletPro > Reports > Liability > Summary
| Field | Description |
|---|---|
| As-of Date | Point-in-time snapshot. Defaults to today. Use end-of-month dates for period closes. |
| Currency | Filter by wallet currency. "All currencies" shows a row per currency. |
| Include zero balances | When checked, customers with a $0.00 balance are counted in the customer total but contribute $0 to the liability figure. |
The summary card displays:
- Total outstanding liability, sum of all positive wallet balances
- Active wallet count, wallets with balance > $0.00
- Average balance per active wallet
- Month-over-month change, compared to the same date in the prior month
Liability Detail
The detail view lists every wallet with a balance as of the selected date, one row per customer.
Menu path: WooCommerce > WalletPro > Reports > Liability > Detail
| Column | Notes |
|---|---|
| Customer | Name and email, linked to WooCommerce customer profile |
| Balance | Balance as of the selected as-of date |
| Currency | Wallet currency code |
| Last Transaction | Date of the most recent ledger entry |
| Days Idle | Days since last transaction. Useful for identifying dormant balances. |
| Expiry Date | Earliest-expiring credit block for this wallet, if credit expiry is enabled |
You can sort by any column and filter by minimum balance, idle threshold (e.g. wallets idle for 90+ days), or expiry window.
Breakage Report
Breakage refers to wallet credit that expires before being spent. Depending on your jurisdiction and accounting method, breakage may be recognisable as revenue. The Breakage Report provides the data your accountant needs to make that determination.
Menu path: WooCommerce > WalletPro > Reports > Breakage
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 (purchased credit vs. gifted/promotional credit).
The report groups expired credit by the period in which it expired:
| Column | Description |
|---|---|
| Period | Calendar month (or fiscal period if you use a custom fiscal calendar) |
| Expired Credit | Total value of credit that expired during this period |
| Credit Type | Purchased top-up, cashback reward, milestone reward, referral bonus, gift credit, or admin manual credit |
| Wallets Affected | Number of distinct customer wallets that had credit expire |
| Running Total | Cumulative breakage from the start of the selected date range |
You can break the report down by credit type using the Group by credit type toggle. This is useful if your accountant treats purchased credit differently from promotional credit for recognition purposes.
Program ROI & Cohort Analytics
The ROI dashboard helps you evaluate whether your wallet program is driving the returns you expect from cashback, referrals, and milestone rewards.
Menu path: WooCommerce > WalletPro > Reports > Program ROI
Summary Metrics
| Metric | Definition |
|---|---|
| Top-up Volume | Total customer-purchased credit over the period |
| Redemption Rate | Percentage of issued credit (all types) that was spent |
| Cashback Cost | Total cashback credit issued, as a percentage of gross order revenue |
| Referral Cost | Total referral bonus credit issued over the period |
| Repeat Purchase Lift | Difference in average order frequency between wallet users and non-wallet customers in the same cohort window |
| Average Order Value Lift | Difference in AOV between wallet-paying and non-wallet orders over the same period |
Cohort View
The cohort table groups customers by the month they made their first wallet top-up and tracks their cumulative spend and redemption behaviour over subsequent months. This is useful for understanding how quickly wallet customers convert and whether engagement drops off after the first few months.
Each cell shows the percentage of the cohort that placed an order using their wallet balance in that month offset. Hover over any cell to see the raw order count and average order value for that cell.
WooCommerce Analytics Integration
WalletPro adds a WalletPro tab to the native WooCommerce Analytics panel (WooCommerce > Analytics > WalletPro). This tab shows:
- Outstanding liability trend over the selected date range
- Top-up revenue vs. breakage in the same period
- Wallet payment method share (what percentage of orders included a wallet payment)
These figures use the same Analytics date range picker and comparison period controls as the rest of WooCommerce Analytics. They are calculated from the WalletPro ledger, not from WooCommerce order meta, so they stay accurate after order edits.
Exporting Reports as CSV
Every report has an Export CSV button in the top-right corner of the report view. Exports are generated server-side and downloaded immediately for smaller datasets. For datasets over 10,000 rows, the export is queued and you receive an admin notice with a download link when it is ready.
CSV Column Format
The exported CSV uses standard column headers designed to import cleanly into common accounting packages:
| CSV Column | Type | Notes |
|---|---|---|
date |
ISO 8601 | UTC timestamp of the ledger entry |
transaction_id |
string | WalletPro internal ledger entry ID |
customer_id |
integer | WooCommerce user ID |
customer_email |
string | |
transaction_type |
string | top_up, redemption, cashback, referral_bonus, milestone_reward, gift_credit, manual_credit, manual_debit, expiry, transfer_in, transfer_out, withdrawal |
amount |
decimal | Positive for credits, negative for debits |
currency |
ISO 4217 | |
balance_after |
decimal | Wallet balance immediately after this entry |
order_id |
integer | Associated WooCommerce order, blank if not order-linked |
note |
string | Admin reason (manual entries) or system-generated description |
actor |
string | customer or admin username |
hmac |
string | Chain hash for this entry. Can be verified independently using wp wallet doctor. |
Scheduled CSV Email Delivery
You can configure WalletPro to email any report as a CSV attachment on a recurring schedule without logging into wp-admin.
Menu path: WooCommerce > WalletPro > Reports > Scheduled Exports
Setting Up a Scheduled Export
- Go to WooCommerce > WalletPro > Reports > Scheduled Exports.
- Click Add Schedule.
- Choose the report type: Liability Summary, Liability Detail, Breakage, or Full Ledger.
- Set the Frequency: Daily, Weekly (choose day of week), or Monthly (choose day of month).
- Set the Date Range for the exported data: Previous Day, Previous Week, Previous Month, or Custom (fixed date range).
- Enter one or more Recipient Email Addresses, comma-separated.
- Optionally set a Report Label that appears in the email subject line.
- Click Save Schedule.
The schedule runs via WP-Cron. If your site uses a real cron job instead of WP-Cron (recommended for accuracy on scheduled financial reports), no additional configuration is needed, WalletPro uses the standard WordPress scheduling API.
For end-of-month liability reports, set Frequency to Monthly, Day of Month to 1, and Date Range to Previous Month. This delivers the prior month's closing liability figure on the first day of each new month, matching a typical accounting close cycle.
Generating Reports via WP-CLI
All reports are available from the command line, which is useful for scripted reconciliation or piping output into other tools.
# Print liability summary as of today
wp wallet report liability-summary
# Liability summary as of a specific date
wp wallet report liability-summary --as-of=2026-05-31
# Export liability detail to CSV
wp wallet report liability-detail --format=csv > liability-detail-may.csv
# Breakage report for Q1 2026
wp wallet report breakage --start=2026-01-01 --end=2026-03-31
# Full ledger export for a single customer
wp wallet report ledger --customer=42 --format=csv
# Verify HMAC chain integrity before exporting
wp wallet doctor
Run wp wallet report --help for the full parameter reference.
Accessing Reports via REST API
Report data is available through the WalletPro REST API for integration with external accounting or BI systems.
| Endpoint | Method | Description |
|---|---|---|
/walletpro/v1/reports/liability-summary |
GET | Liability summary for a given as-of date |
/walletpro/v1/reports/liability-detail |
GET | Per-customer liability detail, paginated |
/walletpro/v1/reports/breakage |
GET | Breakage totals grouped by period and credit type |
/walletpro/v1/reports/ledger |
GET | Paginated full ledger with optional customer filter |
All report endpoints require manage_woocommerce capability. Authenticate using a WooCommerce REST API key pair (Consumer Key / Consumer Secret) or WordPress application password.
Example: Liability Summary Request
# GET /walletpro/v1/reports/liability-summary?as_of=2026-05-31¤cy=USD
curl -u ck_xxx:cs_xxx \
"https://yourstore.com/wp-json/walletpro/v1/reports/liability-summary?as_of=2026-05-31¤cy=USD"
{
"as_of": "2026-05-31",
"currency": "USD",
"total_outstanding": "18432.50",
"active_wallet_count": 312,
"average_balance": "59.08",
"month_over_month_change": "+4.2%",
"generated_at": "2026-06-01T00:02:14Z"
}
Example: Breakage Request
# GET /walletpro/v1/reports/breakage?start=2026-01-01&end=2026-03-31&group_by=credit_type
curl -u ck_xxx:cs_xxx \
"https://yourstore.com/wp-json/walletpro/v1/reports/breakage?start=2026-01-01&end=2026-03-31&group_by=credit_type"
{
"start": "2026-01-01",
"end": "2026-03-31",
"total_breakage": "743.20",
"rows": [
{
"period": "2026-01",
"credit_type": "cashback",
"expired_amount": "112.40",
"wallets_affected": 18
},
{
"period": "2026-01",
"credit_type": "gift_credit",
"expired_amount": "55.00",
"wallets_affected": 5
}
]
}
Permissions
Access to financial reports is controlled by WordPress user roles. By default:
| Role | Liability Summary | Liability Detail | Breakage | Program ROI | Scheduled Exports |
|---|---|---|---|---|---|
| Administrator | Yes | Yes | Yes | Yes | Yes |
| Shop Manager | Yes | Yes | Yes | Yes | Yes |
| Editor | No | No | No | No | No |
| Customer | No | No | No | No | No |
To grant report access to a custom role, add the walletpro_view_reports capability to that role using a role management plugin or directly via WP_Role::add_cap(). Scheduled export management requires the additional walletpro_manage_scheduled_exports capability.