DrPlugin

Sales reports

Updated October 30, 2026

Read gross sales, refunds and net revenue for a date range, and export them as CSV files.

Open the report

Open TierMint → Reports. The screen is called Sales reports. It needs the view_tiermint_reports capability, not manage_tiermint, so you can show sales to a bookkeeper without giving them the rest of the store. Administrators have it.

With both date fields blank, the report covers the last 30 days: today and the 29 days before it. To pick a range, set From and To and click Apply. The report changes only when you click Apply. The fields use your browser's date picker, so the order of day, month and year follows your computer's settings.

The range can span up to 366 days, and From cannot be later than To.

The Sales reports screen with gross, refunds and net totals and a per-day breakdown

The Gross, Refunds and Net cards show the totals for the range in your store currency. The table under them has one row per day, with Date, Orders, Refunds, Gross, Refund total and Net. Days with no sales still appear, with zeros. The table shows 31 days a page.

What each figure counts

Gross adds up the totals of orders that completed on that day. It counts every order that is not a refund row and whose status is Completed, Partially refunded or Refunded, which includes TierMint Pro renewals. A refunded order keeps its full total in gross, on the day it completed. Pending, failed and abandoned orders never count.

Refunds adds up refunds by the day each refund was made, which can be days or months after the sale. A $50 order completed on June 1 with a $20 refund on June 15 shows $50 in gross on June 1 and $20 in refunds on June 15.

Net is gross minus refunds for the same day, or for the whole range on the card.

Orders and Refunds in the table count the orders and the refunds behind those amounts.

Dates are UTC days

Every day in the report is a UTC calendar day, not a day in your site's time zone under Settings → General. A sale late in the evening in your time zone can land on the next day in the report. The date fields work the same way.

Stores with more than one currency

TierMint records each order in the store currency of the moment. If you changed the store currency, older orders keep the old one. The report does not add different currencies together, so the cards and the table cover only the current store currency.

When the range holds orders or refunds in another currency, a notice above the cards says "These totals cover the store currency only. Orders and refunds taken in other currencies are reported separately below." It lists each other currency with its gross and refunded amounts.

A TierMint Pro subscription renews in the currency of its first order. A subscription that started before a currency change keeps adding to the other currency. TierMint Pro also adds an analytics dashboard.

Export to CSV

Export CSV downloads a file for the range you last applied.

Export Who can use it What it holds
Sales (CSV) Anyone who can open the report One row per day: date, currency, gross_revenue, refund_total, net_revenue, order_count and refund_count.
Orders (CSV) Users with manage_tiermint, because it holds customer email addresses and billing details One row per order created in the range, newest first: order_id, date, customer_name, customer_email, products, status, type, total, currency, gateway, company_name, tax_id, billing_address and billing_country. The last four are empty when the checkout did not collect them.

Amounts in both files are decimals, such as 49.00. The orders file includes every status and the refund rows. It picks orders by the day they were created, while the report counts sales by the day they completed.

An orders export holds up to 10,000 orders. A larger range is refused with "This range holds more than 10,000 orders. Narrow the date range and export again." Developers can change the limit with the tiermint_reports_orders_export_max_rows filter.

A text cell that starts with =, +, -, @ or a tab gets a leading apostrophe, so a spreadsheet does not run it as a formula. Numbers stay numbers.

Get the report from the REST API

Send GET /wp-json/tiermint/v1/reports/sales. The route needs management authentication and the view_tiermint_reports or manage_tiermint capability. The licensing REST API page explains management authentication. The route is read-only.

Parameter Format Default Meaning
from YYYY-MM-DD 29 days before to The first day of the range, in UTC.
to YYYY-MM-DD Today, in UTC The last day of the range, in UTC.

A date that is not a real date, a from later than to, or a range over 366 days is refused with tiermint_invalid_params and the reason.

For one month, send GET /wp-json/tiermint/v1/reports/sales?from=2026-06-01&to=2026-06-30. The response looks like this:

{
  "currency": "USD",
  "timezone": "UTC",
  "from": "2026-06-01",
  "to": "2026-06-30",
  "totals": {
    "gross_revenue": 128400,
    "refund_total": 3200,
    "net_revenue": 125200,
    "order_count": 47,
    "refund_count": 2
  },
  "series": [
    {
      "date": "2026-06-01",
      "gross_revenue": 4500,
      "refund_total": 0,
      "net_revenue": 4500,
      "order_count": 2,
      "refund_count": 0
    }
  ],
  "excluded": []
}
Field Meaning
currency The store currency code, such as USD. Every figure in totals and series is in it.
timezone Always UTC.
from, to The range the report covers.
totals The figures for the whole range.
series One entry per day in the range, in order, including days with zeros.
excluded Other currencies, keyed by currency code, each with the same five figures in its own currency. It is an empty array when every order used the store currency.

Money amounts are integers in the currency's smallest unit, such as cents. Divide by 100 for a two-decimal currency.

The CSV files come from GET /wp-json/tiermint/v1/reports/sales/export and GET /wp-json/tiermint/v1/reports/orders/export, with the same from and to parameters. Each returns JSON with filename, a suggested file name, and content, the CSV text. The orders export needs the manage_tiermint capability.

Common questions

Why is a sale from today missing?

The report uses UTC days. Early in your day, a sale can still belong to yesterday in UTC, or late in your day to tomorrow.

Can I get more than a year at once?

No. A range can span up to 366 days. For a longer period, run several reports and add them up.

Do abandoned or failed checkouts show up?

No. Only orders that reached Completed, Partially refunded or Refunded count, so pending, failed and abandoned orders add nothing to gross or to the order count.