All case studies
[ CASE STUDY ]A fast-growing DTC brand · operating layer

I built and run a fast-growing DTC brand's entire data + AI operating layer.

One small team runs the whole business on a single data + AI platform I designed, built, and operate, hosted in the brand's own cloud so they own every line of it.

Anonymized: specifics under NDA, framing and lessons in the open.

15+ yrs in productionF500-gradeYou own everything
20+
Data sources
30+
Internal apps
200+
Serverless services
$0.012
Per AI review
9010
Min · morning ops
operating-platform · one DTC brand
NDA: details redacted
Sources · 20+
The store
Subscription / billing
3PL / warehouse
Carrier tracking
Ad platforms
Help-desk / CX
Reviews
+ 13 more · redacted
Webhooks · scheduled pulls · batch backfills
Medallion data lake
Brand's own cloud · catalog + SQL
Raw · immutable
Curated · cleaned
Aggregated · marts
Analytics + hot-cache
Outputs
Dashboards
Analytics brain
Command center
Forecasting + models
Daily briefs
+ cost tracking · evals · drift checks
Hosted in the brand's own cloud, so they own everythingredacted
The problem

A fast-growing direct-to-consumer brand, scaling fast on a pile of disconnected tools: a store, a subscription/billing platform, a 3PL, ad accounts, a help-desk, an email/SMS suite, a marketplace channel, and a dozen spreadsheets. Every morning the team reconciled conflicting numbers across six-plus dashboards, duplicated the same report by hand, and only found out about stalled shipments when customers complained. Off-the-shelf BI covered maybe 60% of the integrations, and the 40% that mattered most (subscription billing, the warehouse, true profitability) was the part that was missing. And their AI tools couldn't answer a single business question, because nothing could see the data.

Mon · 8:00 AM · "what's revenue?"
Store dashboard$184,210
Attribution tool$179,884
Finance sheet$191,507
Same metric · three answers
What I built

A medallion data lake (raw → curated → aggregated → analytics) in the brand's own cloud, fed by 20+ sources through real-time webhooks, scheduled pulls, and batch backfills. On top of it: 30+ internal apps and 200+ serverless services the team uses daily, an order-and-exception command center, cohort & churn analytics with a machine-learned revenue forecast, an analytics "brain" that answers plain-English questions grounded in real data, an LLM engine that mines reviews and documents into structured fields, a review-to-creative pipeline, and automated daily briefs. Plus the not-sexy parts that keep it trustworthy: per-LLM-call cost tracking, an eval harness, a nightly drift checker, and a shared internal kit so every new build ships fast.

On top of the lake
command center
churn + forecast
analytics brain
LLM extraction
30+
apps
200+
services
20+
sources
The outcome

Morning ops review dropped from 90 minutes to 10. Stalled orders get caught in minutes instead of days. Reporting that used to be a three-day spreadsheet exercise now takes seconds, off one source of truth everyone trusts. A new data source or internal app that used to take a quarter now ships in days. And they avoided $200K+ in BI tooling plus a $150K analyst hire, while owning the whole platform outright.

Morning ops review
before90 min
after10 min
$350K+
tooling + hire avoided
days→sec
reporting

The habit that stuck: the ops team opens the command center before they open their inboxes.

That morning habit is probably the clearest sign the platform earned its place

[ specifics under NDA ]

[ 01 · FOUNDATION ]The data platform

One lake, where every number finally agrees.

Everything else on this page sits on this. Twenty-plus sources land in a medallion data lake (raw → curated → aggregated → analytics) inside the brand's own cloud accounts, catalogued so a single SQL engine can query raw JSON and curated tables side by side, in seconds.

Raw

Immutable source of truth. Every webhook and pull lands untouched as JSON + columnar files, partitioned by source and date, kept forever and tiered to cold storage.

never deleted

Curated

Cleaned, deduped, chronologically rebuilt. Orders are grouped by customer and replayed in true order, so first-order dates, rebill cycles, and customer journeys come out correct.

consistent schema

Aggregated

Pre-computed marts: cohort metrics, daily revenue, retention, cohort profitability. Query-ready and cheap to read, so dashboards never re-derive the hard math.

decision-ready

Analytics

