WooCommerce refunds in a live spreadsheet

Add the Refunds table to a sheet as a data source named refunds and its 13 columns become names your formulas, pivot tables and charts use. Sheets reads it from your WooCommerce store each time the sheet opens or refreshes.

Formulas on this table

=data.refunds.sum(amount)
Total amount. Adds up the Amount column over every row of Refunds.
=data.refunds.sum(amount, order_status, A2)
Amount per order: status. With a order: status in A2, the total for that one. Fill it down next to a list of them.
=list.refunds(order_status)
Every order: status, once. Spills the distinct order: status values down the column: the row labels for the formula above.
=data.refunds.sum(amount, date, ">=2026-01-01")
Since a date. Only rows whose Date is on or after 1 January 2026. Criteria such as ">=", "<" and "<>" work as in any spreadsheet.
=data.refunds.count(date, order_status, "<>")
Rows with a order: status. Counts the rows whose Order: Status is not empty.

Reports that use it

=data.refunds.sum(amount, reason, A2)
Refunds by reason. Refunded amounts per reason given in WooCommerce.

Columns

ColumnIn formulasType
DatedateDate
MonthmonthText
AmountamountNumber
ReasonreasonText
Refunded through the payment methodrefunded_through_the_payment_methodYes / no
Order: Numberorder_numberText
Order: Dateorder_dateDate
Order: Statusorder_statusText
Order: Customerorder_customerText
Order: Countryorder_countryText
CurrencycurrencyText
Order IDorder_idText
IDidText

Other sales tables

Your refunds, live

Orders, refunds, products, customers and coupons become live tables inside your WordPress admin. Sales reports and dashboards stay current without exporting a CSV.