Meta counts the orders that come back. Vihax doesn't.
Meta and Google count every returned order as a conversion, so a brand optimising on platform ROAS is bidding toward the orders that come back, and neither platform says so. Vihax measures profit on the orders that were delivered, and tells Meta and Google which ones they were.
Meta ROAS
Revenue on every order Meta claimed, including the 526 that were refused or returned.
Standard POAS
Margin after product cost, still on revenue that included returned orders.
True POAS
Returned and refunded orders removed first, then product cost and fulfilment. Divided by ad spend.
Sample store, 30 days. Every figure on this page reconciles to the same ledger.
Every rupee from gross revenue to net profit, per order.
Vihax builds one ledger from your Shopify orders, product costs, shipping rates and ad spend. Returned and refunded revenue comes off before margin is counted, so a product that sells and comes back stops looking like a win.
Where ₹24,80,000 actually went
Sample store · 30 daysIncome statement
Sample store| Gross revenue | ₹24,80,000 |
| Discounts | −₹1,86,000 |
| Net sales | ₹22,94,000 |
| Refunds | −₹42,000 |
| RTO revenue loss · 526 orders | −₹4,62,000 |
| Net sales after confirmed returns | ₹17,90,000 |
| COGS | −₹5,37,000 |
| CM1 | ₹12,53,000 |
| Shipping, pick and pack, payment fees, RTO fees | −₹3,31,000 |
| CM2 | ₹9,22,000 |
| Ad spend · Meta ₹4,10,000 · Google ₹2,30,000 | −₹6,40,000 |
| Fixed costs | −₹1,50,000 |
| Net profit | ₹1,32,000 |
COD against prepaid
Sample storeReturn rate on settled parcels. A COD order here is 5.9 times more likely to come back.
- 22 KPI tiles against the previous period with a definition on every one
- The largest cost this period, named, with its change
- A money-flow Sankey from gross revenue to net profit
- Shopify, Meta and Google side by side, by last paid touch
- True POAS with standard POAS beneath it so the gap is visible
Find the returns before you pay to ship them.
Return rates by pincode, product, courier, order value, channel and payment method. Measured only on parcels that have settled, with the settling window stated on the page.
- True cost of returns shipping both ways, pick and pack, RTO fees, stock at risk
- State, city and pincode drill-down with the worst pincodes named first
- A call on every product: stop COD, watch, or fine
- Act before dispatch in-transit orders carrying measured risk signals
- Customers who keep refusing, and returns booked after one attempt
- How long before you know: settling time at the median, p75, p90 and p99
Return rate by where it ships
Sample storeReturns by product
Sample store| Product | Orders | RTO | Break-even RTO | Call |
|---|---|---|---|---|
| Onion Hair Serum | 412 | 41.0% | 33% | stop COD |
| Saffron Night Cream | 268 | 33.2% | 36% | watch |
| Ubtan Face Pack | 355 | 24.5% | 39% | fine |
| Bhringraj Hair Oil | 524 | 17.9% | 42% | fine |
| Kumkumadi Face Oil | 610 | 11.8% | 47% | fine |
Break-even RTO is the return rate at which the product stops making money after returns.
From the ad click to the courier's doorstep, on one order.
A first-party pixel records the visit, the product views and the checkout click, including checkouts that leave your domain. On the server every order is joined back to its visits by visitor, cart, click id and hashed contact, then followed until the courier settles it.
Ad click
Meta or Google click id captured
Visit
Consent read before anything is kept
Checkout
Survives off-site checkout
Order
Joined back to every visit
Courier
Delivered or returned, per shipment
Ad platforms
Told what the order was worth
Order #4417 was delivered Delivered
Vihax_PurchaseMeta · value ₹565Delivered_PurchaseMeta · on courier confirmationRestatementGoogle · value set to ₹565Order #4418 came back RTO
Delivered_PurchaseMeta · never sentRetractionGoogle · conversion withdrawnSend logReason recorded per orderSample orders. The value sent is the order's own ledger profit as if delivered. No predicted return rate is folded into it.
Conversions valued at profit
A per-order send log, the reason for every order not sent, and a match score across customer keys.
Uploads that get corrected
Retracted when an order is returned, restated to real profit when it is delivered.
Seven models on delivered profit
Last click to data-driven, with every touch path and the campaigns inside it.
One switch in the theme editor
The pixel installs as a Shopify app embed. No theme code is edited.
Your best customers, sent to Meta and Google every morning.
Three customer lists built from delivered orders only, refreshed daily for lookalikes and exclusions. Returned and cancelled orders never enter a list.
Customers who paid online and received the order. The lowest return rate in the store.
The top quarter of delivered orders by value, so lookalikes start from bigger baskets.
The top quarter by ledger profit per order, after product cost and fulfilment.
Nothing is sent until the store owner confirms. Contact details are hashed before they leave Vihax, shoppers who declined marketing through Shopify's consent banner are left out, and a list under the platform minimum of 100 is held back.
Which products to push, which to restock, which ads to cut.
Where each product sits
Sample storeStock and spend at risk
Sample storeWhich campaigns to scale and which to cut
Sample store · last paid touch| Campaign | Spend | Platform ROAS | RTO | True POAS | Call |
|---|---|---|---|---|---|
| Meta · Broad, COD offer | ₹1,46,000 | 5.2× | 38% | 0.62× | Cut |
| Google · Brand search | ₹58,000 | 7.9× | 12% | 3.05× | Scale |
| Meta · Prepaid lookalike 2% | ₹1,12,000 | 3.6× | 9% | 2.31× | Scale |
| Google · Performance Max | ₹1,21,000 | 4.4× | 24% | 1.08× | Wait |
| Meta · Retargeting 7 days | ₹64,000 | 6.1× | 19% | — | Check tracking |
The campaign with the second-highest platform ROAS loses money once its returns settle. The last row reads "—" because too few of its orders joined to a click to judge it.
Hook and hold rate per ad
Against your own median, with fatigue read from the daily click-through trend.
Your ad-spend ceiling
MER against a break-even floor from your own settled numbers, and the most you can pay for a customer.
Repeat, LTV and payback
New against returning, first to second order paths, LTV to CAC and payback in orders.
Week, month, quarter, year
RTO, revenue, marketing and profit, with periods still settling drawn hatched.
Hear about it before it costs you.
Nineteen rules watch your figures against your own 14-day baseline, with volume floors so a quiet day does not raise an alarm. Every alert names the page to open.
- Always on: a channel stopped spending, the pixel went silent, orders stopped reaching Meta or Google, a token is about to expire
- Optional: POAS drop, RTO spike, spend with no conversions, COD mix up, parcels stuck in transit
- A morning digest and a Monday recap by email
- Alpha answers questions from the figures Vihax computed, and nothing else
Orders stopped reaching Meta
No purchase has been sent for 3 hours. Your usual gap is under 20 minutes.
COD return rate is up
34.8% on parcels settled this week against a usual 29.1%.
Ads running on low stock
Onion Hair Serum has 6 days of cover and two active Meta campaigns.
| RTO revenue loss | ₹1,24,000 → ₹1,51,000 |
| Ad spend | ₹1,58,000 → ₹1,61,000 |
| CM2 | ₹2,41,000 → ₹2,12,000 |
When Vihax doesn't know, it says so.
A figure that cannot be computed shows a dash and the reason. Never a zero, never an estimate dressed as a measurement.
Every figure, reconciled nightly
A figure shown on two pages is recomputed on each page's path and marked agree or disagree.
Missing costs, named
Every sold variant with no unit cost, and the margin it would overstate. Below 95% coverage, margin reads unavailable.
Shopify's consent, enforced twice
Read in the browser and again on the server. Email and phone are stored only as hashes and removed after 90 days.
Vihax never changes your spend
No budget, bid, pause or targeting change, ever. Vihax recommends; you decide in Meta and Google.
Your first ledger the same day.
Connect Shopify
Read-only access to orders, products and costs. Vihax never edits your store.
Confirm your costs
Unit costs come from Shopify. Add shipping, packing and payment rates once.
Switch on the pixel
One app embed in the theme editor. Visits start joining to orders.
Connect Meta and Google
Spend, campaigns and conversions. Optional, and each works on its own.
One product. The price follows your ad spend.
Every plan includes every feature. Choose the band your monthly ad spend sits in; if it moves, we talk.
Prices exclude 18% GST.
Built by someone who paid the RTO bill himself.
Vihax is built by Vivek Bisla, who runs performance marketing for D2C brands and owns one, Dhanura Ayurveda, where every refused parcel comes out of his own account. The pattern was the same on every account: Meta and Google were optimised for orders, and finance found out weeks later which orders were real. Vihax is that argument turned into a product.
VIHAX Marketing Solutions · Faridabad, Haryana, India · vivek@vihax.com
See what your orders kept.
Connect Shopify and read your own profit after returns, on your own orders, today.