AI systems for Shopify brands doing $3M–$30M

Three channels. Three truths. One inventory.

DTC on Shopify, a marketplace or two, maybe a retail account. The only place those numbers meet is a spreadsheet somebody rebuilds every Monday — and the errors in it stay invisible until the day you sell something you cannot ship. We replace the Monday with a nightly job that compares every channel against every other and reports only the rows that disagree.

  • 30–45%

    all-in take rate on TikTok Shop, by our own channel modelling

  • 35–50%

    all-in take rate on Amazon, by the same modelling

Pointerflow channel modelling — estimates, not published studies. Rebuild both against your own COGS.

  • Shopify
  • Amazon
  • TikTok Shop
  • Walmart Marketplace
  • Google Shopping
  • Wholesale & retail

We know your numbers

The first four rows are what a channel costs and when a catalogue stops being manageable by hand. The last three are the ones that decide anything, and they stay em dashes until they have been measured in your account.

Channel economics and catalogue thresholds
What we look atWhere the line sitsBasis
All-in take rate — TikTok Shop30–45%Pointerflow channel modelling — estimate, not a published study
All-in take rate — Amazon35–50%Pointerflow channel modelling — estimate, not a published study
Catalogue size where outsourcing starts to pay100+ SKUsPointerflow ICP research — a threshold, not a benchmark
Catalogue size that usually means multi-zone fulfilment500+ SKUsPointerflow ICP research — a threshold, not a benchmark
All-in take rate — Walmart Marketplacemetric to confirm
Units you oversold across channels last quartermetric to confirm
Your own post-take-rate margin by channelmetric to confirm

All-in means the referral fee plus fulfilment and storage, returns, and the in-platform advertising a listing needs to stay visible — not the headline commission a channel publishes. Both take-rate ranges are our own modelling rather than a published study, so treat them as the starting point for your own spreadsheet and never as a number to plan against. The SKU counts are qualification thresholds from our own research: past roughly 100 SKUs the maintenance stops fitting into somebody’s afternoon, and past roughly 500 it usually means fulfilment out of more than one zone.

Six things that break as channels get added

Add a second channel and there is one pair of systems to keep agreeing. Add a third and there are three pairs. A fourth makes six. Nobody staffs for that curve, so reconciliation quietly becomes one person’s Monday, then one person’s week, then a hire.

Price changes land at three different speeds

You run a weekend promotion on Shopify. The feed pushes it to Google within the hour, to the marketplace on that channel’s own schedule, and to the retail account not at all — because that price lives in a PDF a buyer was emailed in March.

For three days you are selling the same unit at three prices, and on the channel with the highest take rate you are selling it under the line where it makes money. Nobody notices, because nothing errors.

Inventory is one pool and three promises

Every channel is handed the same stock number and every channel is allowed to sell it. The buffer meant to prevent that was set once, against a velocity you no longer have, on a sync interval nobody has checked since.

The failure is invisible right up until it isn’t: an order you cannot ship, a marketplace metric you cannot un-damage, and a customer who found out from a cancellation email rather than from you.

Subscription units get sold twice

A Shopify subscription is a selling plan attached to a product. No marketplace has that concept, so anything listed there draws one-time orders from the same pool that already owes units to next Tuesday’s autoship run.

Without an explicit list of which SKUs may leave Shopify, and a buffer that ring-fences committed units first, the marketplace sells the 30-day bottle your subscriber has already paid for.

The same person counts as three customers

Someone buys the refill on a marketplace in March and the starter kit on your own site in June. The marketplace does not hand you their email, so those are two records, and your retention maths books one of them as a new customer.

Lifetime value by channel then comes out wrong in a direction that flatters the marketplace — which is usually the channel with the worst margin. Acquisition decisions get made on that number for a year before anybody questions it.

Reconciliation is a person, not a system

Payouts arrive on different schedules, in different shapes, net of different fees. Returns land somewhere else again. So somebody exports four files into one sheet every Monday, and that sheet becomes the only view of the business anyone trusts.

It is also the only view nobody can audit, it has no history, and it leaves when they do.

