For online stores that run paid ads

See what you actually keep after ads, product costs and fees.

A clear dashboard built on numbers you already have: orders, product costs and ad spend, kept in one sheet. Profit, return on ad spend and margin, by channel and by product.

Live demo: sample Profit Board

Net Profit & Ad ROAS Board

Veyra & Loom

Sample data · fictional store

Online homeware store, Singapore · 1 Oct – 31 Oct 2026 · compared with Sep 2026

Revenue
S$64,523
Up 21.1%vs Sep 2026
Gross, before discounts and refunds
Ad spend
S$10,729
Up 20.8%vs Sep 2026
Across three paid channels
ROAS
3.80×
Down 0.03×vs Sep 2026
Paid revenue per S$1 of ads
Net profit
S$19,598
Up 17.2%vs Sep 2026
After every cost shown below
Net margin
30.4%
Down 1.0 ptsvs Sep 2026
Net profit as a share of revenue

Revenue, accounted for.

Gross revenue for the period, less each cost in turn, down to net profit.

  1. Gross revenueS$64,523
  2. Less Discounts−S$3,411
  3. Less Refunds−S$1,877
  4. Less Product costs−S$23,532
  5. Less Ad spend−S$10,729
  6. Less Fees−S$1,971
  7. Less Shipping−S$3,406
  8. Net profitS$19,598

Day by day

Revenue and ad spend per day, each on its own scale. Hover, tap or use the arrow keys to read a day.

Revenue per dayTotal S$64,523
Ad spend per dayTotal S$10,729

Sat 31 OctRevenue S$3,145Ad spend S$50238 orders

Which channels earn their keep?

Break-even ROAS is the return a channel needs before its ads pay for themselves. Select a channel to see its products.

Ad spend, attributed revenue and ROAS by channel, checked against break-even ROAS. Select a channel to filter the product list.
ChannelAd spendAttributed revenueROASBreak-even ROASCheck
S$4,935S$17,5813.56×2.13×Above +1.43×
S$3,111S$16,3055.24×2.13×Above +3.11×
S$2,682S$6,9132.58×2.13×Above +0.45×
S$0S$14,456Not applicableNot applicableNo ad spend
S$0S$9,268Not applicableNot applicableNo ad spend
Paid channelsS$10,729S$40,8003.80×2.13×Above +1.68×

Swipe the table sideways to see every column.

The products behind the numbers

Top 8 by revenue · All channels

  1. Arc table lampS$4,964 revenue,−6.6% net margin
  2. Ripple glass vaseS$4,629 revenue,34.5% net margin
  3. Fold linen throwS$4,069 revenue,31.0% net margin
  4. Pebble serving bowlS$3,976 revenue,30.8% net margin
  5. Contour carafeS$3,559 revenue,38.6% net margin
  6. Loop candle holderS$3,448 revenue,33.6% net margin
  7. Still ceramic cupS$3,123 revenue,31.8% net margin
  8. Bend desk trayS$2,653 revenue,28.3% net margin

Highlights from this sample

Picked out by fixed rules from the figures above. They change with the period.

  • 01
    Short video needs a closer look

    It used S$2,682 of the sample ad budget for 2.58× attributed revenue. It has the lowest return among channels spending over S$500; inspect campaign costs before allocating more.

  • 02
    A bestseller sold at a loss

    Arc table lamp brought in S$4,964, but its allocated costs were higher: a net margin of −6.6%, or −S$326. Product cost is the largest deduction; inspect the cost breakdown.

  • 03
    Refund share has risen

    2.9% of gross revenue was refunded, 0.8 percentage points above the preceding period. That represents S$1,877 in this sample.

Definitions

ROAS
Return on ad spend: revenue credited to a paid channel divided by what was spent on its ads. Organic, email and marketplace sales have no ad spend, so they have no ROAS.
Break-even ROAS
Revenue ÷ (revenue − discounts − refunds − product costs − fees − shipping). Below it, a channel’s ads cost more than its sales leave over.
Net profit (simplified)
Gross revenue minus discounts, refunds, product costs, ad spend, fees and shipping. Rent, salaries and income tax are not included.
Attribution (estimated)
Each order is credited to one channel by estimated last-touch attribution. It shows where sales came from, not proof that the ads caused them.

