Company23 October 2026 · 14 min read

Most chatbot ROI numbers are assumptions. We deleted ours.

Until 11 October, our own dashboard showed “hours saved”, a health score and a forecast. None was measured. Why estimates built on real counts are so convincing, what we show now, and four questions to ask of any number before you act on it.

Konstantinos Gkolias

Konstantinos Gkolias

Founder, building Lumnya

Company

Every number, measured.

Lumnyaai

As of 23 October 2026. Until eleven days ago, the home page of Lumnya's own dashboard, in the private beta we are building, showed numbers we had never measured. “Hours saved.” “Lumnya revenue.” A “store health” score. A sales forecast. Small trend lines that always rose. They looked good, and they were the kind of chatbot ROI numbers every software product ships to feel alive on day one. They were also, every one of them, an assumption with a chart attached. On 11 October we deleted them all. This is what they were, why numbers like them are so hard to question, what replaced them, and four questions you can ask of any figure on any dashboard, ours included.

  • Most “AI impact” figures are a real count multiplied by an assumed constant: chats × 5 minutes, sales × 30%, orders × 1.2. The constant decides the result.
  • These numbers are convincing for a specific reason: because the count underneath is real, the estimate rises and falls exactly like the truth. We call it borrowed credibility.
  • People are poor judges of AI's effect even on their own work. In one controlled study, experienced developers believed AI had made them 20% faster; measured, they were 19% slower.
  • Deleting the estimates was the easy half. The harder half was finding real counts that were counted wrong: a read limit shown as a total, a week keyed to the wrong time zone, a shopper's question counted as a discount given.
  • Before the busiest weeks of the year, ask four questions of every number you plan to act on. The grid is below.

What our dashboard used to say

On 11 October the rule became: nothing shown to a merchant may be made up. Then we went through every page of the product, figure by figure, to see what that rule would cost. It cost most of the home page.

Figure 1 · Before and after 11 October

Six tiles the home page showed, and what each became

Each tile is checked against one question: was it counted from the store's own records?

Counted?

What the dashboard showed“Lumnya revenue”
30% of all the store's sales

“Lumnya revenue”

“Sales after a chat: orders by a shopper who chatted first”

What the dashboard showed“Hours saved”
5 minutes × every chat

“Hours saved”

“Conversations, counted”

What the dashboard showed“Labour cost saved”
those hours × a fixed 25 per hour

“Labour cost saved”

“Removed”

What the dashboard showed“Store health score”
a points table, not the store

“Store health score”

“Removed”

What the dashboard showed“Sales forecast”
this period's orders × 1.2

“Sales forecast”

“Removed: the future can't be counted”

What the dashboard showed“Satisfaction 4.5 ↑”
a climb from 3.2 that no shopper rated

“Satisfaction 4.5 ↑”

“Share of thumbs-up from shoppers who rated; blank when none did”

Source: Lumnya source code and change history, app changes #296 and #299, 11–12 October 2026; verified 19 October 2026.

The home page was only the start. The same sweep, and a second one the next day walking every page of the live app, found the same pattern almost everywhere a number appeared.

WhereWhat the page showedWhat it actually was
HomeSmall trend lines beside each figureOne number drawn into a fixed rising curve
AnalyticsA “cost savings” tileA fixed amount per support ticket
AnalyticsAn AI-resolution trend lineToday's rate, minus 6, 4, 3, 2 and 1
SalesA “previous period” lineThe current period multiplied by 1.0
HeatmapsBusy hours by weekdayA day share times an hour share, or one row copied seven times
Demand Radar“~€ lost demand”A count of requests × an assumed 30% close rate
Settings“Converting at 84% … 17 of every 100 carts”The same sentence for every store
CSV exportStore Health Score 70A constant, written into every file

None of this was meant to deceive. Each figure was a placeholder that made an empty dashboard look alive, written when there was no data yet, and then never replaced. That is how it happens in most products. But look at the right-hand column again. Every one of those numbers has a fixed value inside it, and that value, not the store, decided what the page showed. A store with a terrible week would still have “saved” five minutes per chat.

Borrowed credibility: why nobody questions these numbers

If those numbers were obviously fake, nobody would have trusted them, us included. The reason they survive in so many AI products is subtler, and as far as we can find, it has no name. So we gave it one.

Take “hours saved”. It is the number of chats multiplied by five minutes. The number of chats is real. So when a store has a busy week, “hours saved” goes up. When the store is quiet, it goes down. It moves exactly in step with reality, and that movement is what makes it feel measured. The estimate borrows the credibility of the count underneath it. Every glance at the dashboard confirms it: busy week, more hours saved. Of course.

But the movement is the only part that's real. The level, the number of hours you'd quote to your accountant or use to decide whether to hire, is set entirely by the constant. Change five minutes to two and the store has saved 60% fewer hours, without a single conversation changing. Change it to eight and it has saved 60% more.

Figure 2 · Borrowed credibility

Same chats, same store. The “hours saved” are whatever the constant says.

