Performance is where your business actually lives — a spreadsheet-class view of every day's revenue, ad spend, costs, and profit. It's the most-used tab for operators who care about numbers.
Layout
- Page header with sync freshness pills and sync buttons.
- Range selector — 7d, 30d, 90d, MTD, QTD, YTD, All, or Custom.
- KPI hero — six tiles with deltas and sparklines, specific to the selected range.
- Needs Attention — signals filtered to this period.
- Table controls — aggregation (daily / weekly / monthly), column visibility, new entry button.
- Data table — the daily rows, the heart of the tab.
KPI hero
Eight tiles above the table: Revenue, Ad Spend, COGS, Transaction Fees, Profit, ROAS, AOV, Conversion Rate. Each tile shows:
- The current-period value.
- A delta vs the prior period of equal length.
- A per-day sparkline that colors green for up-trends, red for down-trends.
For subscription or hybrid stores, AOV and Conv. Rate auto-swap to LTV and Returning %. Set your business model on the Stores page.
The Daily Profit tab also carries optional CPA (cost per order) and break-even ROAS columns, plus any custom metrics you build — toggle them on via the Columns button.
Rows and columns
Each row is one day. Columns are:
- Date — always visible.
- Revenue — gross, pulled from Shopify.
- Ad Spend — total, with per-platform breakdown underneath.
- COGS — auto-derived from product sales + catalog COGS. Override by clicking.
- Transaction Fees — your payment processor fees (editable).
- Operating Expenses — total, with per-category breakdown.
- Refunds — pulled from Shopify.
- Orders / Sessions — from Shopify.
- ROAS — revenue / ad spend.
- Profit / Margin — net, computed per row.
- Actions — edit, delete.
Click the Columnsbutton to hide the ones you don't care about. Your preference is stored per-user.
Note
Click-to-edit cells
Single-value metric cells (revenue, transaction fees, COGS, refunds, orders, sessions) are click-to-edit. Click any cell, type a new value, press Enter. Esc cancels. Blur commits.
Tip
Row coloring
Rows tint automatically based on margin:
- Emerald — margin ≥25% (strong day)
- Default — margin 10-25% (typical)
- Amber — margin 0-10% (thin)
- Rose — margin <0% (loss day)
This turns the table into a visual profit heat map — you immediately see where the bad weeks are.
Aggregation
Switch the table from daily to weekly, monthly, or custom ranges. Aggregated rows can't be inline-edited (there's no single day to write back to) — switch to daily for edits.
Sync status pills
In the header: Shopify: today / yesterday / Xd ago and Ads: .... Green means fresh (<1d), gray is ≤2d, amber is older. If either shows stale, click the sync button to force an update.
All-stores aggregate view
If you connect multiple stores, the store dropdown has an “All stores” option. It aggregates across stores, converting each one's currency to your reporting currency using live ECB rates. Inline-edit is disabled in this view (you can't edit an aggregated row) — switch to a specific store to edit.
Multi-currency editing
If your store operates in EUR but you pay ad platforms in GBP and COGS in USD, Ecom Forward handles the conversion transparently.
- Set source currencies per field in Store settings (
cogs_currency,ad_spend_currency,transaction_fees_currency). - When you type a value, the form shows a blue preview:
≈ €8.65. - On save, the value is converted to store currency at current ECB rate and logged to the conversion log for audit.
FAQs
Why is there no row for today?
Can I bulk-import a CSV of historical data?
What if my COGS was wrong historically?