BioTRUST

Acquisition Dashboard

Last refresh: —
Last refresh: 2026-10-19 19:45 EDT

Monthly Cohorts

Methods & Glossary

Shopify + Meta + Google + Everflow • DTC only (Amazon excluded)
New Users
Shopify orders that are the customer's first order ever — Shopify's own new-vs-returning rule, the same one the Performance Dashboard's DTC New Users uses. Cancelled and test orders never count. $0 orders in the sample sales channels (TikTok Shop — SPL, Trybe UGC) are product samples, not acquisitions, and are excluded; paid orders in those channels count like any other. Every sales channel that flows through Shopify is included (Online Store, Sales Landers, Recharge Subscriptions, CS App, Shop, Marketplace Connect, …). Amazon is excluded.
Net Rev
Per order: what the customer paid excluding tax, net of refunds and order edits (currentTotalPrice − currentTotalTax) — gross − discounts − returns + shipping, which is the Performance Dashboard's DTC Net Rev definition (ShopifyQL total_sales − taxes) at order grain. Refunds are netted against the order they belong to rather than dated by refund day, so a period's Net Rev can drift slightly from the Performance Dashboard until refunds settle. The monthly accounting reconciliation in Historical Spend Gaps.csv is not applied here.
Ad Spend
Meta (Facebook_Ads_Spend__Historical_.csv, Meta API; Trybe spend is included in Meta) + Google (Google_Ads_Spend__Historical_.csv) + Everflow affiliate payout (Everflow_Spend__Historical_.csv) minus Everflow payout on orders that were not the customer's first Shopify order (Everflow_New_Customer_Spend__Historical_.csv, Patrick 2026-10-19). Every card on this dashboard uses this new-customer-only spend, including the Ad Spend card itself. Amazon Ads are excluded.
CAC
Ad Spend ÷ New Users for the same period.
RoAS
Net Rev generated in the period by the customers acquired in that period — their first order plus any repeat or subscription orders they placed before the period ended — ÷ the period's Ad Spend. Shown as a multiple (1.00× = the period's spend has been recovered).
Contribution Profit (CP)
Per order, before ad spend: Net Rev − COGS − Fulfillment & Commission, the Performance Dashboard's DTC definitions. COGS = units × unit_cogs from sku_cogs.csv (exact SKU match; SKUs 4999–9999 excluded; a SKU with no entry costs $0). F&C for orders on/after 7/1/26 = 4.18% × Net Rev + $9.30 per order + $0.12 per unit (4.1% / $8.60 / $0.12 before). The monthly COGS and F&C true-ups in Historical Spend Gaps are not applied.
Expected Payback
Months (xx.xx) until the period's New Users are expected to have generated cumulative Contribution Profit equal to the period's Ad Spend. Each New User is placed in a segment by their first order — subscription starter (a line item with a selling plan) or one-time, × first-order Net Rev band (≤$20, $20.01–50, $50.01–75, $75.01–100, >$100, the SNS LTV cohort bands). Every segment has an LTV curve: average cumulative CP per New User by days since acquisition (day 0 = the first order), built from every customer acquired since — and refreshed nightly; the day-t increment averages over the customers old enough to be observed at t, and a point with fewer than — such customers borrows the parent subscription / one-time increment (then the all-customer one). The projection adds, for each New User, their observed cumulative CP to date plus their segment curve's growth from their current age forward; Expected Payback is the first day the sum reaches the period's Ad Spend, interpolated and ÷ 30.44. A period that never reaches its spend within the 12-month horizon shows "12.00+"; one that already paid back shows the time it actually took.
Monthly Cohorts
Rows are New Users by the calendar month of their first order; columns are 30-day periods counted from each customer's own first order (Month 0 = days 0–29, Month 1 = days 30–59, …), so a period is complete only once the cohort's last-acquired customer has lived through it — an italic cell is still in progress for part of the cohort, a blank one hasn't started. Cumulative Net Revenue = the cohort's Net Rev through that period ÷ its New Users. Contribution Profit ($) = (cumulative CP before ad spend − the cohort's Ad Spend) ÷ New Users. Payback (%) = (cumulative CP before ad spend − Ad Spend) ÷ Ad Spend, i.e. 0% at breakeven. Retention Rate = New Users who placed another order during that period ÷ New Users (not cumulative). Ad Spend follows the customer: each New User carries their acquisition day's new-customer spend ÷ that day's New Users, so a filtered cohort's spend is the sum over its members and the unfiltered cohort adds back to the exact total. Filters: SNS (first order with a selling plan vs one-time), 1st-Order AOV (first-order Net Rev ex tax), 1st-Order Product (product groups from sku_mapping.csv; a first order with two groups counts under both, so product rows can overlap). The heat shading is relative within each column.
LTV curve segments
Windows
Days are the Shopify store's calendar days (—) for orders; ad platforms report their own calendar days. Only full days are shown; the current day never appears. Prior Day = the last full day; L7 / L14 / L30 = the last 7 / 14 / 30 full days; "vs prior" compares with the equal-length window before it and reads n/a until that window is fully inside the data (data begins —).
Refresh
Rebuilt nightly on the Mac after the Shopify, Meta, Google and Everflow pulls; the last 30 full days of orders are re-read every night so refunds and late cancellations settle in.