The counted bars never move. Watch the shown bars and the total as the assumed minutes per chat change.

Assumed minutes per chat2 min5 min8 min

Chats per week · counted

“Hours saved” · chats × constant

8 weeks agothis week

“Hours saved”, last 4 weeks

21.8h

The shape comes from the store. The size comes from the constant.

Illustrative store. The 5-minute constant is the one Lumnya's own dashboard used until 11 October 2026.

Now ask who chooses the constant. It is the vendor, the one party whose renewal depends on the number being large. Nobody needs to act in bad faith for this to go wrong. The constant is picked once, on a day with no data, by someone who believes in the product, and it's natural to pick it generously. After that it never has to be defended again, because the line it draws keeps moving in such a convincing way.

An estimate built on a real count moves like the truth. Only its size is invented, and the size is the part you act on.

There is an old name for the general problem. Goodhart's law, in the form most people quote, says that “when a measure becomes a target, it ceases to be a good measure.” AI products have a sharper version of it. When a product is judged on the impact it reports, and the product also chooses the constant inside the report, the reported impact drifts up and away from the real one. The only defence we know is structural: the product doesn't get to report anything it didn't count.

Why your own sense of it won't catch the gap

You might think a store owner would feel the difference. If the assistant really saved twenty hours a month, wouldn't you notice? The best evidence we know of says: not reliably, not even when the work is your own.

In a randomised controlled trial published by METR in July 2025, 16 experienced open-source developers worked on 246 real issues in their own projects, each issue randomly allowed or disallowed AI tools. Before starting, the developers expected AI to speed them up by 24%. After finishing, they still believed it had sped them up by 20%. Measured, they took 19% longer with AI than without it.

Figure 3 · Felt versus measured

Developers felt about 20% faster with AI. Measured, they were 19% slower.

Effect of AI tools on the time experienced developers took to finish real issues, as forecast, as felt, and as measured.

No changeEffect on speed
  • Forecast before the work

    +24%
  • Belief after the work

    +20%
  • Measured

    −19%
-30%-15%0%+15%+30%

┆ no change · right is faster

Source: METR, “Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity”, 10 July 2025 (arXiv 2507.09089). 16 developers, 246 issues, early-2025 tools; METR has since published newer results and calls these out of date.

The study has real limits. It is small, it used early-2025 tools, it measured software work rather than customer service, and METR itself has since published newer results and describes these as out of date. We don't cite it to say AI slows anyone down. We cite it for the gap between the two bars on the right. Skilled people, timing their own work, could not feel the direction of the effect. A store owner glancing at a dashboard tile is in a much weaker position, and the tile's constant fills exactly the space where their judgement can't reach.

Deleting estimates is the easy half

Removing the invented numbers took a day. The harder discovery came the day after, walking every page of the live product: some of the numbers that were counted had been counted wrong. Not invented, not assumed. Honest in intent, and still false.

What the page saidWhat was wrongWhat it does now
Total chats: 500500 was the limit of one read, shown as if it were the totalA real count, with “based on the latest N” wherever a list is capped
119 discounts givenA shopper asking for a discount was counted as a discount handed out at 0%Requests and codes given are counted apart
Satisfaction 3.0 / 50% thumbs-up was mapped onto a 5-point scale and read as 3.0The share of thumbs-up, and nothing when nobody rated
Peak hourCalculated in UTC, not the store's timeThe store's own time zone
Last week's snapshotThe weekly job ran on UTC, so stores east of UTC stored the week beforeKeyed on the store's local Monday, with a self-repair that never overwrites a stored week
Orders this periodSilently stopped counting at 250Paged through every order, with an honest “at least” if a limit is hit

These are worth dwelling on, because they are the errors a careful merchant can't catch from the outside. A wrong time zone looks exactly like a right one. A capped total looks exactly like a total. The defence is not a smarter metric. It is a more honest label: say what was counted, over which period, in which time zone, and where the count stopped. A number that tells you its own limits can be wrong without misleading you.

What the dashboard shows now

Every figure on the home page is now counted from the store's own records over the last 30 days, and labelled for exactly what it is.

  • Sales after a chat. Orders placed within seven days after a chat, matched by the shopper's email. We call it exactly that because that is exactly what it is. It doesn't claim the chat caused the sale; some of those shoppers would have bought anyway. It also misses shoppers who chatted without leaving an email, so it undercounts as well as overcounts. It is a count, with its limits stated.
  • Conversations, and the share finished without a person stepping in.
  • Sales and orders straight from Shopify, in the store's own currency as Shopify reports it, never an assumed euro.
  • Daily lines drawn from the real day-by-day figures, flat when the store was flat.
  • Satisfaction as the share of thumbs-up from shoppers who rated a chat, and nothing at all when nobody did.
  • Demand Radar counts how often shoppers asked for something you don't stock, without a euro figure that would have needed an invented close rate.
  • No forecast. The future can't be counted, so we don't draw it.

