AI customer profit engine for consumer brands

Know what every customer is really worth so you know who to grow and who to stop paying for.

Backed by
AirTree
Our team has built and run operations at
  • Eucalyptus
  • Airwallex
  • Constantinople
  • Morgan Stanley
  • Bain & Company
  • BCG
  • McKinsey & Company
  • Pacific Equity Partners
  • Ares
  • Immutable

Not all customers are worth the same

Ads, discounts, returns and delivery make the difference. Most brands can't see those costs for each customer.

Customer Aspent $1,240
$1,240
−$520
$0
−$50
−$40
−$220
+$410
SpentProductDiscountsDisc.ReturnsDeliveryDeliv.AdsLeft
Customer Bspent $1,240
$1,240
−$520
−$230
−$215
−$120
−$240
−$85
SpentProductDiscountsDisc.ReturnsDeliveryDeliv.AdsLeft

For many consumer brands, 1 in 5 customers costs more than what they spend.1

We model customer profit to unlock AI automations

boringstack joins your data, models what every customer is worth and recommends the best play. The highest value actions run automatically when your team approves them.

  • Shopify
  • Lightspeed
  • Apparel21
  • Oracle NetSuite
  • Meta
  • Google Ads
  • Klaviyo
  • Cin7
  • Australia Post
  • ShipBob
  • Loop
  • Microsoft
  • MYOB
  • SAP
  • Xero
  • Zendesk
  • Stripe
  • Slack

2 · Join and model

boringstack platform
Agentic data engineering
Commercial & industry expertise
Company context
Customer profit dashboardSee who makes money, who loses it, and why
RecommendationsWho to target, which offer to send, what to change

3 · Automate

boringstack automations

The highest-value plays, sent to the tool that runs them.

  • AudiencesMetaGoogle Ads
  • Suppression listsKlaviyo
  • Returns rulesLoop
  • SMS reminders and offersKlaviyo

✓You approve each play before it runs.

↺ Back into your systems

bos growth framework

Every customer lands in one of four groups by what they spend and what they really contribute after ads, discounts, returns and delivery. Pick a group to see the analysis and the outputs your team gets.

boringstack / Data / Sources FY26 · rolling 12 months HP

Customer map

Every customer placed by what they spend and what they really contribute after product cost, discounts, returns, delivery and ads

Export

Customers

128,400

joined on 4 identity keys

Revenue

$61.2m

all channels, 12 months

Contribution

$16.4m

26.8% of revenue

Lose money

40,700

32% of customers

GrowProtectFixStopGrow19,300 customersProtect68,400 customersFix9,800 customersStop30,900 customersCustomer A · $1,240 revenue · +$410Customer B · $1,240 revenue · −$85$50$200$600$2,000−$250$0$500$1,000Revenue per customer, last 12 monthsContribution per customer

By group · pick one

GroupCustomersContribution
Grow19,300$15.1m
Protect68,400$5.4m
Fix9,800−$0.8m
Stop30,900−$3.3m
All customers128,400$16.4m
Customers A and B both spent $1,240. One left $410, the other cost $85. On revenue alone they look the same.
Refreshed 06:04 todayReconciled to the ledger · variance $0.00mSample of 160 customers shown

Grow

Your most profitable customers, and where to find more like them

Export

Grow customers

19,300

15% of customers

Contribution

$15.1m

92% of the total

Per customer

$782

against $128 on average

Best $1 of ad spend

$2.10

contribution back, brand search

Where new customers come from · contribution after 12 months

CampaignNew customersReported ROASPer customerPer $1 spent
Google · brand search3,8806.1$188$2.10
Meta · full-price prospecting4,2102.6$214$1.40
TikTok · creator content2,0602.1$96$0.61
Meta · Advantage+ sale6,9404.8−$18−$0.22
Stores · first order in store5,120–$246–
The sale campaign reports the second-best ROAS, but its customers return 41% of what they buy and rarely pay full price. Each $1 spent there loses $0.22.

Recommended play

Profit-based acquisitionGrow

Bid on contribution, not revenue

  • Lookalike seed: 19,300 Grow customers
  • Contribution as the conversion value
  • $40k a month moved out of the sale campaign
ApproveFormatWorth $1.2m

What your team receives

WeeklyLookalike list · 19,300 customers
WeeklyExclusion list · 15,200 customers
DailyOrder values · contribution per order
Refreshed 06:04 todayEcommerce · POS · Ads · Returns · LedgerContribution after product cost, discounts, returns, delivery and ads

Protect