The layer the dashboards, models, and analytics brain read from. Sub-second hot-caches back the live ops screens so big backlogs load instantly.

served

Real-time webhooks

Orders, fulfillments, tracking scans, returns, and subscription billing arrive in seconds. Every webhook is signature-verified, queued, and dead-lettered so nothing is silently lost.

Scheduled pulls

Hourly and daily jobs pull the sources that don't push, CX tickets, reviews, ad spend, the marketplace, cash and bills, on a predictable cadence with freshness checks watching for gaps.

Batch backfills

Containerized jobs replay full history on demand, with resumable checkpoints, so a change to the transform logic never means re-buying or re-pulling data the brand already owns.

Query, catalog & the boring guarantees
  • A data catalog keeps raw JSON and curated columnar tables queryable from one SQL engine, results in seconds, no servers to babysit.
  • High-churn tables use a lakehouse table format with partition projection to dodge the tiny-file scan storms that run up the bill without anyone noticing.
  • Customer identity resolves by ID, or a one-way hashed email for guests, so a journey stays stable without storing personal data in the clear.
  • Idempotent dedup by record-and-version plus resumable checkpoints make every pipeline safe to re-run, no double counting, no corruption.
  • Lifecycle tiering moves cold raw data to cheaper storage automatically; the raw layer is never purged, so history is always replayable.
  • ELT, not ETL: raw is preserved, transforms are versioned, and improving the logic is a re-run, not a re-ingestion.

[ anonymized: specifics under NDA ]

[ 02 · AI THAT EARNS ITS KEEP ]LLM extraction

Turning messy text into structured data, for about a penny.

A brand generates mountains of unstructured text (reviews, support tickets, ad comments, vendor bills, etc.) that regex can't read and humans don't have time to. So I built a model-agnostic extraction engine that reads each one and returns clean, typed fields the rest of the platform can use.

The extraction pipeline
Pre-filter

Drop the obvious noise, low ratings, sub-50-character blurbs, before a model ever sees it.

Fast model triages

A cheap, fast model handles the routine bulk and decides what deserves the heavy lift.

Stronger model, hard parts

A stronger model only runs where nuance matters, then returns strict JSON.

Strict-JSON output Deterministic fallback Stored + searchable
The economics
$0.012
per item
~$12
per 1,000
11,000+
items mined
~86%
cheaper vs single model

Filtering first and splitting the work across a fast model and a stronger one is what makes this affordable at scale. On the document-processing side, that same two-model split cut the bill by roughly 86%. The platform is provider-agnostic: models are swapped behind one gateway, and every call's cost is tracked.

extraction · illustrative one item
Raw review in

"I'm on my feet for 10-hour shifts and by mid-afternoon I was wrecked. Tried everything. Two weeks in, the ache is just gone. I bought three more pairs for the crew."

Structured fields out
transformation: "wrecked by mid-afternoon" → "ache is gone"
context: on feet · 10-hour shifts
social proof: bought more for the crew
pull-quote: "Two weeks in, the ache is just gone."
priorityhigh-impact· emotionstrong

Same engine reads tickets, comments & vendor bills.

[ provider-agnostic · example is illustrative ]

[ 03 · RETENTION SCIENCE ]Churn, LTV & forecasting

Knowing who renews, before the charge fires.

For a subscription-heavy brand, returning revenue is the whole ballgame. I rebuilt retention from the order up, then put a machine-learned model on top of it that scores every upcoming renewal individually instead of averaging a whole cohort.

Cohorts done right

Every customer is pinned to the day of their first subscription order, an immutable cohort. Membership never changes; the metrics evolve. Daily jobs re-measure each cohort at its 30 / 60 / 90 / 120 / 180-day windows, so you're always comparing customers of the same age.

Illustrative renewal retention by cycle
renewal 1~75%
renewal 2~44%
renewal 3~29%
renewal 6~14%

A renewal-probability model

The first forecast applied one retention curve to a whole cohort. The upgrade scores one row per scheduled renewal: given only what was known before the charge, what's the probability it succeeds? It learns from subscription age, plan length, product, country, promo, prior renewals, and lifecycle state, then aggregates back into expected rebills and revenue.

  • Strictly leakage-safe: features are frozen as-of the renewal date, so the model never peeks at the future.
  • Validated AUC ~0.96, with calibration and rolling monthly backtests on closed months.
  • Outputs P10 / P50 / P90 scenario bands and flags lifecycle risk: paused, in dunning, or cancelled.
