Red Apple Lipstick — Customer Analytics Dashboard

RFM segmentation · 1/3/5-year LTV per customer · Performance trends · As of 2026-05-14
Snapshot Segments LTV Predictions Performance Cohorts Products Product Affinity Discounts Insights & Recommendations Methodology

Business Snapshot

Total Customers
All-time Orders
Includes pre- and post-migration
All-time Revenue
Net of refunds
Post-mig. Revenue
Post-mig. AOV
Average order value
Repeat Rate (all-time)
Avg 1-yr LTV / customer
Avg 3-yr LTV / customer
Avg 5-yr LTV / customer
Data context. WooCommerce → Shopify migration in mid-2024 created synthetic dates on orders dumped into a July–October 2024 window. Recency analysis uses post-migration orders only (on/after 2024-11-01). Frequency and monetary use all orders. customers (%) have no post-migration order and are placed in Hibernating / Lost regardless of apparent date.

Customer Segments

Segment overview — revenue concentration vs. customer share

11 active segments + 3 hibernating/lost. MECE: every customer belongs to exactly one. Sorted by historical revenue.

Segment details

SegmentCustomersCust % All-time RevRev % Avg OrdersAvg Rev/Cust P(alive) Avg 1-yr LTVAvg 3-yr LTVAvg 5-yr LTV

Recency distribution (R)

Frequency distribution (F)

Monetary distribution (M)

LTV Predictions — 1, 3, and 5-Year Forward

LTV by segment

LTV is a per-customer metric. "Per customer (avg)" shows average forward LTV for customers in each segment — a measure of segment quality. "Fleet total" shows the aggregate forward revenue from each segment (LTV × customer count) — a measure of where the dollars are. BG/NBD model for expected purchase count × Gamma-Gamma model for value per transaction. Longer horizons assume stable purchase rate; uncertainty widens at 3 and 5 years.

Performance Trends (Post-Migration)

Monthly revenue & order volume

New vs returning revenue mix

Monthly customers (new vs total)

Cohort Retention (Post-Migration Acquisition Cohorts)

% of each acquisition cohort that placed a repeat order N months later. Spikes at month 6 and 12 indicate anniversary / seasonal repurchase behavior.

Product Analysis (Post-Migration)

Revenue by product category

SKU-merged, categorized by product type. Same SKU appearing under multiple names is consolidated.

Category detail

CategorySKUsRevenueRev %UnitsOrders

Top 25 SKUs by revenue

"Repeat %" = of customers who bought this SKU, the % who bought it 2+ times. "Variants" = how many different product-name spellings exist on this SKU (a count of 4+ means the SKU was renamed multiple times in Shopify).

#SKUProductCategory RevenueUnitsOrders CustomersRepeat %Variants

Top 15 by revenue (bar)

Top 15 by units sold (bar)

