```html

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.

Merchant Reports CSV Export WooCommerce Analytics Scheduled Email Breakage Liability

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:

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:

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:

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

  1. Go to WooCommerce > WalletPro > Reports > Scheduled Exports.
  2. Click Add Schedule.
  3. Choose the report type: Liability Summary, Liability Detail, Breakage, or Full Ledger.
  4. Set the Frequency: Daily, Weekly (choose day of week), or Monthly (choose day of month).
  5. Set the Date Range for the exported data: Previous Day, Previous Week, Previous Month, or Custom (fixed date range).
  6. Enter one or more Recipient Email Addresses, comma-separated.
  7. Optionally set a Report Label that appears in the email subject line.
  8. 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&currency=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.

```