Forecast accuracy · backtested
cohort baseline-24% error
per-renewal model±1% error

Across a multi-month closed backtest, the old cohort forecast undershot returning revenue by about a quarter. The per-renewal model lands within roughly a percent, and re-proves it every run.

LTV, profitability & offer modeling
  • Cohort profitability unifies revenue, refunds, chargebacks, fees, shipping, COGS, and ad spend into one payback view, by cohort.
  • An offer-modeling workbench runs deterministic best / base / worst scenarios, break-even CAC, MER, and payback, with an LLM that explains the drivers and flags weak assumptions.
  • Every forecast is stored with its assumptions, then compared to actuals after launch, so the model gets sharper offer by offer.

[ figures rounded / illustrative · specifics under NDA ]

[ 04 · VOICE OF CUSTOMER ]Review mining → creative

The customers already wrote the winning ads.

Every honest review is a tested message: the angle, the objection, the moment it clicked. I mine that corpus and hand the creative team ready-to-use angles, hooks, and proof, so briefs start from evidence instead of guesses.

1 · Mine

Reviews stream in real-time from the reviews platform, and a scheduled job sweeps ad-comment threads, into one unified store.

2 · Qualify

A quality bar keeps only specific, vivid stories, real transformations and context, and discards generic praise.

3 · Extract

The LLM engine pulls angles, objections-overcome, pull-quotes, and ready-made headlines, each scored for impact.

4 · Feed creative

Angles and proof flow to creative production and a daily testimonial shortlist, so briefs start from what already converts.

"Ask the reviews"

The whole corpus is embedded into a vector index, so anyone can ask in plain English, "what do customers say about comfort on long shifts?", and get an AI-synthesized answer with the receipts. New reviews index in under a second, and a search returns in under half of one.

comfort · long shifts

"Most reviewers on their feet 8+ hours cite same-day relief; comfort and durability are the dominant themes..."

<0.5s search <1s index
[ 05 · THE OPERATING LAYER ]Command center · brain · briefs

Where the data becomes a day's work.

A lake is only worth what people do with it. The operating layer is the set of screens the team lives in day to day, where a clean number turns into a shipped fix.

the command center · exception queue
live · hot-cache
Order #10241 · no movement 6 days
recommendapology + reship
Order #10198 · carrier exception
recommendfile carrier claim
Return #5512 · promo math mismatch
recommendcap partial refund
+ live exceptions · rule engine · idempotent actions · full audit trail

The command center

A live order-and-exception console. Carrier-agnostic tracking and business-day logic surface stalled and exception orders; a rule engine recommends actions, apology, discount, refund, reship, carrier claim, intercept, gift card, with idempotency, daily caps, approvals, and a full audit trail.

The analytics brain

Plain-English questions, answered against the real warehouse, not a hallucination. Department audits, a live console, and "ask the data" let anyone interrogate revenue, retention, or fulfillment without writing SQL or pinging an analyst.

The daily brief

Each morning, a brief posts the KPIs that matter, top campaigns, and promos, then an LLM writes the narrative in hypothesis language, never false causality. Leaders add context in a structured thread, so "what we changed" is stored next to "what happened."

context capture internal AI workspace live ops console audited actions
[ SHIPPED ]Inside the platform

What that platform actually does.

Twelve of the dozens of production systems running on top of the data lake: each shipped, owned by the brand, and earning its keep daily.

Fulfillment Command Center

Watches every package and translates carrier codes with AI, so support fixes delivery exceptions hours before customers notice.

200,000+packages / yr

Review Intelligence

Turns the customer-review backlog into marketing-ready quotes, transformation stories, and objections (for about a penny each).

~$0.012/ review
11,000+ mined

Churn & LTV Control Tower

Unifies every order into cohort, retention, and LTV analytics with at-risk alerts.

238,000+orders unified

Renewal Forecast Model

Scores every upcoming renewal individually and rolls it into a returning-revenue forecast that backtests itself each run.

±1%revenue error
AUC ~0.96

