A real-time ROAS and ROI calculator for SMEs. Connect your ad channels and your store — Troi does the attribution math so you stop guessing which campaigns are worth running.
Client
Troi · Colombo
Engagement
SaaS dashboard
Timeline
12 weeks · Q1–Q2 2025
Status
troi.
Channel ROAS — last 30 days
refreshed 00m ago · live
Blended ROAS
3.8×
▲ 0.6× vs. last mo.
Total ad spend
$12,400
across 4 channels
Revenue attributed
$47,120
from store orders
Best channel
ROAS 5.1×
Attribution model
Last-clickfirst-party
Channels connected
4ad sources
Platform tab savings
~5tabs closed
Troi came to us with a problem every SME marketing team knows: Google says it drove 200 conversions, Meta claims 180, TikTok counts 90 — but Shopify only recorded 310 orders total. Every platform takes credit. Nobody owns the truth. Budget decisions were being made on fiction.
Before · The mess
SMEs spending across Google, Meta, and TikTok with no way to tie ad spend back to actual store revenue.
Before · The mess
Each ad platform reported its own inflated numbers — impossible to reconcile against real Shopify sales.
Before · The mess
Marketing budget decisions made on gut feel. Spend kept climbing, real ROI stayed unknown.
The only source of truth is what actually got purchased. We built Troi to pull from Shopify and WooCommerce first — then reconcile ad platform data against real orders. The platform's job is to make the math undeniable and the decision obvious.
Principle 01
Every marketing channel gets its own ROAS and ROI breakdown. Blended numbers hide the truth — we surface what each channel actually earns.
Principle 02
We pull from Shopify and WooCommerce — not the ad platforms — so attribution reflects real transactions, not claimed clicks.
Principle 03
The dashboard answers one question per channel: is this worth running? Budget signals surface automatically so the decision is obvious.
A four-surface SaaS dashboard on a Next.js + Supabase backbone, wired to ad APIs and store data through a real-time attribution engine.
Surface 01 · Overview
ROAS dashboard
Surface 02 · Channels
Per-channel breakdown
Surface 03 · Sales
Store data sync
Surface 04 · Reports
Campaign view
The spine · Next.js + data pipeline
Ad spend ingestion, sales attribution, ROAS/ROI calculation, channel reporting
Ad data
Google Ads API · Meta Ads API
Sales data
Shopify API · WooCommerce
Compute
Attribution engine · n8n
Data
Supabase · Postgres
Out · For the marketer
Real-time ROAS per channel · Budget signals
Out · For the founder
Actual ROI per campaign · Spend vs. revenue truth
Numbers from beta cohort. 5 SMEs. Real campaigns, real budgets, live Shopify data.
4+channels
Google Ads, Meta Ads, TikTok, and email — all in one attribution view.
Liveupdates
Spend and sales data sync continuously — no waiting for end-of-month reports.
1dashboard
Replace four ad platform tabs and a Shopify reports page with a single source of truth.
The attribution model was locked before a single component was written. That order is non-negotiable.
Wk 1–3 · Discovery
Mapped every manual step in their reporting workflow. Defined the attribution model before writing a line of code.
Wk 4–5 · Architecture
Designed the attribution engine. Resolved overlap between ad platform claimed conversions and Shopify actual orders.
Wk 6–11 · Build
Google Ads API, Meta Ads API, and Shopify API integrations. Real-time ROAS engine. Channel comparison views.
Wk 12 · Beta launch
Real campaigns, real budgets. Attribution running against live store data.
Front-end
Next.js, Tailwind
API
tRPC, Zod
Ad integrations
Google Ads API, Meta Ads API
Sales
Shopify API, WooCommerce
Automation
n8n, data pipeline
Data
Supabase, Postgres