All figures are fictional sample data, generated for this demo. Money in SGD excluding GST.

Built for a florist

Maison de Fleurs, live from their Google Sheet

The studio keeps its daily numbers in a Google Sheet. The board reads it and reconciles revenue, marketing and what the studio keeps. Try it: edit a number in the sheet, add an order or turn on the stream, and watch the board update.

Maison de Fleurs Studio Ledger

Sales, marketing and what the studio keeps, reconciled from the sheet.

Live from Google Sheet

Revenue

S$84,357

1,090 orders

Marketing

S$29,246

Meta S$22,138 · TikTok S$6,960

Stems, delivery & fees

S$31,887

Stems 27.7% · Delivery 6.8%

Studio take-home

S$23,225

27.5% margin · S$21.31 an order

Marketing efficiency

2.88×

Break-even 1.61× · profitable

Where every S$100 goes

Studio keeps S$27.53
  • StemsS$27.70S$23,367 this period
  • DeliveryS$6.80S$5,736 this period
  • MetaS$26.42S$22,286 this period
  • TikTokS$8.25S$6,960 this period
  • FeesS$3.30S$2,784 this period
  • ProfitS$27.53S$23,225 this period

Sales and take-home, day by day

S$0S$1kS$3kS$4kS$5k1 Oct16 Oct31 Oct
31 Oct

Cost of a new order

Average order S$77
S$27All marketing ÷ all orders
Blended
S$34Meta spend ÷ Meta purchases
Meta
S$32TikTok spend ÷ TikTok purchases
TikTok
  • Latest sheet row: 31 Oct

Maison de Fleurs · Ledger

File  Edit  View  Insert  Data

Saved
1DateGross_SalesOrdersCOGSShippingProcessing_FeesTotal_Ad_SpendMeta_SpendTikTok_SpendMeta_PurchasesTikTok_Purchases
242026-10-232445.3931677.37166.2980.70776.35593.26183.09176
252026-10-243398.4644941.37231.10112.151211.20972.79238.41269
262026-10-253237.8942896.90220.18106.851017.05763.78233.42248
272026-10-262420.7131670.54164.6179.88874.18661.11213.07206
282026-10-272771.3436767.66188.4591.45878.27652.60225.67238
292026-10-282711.0835750.97184.3589.47989.67760.16229.51216
302026-10-292764.2436765.69187.9791.221002.18739.77241.31217
312026-10-302678.1435741.84182.1188.38920.16731.65188.51207
322026-10-314834.62621339.19328.75159.541772.481374.12398.363813

Click any number to edit it. The board above updates as soon as the sheet saves.

The problem

Why revenue alone misleads

  1. Revenue isn’t profit

    Discounts, refunds, product costs, fees and shipping all come out first.

  2. ROAS hides the margin

    A good return on ad spend can still lose money when margins are thin.

  3. The numbers live apart

    Ad accounts, your store and a costing sheet, pulled together by hand.

Price

From S$250

to S$600 for a one-time setup, depending on how many data sources you have.

Deliverable
A profit and ROAS dashboard set up for your store
Data
Your orders, product costs and ad spend, kept in a Google Sheet
Views
Profit after every cost, ROAS by channel, margin by product
Updates
Change the sheet and the dashboard follows. No code needed
Timeline
Agreed in writing before we start, based on your data sources

How it works

Three steps

  1. Share

    Tell us which channels and costs matter, and share an export from your store.

  2. Map

    We set up the sheet and agree with you how every number is calculated.

  3. Hand over

    You get the dashboard and a short walkthrough of how to keep it current.

FAQ

Questions we get asked

Which platforms does it work with?

Anything you can export to a spreadsheet: Shopify, WooCommerce, marketplaces, and Meta or Google ad reports. Automatic imports are scoped separately.

What does ROAS mean?

Return on ad spend: the revenue your ads brought in, divided by what you spent on them. We show it next to profit, because a good ROAS can still lose money.

How often do the numbers update?

Whenever the sheet changes. Weekly works for most stores; daily works too.

Who can see my data?

Only the people you choose. The demo on this page uses fictional sample data, never client data.

Want to see your own numbers like this?

Request a free preview