Product Affinity (What's Bought Together)

Category × category attach rate

Reads as: "When an order contains a product in row category, X% of those orders also contain a product in the column category." Hover for the lift score — lift > 1 means the pair is bought together more often than chance; lift < 1 means avoided. Diagonal = % of orders with that category that contain 2+ SKUs from that same category.

Anchor product affinity — what attaches to each top SKU

For each of the top 10 SKUs by revenue, the products most frequently bought in the same order. Attach % = of orders containing the anchor, what % also contain the partner. Baseline % = how often the partner appears in any order. Lift = Attach / Baseline.

SKUProductCategory Co-ordersAttach % Baseline %Lift

Top SKU pairs by lift

Pairs of high-volume SKUs (both sides with at least 300 orders) ranked by lift. High-lift pairs are products that go together — natural bundle candidates and cross-sell targets. Includes both same-category pairs (e.g. two shades a customer commonly pairs) and cross-category pairs.

Product ACat A Product BCat B Co-orders A→B %B→A % Lift
Headline affinity insights.
  • Lipstick is the gravitational anchor. Most categories — Brush, Sample, Eyeliner, Mascara, Lip Pencil, Lip Exfoliate — attach to Lipstick at 40–70% of their orders. Lipstick orders themselves rarely attach back at the same rate, meaning customers buying lipstick often don't add accessories, but customers buying accessories almost always add a lipstick.
  • Lip Exfoliate → Lip Balm at 82.6%. Strongest cross-category attach in the catalog. The Lip Care routine (Exfoliate + Balm) is effectively a single basket — bundling and discount logic should treat them as one product.
  • Lip Pencil → Lipstick at 70.7%. Natural cross-sell. Worth verifying whether the Lipstick PDP currently surfaces the matching lip pencil shade.
  • Eyeshadow Palette → Eyeshadow Single at 92.4%. The refillable palette is a vehicle for selling singles, exactly as designed. Highest-confidence attach pattern in the catalog.

Discount Reliance

% Orders w/ Discount
Total Discounts Given
Avg Discount / Disc. Order
Effective Margin Hit
vs. post-mig revenue

Top discount codes by usage

CodeOrders

Insights & Recommended Actions

1. The Hibernating Heroes problem ($1.36M of historical revenue, only $5.9k of predicted forward revenue).
2,207 customers who were high-frequency, high-value buyers pre-migration never came back after the platform switch. The BG/NBD model puts their "alive" probability at just 17%. If you wait, this revenue is gone — but the size of the prize is so large that even a 5% reactivation rate equals ~$70k. Action: Immediate, premium win-back campaign targeting this exact list — personalized acknowledgment of the migration disruption, generous one-time reactivation offer, and a clear path back to the products they used to buy.
2. 48.6% of orders use a discount — likely over-reliant on promotions.
Effective discount rate is roughly 38% of AOV. The top codes (FESTIVE25, BF25VIP, HOLIDAY20, VIPEARLY25) are all promotional rather than retention-driven. Action: Audit which discount codes drive incremental vs. cannibalize full-price purchases. Replace blanket sitewide promos with segment-targeted offers (e.g. winback discounts only for At Risk / Hibernating, not for Champions or Loyal — those are buying anyway).
3. "About to Sleep" represents the largest fleet revenue opportunity ($95k 1-yr / $358k 5-yr). Per-customer LTV is only $20 (1-yr), but there are 4,676 of them and they're 97% alive.
4,676 customers who bought once recently-ish (R3, F1) — they haven't churned but they haven't repurchased. The BG/NBD model says 97% are still alive. Action: Targeted second-purchase nudge campaign. Average AOV is only $46 (lower than other segments), so a "complete your routine" cross-sell with the lash / brow / primer products (proven top sellers) could materially lift their LTV.
4. Champions are the brand's highest-LTV customers: $91 per customer (1-yr), $282 (5-yr) — and 1.4% of customers drive 9% of revenue.
495 customers averaging 17 orders and $1,101 lifetime revenue. They don't need discounts — they need to feel special. Action: VIP early-access drops, brand collaborations, surprise-and-delight free samples. Stop discounting their orders; redirect that margin into loyalty perks.
5. Repeat rate is 30.4% post-migration — there's headroom.
59.7% of all customers (21,625) are one-time buyers. The Rallye Balm line is the #1 product by units and revenue and shows strong attach with lipstick orders — it's the most natural cross-sell. The cohort retention heatmap shows clear month-6 and month-12 anniversary spikes (campaign-driven), which means timed flows work for this brand. Action: Build a "second purchase within 90 days" flow for new customers that leads with Rallye Balm (low price point, broad appeal, complementary to lipstick).
6. Cohort retention is decent at month 1 (5–8%) but back-half retention is weak.
Customers who do come back tend to do so at predictable intervals (month 6, month 12) rather than monthly. This is consistent with lipstick repurchase cadence but suggests the brand isn't capturing in-between occasions (gifting, sampling, accessories, education). Action: Content + email program around use-cases beyond the core product to drive between-purchase engagement.

Methodology

RFM scoring rubric

ScoreRecency (days since last post-mig. order)Frequency (total orders all-time)Monetary (total revenue all-time)
50–3010+Top 10% (≥$384)
431–906–975–90% ($156–$384)
391–1803–550–75% ($67–$156)
2181–365225–50% ($36–$67)
1366+ or no post-mig. order1Bottom 25% (<$36)

Thresholds chosen for cosmetics repurchase cadence (faster than luxury goods). Monetary bands are percentile-based on this customer file.

Segment definitions (priority-ordered, MECE)

SegmentDefinitionStrategy
ChampionsR≥4, F≥4, M≥4 (active)Reward, retain, VIP perks
Loyal CustomersR≥4, F≥3 (active)Cross-sell, ambassador program
Cannot Lose ThemR=3, F≥3, M≥4 (sliding high-value)Urgent personalized re-engagement
At RiskR=2, F≥3 (lapsing repeats)Win-back with strong incentive
Hibernating HeroesR=1 OR pre-mig-only AND F≥4, M≥4Premium reactivation campaign
Hibernating RegularsR=1 OR pre-mig-only AND F≥3Standard win-back
Needs AttentionR=3, F≥2 (modest sliding)Nurture email, gentle nudge
PromisingR≥4, F=2 (newer repeat buyers)Build the habit, second-product offer
Recent First-TimersR=4, F=1 (bought 31–90d ago)Second-purchase flow
New CustomersR=5, F=1 (bought ≤30d ago)Onboarding + welcome flow
About to SleepR=3 F=1, or R=2 F≤2 (cooling off)Re-engagement before they lapse
LostR=1 / pre-mig-only AND F≤2Suppress or one-shot win-back

LTV model

BG/NBD (Beta-Geometric/Negative Binomial Distribution) predicts the expected number of repeat purchases in the next 12 months, and the probability each customer is still "alive" (vs. churned). Gamma-Gamma model predicts the expected monetary value per future transaction, independent of frequency.

Model fit: BG/NBD r=0.4625, α=216.1, a=2.19, b=11.2 · Gamma-Gamma p=10.13, q=2.36, v=9.57 · Correlation between frequency and monetary value = 0.033 (model independence assumption satisfied).

Training data: Post-migration transactions only (on/after 2024-11-01) — 18,411 orders across 11,720 customers, 18 months of history. Pre-migration customers (no post-cutoff orders) receive a forward LTV of $0 in the rollup, since the model cannot estimate dormancy length from synthetic migration dates.

Caveats

  • The WooCommerce → Shopify migration assigned import-window dates to ~83.5k historical orders. We use them for frequency/monetary counts but not for recency. A customer's true last-purchase date pre-migration is unknown.
  • The dashboard's "Hibernating Heroes" and "Hibernating Regulars" segments combine customers who actually went dormant after the migration with customers whose last real purchase may have been years pre-migration. They should be treated identically for win-back purposes — either way, they're not buying today.
  • LTV predictions exclude new-customer acquisition (only existing-customer revenue is modeled).
  • All amounts in USD. Refunds netted out. Cancelled orders excluded.