The same week we fixed two quieter cousins of the problem. The store's currency is now whatever Shopify says it is, refreshed automatically. And the minimum cart value for each discount code is one the merchant sets, in their own currency, rather than a fixed table of 50, 100 and 200 that meant something different in every currency it was shown in.

Four questions for any chatbot ROI number, on any dashboard

You don't need to see anyone's code to apply this. Ask these four questions of any figure before you make a decision with it, in any tool, ours included.

  • 1 · Can you name the records it was counted from? “Your Shopify orders from the last 30 days” is an answer. “Our model” isn't.
  • 2 · Is there a constant inside it? 30%. Five minutes. × 1.2. If there is, the result is mostly that assumption, however convincingly it moves. This is the question borrowed credibility hides, so ask it directly.
  • 3 · Does the label claim more than the count? “Sales after a chat” is a count. “Revenue from AI” is a claim about cause, wearing a count's clothes.
  • 4 · What does it show when there is no data? An honest number goes blank. A generated one shows 3.0 out of 5, a health score of 70, or “+100%” against an empty previous period.

Figure 4 · The four questions, applied

Six common dashboard numbers, four questions each

Typical figures from AI and analytics dashboards, run through the checklist above.

1 · Named records2 · No constant inside3 · Label = the count4 · Honest when empty
“Hours saved”failsfailsfailspasses
“Revenue from AI”passesfailsfailspasses
“Store health”failsfailsfailsfails
Satisfaction trendfailsdoesn't applyfailsfails
Sales after a chatpassespassespassespasses
Conversationspassespassespassespasses

passesfailsdoesn't apply

Typical dashboard figures, not a review of any named product. A checklist, not data.

An estimate isn't always wrong, and some are genuinely useful. A forecast with a stated method and a range can help you plan stock. But a useful estimate says it is an estimate, shows its assumption, and never shares a tile with a measurement as if the two were the same kind of thing.

Why this week

Black Friday falls on 27 November this year, and many stores freeze their setup well before it. The decisions made in the next few weeks (how much stock, how many people on support, which tools to keep paying for) are the ones most worth making on counted numbers.

So here is our suggestion for the week ahead, whether or not you ever use Lumnya. Open every dashboard you rely on, pick the five numbers you look at most, and run the four questions on each. If one fails, find out what it is really made of before you plan around it. Most vendors will tell you if you ask; the ones who can't are telling you something too.

This is the same principle behind how our assistant talks to your customers, which we wrote about in A prompt is not a contract: the system, not the model, decides what may be said. On the dashboard, the store's records, not a constant, decide what may be shown. Lumnya's specialist agents work from the same records, show their reasoning, and anything they propose that touches money waits for your approval. How approvals work is in our FAQ.

A number you can't count yourself is an opinion with a chart attached.

The same rule applies to what an AI does, not only what it reports: see a check after the action is a log, and, for the screen itself, why the ecommerce dashboard era is over.

Frequently asked questions

How do you measure chatbot ROI honestly?

Count outcomes from your own records instead of multiplying activity by an assumed value. Orders placed after a chat, conversations finished without a person, and the share of shoppers who rated a chat positively are counts. “Hours saved” and “revenue from AI” usually contain a constant the vendor chose.

Is “hours saved” a reliable metric for an AI assistant?

Usually not. It is typically the number of chats multiplied by an assumed number of minutes per chat. The chats are real, so the figure rises and falls like the truth, but its size is set by the assumed minutes. Change the constant and the hours change without anything in your store changing.

Can revenue attributed to a chatbot be trusted?

Only as a count with stated limits. A figure like “orders placed within seven days after a chat, matched by email” is honest: it doesn't claim the chat caused the sale, and it misses shoppers who left no email. A figure that takes a percentage of all sales is an assumption, not attribution.

Can people tell how much time AI saves them?

Not reliably. In METR's July 2025 randomised trial, experienced developers believed AI had made them 20% faster; measured, they took 19% longer. The study is small and uses early-2025 tools, but it shows how far felt impact can sit from measured impact.

What does Lumnya's dashboard show?

Only figures counted from the store's own records over the last 30 days: sales after a chat, conversations, the share finished without a person, sales and orders from Shopify in the store's own currency, satisfaction as the share of thumbs-up from shoppers who rated, and no forecast.

Sources

Lumnya is a team of ecommerce AI agents for Shopify stores, now in private beta. Join the waitlist.

Comments

…

Every comment is read and approved by a human before it appears — the same confirm-gated rule the product runs on.

Loading comments…

Filed under Company

All posts

Keep reading

Operators' Playbook

Multiply before you reorder

Lumnyaai

Black Friday inventory planning: your days of stock are an October number

12 min read · Operators' Playbook

AI & Commerce

Urgency needs a record

Lumnyaai

Fake urgency and AI: "Only 3 left", if Shopify says so

12 min read · AI & Commerce

Private beta

Enough reading. See it on your store.

Join the private beta and be first in line when Lumnya opens to your store.