Your $227 AI Order Hasn’t Paid for Anything Yet
There’s an order on the dashboard for $227 and somebody has already said “agents” out loud in a meeting. The number has a little glow to it. It got there without a coupon email or a retargeting ad that followed a woman around the internet for a week like a lost dog. An AI agent walked in, picked things off the shelf and paid. Or that’s what the tile says.
I’ve learned to wait before I believe a tile. The card might only be held. The store might cancel the order on Thursday because the address looks wrong. The box might go out, sit on a porch, and half of it come back in a padded envelope with a note that says “didn’t fit.” The $227 doesn’t change when any of that happens. It sits there looking pleased with itself, and the money it describes quietly leaves through the back.
So here’s the question worth an afternoon: how do you tell a promising AI order from a sale the business actually keeps?
What the $227 is an average of
The number comes from Forter’s report on agent orders across its network, which shows a publish date of November 2, 2026 and draws on data from July 23 to October 29. The $227 sits in a chart of average order value for August 1 to October 29, and the bar is labelled “All agents,” which Forter says “counts each agentic order once.” Beside it, the same chart breaks the average out by agent. I like this chart more than I expected to. It’s honest about where the money came from, and Google’s bar is so short it looks like it left before the meeting started.
Average order value by agent, August 1–October 29, 2026
Before anybody puts $227 on a slide, read the fine print Forter printed itself. The report says: “To keep the comparisons fair, we removed the effect of agents making shopping decisions based on price alone.” And on Google: “Google, which spends 56% less than the average agent, skews the numbers significantly as it only supports a single-item checkout.” So the number has been groomed a little, for reasons Forter states, and one agent drags the average down because its checkout takes one item and shows the customer out.
Then there’s the room the number was measured in. This is Forter’s network, the merchants who use Forter, and not the whole of online retail. When the report compares agents with people, its humans are “all other orders at sites that had at least one agentic order in the previous 14 days.” That’s a sensible way to keep the comparison inside the same stores. It also means the shops already getting agent traffic are the only shops in the picture. Forter doesn’t publish the order counts behind each bar, and an average order value says nothing about whether an agent made anybody spend more than they would have spent anyway. It tells you what the orders weighed when they came in. It doesn’t tell you who carried them out again.
An authorized card is a promise with a short memory
Forter itself keeps three different words apart, and it’s worth stealing the habit. In the report, “‘Authorized’ means the order went through card authorization. ‘Approved’ refers to Forter’s approval decision. Cancellations come from the merchant order status.” Three parties, three answers. The bank said the money exists. The fraud service said the buyer looks real. The merchant, or the customer, later said never mind. Somebody in your company has been adding those yeses together for months and calling the total “approved revenue,” and I’d like to sit with them for ten minutes.
Authorization in particular has a clock on it. Stripe’s guide to placing a hold says you need to capture the funds before the authorization expires, and if it lapses “the funds are released and the payment status changes to canceled.” For an online card payment the hold usually lasts about seven days. Imagine counting an order as revenue because the bank agreed to hold the money, then forgetting to collect it. The bank didn’t steal anything. It just stopped waiting.
Shopify keeps its own set of books in separate drawers. Its order status guide gives an order an order status, a payment status, a fulfillment status and, once something comes back, a return status. Read the drawers one at a time. “Open” means there’s still work to do, which can include processing payment. “Canceled” comes with the warning that if the order “was not fully refunded, then there might be work remaining.” “Paid” covers payment that was captured automatically or manually, or an order that “was marked as paid,” which is the kind of sentence that makes an analyst put down a sandwich. And a voided authorization “is separate from a canceled order”; the order can stay Open while the payment is Voided.
Refunds are their own small weather system. A Stripe refund carries a status that the Refund object documents as pending, requires_action, succeeded, failed or canceled. A failed refund sends the money back to your Stripe balance, and Stripe’s refund guide says that trip can take up to 30 days. A customer asking for money back, a refund you’ve started and a refund that actually went through are three different rows, and only one of them belongs in the subtraction.
Here’s the dictionary I’d tape to the monitor. It’s an editorial tool. Forter doesn’t publish most of these measures, and your platforms will name some of them differently, so map each row to the event your own systems really record.
Scroll horizontally to read every column.
| State | What to record | What remains unresolved |
|---|---|---|
| Payment authorized | The payment provider’s successful authorization, amount, and timestamp. | Capture, fulfillment, and later adjustments. |
| Fraud approved | The fraud service’s decision and the order it evaluated. | Whether the merchant accepts and completes the sale. |
| Merchant accepted | The event your store uses to accept an order for processing. Define it explicitly. | Payment collection, delivery, and subsequent changes. |
| Payment captured | The amount the payment system actually captures. | Settlement, refunds, disputes, and fulfillment. |
| Order cancelled | The merchant’s cancellation record, with its time and reason where available. | Whether money requires a refund or an authorization requires release. |
| Refund completed | The successful refund amount linked to the original payment and order. | Any remaining merchandise value or unresolved adjustments. |
| Retained sales value | A defined value remaining after the relevant adjustments, measured at a stated cutoff. | Later events outside the observation window. |
The order of those rows isn’t a law. Some shops screen for fraud before they ask the bank anything. Some don’t capture until the box ships. The timestamps will tell you which shop you run, and they’re a lot less flattering than the diagram somebody drew for the board.
While we’re on the subject of small exchanges that matter, the clip below follows a connected agent getting a quote for a bike repair. Nothing gets bought. Somebody has a wheel that wobbles, an agent finds out what fixing it costs, and now there’s a number where there wasn’t one before. That quote deserves a line in your records. It hasn’t earned a place in revenue, and it’s nice to see a machine do a useful errand without anybody pretending it closed a deal.
Build a cohort your revenue team can reconcile
First decide who did the buying
In a Reddit thread, somebody who builds AI marketing agents asks whether agents will take over checkout or just decide which store gets the visit. It’s one person’s post, so treat it as an anecdote and nothing more. The post also claims OpenAI shut down Instant Checkout in ChatGPT in March. That doesn’t square with Forter, which counts “ChatGPT Instant Checkout” orders through the autumn and says OpenAI placed 80% to 92% of agentic orders every week in August. Somebody’s got the story wrong and I’m not going to referee it here. The question, though, is a good one, and it’s the first thing your report has to settle.
An assistant that recommends a store and an agent that completes the checkout are two different events. A woman can ask a chatbot for a rain jacket, click through, look at the hood for a while, and buy it with her own thumb. AI found the jacket. She bought it. Give her the purchase. To count an order as agent-placed you need something at checkout you can point to, such as trusted integration metadata or a detection method tied to that order. Your bot protection may already recognize some agent operators at the door, and deciding which AI shopping agents your store lets near products, carts and payments is a fight with its own article, but a name at the door still has to be tied to a specific order before it counts here. A referral on its own tells you how somebody arrived. It tells you nothing about who paid. How the assistant picked your shop over the one down the road is a separate puzzle, and there’s a piece on how AI shopping agents choose which seller gets the order.
Some orders won’t give up the answer. Mark them unknown and leave them in the report where people can see them. Forter is candid about its own version of this: its detection dates “may be later than the dates they actually started placing orders.” A store with less data than Forter should expect more blanks, and a blank row is more honest than a confident guess in a nice font.
Set the window before you look at anything
Pick the measurement window first, write it at the top of the sheet, and don’t touch it after the numbers start coming in. Thirty days after placement suits a lot of stores. An order placed September 1 at 10:00 UTC is then followed until October 1 at 10:00 UTC, and an order placed September 30 at 10:00 UTC is followed until October 30 at 10:00 UTC. Each order gets its own thirty days. Orders that haven’t reached that age stay marked as too young, because a parcel delivered this morning hasn’t had the chance to disappoint anybody yet. Put the placement dates, the observation age, the extract time and the timezone on the sheet. Next month you’ll be certain you remember them, and you won’t.
Keep the bad orders in. Cancelled, failed and embarrassing orders all belong to the month they were submitted. Strip the cancellations out and the store looks healthier on paper while the warehouse is exactly as busy. Forter’s own numbers show why this matters: merchants cancelled 10% of the human orders in its data, and cancellations of agent orders varied wildly from one agent to the next. Tests and duplicates can come out, under a rule you write down before you start.
Follow one order all the way home
Here’s a made-up order, so nobody goes looking for it. An agent buys a rain jacket and a $40 belt for a customer, $227 after discounts, with tax and shipping kept out of the arithmetic. The payment provider authorizes it and captures it. The shop accepts it and ships it. The jacket fits. The belt is the wrong brown, goes back, and the store completes a $40 merchandise refund. Thirty days after placement no other refund, dispute or adjustment is open. What’s left is $187 of retained sales value.
That $187 isn’t profit, and I’d physically stand between it and anyone who calls it that. You paid for the jacket, the processing, the packing and the postage. It’s the merchandise value still sitting with the customer at your cutoff, and that’s all it claims to be. Count captured merchandise value for items actually fulfilled, after discounts. Subtract completed merchandise refunds and other recorded sales losses, once each. Keep tax and shipping out on both sides. Anything still pending stays next to the result, not inside it.
AI order measurement worksheet. One made-up order, followed by blank rows you can reuse. Counts refer to unique orders; monetary values use the merchandise-only definition above.
Scroll the worksheet horizontally to view every column.
| Cohort / source | Reporting window | Order count | Authorized count | Merchant-accepted count | Cancelled count | Refunded value | Retained sales value |
|---|---|---|---|---|---|---|---|
| Illustrative confirmed agent placement; trusted checkout metadata; discovery unknown | Placed September 1, 2026, 10:00 UTC; outcomes through October 1, 2026, 10:00 UTC | 1 | 1 | 1 | 0 | $40 USD | $187 USD |
| Confirmed agent placement / evidence: ____ | Placement dates: ____ Observation age: ____ Extract time and timezone: ____ | ____ | ____ | ____ | ____ | ____ | ____ |
| AI referral / confirmed human checkout | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
| AI referral / unknown checkout actor | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
| Other or unknown discovery / checkout actor: ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |
The blank rows keep the routes apart on purpose. Confirmed agent placements go in one row, with the evidence written down. AI referrals that ended in a confirmed human checkout get a row of their own, and AI referrals where you can’t tell who checked out get another. Everything else, including traffic nobody can classify, stays visible at the bottom. Each order lands in exactly one row. If the trail back to the calling software is what you’ve lost, the test for working out which AI agent made an API call is a better place to dig than this sheet.
Watch what’s under the fraction
Somebody will bring you a percentage before the coffee’s cold. Ask what it was divided by. Merchant acceptance rate is accepted orders over submitted orders. Fraud approval rate is approvals over the orders the fraud service actually evaluated. Card authorization success uses orders that had an authorization attempt recorded. All three can come from the same September and say different things, which is fine until somebody quietly swaps the bottom number and keeps talking.
Losses can be double-counted with a straight face. An order can be accepted, then cancelled, then refunded, and it’s still one order. If the cancellation landed before capture, there was never captured money to lose. If the money was captured and then refunded in full, it left once. Subtract both the cancelled value and the refund and you’ve made the same $227 walk out the door twice, which even a very good jacket can’t do. Put the original payment and the refund next to each other and the problem mostly solves itself.
Keep zero and unknown in separate cells. Zero refunds, when the records prove it, is zero. Missing refund records are unknown. A payment method that sits outside the measure is not applicable. When the adjustments are in, divide retained sales value by submitted orders, then by accepted orders. The first number keeps the failures in the room and the second tells you what the accepted business produced. Write the currency, the merchants, the product mix and the observation age next to both, or you’ll spend a week blaming an agent because one group bought jackets and the other bought shoelaces. None of this proves the agent made a sale that wouldn’t have happened anyway. It tells you what became of the orders it placed, and I find that a pleasant thing to actually know.
Returns open their own can of worms, and who handles the return when ChatGPT sent the customer gets a piece of its own.
Give the report a name people can find
Sooner or later finance wants the report, then the agency, then a new hire who wasn’t there in September. The tool that builds it moves too. It starts in a notebook, graduates to a dashboard, gets rebuilt by a contractor, and every move comes with a new address that nobody updates in the wiki.
A plain name helps. Headless Domains runs .use, which it describes as “a practical namespace for tools, services, instructions, and products designed to be used.” On HeadlessDomains.com you can search current availability and see the live registration and renewal price before you approve anything, and a name somebody registered before goes through protected legacy recovery. Something like keptsales.use, if it turns out to be free, could stand in front of the reporting service, with a short page saying who runs it, where the current version lives and what the numbers mean: thirty days from placement, refunds counted once, unknowns left visible. After registration the name appears in your Headless Domains account for supported management and renewal actions, and when the tool moves house you change where the name leads instead of re-teaching everybody a new address. The orders and payment records stay inside the application, behind its own logins. The name doesn’t run the sums, vouch for anyone or make a single sale happen. It tells people where the work is.
So that’s the job. An AI order is a promise until you’ve followed it past capture, cancellation and refund to a cutoff you chose in advance, and the number worth showing anybody is the one left standing at the end. Keep the routes apart, keep the unknowns visible, and keep the denominator next to every rate.
Find a .use name for your commerce reporting tool
When you do register one, the walkthrough below covers what to set up after the name is yours.