Item level, from the charge alone

What did you actually buy?

Your statement answers with a merchant name. Moa answers with the items — from the amount, the merchant, and your own habits. So you can read last month, see what actually got more expensive, and hold a goal counted in coffees.

Open the appWorks in the browser at app.moa.money

A charge screen from the Moa app.

8:42
Charge
Coffee House Pine St
Tue 26 Aug · 8:42 AM · Card ·· 4417
$11.20
What was inside
Oat latte (L) + almond croissant
74%
Cappuccino + ham & cheese croissant
19%
Other combinations
7%
ConfirmCorrect it
Charge in, items out

What your bank sends. What Moa returns.

As your bank sends it
COFFEE HOUSE PINE ST
Tue 26 Aug · 8:42 AMNot itemized
$11.20

A descriptor, an amount, a timestamp, and a category code. Every other app stops here.

As Moa returns it
Oat latte (L)$5.79
Almond croissant$4.50
Sales tax · 8.875%$0.91
Sums to the charge$11.20
74% confidence2 other baskets fit

Items, prices, and how sure we are. No photo of a receipt was involved.

What it is for

Three questions a category cannot answer.

Item detail is not the offer. It is what makes these answerable at all.

01Recognise

What was that $47.20 on the 14th?

Three weeks later, nobody can reconstruct a dinner from a merchant name. Moa returns the dishes, the prices, and how sure it is — so a charge you cannot place becomes an evening you remember.

Golden Plate 3rd Ave
Thu 14 Aug · 7:36 PM
$47.20
Bibimbap$14.50
Soondubu stew$13.95
Seafood pancake$12.90
Barley tea$2.00
Sales tax · 8.875%$3.85
Inferred · 68%Total confirmed

A basket is a proposal until you confirm it. The chip says which it is.

Why nowhere else

A descriptor is the whole of what your bank sends. An app that shows you categories is not withholding the items — it does not have them.

02Price truth

Am I paying more than I was?

Not the country’s inflation — yours. Moa reprices the things you actually buy, in the counts you actually buy them, at the prices they carried then and now.

Personal price index
≈ +8.8%since March

The same basket cost $218.11 at March prices and $237.36 at August prices.

Oat latte (L) ×34$5.29 → $5.79
Almond croissant ×9$4.25 → $4.50
Confirmed purchases only

Your basket at March prices against the same basket today. The rate wears ≈ because dated menu prices are evidence, not receipts.

Why nowhere else

A personal index needs items and unit prices. No national index is about one person, and a category total cannot tell a price rise from a second visit.

03A goal you can keep

Can I hold myself to fifteen coffees?

A budget in dollars is a number you argue with. A budget in things is a count you can see: eleven of fifteen, four left, and an evening line that says what today added.

Item budget · August
Coffees
11 / 15
Four left this month
Evening digest · 8:30 PM

Two coffees today, both at Pine St. Eleven this month.

No running total, on purpose. A live figure of what you have spent makes people spend more, so Moa counts the things instead.

Why nowhere else

Counting things requires knowing the things. A spending cap can only be measured after the fact; a count can be checked before the next one.

Why not the others

Four roads to an item, and the wall across each.

There are four ways the industry gets item-level detail to a person. Each needs something from someone else. These are mechanisms, not verdicts — every row is checkable.

Scrape one merchant account
Copilot × Amazon
One merchant, and only while the session lasts. When it expires it breaks quietly.
Read the receipt
Receipt scanning, e-mail parsing, points panels
The receipt has to exist, be reachable, and be handled by you. Panel apps pay points for the photograph; the photographing is still the user’s job.
Wait for the merchant rails
Amex Digital Receipts, Visa Order Insight, Mastercard Ethoca
Only the merchants that opted in. Britain’s point-of-sale receipt network closed on exactly that arithmetic.
Buy a SKU network
Banyan, Cardlytics · Bridg
It is sold to businesses, and it reaches you as a targeted offer — never as a list of what you bought.
Infer it from the charge
Moa
Nothing is required of the merchant, and nothing of you. The charge already arrived.

How it works

01

Import a statement

Bring in your bank's own statement file. You choose what comes in.

02

Moa proposes what was inside each charge

Ranked baskets with a confidence on each — and a plain refusal when nothing fits well enough.

03

One tap confirms, and it gets sharper

Your corrections build a personal prior. It learns your usual order, not the average customer’s.

The engine

Arithmetic before AI

Tax reversal, tip decomposition, and exact-sum search over real menu prices are done with exact integer arithmetic. What you have confirmed before weighs which basket is likelier. A language model reads receipts and what you type — it is never asked to do the math.

Worked example
Charge, as billed$11.20
Sales tax reversed · 8.875%−$0.91
Subtotal to explain$10.29
Exact-sum search · integer minor units
1029 = 579 + 450
Oat latte (L)$5.79
Almond croissant$4.50

Only one basket on this menu sums exactly. When several do, your own confirmations weigh which is likelier — nothing guesses at the addition.

WHOLE FOODS MKT 10442
Sat 23 Aug · 11:04 AMNot itemized
$147.83
The basket — not itemized

Too many item combinations fit this amount. Moa will not pick one for you.

What it still vouches for
  • Category · groceries
  • Total · exact$147.83
  • Items · unknown
When it cannot know

Honest about uncertainty

Every answer is a probability distribution, not a single confident guess. When thousands of item combinations fit a charge — a big grocery run, say — the app tells you exactly that, along with the items it can still vouch for, instead of inventing a receipt.

A dashed outline always means a stated absence. It is the same mark everywhere in the app, and it is the one we are proudest of.

Your prior

It learns from you, one tap at a time

Confirm or correct a single prediction and every future inference at that merchant gets sharper. Your corrections build a personal prior — the app learns your usual order, not the average customer’s.

Before · first visit
Oat latte (L) + almond croissant
34%
Cappuccino + ham & cheese croissant
33%
Other combinations
33%

Two other baskets sit within a point of it. Nothing to go on but the menu.

One tap
After one confirmation
Oat latte (L) + almond croissant
91%
Cappuccino + ham & cheese croissant
6%
Other combinations
3%

Your usual order now leads at this merchant, and at the one across the street.

Privacy

Private by architecture

Pseudonymized by architecture

Your identity is replaced with an opaque pseudonym before any inference runs. The engine never receives your name, email, or account number.

Prompts carry no identifiers

Model prompts carry the merchant, the amount, and candidate items. They never carry who you are.

No vendor that trains on your data

We work only with model vendors under terms that forbid training on submitted data. A tier whose terms cannot be verified is disqualified.

And we say “pseudonymized,” not “anonymous,” because purchase histories are identifying by nature and we would rather be precise than reassuring.

Read the full privacy policy
Questions

The sceptical ones first

How can it know without a receipt?

From the amount, the merchant, the time, public menu and price data, and your own past confirmations. Tax is reversed and tips decomposed with exact integer arithmetic, leaving a subtotal to explain; a search finds the baskets that sum to it exactly. Your own past confirmations then weigh which of those baskets is likelier for you.

Do you see my bank password?

No. Moa never asks for one — a statement file is a file you already have, exported by your bank and handed over by you. The transactions themselves are kept on our server under your pseudonym, which is what lets your history survive a reinstall — what is never stored beside them is your name, your email or a bank credential.

What happens when it is wrong?

One tap corrects it. The correction is stored with that transaction under your pseudonym, and the next inference at that merchant is sharper — your own confirmations are what make your future predictions better.

See last month as things you recognise, not names you don’t.

티끌 모아 태산specks gathered make a mountain