Nobody can say which channel is actually profitable

Channel revenue is on the first screen of every platform dashboard. Channel profit — after the referral fee, fulfilment, storage, returns and the in-platform advertising a listing needs to stay visible — is a calculation nobody has run.

At the top of the Amazon range, a SKU carrying 50% gross margin contributes nothing at all: revenue, no profit. That is arithmetic on an estimate rather than a measurement of your account, which is exactly why it has to be run per SKU, per channel, before the listings go up.

None of these announce themselves. There is no error state for a price that is two changes behind or a buffer sized for last year — which is why the first thing we build is the report that makes the drift visible, before anything gets automated on top of it.

What we build for multi-channel brands

Two of the four verbs do most of the work here. Run — the reconciliation, the drift checks and the exports a person is currently doing by hand every Monday. And Reach — being named when someone asks a model which brand in your category to buy. Built in your accounts, on tooling you pay the vendor for directly, documented so your team can add a SKU or a channel without opening a ticket with us. Most brands start with the first two.

  • One catalogue A field schema that says what every SKU must carry and who owns each field — Shopify metafields where the catalogue allows it, a PIM only where attribute depth genuinely justifies one. Then the drift report: every SKU compared field by field against every live listing, so you see what disagrees before anything is built.
  • Price floors A rule that stops a Shopify sale price propagating to a channel whose take rate would put that unit underwater. A promotion becomes a decision per channel rather than a side effect of one everywhere.
  • Inventory buffers Per-channel safety stock set against how fast that SKU actually moves and how long the sync interval really is, with the units committed to autoship runs ring-fenced first. What prevents an oversell is the buffer, not the sync frequency.
  • Channel margin Modelled against your own COGS and the outbound shipping charge off the 3PL invoice, then landed in your reporting layer beside marketplace payouts, fees and returns. Adding or cutting a channel becomes arithmetic rather than instinct.
  • Reconciliation The exports, the payout reconciliation and the drift checks moved onto self-hosted n8n in your own infrastructure, with alert thresholds tuned against a week of real data instead of a guess. The rows that agree are matched by a rule, because a rule is cheaper per run and cannot invent a match. The rows that disagree land in Slack for a person — which is where the judgement was always going to be.
  • Feeds & tracking Server-side tracking and feeds built so spend on one channel is read against orders in your own numbers rather than against three platforms each claiming the same sale.
  • AI visibility When a model compares you to two competitors, it reads marketplace listings, review platforms and category round-ups — pages you do not own, carrying product data you may not have checked in a year. So we start by running the questions your buyers actually type across ChatGPT, Gemini, Perplexity, Claude and Google AI Overviews, logging whether you are named, not named, or named alongside a competitor, and capturing every URL those answers cite. That list is the work plan: the pages doing the mentioning, and the catalogue underneath them — the same catalogue the feed work already fixed.

One caveat on the last of those, because the category is full of people selling the opposite. Roughly 85% of brand mentions in AI answers originate on pages the brand does not own (AI-search citation research), so the work is genuinely a third-party game. The pattern that holds today is discover in AI, buy on site — not in-chat checkout: OpenAI launched Instant Checkout in ChatGPT in September 2025 and withdrew it on 4 March 2026 with about thirty merchants live, and Walmart measured in-chat checkout converting roughly three times worse than a click through to walmart.com. Anyone selling agentic checkout as a finished channel is selling something that was pulled six months ago. What we do build is on the AI search visibility page.

What this looks like from the outside

A multi-channel setup is unusually legible from outside: the same SKU is on public display in three places at once. We buy it on each of them, on the same day, and compare the price, the pack size, the stated stock position and the delivery promise.

Client channel-margin results

metric to confirm

We have nothing of our own to publish yet, so there is no number here. When there is, it will arrive with the baseline it was measured against. Until then the teardowns are unaffiliated: the same analysis, run on brands who did not ask for it.

Read the teardowns →

Questions from multi-channel brands

We’re only on Shopify and Amazon. Is that enough to matter?

