ForeSense Documentation
Price estimates on your shopping list, built from receipt prices households have chosen to share de-identified — with the sample size behind every number.
Audience: Households whose account has ReceiptVis and a ForeSense grant. · 7-page PDF · v6.26.1
How to read this document
Sections move from purpose → concepts → calculation process → worked examples → edge cases. Formula boxes use plain mathematical notation for clarity; they are conceptual summaries, not API contracts.
- Point lists call out operator-visible behaviour.
- Callouts mark warnings, limitations, or important qualifications.
- Worked examples use round numbers so you can reproduce the arithmetic by hand.
Purpose
ForeSense answers one question before you leave the house: roughly what will this list cost? It reads prices from receipts that households have chosen to share, strips them of anything that identifies a person or a household, and turns what is left into a typical price range per item and a range for the whole basket.
- A price range per shopping-list item, with the number of receipts behind it
- A range for the whole list, not a single flattering number
- A way to narrow a vague item ('milk') to the product you actually buy
- Suggestions for where the list is well covered, when there is enough evidence
- Whether a product's typical price has moved recently, with the sample size
Who sees ForeSense
The shopper screens are still being built
The shared price record, the estimates computed from it and the administrator tooling are live. The screens described on this page — price ranges on your shopping list, the Contribute screen, the standing scanner notice and reporting a range you think is wrong — ship in a later app release, so no AccountHouse app shows them yet. Until they do, a household sees nothing whatever it has been granted; that is the release schedule, not a permission.
ForeSense is not on by default. Two things have to be true before a household sees anything: ReceiptVis is enabled for the household owner, and an administrator has granted the household ForeSense access.
- Standard access shows price ranges, the list total, narrowing, shop suggestions and price movement.
- Privileged access adds a per-item view that names retailers and shows how each one's price has moved.
- Privileged access is capped, screened by an administrator, and reviewed every 180 days.
- Privileged access also needs the household owner to confirm no retail affiliation from their own app; an administrator cannot confirm it for them.
- Every privileged view is recorded: who looked, when, at which product, from which device.
Reading is never gated on sharing
Consent controls whether your receipts are shared. It does not control whether you see estimates. A granted household that shares nothing still sees every price range.
How a price range is built
Prices are read from receipts, converted to a canonical unit so a 1 L carton and a 2 L carton can be compared honestly, and then summarised as a range: a low, a typical and a high. Recent receipts count for more than old ones, and the newest three days are held back so a range never moves on a single day's data.
Range shown
low = 20th percentile · typical = median · high = 80th percentile
Weighted by recency over a 90-day window, on canonical units.
- A range is only shown when it rests on at least five receipts, on at least three different dates, from at least two different branches.
- A single retailer's prices are never published as a range — that would be that shop's price wearing a disguise.
- Prices that look like a mistyped decimal, or that sit far outside the rest, are dropped before the range is computed, and the count of dropped rows is recorded.
- Promotional prices are excluded by default.
- Where the range comes from is always labelled: an exact variant, the product, or the category it sits in.
Not enough data yet
Below the thresholds you see the count instead of a number — 'not enough data yet (3 of 5 receipts)'. That is the honest answer, and it is deliberate.
The list total
The list total is not the sum of the item ranges. Adding low-to-low and high-to-high assumes every item lands at its extreme together, which produces a range so wide it says nothing. ForeSense treats the items as partly related — a week where cheese is dear is often a week where butter is too — and narrows the total accordingly.
Twelve items, three unpriced
- Each priced item contributes its typical price times its quantity.
- Each contributes an uncertainty derived from the width of its own range.
- Those uncertainties are combined allowing for the items moving together.
- The result is shown as a range, with the count of items it could price.
AED 82–104 · 9 of 12 items priced. The three it could not price are listed by name.
- The total always says how many items it managed to price.
- Items it could not price are named, not silently dropped.
- The total is never presented as a promise; it is a range with a stated basis.
Narrowing a vague item
'Milk' is a category; 'Al Ain Fresh Milk 1 L' is a product. The more precisely an item is pinned, the tighter its range. Tapping a price range opens a search over the products that match, with brand and size filters, and your choice is remembered for that list item.
- Pin to a variant (a specific size), a product, or a category.
- Clear the pin at any time and the estimate goes back to the broader basis.
- A pinned choice belongs to your list item; it changes nothing for anyone else.
- A generic item carries extra uncertainty on purpose, because guessing a size is a guess.
Where to shop
When several retailers have enough evidence across enough of your list, ForeSense names the ones your list is well covered at, with reasons. It never declares a winner and never publishes per-item prices per retailer at this level.
- A suggestion appears only when at least three of your items are covered and at least two retailers qualify.
- Each suggestion carries its reasons: how many items are covered, the typical spend on those items, how steady the prices have been, and how thin the evidence is.
- At most three are shown.
- If Location Insights is on and the household has been to a retailer before, that counts a little in its favour; otherwise proximity is neutral.
No cheapest verdict
ForeSense does not rank retailers by price and will not tell you one is cheaper. It tells you where your particular list is well covered, and what the evidence behind that is.
When a price has moved
A movement card says that a product's typical price over the last week or the last four weeks differs from the equal period before it, by enough and consistently enough to be worth mentioning. Both periods need at least five receipts across at least three dates.
- Movements are computed across the whole market, never per retailer, at this level.
- Every card carries its sample size, its window and how far behind today it looks.
- Products whose prices swing a lot are labelled unsettled rather than rising or falling.
- There is no daily window; at beta volume a day is not enough to say anything true.
The privileged per-item view
With privileged access, one item at a time can be opened to show the range for the market plus a row per retailer: that retailer's latest typical price, how it has moved over 30 days, how many receipts and branches sit behind it, how steady it has been, and the last week it was seen.
- It reads from your own list: the item has to be narrowed to a product first.
- Weeks with no observations are left out of the series and disclosed as a count, rather than drawn as a straight line through a gap.
- A preferred retailer is offered only when the evidence separates them; otherwise it says too close to call.
- There is no export and no bulk view. One item, one look, one audit row.
Every view is recorded
Opening this view writes an audit row before the numbers are even computed: the member, the time, the product and the device. Administrators can read that list, and access is reviewed every 180 days.
What a shared receipt contributes
When a household has consented, the same scan that fills an expense also reads the receipt's line items. Those lines are stripped of anything identifying and stored as separate facts about products and prices. The receipt image and the expense stay where they always were — in your household ledger.
- Shared: the product line, its size, its price, the retailer and branch, the date and the currency.
- Removed before anything is stored: card numbers, loyalty and member numbers, cashier and customer names, phone numbers, e-mail addresses, web addresses and long digit runs.
- Never shared: your payment method, who was shopping, and your household name.
- Your total: the total itself is not stored in the shared record and is never shown to anyone. Two numbers worked out from it are kept beside the shared prices — a quality score, halved when the item lines do not add up to the total, and a key made from the shop, the number of lines and the total rounded to a whole unit. That key is compared with the same key on other households' receipts, so that near-identical receipts are weighed down together instead of each counting in full.
- Never shared, at all: any pharmacy receipt, and any medicine, prescription, medical device or sexual-health line — these are rejected whole and never counted.
- Restaurant and fuel receipts are not retail goods and are rejected.
- An identical receipt submitted twice is counted once and written nothing.
A Contribute screen is planned for receipts you do not want to record as an expense; it is one of the shopper surfaces that has not shipped yet. When it lands it will report back exactly what happened: how many lines were accepted, how many were held for review, how many were duplicates, and — line by line — why anything was rejected.
A contributing scan is masked before the text is read
A scan that is not contributing sends exactly the text it has always sent. A contributing one has card numbers, loyalty and member numbers, cashier and customer names, web and e-mail addresses and long digit runs masked out before the text is read for structuring, and again before anything is stored. Two things are deliberately kept: the card last-4, because your expense draft needs it, and short digit groups, which fall under the mask's length floor.
Consent, the declaration and the notice
Consent belongs to the household owner, is versioned, and can be withdrawn at any time. Withdrawing stops new receipts being shared; the estimates you already see keep working, because they were never built from your receipts alone.
- A shared price is de-identified: it is stored as a fact about a product, not about a household. De-identified is not the same as untraceable — in a thin market, someone who already holds a copy of one of your receipts could work out which shared price came from your household; more households sharing is what closes that gap.
- While sharing is on, the scanner will show a standing notice — receipt prices are shared de-identified with ForeSense — from the release that adds the shopper screens.
- A member with permission to create expenses can scan; only the owner can consent.
- Privileged access additionally requires the owner to confirm: "I confirm that nobody in this household owns, works for, advises or is paid by a retailer, a brand or a price-comparison service, and that we will use this view for our own household shopping only."
Shared prices are not deleted with your account
Deleting your account removes your household's data. Shared price observations carry no identity, no household and no link back to you, so there is nothing in them to return to you — and erasing them would erase other households' estimates. They are not in your backup archive for the same reason.
Limits
- Estimates are estimates. The shelf is the truth; a range is what receipts have said recently.
- Prices are compared within one country. If a market country cannot be worked out, ForeSense asks you to set one rather than showing an empty screen.
- Prices in another currency are counted separately and never silently converted.
- A range you think is wrong will be reportable from the app once the shopper screens ship; the report carries the product and the range, never your identity.
- The newest three days are deliberately excluded, so a range always lags today a little.
Not a shopping guarantee
A range is not a quote and does not bind any retailer. Sizes, promotions and product changes all move real shelf prices faster than any sample of receipts can follow.
Privacy, advice limits, and what we do not publish
AccountHouse is a household tracking and organisation tool. It is not a bank, payment processor, tax advisor, or investment advisor. Forecasts, health scores, balances, and alerts are informational.
- Household data is scoped to your household; other families cannot see your ledger.
- Public documentation explains product behaviour and calculation concepts, not proprietary internals.
- Exact scoring weights, anomaly thresholds, cryptography parameters beyond high-level algorithms, and operational detection rules are reserved.
- ForeSense reads the shared price record, never another household's ledger: there is no household on a price observation to read.
- Sample sizes, windows and how far behind today a number looks are published with every figure, on purpose.
- Resolution rules, scoring weights and the exact thresholds that hold suspect prices out of the record are reserved.
Intellectual property boundary
This document describes what AccountHouse calculates and which inputs matter. It does not disclose source algorithms, secret constants, or implementation details sufficient to reconstruct proprietary systems.