Analytics
WalletPro exposes wallet program performance across two surfaces: native WooCommerce Analytics reports and a dedicated program dashboard. Together they give you the data needed to measure ROI, spot redemption trends, and tune rewards without leaving wp-admin.
Overview
WalletPro adds two distinct analytics surfaces:
- WooCommerce Analytics integration, wallet-related metrics appear as additional columns and report types inside the existing Analytics menu your team already uses. Filters, date ranges, and CSV exports all work the same way as built-in WooCommerce reports.
- WalletPro Program Dashboard, a dedicated screen at
WooCommerce > WalletPro > Analyticsthat shows program-level KPIs: funded liability, breakage, redemption rate, cohort retention, and estimated ROI.
Both surfaces read from the same HMAC-chained audit ledger that backs every wallet transaction, so figures are always consistent with the balance totals shown elsewhere in WalletPro.
WooCommerce Analytics Integration
Reports added to WooCommerce > Analytics
| Report name | Location in WC Analytics | What it shows |
|---|---|---|
| Wallet Revenue | Analytics > Revenue | Orders where wallet covered part or all of the total; columns for wallet-paid amount vs gateway-paid amount |
| Wallet Top-ups | Analytics > Orders (filter: Wallet top-up order type) | Top-up orders by date, gateway, and amount loaded |
| Cashback Issued | Analytics > WalletPro > Cashback | Cashback credits issued per day, broken down by rule name |
| Redemption Codes | Analytics > WalletPro > Codes | Code usage count, total value redeemed, and remaining balance per code batch |
| Referral Credits | Analytics > WalletPro > Referrals | Referrer and referee credits issued, qualifying orders generated |
WooCommerce Analytics integration requires WooCommerce 8.2 or later and HPOS enabled. On sites still using the legacy post-based order storage, the added columns appear but cohort queries run slower.
Using the Revenue report with wallet columns
- Go to Analytics > Revenue.
- Click Show / hide columns (top-right of the table).
- Enable Wallet paid and Gateway paid.
- The table now shows, per order, how much came from the customer's wallet vs an external payment method.
- Use the standard date picker and segment filters (product, category, coupon) as normal, wallet columns respect all existing filters.
WalletPro Program Dashboard
The program dashboard is at WooCommerce > WalletPro > Analytics. It refreshes on a configurable schedule and can be e-mailed as a CSV summary to store administrators.
Dashboard panels
| Panel | Metric | Notes |
|---|---|---|
| Funded Liability | Total unredeemed wallet balance across all customers | Matches the Liability Report figure; exported to GL CSV |
| Redemption Rate | % of funded balance spent vs loaded (rolling 90 days) | Configurable window (30 / 60 / 90 / 365 days) |
| Breakage | Value of credits that expired before use | Requires credit expiry to be enabled; see Expiry settings |
| Program ROI | Revenue from wallet-paying orders minus cost of cashback/referral credits issued | Simplified model; does not account for gateway fees |
| Cohort Retention | % of customers who loaded a wallet in month N and made a wallet-paid purchase in months N+1 through N+6 | 6-month cohort table; one row per acquisition month |
| Average Wallet Size | Mean balance across customers with a non-zero balance | Excludes zero-balance accounts |
| Top Loaders | Top 10 customers by total amount loaded (current period) | Links to individual customer wallet admin page |
Configuring the dashboard
Go to WooCommerce > WalletPro > Settings > Analytics.
| Setting name | Options | Default |
|---|---|---|
| Dashboard date range | Last 30 / 60 / 90 / 365 days; custom range | Last 30 days |
| Redemption rate window | 30 / 60 / 90 / 365 days | 90 days |
| Cohort retention months | 3 / 6 / 12 | 6 |
| Enable ROI panel | On / Off | On |
| ROI cost model | Credits issued only / Credits issued + estimated gateway cost | Credits issued only |
| Cache analytics data | On / Off | On (24-hour cache) |
| Cache TTL (hours) | 1 to 168 | 24 |
On large databases (100k+ wallet transactions) leave caching enabled. The cohort query in particular is expensive, running it on every page load will noticeably slow down the wp-admin dashboard screen.
Liability and Breakage Reports
These two reports are available at WooCommerce > WalletPro > Reports and are designed for accounting handoff.
Liability Report
Shows the total unredeemed wallet balance as of any point-in-time date. Use this for month-end accounting entries.
- Go to WooCommerce > WalletPro > Reports > Liability.
- Set the As-of date field to the reporting date.
- The table lists: customer name, email, current balance, currency.
- The footer row shows the total funded liability.
- Click Export CSV to download the full list.
Breakage Report
Lists credits that expired before the customer used them. Requires credit expiry to be configured under WooCommerce > WalletPro > Settings > Credits > Credit expiry.
- Go to WooCommerce > WalletPro > Reports > Breakage.
- Select a date range covering the expiry events you want to review.
- The table shows: customer, credit source (cashback / referral / manual / code), amount, issue date, expiry date, days held.
- Click Export CSV to download.
GL-Friendly CSV export
Both reports export a CSV formatted for general-ledger import:
- Date column uses ISO 8601 (YYYY-MM-DD).
- Amounts are plain decimals with no currency symbols.
- A Currency column carries the ISO 4217 code for multi-currency stores.
- Each row has a Transaction type column (
load,spend,expire,refund,adjustment) for easy GL mapping.
Scheduled CSV Email Reports
WalletPro can automatically e-mail a CSV summary of wallet activity on a daily, weekly, or monthly schedule.
Configuring scheduled reports
- Go to WooCommerce > WalletPro > Settings > Analytics > Scheduled Reports.
- Set Enable scheduled CSV email to On.
- Configure the following fields:
| Field | Description |
|---|---|
| Frequency | Daily / Weekly (Monday) / Monthly (1st of month) |
| Send time | Hour of day in site timezone (00:00 to 23:00) |
| Recipient email(s) | Comma-separated list; defaults to the WooCommerce store admin email |
| Report contents | Checkboxes: Transactions summary, Liability snapshot, Cashback issued, Breakage (if expiry enabled), Referral credits |
| Attach full transaction CSV | On / Off, attaches the raw ledger export in addition to the summary |
- Click Save changes.
- To test immediately, click Send test report now, this dispatches a report covering the previous 24 hours to the configured recipients.
Scheduled reports use WP-Cron. If your site disables WP-Cron in favor of a system cron, confirm that the cron job fires at least as frequently as the chosen report interval, or scheduled emails will not send.
Filtering and Segmenting Data
All WalletPro analytics screens support the following filters, applied via the filter bar at the top of each report or dashboard panel:
| Filter | Available on |
|---|---|
| Date range | All screens |
| Customer role | Program Dashboard, Liability Report |
| Currency | All screens (multi-currency stores only) |
| Credit source | Cashback, Breakage, Referral panels |
| Transaction type | WC Analytics Revenue, Ledger export |
| Minimum balance threshold | Liability Report |
Developer: Accessing Analytics Data via REST API
The walletpro/v1 REST API exposes several analytics endpoints. All require the manage_woocommerce capability and a valid application password or OAuth token.
GET /wp-json/walletpro/v1/analytics/summary
Returns the same figures shown on the Program Dashboard.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
date_start |
string (YYYY-MM-DD) | Optional | Start of date range; defaults to 30 days ago |
date_end |
string (YYYY-MM-DD) | Optional | End of date range; defaults to today |
currency |
string (ISO 4217) | Optional | Filter to a single currency; omit for all currencies |
Example request
# Fetch summary for June 2026
curl -u "admin:app-password" \
"https://example.com/wp-json/walletpro/v1/analytics/summary?date_start=2026-06-01&date_end=2026-06-30"
Example response
{
"date_start": "2026-06-01",
"date_end": "2026-06-30",
"currency": "USD",
"funded_liability": "4821.50",
"redemption_rate": "0.68",
"breakage": "142.00",
"cashback_issued": "318.75",
"referral_credits_issued": "95.00",
"top_ups_total": "6200.00",
"wallet_paid_orders_total": "5410.25",
"program_roi": "4996.50",
"average_wallet_size": "38.40",
"active_wallets": 126
}
GET /wp-json/walletpro/v1/analytics/cohorts
Returns cohort retention data.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
months |
integer | Optional | Number of cohort months to return (3, 6, or 12); default 6 |
currency |
string (ISO 4217) | Optional | Filter to a single currency |
Example response
{
"cohorts": [
{
"acquisition_month": "2026-01",
"customers_loaded": 42,
"retention": {
"m1": "0.81",
"m2": "0.64",
"m3": "0.52",
"m4": "0.45",
"m5": "0.40",
"m6": "0.38"
}
}
]
}
Developer: WP-CLI Analytics Commands
# Print a summary of program metrics for the current month
wp wallet analytics summary
# Print summary for a specific date range
wp wallet analytics summary --start=2026-06-01 --end=2026-06-30
# Export the full liability report to a CSV file
wp wallet analytics liability --as-of=2026-06-30 --format=csv > liability-june.csv
# Export breakage for the last quarter
wp wallet analytics breakage --start=2026-04-01 --end=2026-06-30 --format=csv > breakage-q2.csv
# Bust the analytics cache and force a fresh calculation
wp wallet analytics cache flush
Developer: Hooks for Extending Analytics
Two filters let you add columns to or modify data in the exported reports.
/**
* Add a custom column to the WalletPro liability CSV export.
*
* @param array $columns Existing column definitions.
* @return array
*/
add_filter( 'walletpro_liability_export_columns', function( $columns ) {
$columns['customer_tier'] = 'Customer Tier';
return $columns;
} );
/**
* Populate the custom column value per row.
*
* @param array $row Row data keyed by column slug.
* @param int $user_id WP user ID for this row.
* @return array
*/
add_filter( 'walletpro_liability_export_row', function( $row, $user_id ) {
$row['customer_tier'] = get_user_meta( $user_id, 'loyalty_tier', true );
return $row;
}, 10, 2 );
The walletpro_analytics_summary_data filter fires after all metrics are calculated but before the REST response or CLI output is rendered. You can use it to append store-specific KPIs to the summary array without replacing the built-in metrics.
Permissions
Access to analytics screens and API endpoints is controlled by WordPress capabilities.
| Screen / endpoint | Required capability |
|---|---|
| WalletPro Program Dashboard (admin) | manage_woocommerce |
| Liability Report (admin) | manage_woocommerce |
| Breakage Report (admin) | manage_woocommerce |
| WC Analytics wallet columns | view_woocommerce_reports |
| REST API analytics endpoints | manage_woocommerce |
| WP-CLI analytics commands | WP-CLI administrator context |