Metric decomposition · cohort analysis

Split the number.
Find the reason.

Revenue fell 18%. Here's exactly which part of the business did it — traffic, conversion, average order value, returns, and the one segment behind most of it.

Monthly, cancel anytime · Core from $59/mo · no trial account required

net_revenue · last 30 days
$682k
−18.4%
vs prior period
$787k
+$47k
−$175k
+$13k
−$10k
$662k
Last period
Traffic
Conversion
AOV
Returns
This period
sessions
1.19M+6.0%
cvr
1.90%−21%
aov
$88+2.0%
net_revenue
$682k−18.4%
contribution_margin
$159k−24.1%
repeat_rate
31.4%+1.8pp
payback_period
4.2 mo−0.6 mo
The signature view

Revenue didn't drop. Conversion did.

One number becomes four contributions. Traffic was up. Conversion took it all back, and rising returns finished the job.

net_revenue · decomposition
$787k$662k (-15.9%)
adds removes
$787k
+$47k
−$175k
+$13k
−$10k
$662k
Last period
Traffic
Conversion
AOV
Returns
This period
Traffic+6%
sessions
Conversion rate-21%
cvr
Average order value+2%
aov
Return rate+1.4pp
return_rate
The problem

Your dashboard shows the drop. It doesn't explain it.

Line charts tell you when. They never tell you which part. So every bad week becomes a meeting where four people guess and the loudest guess wins.

Flat dashboard
  • Revenue is down 18%
  • Sessions are up
  • Somebody export a CSV
  • Two days of pivot tables
KPI Prism
  • Conversion caused −$142k of it
  • Returning mobile / paid social, −34%
  • Margin fell faster than revenue
  • Answer in one screen
Segment discovery

It finds the segment. You don't have to guess.

Prism tests every combination of device, channel, customer type, product and discount status, then tells you which one moved the total. Here: returning mobile buyers from paid social, down 34%.

segment_scan · 214 combinations tested
  • returning · mobile · paid social
    18% of revenue
    34%
  • new · mobile · paid social
    9% of revenue
    11%
  • returning · desktop · email
    21% of revenue
    +7%
  • new · desktop · organic
    14% of revenue
    2%
Ranked by contribution to the total change, not by size of the percentage drop.
retention_rate · by acquisition month
cohortsizeM0M1M2M3M4M5
Jan 20261,240100%46%38%33%30%28%
Feb 20261,396100%44%35%30%27%25%
Mar 20261,502100%51%44%40%37%
Apr 20261,318100%39%29%24%
May 20261,611100%53%46%
Jun 20261,744100%55%
March buyers stayed. April buyers — acquired on a 20% welcome discount — did not.
Cohort retention

Which month's customers actually stayed?

Retention by acquisition month, channel, first product and discount status — so you can see which acquisition decisions bought you customers and which bought you one order.

Contribution margin

Revenue is vanity. This is the real number.

Revenue net of COGS, shipping, payment fees and ad spend — per product and per channel. Your best-selling product and your best-earning product are rarely the same one.

contribution_margin · per 100 of revenue
  • Revenue100
  • COGS38
  • Shipping9
  • Payment fees2.6
  • Ad spend27
  • Contribution margin23.4
cumulative_margin_per_customer vs cac
CAC $74
M0payback · month 4M11
LTV & payback

How long until a customer pays you back?

Cumulative contribution margin per customer by cohort, against the cost of acquiring them. Payback period is the number that decides how fast you can afford to grow.

Discount & cannibalisation

Did the promo add sales, or just move them?

Prism separates incremental orders from orders pulled forward and orders that would have paid full price — then prices the margin you handed over.

promo_15off · 4,182 discounted orders
  • Incremental orders31%
  • Pulled forward44%
  • Would have paid full price25%

The promo looked like a $358k week. $111k of it was new demand; the rest was margin given away on orders you were getting anyway.

Scenario modelling

Move conversion 0.4%. See what happens.

Sliders on conversion, AOV and retention, compounded over twelve months and priced in contribution margin — not just revenue.

scenario_model · 12 month horizon
Conversion rate+0.4pp
cvr
Average order value+3%
aov
Repeat retention+2pp
retention
Annual net revenue
$10.54M+$2,123k
from $8.42M today
Contribution margin
$4.32M+$870k
from $3.45M today

Effects compound: retention raises repeat orders, which raises the order count the AOV change applies to. Prism models the interaction rather than adding the three lifts.

Integrations

Connected to where your numbers already live

Shopify, WooCommerce, Stripe and the major ad platforms, plus COGS and shipping costs by CSV or per-product entry.

Shopify
WooCommerce
Stripe
Meta Ads
Google Ads
TikTok Ads
Pricing

Three plans. No trial, no annual lock-in.

Core
$59
per month

1 store · 13 months history

Growth
$179
per month

3 stores · margin, LTV, scenarios

Portfolio
$449
per month

15 stores · API · full history

Already using KPI Atlas? Add Prism for $99/mo.
FAQ

Questions operators actually ask

Connect your store. See the first breakdown.

No trial account needed — start monthly and cancel any time.

Try it here

Drag the inputs. Watch the revenue bar recompose.

This is the same decomposition Prism runs on your live store data — here with synthetic numbers.

net_revenue · decomposition
$787k$662k (-15.9%)
adds removes
$787k
+$47k
−$175k
+$13k
−$10k
$662k
Last period
Traffic
Conversion
AOV
Returns
This period
Traffic+6%
sessions
Conversion rate-21%
cvr
Average order value+2%
aov
Return rate+1.4pp
return_rate