Overview

Statnive Revenue Report for WooCommerce — five KPI cards (Revenue net, Orders, AOV, Refund total, Tax + Shipping), Revenue by channel table, Top products list, and Cart-to-Purchase Funnel with per-step conversion

As of v1.0.0, the free Statnive WordPress plugin ships a dedicated Revenue Report that turns your WooCommerce order data into a CRO-focused dashboard inside /wp-admin. No setup, no paid tier, no third-party transfer — all data stays on your WordPress database.

The integration is built on WooCommerce 8.5+ Order Attribution, is HPOS + Block Checkout compatible, and is READ-ONLY against WooCommerce — Statnive uses only $order->get_*() getters and never writes to a WooCommerce table or post meta.

Requirements

  • WordPress 6.2+ (tested up to 7.0)
  • PHP 8.1+ (raised from 8.0 in v0.4.13)
  • WooCommerce 8.5+ (Order Attribution required for channel attribution)
  • Action Scheduler (bundled with WooCommerce since 5.4)

Five KPIs on the Revenue Report

KPISourceNotes
OrdersCOUNT(orders) in processing + completedRefunded orders are tracked separately under Refund total
Revenue (net)net_total − refund_totalExcludes tax and shipping; a Gross: $X helper appears underneath
Average Order Valuenet_revenue / ordersPrecise decimal display per WooCommerce store currency settings
Refund total + Raterefund_total, refund_rate = refunds / grossShown as combined “Refund total · Rate: X%“
Tax + Shippingtax_total + shipping_totalCombined value, explicitly labelled “Excluded from revenue”

Seven breakdowns

The Revenue Report renders seven dimensions on the page; all eleven endpoints (wc-status, backfill, summary, timeseries, by-channel, by-utm, by-landing, products, funnel, refunds, coupons) are also exposed via the REST API.

Revenue by Channel

Sortable table with Channel · Orders · Revenue · AOV across the 8 channels Statnive groups traffic into:

  • Direct
  • AI Assistants — 14 hosts: ChatGPT (chatgpt.com, chat.openai.com), Claude (claude.ai), Gemini (gemini.google.com, bard.google.com, notebooklm.google.com), Copilot (copilot.microsoft.com), Perplexity (perplexity.ai), Meta AI (meta.ai), Le Chat / Mistral (chat.mistral.ai), DeepSeek (deepseek.com, chat.deepseek.com), You (you.com), iAsk (iask.ai), Jasper (jasper.ai), Writesonic (writesonic.com). AI detection runs before the search-engine classifier so AI referrals are never misattributed to Organic Search.
  • Organic Search
  • Social Media
  • Email
  • Referral
  • Paid Search (from UTM medium = cpc, ppc, paidsearch, paid_search)
  • Paid Social (from UTM medium = cpm, paid_social)

Top Products

Top 10 products by default (sortable by units or revenue, max 100). Variations are grouped under their parent product. Refunds are applied to the line item.

Cart-to-Purchase Funnel

Four stages, server-side from WooCommerce — no extra JS to install:

  1. Viewed product — event: wc_product_view
  2. Added to cart — event: wc_add_to_cart
  3. Started checkout — event: wc_checkout_start
  4. Completed purchase — event: wc_purchase

Per-step conversion rate (current/previous) and overall conversion rate (purchases/widest mouth) are displayed alongside session counts.

v1.1.0 update. The “Overall %” denominator switched from first-step to widest-step, and per-step UI shows conversion %, not drop %. This matches the convention WooCommerce Analytics adopted in WC 9.x.

Revenue by UTM source / medium / campaign

Paginated table of utm_source, utm_medium, and utm_campaign values seen on attributed orders, with orders, revenue, and AOV per row.

Revenue by Landing page

Paginated table of entry landing pages with orders and revenue per page — answers “which entry surface actually sends buyers?”

Refunds

Refund-rate trend over the period plus a list of top refunded products, refunds applied at the line-item level.

Coupons

Paginated table of coupon redemptions: code, count, total discount amount, and net revenue after discount.

v1.1.0 date bucketing

Orders are bucketed by COALESCE(date_paid_gmt, date_created_gmt) so subscription renewals and delayed-payment orders (BACS, cheque, cash-on-delivery, late-completing webhooks) land on the day payment cleared, not the day the order was placed. Previously, v1.0.0 used date_created_gmt only, which mis-placed renewal payments in the past.

Zero-touch backfill

The first time you open the Revenue Report after activating v1.0.0 on a WooCommerce site, Statnive enqueues background jobs through Action Scheduler to import historical orders. The status appears at the top of the Revenue Report while it runs.

  • Chunk size: 500 orders per Action Scheduler hook (statnive/wc/backfill/chunk)
  • Counted statuses: processing and completed. Refunded line items reduce the line-item revenue on their parent order rather than being counted as a separate status.
  • Visibility: WooCommerce → Status → Scheduled Actions, filter by statnive/wc/backfill/chunk

CLI alternative

For sites where you prefer to trigger or monitor the backfill from the command line:

wp statnive woocommerce-backfill

The command is idempotent — re-running while a backfill is in progress returns a 409.

Database tables

v1.0.0 adds five new tables via dbDelta. Your existing Statnive tables and data are preserved on upgrade from 0.4.x.

TablePurpose
wp_statnive_ordersOrder metadata, attribution snapshot, channel
wp_statnive_order_attributionChannel, UTM parameters, referrer host, funnel steps
wp_statnive_order_itemsLine items, products, SKU, refund tracking
wp_statnive_order_refundsRefund events with amount and reason
wp_statnive_order_couponsCoupon usage per order, discount amounts

The table prefix follows your WordPress $wpdb->prefix.

Privacy + safety posture

  • READ-ONLY against WooCommerce. Only $order->get_*() getters; Statnive never writes to a WooCommerce table or post meta. Verified empirically with CHECKSUM TABLE before/after on a 1,933-order site.
  • Cookieless. No browser storage of any kind for visitor identification.
  • Daily-rotating salts (CSPRNG-generated, 48-hour overlap window) — the same visitor produces a different hash each day, making cross-day re-identification impossible.
  • No raw IP storage. IP is hashed, used for GeoIP lookup, then immediately discarded. IPv4: last octet zeroed. IPv6: last 80 bits zeroed.
  • GPC + DNT are respected server-side.
  • WordPress Privacy API exporter and eraser are registered on activation.
  • Opt-in uninstall (default OFF). Re-installing preserves analytics and revenue history.

Top-level admin pages

After activating v1.1.0, the Statnive admin navigation has these scoped pages:

  • Overview (/wp-admin/admin.php?page=statnive) — Visitors, Sessions, Pageviews, Avg Duration, plus Top Sources and Top Pages
  • Revenue Report (/wp-admin/admin.php?page=statnive-revenue) — the five KPIs + seven breakdowns described above
  • Ask me! (/wp-admin/admin.php?page=statnive-ask) — 116 owner-phrased questions across 10 categories, 63 answer today (v1.1.0+)
  • Settings (/wp-admin/admin.php?page=statnive-settings) — privacy, retention, exclusions, GeoIP

No WooCommerce-specific configuration is required. The integration is always-on once WooCommerce is installed.

Upgrading from 0.4.x

Drop-in upgrade. Five new tables are added via dbDelta; the existing 21 tables and their data are untouched. On a WooCommerce site, the Revenue Report fills in within a few minutes of activation via the zero-touch backfill. No code change required.

See the v1.0.0 changelog for the full release notes.

Get Statnive Free