Commerce reporting
Revenue, orders, average order value and refunds from the Order model your shop already has, covering everything you have ever sold rather than starting at zero today.
Point it at Order and it starts talking
Revenue over time, orders per day, average order value, and revenue by product, from naming one model and its total. No tracking calls, no event names, no waiting for data to accumulate before a chart means anything.
The history is already there
Because it reads your tables, the first report covers everything you have ever sold. A collector starts at zero on the day you install it and cannot tell you about last year.
Refunds and cancellations count correctly
A refund is a row in your database with a status your domain understands, so it is subtracted where it should be. A stream of events has to be told, and gets it wrong the first time somebody refunds through the admin instead of the API.
Per product, without counting an order twice
Revenue by product joins line items, and joining multiplies. The compiler knows that measure belongs to the line and refuses to sum an order total across it, which is exactly the mistake a hand written query makes silently.
Send it to whoever needs it
A weekly total to the founders on Monday morning in their own timezone, a link a supplier can open with no account, or a spreadsheet somebody wants to pivot themselves.
Point it at your orders
If your shop already fires an event when an order is created, the first commerce report builds itself.
Start free