Revenue Metrics

MER — March 2026 (break-even: 2.54x)

2.36x

2.53x vs Feb 2026

GMV — March 2026 (KES)

1,183,396 KES

1,448,568 KES vs Feb 2026

Orders — March 2026

540

744 vs Feb 2026

Gross Margin % (est. GMV - COGS 39.9% - fulfillment 15%)

45.1%

45.1% vs Feb 2026

Pixel Coverage % (Meta purchases / Shopify orders)

72.2%

73.6% vs Feb 2026

Net P&L — March 2026 (KES)

-52,559 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)

5,350.0%

CM2 — After Ad Spend (Feb-2026 mean)

1,280.0%

Break-even MER (2.54x)

2.54

Current MER avg (2025-2026)

2.36

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

Loading...
Loading...

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

Loading...

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)

Loading...

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)

8,770.0%

Returning Customer Revenue Share (Feb-2026)

1,230.0%

Feb-2026 Total GMV (KES)

1,449k
Loading...

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

No Results

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:

  1. 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=maximum to recover 2024 spend.

  2. Pixel coverage % in KPI strip: Spec calls for sparkline. Evidence BigValue does not support inline sparklines — sparkline is a separate SparkLine component 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.

  3. MRR waterfall framing: Spec says "waterfall style BarChart — prior month GMV + new customers − churned customers ± expansion". Evidence BarChart does 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.

  4. WASM rule compliance: All SQL blocks use inline VALUES tuples — no read_parquet('/abs/path') calls at page level. Source bindings (shopify_orders_bulk__orders, meta_metadata__placement_insights) exist in reports/sources/nairomarket/ for server-side use but are not used in these partials to ensure browser WASM compatibility.

  5. Gross margin % and Net P&L: CM1 (53.5%) and CM2 (12.8%) sourced from data/processed/xlsx/daily_pl.parquet via 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.

  6. 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.