Profitable customers who spend less. Keep them buying without paying them to.

Export

Protect customers

68,400

53% of customers

Contribution

$5.4m

33% of the total

Past their own window

5,340

gone quiet · $1.0m a year

Full-price buyers sent codes

11,200

$0.6m of margin given away

GroupCustomersContributionPlayOwnerWorth a year
Regulars, gone quiet5,340$1.0mWin backStores and CRM$0.9mApprove✓ Approved
Full-price loyalists11,200$1.9mNo codesCRM$0.6mReview✓ Approved
Due to buy this month8,400$0.9mTimed reminderCRM$0.3mReview✓ Approved
Store regulars3,660$0.6mStore noteStores$0.4mReview✓ Approved
Steady, on their own cycle39,800$1.0mLeave alone––
All Protect customers68,400$5.4m$2.2m
11,200 customers who always pay full price got 20% codes in the last two sales. That gave $0.6m of margin to people who would have bought anyway.
A regular who buys every 9 weeks at the Brooklyn store hasn't been in for 11. They get a note from their store, not a discount.
Refreshed 06:04 todayEach approved play becomes a list and a brief for the team that owns it
Win back approved · list of 5,340 customers ready for store managers and CRM

Fix

Customers who spend a lot, but discounts and returns eat the margin

Export

Fix customers

9,800

8% of customers

Contribution

−$0.8m

from $7.6m of revenue

Return rate

34%

against 14% for Grow

Orders on a discount

68%

against 12% for Grow

Where the margin goes · average Fix customer, 12 months

Revenue$776
Product cost−$350
Discounts−$163
Returns−$171
Acquisition−$96
Delivery−$78
Contribution−$82
On revenue they look like good customers. Discounts and returns take $334 of every $776.

Recommended rules

Exchange first for serial returners

Customers with three or more returns in 12 months get an exchange or store credit first. A refund stays one click away.

Ops and CX · returns portalWorth $0.5mApprove

One code a quarter for discount-led buyers

Stop stacking promo codes on customers who only buy on promotion. Sale emails go to them once, not every week.

Trading · KlaviyoWorth $0.4mReview

Size advice before the second order

Customers who returned for fit get their size in the next order confirmation.

EcommerceWorth $0.2mReview
Refreshed 06:04 todayReturns graded by reason from the warehouse and the returns portal

Stop

Customers who cost more to win and serve than they pay. Stop paying to find more of them.

Export

Stop customers

30,900

24% of customers

Contribution

−$3.3m

after ads, returns and delivery

Ad spend on them

$1.9m

last 12 months

Average order

$64

against $142 for Grow

Why they lose moneyCustomersContributionAverage orderPlayOwner
Return almost everything6,900−$1.3m$118Exclude from adsGrowth
Small orders, free delivery12,400−$1.2m$41Raise thresholdEcommerce
Clearance only, via retargeting8,300−$0.6m$52Exclude from adsGrowth
One paid order, never again3,300−$0.2m$76Cap acquisition costGrowth
All Stop customers30,900−$3.3m$64
Meta and GoogleExclusion audience

15,200 customers to leave out of prospecting and retargeting

ApproveWorth $0.8m
CheckoutDelivery threshold

Free delivery from $120, not $80, for small-basket buyers

ApproveWorth $0.6m
Refreshed 06:04 todayDelivery cost per order from courier invoices, not a flat rate
PR

Priya R.

ProtectFull-price buyerStore + onlineCustomer since 2021 · Brooklyn

Revenue

$520

last 12 months · $4,180 lifetime

Contribution

$190

after costs, returns, delivery and ads

Orders

27

buys every 9 weeks

Last order

11 wks

past her own window

Spend by quarter

Q1 25
Q2
Q3
Q4
Q1 26
Q2
Q3
Q4
Bought every quarter for three years, then nothing for 11 weeks. Her own repeat window is 9.

Where she buys

Brooklyn store78%

Where her margin goes · 12 months

Revenue$520
Product cost−$218
Discounts$0
Returns−$41
Ads−$36
Delivery−$24
Service−$11
Contribution$190

Recent activity

3 days agoEmail · opened, no click
11 weeks agoOrder · $214 in store

Next best action

RecommendedWin back

Personal note from her Brooklyn store

  • Buys in store 8 times out of 10, not by email
  • Never bought on discount, so no markdown
  • Two staples reordered 6 times, in stock now
ApproveAdjustWorth $620
Refreshed 06:04 todayOne customer across POS, ecommerce, email, service and the ledger

Want to learn more?

Contact us