Two channels is one pair of systems to keep agreeing, and one person can usually hold that. It starts to matter when the pair is quietly drifting — a price two changes behind, a buffer nobody has touched since the SKU count doubled, subscription units on general sale. The audit reads both channels field by field and tells you whether this is a system problem yet or a job somebody simply needs to be given.

Should we be on TikTok Shop at all?

That is the first question, and sometimes the answer is no. All-in take rates run roughly 30–45% on TikTok Shop and 35–50% on Amazon by our own channel modelling: referral fees, fulfilment and storage, returns, and the in-platform advertising a listing needs to stay visible. That is an estimate rather than a published study, so rebuild it with your own COGS before you commit. If your gross margin doesn’t clear the take rate with enough left to cover overhead and returns, the channel is a revenue line and not a profit line.

How do subscriptions work on a marketplace?

They don’t, in the sense you mean. A Shopify subscription is a selling plan attached to a product, and no marketplace has that concept — so anything you list there is a one-time purchase drawing from the same inventory pool that owes units to next Tuesday’s autoship run. The build makes that explicit: a list of which SKUs may go off Shopify, a buffer that protects committed subscription units, and no pretending a marketplace order is a subscriber.

Is the reconciliation an AI agent, or just a script?

Mostly a script, and that is the honest answer. Comparing a payout line to an order, a live price to a floor, or a listed field to the canonical record is a rule — cheaper per run, testable, and incapable of inventing a match. A model earns its place in exactly two spots here: reading a genuinely unstructured input, like a supplier’s PDF or a marketplace’s free-text attribute field, and writing catalogue copy that has to be produced rather than looked up. Anything that decides money — a price change going live on a channel, a listing being pulled — is drafted by the system and pressed by a person.

Do our marketplace listings affect whether a model recommends us?

Yes, and it is the least appreciated reason to fix the catalogue. Roughly 85% of brand mentions in AI answers originate on pages the brand does not own (AI-search citation research), and marketplace listings, review platforms and category round-ups are exactly the kind of page that gets cited. A retrieval system that finds three different descriptions of one product — a different size on Amazon, a different ingredient list on TikTok Shop, a different count on your own site — has no confident answer to give about you. The feed work and the AI-visibility work are the same catalogue, which is why they are quoted together.

Can you make inventory sync in real time?

It depends on the channel’s API, and we won’t promise real-time on a channel that doesn’t offer it. What actually prevents an oversell is the buffer rather than the frequency — per-channel safety stock sized against your own velocity and the sync interval you really have. We set those against a month of your data and tighten them once there is evidence behind them.

Do we have to replace our feed tool?

Usually not. Most feed platforms are capable of far more than the three rules they were set up with, and we build inside whatever you already pay the vendor for. On the rare occasion the tool is genuinely the constraint rather than the configuration, we say so and show what the swap costs.

We use a 3PL. Does that change anything?

It changes where the truth about a shipment lives, and it changes the arithmetic. We read the outbound shipping charge off the 3PL’s own invoice rather than off a rate card, because that is the number that decides channel margin. Past roughly 500 SKUs you are usually fulfilling out of more than one zone, and at that point shipping cost per order stops being a single number at all.

Which channel should we cut?

We don’t know yet, and neither does anybody who tells you before doing the arithmetic. We run post-take-rate margin per SKU per channel in the audit, against your COGS rather than a category assumption. The answer is occasionally that a channel should close, and we put that in writing when it is.

Does wholesale or retail count as a channel here?

Yes, and it is usually the one furthest out of date — because its prices live in a document a buyer was emailed months ago and its stock commitment lives in somebody’s memory. It gets the same treatment as the rest: an owner for the price list, a ring-fenced allocation, and its margin modelled beside every other channel.

Find out what you’re losing.

Before you commit to anything, we tell you exactly what you’re losing and what it costs to stop it. Two weeks. Fixed fee. Credited in full against any build you go ahead with.

Fee
$1,500–$3,000, fixed
Duration
Two weeks
Credited
In full, against any build
You supply
Read access + one 45-minute call