Analytics

WalletPro reports wallet program performance across two surfaces, both backed by the same report repositories and the signed ledger. The Wallet Program Analytics page measures marketing ROI (cashback, referrals, gifts, and repeat-purchase by wallet usage), while a compact Wallet view inside native WooCommerce Analytics shows top-up volume, redemptions, cashback cost, and outstanding liability for a date range.

Merchant Program ROI Cashback ROI Referral Conversion Gift Redemption Repeat-purchase Cohort WooCommerce Analytics Read-only

Overview

WalletPro adds two analytics surfaces. Both are read-only, gated by the manage_woocommerce capability, and compute every figure from the wallet ledger so they reconcile to the cent.

ℹ️

This page covers program and marketing analytics. The financial liability dashboard (period deltas, the monthly liability chart, and top balances) lives on the separate Financial Reports page. The two surfaces draw from the same ledger and reconcile.

Wallet Program Analytics page

Open it at WooCommerce > Wallet Program Analytics. The page is a read-only submenu under WooCommerce, restricted to users with manage_woocommerce. Every number is produced by the unit-tested program analytics calculator over the real ledger, so the figures reconcile to your wallet balances.

Date filter

A simple From / To date filter sits at the top. Both bounds are optional and inclusive. Leaving a bound empty makes that side open-ended, and leaving both empty reports across all time. The filter is a display control only: it changes no state, submits with a plain GET, and carries no nonce.

The date range applies to the cashback, referral, and gift sections. The repeat-purchase cohort is computed across all paid orders and is not affected by the date filter.

Cashback ROI

Measures how much revenue rode on the orders that earned cashback in the range.

Metric How it is computed
Cashback credited The total magnitude of every cashback ledger entry whose timestamp falls in the range.
Attributable order revenue The order total of each distinct order that earned in-range cashback. Each order is counted once even if it has several cashback rows. An order is skipped when its revenue cannot be read (for example a deleted order, or a manual cashback with no order attached).
Revenue per 1.00 of cashback Attributable revenue divided by cashback credited, at 4 decimal places. A value of 21.3333 means every 1.00 of cashback rode on 21.33 of revenue. Reported as 0.0000 when no cashback was credited, so there is no division by zero.

Referral conversion

Measures how many referred customers signed up, how many placed a first order, and what the rewards cost.

Metric How it is computed
Signups Customers attributed to a referrer (carrying the referred-by user meta) whose registration date falls in the range.
First-order conversions Of those signups, the ones who have at least one paid order (a WooCommerce order in processing or completed status).
Conversion rate Conversions divided by signups, as a percentage at 2 decimal places. Reported as 0.00 when there were no signups.
Reward cost The total magnitude of every referral ledger entry in the range.

Gift redemption

Measures how many gifts of wallet credit were issued and how many were actually redeemed.

Metric How it is computed
Gifts issued Fulfilled gift line items, dated by the parent order's creation time, that fall in the range.
Gifts redeemed Of those issued, the gifts whose credit landed in a wallet directly, or whose held redemption code was later redeemed.
Redemption rate Redeemed divided by issued, as a percentage at 2 decimal places. Reported as 0.00 when none were issued.

Repeat-purchase cohort

Compares the repeat-purchase rate of customers who use the wallet against those who do not. This section is computed across all paid orders, independent of the date filter.

Metric How it is computed
Wallet-user buyers Customers who have ever held a wallet balance and placed at least one paid order. A customer counts as a wallet user once they hold a wallet balance row, which is created on their first credit or movement.
Wallet-user repeat rate The share of wallet-user buyers who placed two or more paid orders, as a percentage at 2 decimal places.
Non-wallet buyers Customers who placed at least one paid order and have never held a wallet balance.
Non-wallet repeat rate The share of non-wallet buyers who placed two or more paid orders, as a percentage at 2 decimal places.
ℹ️

A "buyer" is a customer with at least one paid order (processing or completed). A "repeat buyer" has two or more. Only the shop_order type is counted, so refunds are never pulled in, and customers with no orders are excluded from the cohort entirely.

WooCommerce Analytics Wallet view

WalletPro also adds a Wallet entry under the native WooCommerce > Analytics menu. Rather than a React Analytics report, this is a small, self-contained page whose plain JavaScript fetches a REST summary and renders four headline figures for a date range. The figures come from the same report repositories the full Wallet Reports page uses, so the two surfaces reconcile to the cent.

Headline figures

The view defaults to the last 30 days through today, with a From / To picker and an Apply button. For the chosen range it shows:

Figure Definition
Top-up volume The total magnitude of customer top-up credits in the range.
Redemptions The total magnitude of wallet debits in the range, that is wallet credit spent or redeemed.
Cashback cost The total magnitude of cashback credited in the range, the same value as Cashback credited on the program page.
Outstanding liability The sum of all current wallet balances as of the end of the range, or as of now when the range is open-ended.

The view also links through to the full Wallet Reports page for the period deltas, the monthly liability chart, and top balances described on the Financial Reports page.

The Wallet view ships no build step. Its script is enqueued as plain JavaScript with the core wp-api-fetch dependency, which already carries the REST nonce, so there is nothing to compile and no manual nonce wiring.

REST endpoint behind the view

The view reads a single read-only endpoint in the walletpro/v1 namespace, gated by the manage_woocommerce capability:

# Wallet analytics summary for a date range
curl -u "admin:app-password" \
  "https://example.com/wp-json/walletpro/v1/analytics/summary?after=2026-06-01&before=2026-06-30"

Query parameters

Parameter Type Required Description
after string (YYYY-MM-DD) Optional Start of the range. Widened to 00:00:00 GMT on that day. Omit for an open start.
before string (YYYY-MM-DD) Optional End of the range. Widened to 23:59:59 GMT on that day, and the liability snapshot is taken as of this bound. Omit for an open end.

Any value that is not a YYYY-MM-DD date is treated as no bound. The response carries canonical money strings plus the range it was asked for:

{
  "top_up_volume": "6200.0000",
  "redemptions": "5410.2500",
  "cashback_cost": "318.7500",
  "outstanding_liability": "4821.5000",
  "range": {
    "after": "2026-06-01",
    "before": "2026-06-30"
  }
}

An open-ended bound is echoed back as an empty string in range. For the full developer reference on the WalletPro REST API, see the REST API page.

Currency scope

Program analytics is denominated in the store base currency and ties to base-currency revenue, so ledger rows in other currencies are excluded from these figures. On a single-currency store this distinction has no effect.

Permissions

Both analytics surfaces and the REST endpoint require the same capability.

Surface Required capability
Wallet Program Analytics page manage_woocommerce
WooCommerce Analytics Wallet view manage_woocommerce
Analytics summary REST endpoint manage_woocommerce (and an authenticated request)