Revenue Metrics
MER below break-even — immediate attention required. Apr-2026 MER = 1.774x vs break-even 2.54x. Every KES spent on Meta ads is generating a negative contribution margin. This is the lowest MER month on record with comparable spend data. See Profitability three-way variance for COGS + spend + volume decomposition.
MER — March 2026 (break-even: 2.54x)
— 2.53x vs Feb 2026
GMV — March 2026 (KES)
— 1,448,568 KES vs Feb 2026
Orders — March 2026
▲ 744 vs Feb 2026
Gross Margin % (est. GMV - COGS 39.9% - fulfillment 15%)
— 45.1% vs Feb 2026
Pixel Coverage % (Meta purchases / Shopify orders)
— 73.6% vs Feb 2026
Net P&L — March 2026 (KES)
— -13,097 KES vs Feb 2026
MER below break-even (2.36x vs 2.54x target). Pixel coverage 72.2% — below 90% target. Net P&L negative at -52,559 KES. Gross margin % estimated at 45.1% (COGS 39.9% + fulfillment 15%). COGS per-SKU data unavailable; blended estimate used. Source: Shopify orders March 2026 (540 orders, 1,183,396 KES GMV) + Meta placement_insights W3 (500,769 KES spend).
Contribution Margin Stack — Feb 2026 (only full P&L month)
Feb 2026 is the only month with a complete daily P&L parquet covering all revenue, COGS, and ad spend. Use these as the unit-economics baseline for all break-even reasoning.
CM1 — Gross Margin after COGS (Feb-2026 mean)
CM2 — After Ad Spend (Feb-2026 mean)
Break-even MER (2.54x)
Current MER avg (2025-2026)
What this shows: CM1 at 53.5% means roughly half of every KES of revenue survives after product costs. CM2 at 12.8% is what remains after ad spend — the actual margin the business banks. Why it matters: At 12.8% CM2 and a break-even MER of 2.54x, the business needs at least 2.54 KES of GMV per 1 KES of ad spend just to cover COGS and media cost. Apr-2026 MER of 1.774x falls 0.77x short — meaning ads are destroying margin, not building it. Action: Either reduce ad spend until ROAS recovers above 2.54x, or shift spend to the highest-ROAS placements and segments. See Profitability for three-way variance (COGS, spend, volume).
Source: data/processed/xlsx/daily_pl.parquet — DuckDB avg(gross_profit/net_sales), avg((gross_profit-ad_spend)/net_sales), Feb-2026 rows only
MER Trend + Gross Margin Trend — Paired View
What this shows: MER has compressed from 7.8x in Jan-2025 to 1.77x in Apr-2026 — a 78% collapse. Two regime events (Jan-2026 attribution window deprecation, Mar-2026 Meta algo rollout) likely accelerated the reported decline in the final three months. Why it matters: The paired view shows MER collapse is structural, not cyclical. CM1 at 53.5% means the gross margin is healthy; the problem is ad spend consuming the margin. CM2 drops to 12.8% because ad spend is too high relative to the revenue it generates. Action: Cut or reallocate spend to the highest-ROAS segments (see G1 spend reallocation lever). Target MER recovery to 2.54x before scaling. See Profitability for the full three-way variance.
MER Trend — Monthly Marketing Efficiency Ratio
MER = Shopify realized GMV / Meta ad spend (KES). Break-even at 2.54x per contribution margin model. Data: 2025-01 to 2026-04 (16 months where both Shopify orders and Meta placement_insights W3 overlap). Pre-2025 Meta spend data unavailable from W3 run; GMV-only months excluded to avoid inflated MER. Trend: MER compressed from 7.8x (Jan 2025, early low-spend ramp) to 1.77x (Apr 2026). Below break-even since Nov 2025.
Revenue Components — Monthly Waterfall (6-month window)
Revenue decomposed into new-customer revenue and returning-customer revenue by month. NairoMarket is transactional (not subscription). "New customers" = GMV from first-time buyers in that month. "Returning revenue" = GMV from repeat buyers. Churn is implicit: customers absent from month = revenue lost. Data: Shopify orders parquet. Customer identity via customer.id field. Null customer_id orders assigned to new bucket. 6-month window: Nov 2025 to Apr 2026. Prior months excluded to keep chart focused on recent trajectory.
What this shows: New-customer revenue dominates every month (85-90% of GMV). Returning-customer revenue is flat at 135-191K KES/month while new-customer revenue swings with ad spend. Why it matters: Heavy reliance on new-customer acquisition means every MER decline directly compresses total GMV. A 10% increase in returning-customer revenue rate would add ~17K KES/month at Feb-2026 volumes without additional ad spend. Action: Prioritise repeat-purchase triggers (email flows, loyalty discount) to shift the returning/new ratio. Even moving from 12% to 20% returning revenue share reduces paid acquisition dependency materially.
New vs Returning Revenue Share — Feb 2026
Feb 2026 is the highest-volume recent full month (1,448,568 KES GMV). Revenue split between first-time and repeat buyers shows the acquisition dependency ratio.
New Customer Revenue Share (Feb-2026)
Returning Customer Revenue Share (Feb-2026)
Feb-2026 Total GMV (KES)
What this shows: 87.7% of Feb-2026 GMV came from first-time buyers. Only 12.3% came from customers who had ordered before. Why it matters: At 87.7% acquisition-dependency, every KES cut from Meta ad spend directly reduces GMV with no buffer from a loyal returning base. A healthy e-commerce mix targets 30-40% returning revenue. NairoMarket is 3x more acquisition-dependent than that benchmark. Action: Retention investment has exceptional ROI at this dependency level. A post-purchase email sequence + loyalty discount targeting the 12-month inactive cohort is the highest-leverage lever before the next spend cycle. See retention metrics for cohort detail.
Source: chart_mrr_waterfall VALUES — Feb-2026 new customer revenue 1,270,627 KES, returning 177,940 KES
Top 10 Months by GMV
Aug 2024 shows highest GMV (1.51M KES, 618 orders) but no Meta spend data — W3 placement_insights starts Jan 2025. MER null for Aug 2024. Apr 2026 MER of 1.774x is the lowest on record — partial month data (run date 2026-04-24). Break-even MER = 2.54x. Only Dec-2025, Feb-2026, and months from 2025-01 to 2025-10 clear this threshold.
What this shows: The highest-GMV months with comparable Meta spend (Jan-2026, Feb-2026) are also among the lowest-MER months. Volume grew but efficiency collapsed — the business is buying revenue at a loss. Why it matters: Scaling spend further in the current MER regime deepens the loss per order. The 2025-01 to 2025-04 window shows that high MER (4-7x) and lower absolute GMV is the more profitable configuration. Action: Reduce spend to the level where MER clears 2.54x, then scale carefully. The Feb-2026 data point (MER 2.528x, GMV 1.45M) is the closest to a break-even high-volume month — use it as the target configuration. See Profitability for three-way variance.
Implementation Notes
Spec divergence from docs/sprint2/metrics.md:
MER trend start date: Spec says "Jan 2024 → present". Implementation starts Jan 2025 because Meta placement_insights W3 run covers 2025-01 to 2026-04 only. Pre-2025 Meta spend is unavailable from current parquets. MER requires both GMV and spend; using GMV-only months would produce inflated/meaningless ratios. Start date adjusted to 2025-01 where overlap exists. Sprint 2 backlog: re-run W3 with
date_preset=maximumto recover 2024 spend.Pixel coverage % in KPI strip: Spec calls for sparkline. Evidence
BigValuedoes not support inline sparklines — sparkline is a separateSparkLinecomponent that requires its own query. Pixel coverage shown as a scalar BigValue with prior-period comparison instead. A dedicated sparkline chart can be added to the partial in a follow-up.MRR waterfall framing: Spec says "waterfall style BarChart — prior month GMV + new customers − churned customers ± expansion". Evidence
BarChartdoes not have a native waterfall type. Implemented as a stacked bar chart decomposing GMV into new-customer revenue vs returning-customer revenue. True churn delta (negative bars) would require a dedicated waterfall library or custom component. The stacked view communicates the same retention story cleanly.WASM rule compliance: All SQL blocks use inline
VALUEStuples — noread_parquet('/abs/path')calls at page level. Source bindings (shopify_orders_bulk__orders,meta_metadata__placement_insights) exist inreports/sources/nairomarket/for server-side use but are not used in these partials to ensure browser WASM compatibility.Gross margin % and Net P&L: CM1 (53.5%) and CM2 (12.8%) sourced from
data/processed/xlsx/daily_pl.parquetvia DuckDB — Feb-2026 daily mean. Break-even MER 2.54x is derived from CM1: 1/0.535 ≈ 1.87x for COGS break-even; with fulfillment, payment fees, and overhead the full break-even is 2.54x per the Eightx contribution margin model. Values confirmed against daily_pl.parquet 2026-04-24.Gross margin trend: Only Feb-2026 has complete COGS data in the parquet. Prior months show NULL. A full GM trend requires daily_pl.parquet to be backfilled for all months. Sprint 2 backlog item.
