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.
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.
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.
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.
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 ]
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 deletedCurated
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 schemaAggregated
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-readyAnalytics
The layer the dashboards, models, and analytics brain read from. Sub-second hot-caches back the live ops screens so big backlogs load instantly.
servedReal-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.
- 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 ]
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.
Drop the obvious noise, low ratings, sub-50-character blurbs, before a model ever sees it.
A cheap, fast model handles the routine bulk and decides what deserves the heavy lift.
A stronger model only runs where nuance matters, then returns strict JSON.
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.
"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."
Same engine reads tickets, comments & vendor bills.
[ provider-agnostic · example is illustrative ]
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.
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.
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.
- 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 ]
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.
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.
"Most reviewers on their feet 8+ hours cite same-day relief; comfort and durability are the dominant themes..."
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
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."
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.
Review Intelligence
Turns the customer-review backlog into marketing-ready quotes, transformation stories, and objections (for about a penny each).
Churn & LTV Control Tower
Unifies every order into cohort, retention, and LTV analytics with at-risk alerts.
Renewal Forecast Model
Scores every upcoming renewal individually and rolls it into a returning-revenue forecast that backtests itself each run.
Ask-the-Data Brain
Plain-English questions answered against the real warehouse, plus semantic search across the entire review corpus.
Marketplace Brand Protection
Scans the catalog daily for counterfeit listings, snapshots evidence, and triggers takedowns.
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.
AI Support Automation
Guardrailed AI agents resolve routine tickets and hand off cleanly to humans.
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.
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.
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.
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.
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.
[ anonymized: specifics under NDA ]
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.
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.