Ask-the-Data Brain

Plain-English questions answered against the real warehouse, plus semantic search across the entire review corpus.

<0.5ssemantic search

Marketplace Brand Protection

Scans the catalog daily for counterfeit listings, snapshots evidence, and triggers takedowns.

1,000+listings / day
replaces 20+ hrs/wk

AP Automation

Watches the finance inbox; an LLM reads and classifies every vendor bill, extracts the line items, and files it straight into the AP system, with policy and approval checks.

Hands-offapprovals

AI Support Automation

Guardrailed AI agents resolve routine tickets and hand off cleanly to humans.

~30%tickets deflected

Always-on Inventory Watchdog

Every 20 minutes, around the clock, it reconciles real stock across the store and the warehouse and alerts the team before anything can oversell.

20 minchecks · 24/7

Daily Growth Brief

Auto-posts the day's KPIs, top campaigns, and promos with an LLM narrative, and captures leader context as a searchable decision log.

Every AMdecision-ready

Campaign-Cancellation Pager

Checks the email & SMS platform every two minutes and pages whoever's on call the instant a campaign cancels, before a botched send costs revenue.

2 minto on-call

Promo Refund Protection

Real-time return webhooks re-run the promo math on "buy 3, get 3" offers, so refunds can't end up exceeding what the customer paid.

Real-timemargin guard
[ UNDER THE HOOD ]How it holds up

The boring engineering that makes it trustworthy.

This is the part most automation work skips, and it's the reason this platform can be trusted to run a business. Anonymized, but real.

One governed data foundation

  • 20+ sources unified into a medallion data lake (raw → curated → aggregated → analytics) in the brand's own cloud: catalogued, queried in seconds, with high-churn tables on a lakehouse table format.
  • Three ways data lands: real-time webhooks (signature-verified), scheduled pulls, and on-demand batch jobs, coordinated by state machines, with a sub-second hot-cache for live ops screens.
  • ~56 serverless functions · 18 on-demand batch jobs · 36 state machines · ~100 version-controlled tables · 68 scheduled jobs. One platform, one engineer.

Standards that survive growth

  • Every service imports one shared internal SDK, so auth, retries, secrets, alerts, and storage are done one correct way.
  • A CI "drift checker" fails the build on the usual rot (raw cloud clients, hard-coded webhooks, direct writes), so the code stays consistent as it grows across repos.
  • Ships through OIDC CI/CD (no stored keys), infrastructure-as-code, secrets in a vault, and an isolated production cloud account the brand owns.

Reliability & cost, on purpose

  • 30+ alarms, dead-letter queues, signature-verified webhooks, hourly freshness checks, and self-healing deploys.
  • Cost engineered, not ignored: compacting storage cut objects scanned by ~490×; rewriting heavy queries took several from multi-gigabyte scans down to a few kilobytes.
  • Monthly cloud spend dropped from ~$3.6k to ~$1.3–2k, with zero data loss.

AI where it earns its keep

  • Cheap model for triage, stronger model for the hard part, behind one provider-agnostic gateway. That two-model split cut a document-processing bill ~86%.
  • Strict-JSON outputs with deterministic fallbacks, so nothing critical depends on a model "feeling helpful"; inputs are pre-filtered to control cost.
  • "Ask the reviews / ask the data" semantic search across the whole corpus in under half a second; a revenue forecast taken from ~-24% error to ~±1%, backtested every run.
serverless + containers infra-as-code scheduled pipelines cost controls
490×
fewer objects scanned
$3.6k$1.3k
monthly cloud cost
-24%±1%
forecast error
~86%
cheaper doc AI
<0.5s
semantic search
100
catalog tables

[ anonymized: specifics under NDA ]

[ TRACK RECORD ]Where the standard comes from

Before DTC, I spent 15+ years building systems that move real money for the largest US banks, card networks, and insurers. That's the standard this platform is held to.

Financial services·E-commerce & DTC·Insurance·Healthcare·Member orgssee who I work with
[ Let's build yours ]

Want something like this behind your business?

Tell me what tools you run and where the mornings go. I'll map out what a first build would look like, what it would cost, and what it would be worth, and you'd own all of it. I reply within 48 hours on weekdays.