Run · Product data & marketplace feeds

One catalogue, true on every channel.

One product record, translated into each channel’s own attribute vocabulary and read back every night to catch the sync that silently stopped — so price, stock and variant data stop drifting across Shopify, Amazon, Walmart, TikTok Shop and Google Shopping, and you stop selling what you cannot ship.

  • 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

  • ~$35/mo

    entry list price for the feed tooling itself — vendor-reported

Take-rate ranges: Pointerflow all-in channel modelling, not a published study. Tooling price: vendor-reported list pricing.

The problem

The 60-count bottle goes up four dollars on a Monday because freight moved. Shopify takes the change the second you hit save. On Thursday, Amazon is still selling it at the old price, because that price arrives through a feed on a schedule somebody set eighteen months ago and nobody has opened since. Nothing broke. No alert fired. You have simply sold three days of units at the margin you raised the price to escape.

That is catalogue drift, and it is the quietest failure in ecommerce operations. A price, a stock level or a variant attribute diverges between Shopify and a channel, and there is no error state to find: the listing is live, the orders are landing, the dashboard is green. You find out when a customer buys something you cannot ship, or when the buy box goes to somebody who undercut a price you had already changed.

The catalogue is only a source of truth if something enforces it. Left alone, every channel becomes its own version of the product — and the version that is wrong is always the one making the sale.

Product data changes faster than the feeds do

A skincare line moves from a 50 ml jar to 45 ml and every net weight changes. A supplement brand rewrites the ingredient deck when the manufacturer swaps a binder. A roaster retires a single origin when the lot runs out and puts a new one in the same slot on the site. Each of those is a routine Tuesday in Shopify and a five-place propagation problem everywhere else: Amazon wants it in flat-file attribute names, Merchant Center wants unit pricing and a GTIN, TikTok Shop and Walmart each want their own category attributes. Somebody mapped all that once, by hand, in a spreadsheet, and then left.

The translation itself is the tractable half, and it is exactly the shape of work a model is good at: bounded, repetitive, and checkable against a source record. Reading a 45 ml jar, an ingredient deck and a pack quantity and producing the fields Amazon wants for that category — or picking which browse category a new SKU belongs in — is a job nobody will do by hand across a deep variant tree, and a job a person can review as a batch rather than compose one field at a time. What a model does not get to decide is the price, the floor, or which channels you should be on at all. Those are yours; the build turns them into rules so they stop being re-argued every week.

Subscription SKUs do not exist on a marketplace

On Shopify a subscription is a selling plan attached to a product — the same SKU, sold differently. No marketplace has that concept. So brands either create parallel SKUs and start maintaining two truths, or they push the subscription variant out as a one-off, where it quietly draws from the same inventory pool as next week’s autoship allocation. The bottle that was spoken for gets sold to a stranger, and the subscriber of fourteen months gets the delay email.

Variant-heavy bundles multiply every mistake

Six flavours in three sizes, plus a three-pack of each, is thirty-six sellable things before anyone has invented a gift set — each of them needing a GTIN, a net weight, a pack quantity and a category attribute per channel. One wrong net weight on a bundle is not one wrong listing: it is a unit-price error that gets the listing flagged in Merchant Center and a pack-weight error that follows the SKU into every fulfilment quote until somebody notices.

And nobody owns the reconciliation

Rarely does anything in the stack exist to ask whether the channel still says what Shopify says. Inventory syncs on a timer, prices sync on publish, and the two drift apart in between. Most tools do a sync. Almost nothing does the reconciliation that catches the sync when it silently stops. And there is a second reader of all this now. When a retrieval system finds three descriptions of one product it does not resolve the contradiction — it skips the product and names a competitor whose data agrees with itself. The catalogue stopped being only a sales feed the moment models started answering shopping questions out of it.

What we build

Seven pieces, built in your accounts, on tooling you own the contract for. Two of them are model work — enrichment and categorisation, both approved in batches by a person. The other five are rules, on purpose.

  • One canonical product record A single place where net weight, GTIN, pack quantity, flavour, ingredient deck and imagery are defined — a PIM where the catalogue earns one, a defined Shopify metafield schema where it doesn’t. Everything downstream reads from this record, including anything a model writes, and writes back to it rather than to a channel.
  • Per-channel mapping and attribute enrichment That one record translated into each channel’s vocabulary: Amazon flat-file attributes, Merchant Center unit pricing and GTIN, TikTok Shop and Walmart category attributes. Where the translation is mechanical it is a rule. Where it is not — a browse category to assign, an attribute a channel demands that your record has never carried, a title that has to survive a character limit and still say what the thing is — a model drafts it from the canonical record, a person approves the batch, and the approved answer becomes a rule so the same SKU is never classified twice. Built in a feed platform of the Feedonomics kind, in Nembol, in the native channel app or in a custom pipeline — whichever your volume actually justifies.
  • Inventory sync with buffers A shared pool with per-channel safety stock, so a marketplace cannot sell the units already committed to next week’s autoship run.
  • Price floors per channel 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. This one is deliberately not model work: the floor is a number you set, and a rule enforces it exactly, every time, with no judgement involved.
  • Subscription-SKU rules An explicit list of which SKUs may list off Shopify and which stay put, because a selling plan has no marketplace equivalent and pretending otherwise is where double-sold inventory comes from.
  • Drift reconciliation and alerting A scheduled job that reads each channel’s live listing back and compares it to the canonical record — price, stock, title, key attributes — and says so in Slack when they disagree, ranked so a wrong price or a wrong stock number reaches somebody today and a drifted description waits for Monday. Detecting the disagreement is the easy half; deciding which ones are worth a person’s morning is the half that makes the alert worth having. This is the piece that is almost never there.
  • Channel contribution model Post-take-rate margin per channel per SKU, sitting in your reporting layer, so adding or cutting a channel is arithmetic rather than instinct.

