Ecommerce Co-Pilot
Track product views, add-to-cart, checkout steps and purchases with SKU-level performance, order list, revenue (AOV, per device/country/UTM) and the purchase funnel. Commerce intelligence: a 30/60/90-day and month-end revenue forecast with a likely range and weekday pattern; why each product sells (attention, appeal, closing, basket) and what would move it, risers and fallers, products bought together; and placement suggestions from the pages its buyers pass through. Profit and refunds: enter unit costs (or send them with each item, or set a default %), record refunds by hand, CSV or gs.ecom.refund(), and see refunds, net revenue, gross profit and margin per product. Cookieless; commerce events flow through the normal tracker so they inherit session context.
Ecommerce
Revenue over time
Funnel
By device
By country
By UTM
Commerce intelligence
Products · by revenue
| Product | SKU | Views | Add-to-cart | Units | Orders | Conversion | Revenue | Refunded | Profit |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||
Recent orders
| Order | Total | Items | Device | Country | Source | When |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Costs & refunds
for profit and marginsWhat each product costs you, per unit. With it, GhostStat shows gross profit and margin per product, source and device. A cost your shop sends with each sale is used first; what you enter here fills the gaps.
| Product | SKU | Avg price | Unit cost | Margin | Cost from |
|---|---|---|---|---|---|
| Loading… | |||||
Import costs from a spreadsheet
Paste two columns, sku and cost, from Excel, Numbers or a CSV file. A header line is fine. An empty cost removes it.
Refunds and returns lower net revenue and profit. Enter them here, import a list from your shop, or let the shop send them (see the third tab).
Leave the amount empty for a full refund: of the product (with SKU) at the price paid, or of the whole order. A product refund counts as a return, so its cost comes back; an amount alone counts as a discount.
Import refunds from a spreadsheet
Columns: order_id, amount, sku, qty, reason, date (only order_id is required; a header line may put them in any order). Dates as YYYY-MM-DD.
| Date | Order | SKU | Qty | Amount | Reason | Delete |
|---|---|---|---|---|---|---|
| Loading… | ||||||
If your shop can add a line of JavaScript, these send costs and refunds automatically. Nothing is shown to visitors.
gs.ecom.purchase({
order_id: "1042", total: 124.5, currency: "EUR",
items: [{ sku: "ROBE-1", name: "Linen Robe", price: 60, qty: 2, cost: 24.5 }]
});// items returned
gs.ecom.refund({ order_id: "1042", items: [{ sku: "ROBE-1", qty: 1 }], reason: "Too small" });
// part of the order refunded, nothing returned
gs.ecom.refund({ order_id: "1043", amount: 15, reason: "Late delivery" });
// the whole order refunded
gs.ecom.refund({ order_id: "1044" });Refunds usually happen in your shop's back office. Call gs.ecom.refund on a page where the GhostStat tracker runs (for example the order screen or a returns confirmation page), or import them here.