How the build runs

Four weeks from access to handover, on a fixed scope. The second week decides which channels are worth automating at all.

  1. 01

    Catalogue audit

    Every SKU pulled from Shopify and from each live channel, then compared field by field. You get the drift report — what disagrees, where, and how long it has been wrong — before anything is built.

    Week 1

  2. 02

    Channel economics

    Contribution margin per channel, modelled against the all-in take rate and your own COGS. Some channels come out of this recommended for closure rather than automation, and we say so in writing.

    Week 1

  3. 03

    Canonical record

    The field schema agreed and populated: what every SKU must carry, who owns each field, where truth lives — and which fields a model may draft against which a person must set. A PIM if the catalogue justifies one, Shopify metafields if it doesn’t.

    Week 2

  4. 04

    Mapping, sync and floors

    Feed rules per channel, inventory buffers, price floors and the subscription-SKU rules. Built in your accounts, on tooling you pay the vendor for directly.

    Week 2–4

  5. 05

    Reconciliation and handover

    Drift alerts live, thresholds tuned against a week of real data, and a runbook that says how to add a SKU or a channel without opening a ticket with us.

    Week 4

What a channel takes

Work this out before you pay anybody — us, an agency or a feed vendor — to put you on a channel. These are all-in estimates from our own modelling rather than a published independent study, and we would rather say so than dress them up.

All-in marketplace take rates — estimates, not benchmarks
ChannelAll-in take rateBasis
TikTok Shop30–45%Pointerflow channel modelling — estimate, not a published study
Amazon35–50%Pointerflow channel modelling — estimate, not a published study
Walmart MarketplaceMetric to confirm
Google ShoppingMetric 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 ranges are our own modelling, so model them against your own COGS and return rate before you commit; a range is a starting point for your spreadsheet, never a number to plan against. Walmart and Google Shopping stay em dashes here until we can publish a figure with the same working behind it.

The only arithmetic that matters

Gross margin on the SKU
Your number
All-in take rate on the channel
30–50%
What the channel actually contributes
The difference

Arithmetic, not a benchmark — and it has to be run per SKU, because the trial size and the three-pack behave nothing alike. At the top of the Amazon range, a SKU carrying 50% gross margin contributes nothing at all: revenue, no profit. That is a decision to take before the listings go up, not after.

What it costs

Published ranges. Where you land inside ours depends on how many channels are live and how deep the variant tree goes, not on how much we think you can pay.

Revenue Recovery Audit — includes the drift report and channel economics

$1,500–$3,000

Catalogue and feed automation build

$3,000–$12,000

Feed and integration tooling, paid to the vendor — vendor-reported list pricing

from ~$35/mo

Marketplace channel management — ads, cases, listing optimisation

Not our scope

That last line is the honest one. Dedicated marketplace agencies own this category, and they own it fairly — running a channel is a retainer discipline, and the good ones are better at the ads, the cases and the listing-level work than we would be. Their pricing is custom, so we can’t publish it. What we take on is the plumbing underneath, because the catalogue is already wired into the subscription platform, the flows and the reporting we build, and it breaks in the same places as the rest of the back office. If you want a channel-management retainer, hire one. We will build against whatever they need and document it.

Questions

Should we be on Amazon or TikTok Shop at all?

That is the first question the audit answers, and sometimes the answer is no. All-in take rates on those channels — referral fees, fulfilment and storage, returns, and the in-platform advertising a listing needs to stay visible — run roughly 35–50% on Amazon and 30–45% on TikTok Shop by our own modelling. That is an estimate rather than a published study, and you should rebuild it with your own COGS before you commit to anything. 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.

Isn’t this what a marketplace agency does?

Partly, and where it overlaps they are usually better at it. Dedicated marketplace agencies own channel management as a retainer discipline — advertising, the case queue, listing-level optimisation, the seasonal calendar — and we neither do that nor want to. What we build is the data layer underneath: one canonical product record, the mapping into each channel’s attribute vocabulary, inventory buffers, price floors and drift alerting. It is plumbing, and we take it on because it sits directly next to the subscription platform, the flows and the reporting we are already building. If you already have an agency, we build against what they need and document it for them.

Do we need a PIM?

Often not. Below a few hundred SKUs, a defined metafield schema in Shopify with a feed platform on top of it is a source of truth that works and costs almost nothing to run. A PIM earns its place when attribute depth gets heavy — regulated ingredient decks, multiple languages, several channels each wanting their own vocabulary — or when more than one person edits product data at once. We tell you which side of that line you are on in the audit, and “not yet” is a common answer.

How do subscription SKUs work on a marketplace?

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

How fast does inventory sync?

It depends on the channel’s API and the tooling in front of it, and we won’t promise you 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 how fast that SKU moves and how long the sync interval really is. We set those against your own velocity and tighten them once there is a month of data behind them.

What happens when a channel changes its required attributes?

It will, more than once a year. That is why the mapping lives as rules in the feed platform rather than in a spreadsheet in somebody’s downloads folder. A required attribute changes, you change one rule, and every affected SKU follows. Where the new attribute is something your record has never carried — a fabric composition, a hazmat flag, a compatibility field — the enrichment step drafts a value per SKU from the canonical record and somebody approves the batch, which is a morning rather than a quarter. The runbook covers both, and your team can do it without us.

We’re live on three channels and the data is already a mess. Where do you start?

With the drift report. Every SKU in Shopify against every live listing, field by field, before anyone touches a setting. It is unglamorous, and it is usually the first time anybody has seen the real state of the catalogue — the retired SKUs still selling, the prices two changes behind, the variants that never got a GTIN.

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