Why buckwheat is not wheat

The word wheat sits inside the word buckwheat, and buckwheat contains no gluten at all. Everything difficult about reading an ingredient list by machine is contained in that one sentence.

Buckwheat is a pseudocereal. Botanically it is closer to rhubarb and sorrel than to any grass, it is not a cereal grain, and the resemblance to wheat is entirely a fact about English spelling. A person reading a label knows this within a second. A program searching that label for the letters w-h-e-a-t does not, and will raise the alarm on a bag of soba flour every single time.

It is not an isolated case. Wheatgrass is the leaf, not the grain, and is generally treated as gluten-free when harvested before the seed head forms. Maltodextrin contains the letters of malt and is overwhelmingly made from corn. Modified corn starch contains starch and is corn all the way through. Three ordinary ingredients, three false alarms, all from the same mistake.

The substring traps. buckwheat · wheatgrass → matches wheat maltodextrin → matches malt modified corn starch → matches starch Each one is safe. Each one trips a naive search.

A false alarm is not the harmless error

It is tempting to file over-flagging under caution. Better to warn too often than too rarely, the reasoning goes, and there is something to it — the two kinds of error genuinely are not symmetrical.

But a scanner that cries wolf gets ignored on the day it is right. That is the real cost, and it is paid later, invisibly, on the one product that actually did contain barley malt extract. The second cost is quieter still: a gluten-free diet is already a narrow diet, and an app that puts buckwheat noodles, maltodextrin and half the corn aisle out of bounds is not protecting anyone. It is just making the week worse for no benefit.

Mask the safe phrases first

The fix is an ordering, not a longer blocklist. GlutenScanning runs the same five steps on every scan, and the fourth one is where the traps get defused.

The barcode is decoded on the phone itself — EAN-13, UPC-A and the other retail symbologies — and no photograph of your shopping leaves the device. The code is matched against the OpenFoodFacts catalogue, an open database of packaged food carrying the ingredient text as printed on the pack. That text is then normalised: case, punctuation, brackets and E-number spellings levelled out, so an ingredient written six different ways is matched once.

Then the masking pass. Known-safe phrases are matched longest-first and removed from a working copy of the text before any gluten phrase is tested. Buckwheat is longer than wheat, so buckwheat is claimed and deleted before the search for wheat ever runs. Maltodextrin is claimed before malt. Whatever survives is checked against the gluten and allergen catalogues.

That is the entire trick, and it is worth being unglamorous about it: no model, no inference, just doing two lookups in the order that cannot be fooled. Do them the other way round and the shorter, riskier term wins every time.

Then explain, rather than announce

A verdict with no reasoning attached cannot be checked, and anything that cannot be checked eventually gets trusted too much or too little. So the result arrives in plain language first — contains gluten — then the ingredient that triggered it, then every other allergen found, then a confidence score.

The score exists because the evidence varies. A pack whose ingredient list names wheat flour outright is a strong answer. A pack whose catalogue entry is thin, or whose wording is ambiguous, is a weak one, and flattening the two into the same red mark is its own kind of lie. Seeing strong match on barley malt extract rather than a bare warning is what lets you decide whether to put the box back or look at it more closely.

The catalogue behind it covers gluten and 60+ other allergens, each tagged high, medium or low risk and listed with the names it hides under in an ingredient list, with the peer-reviewed sources behind each claim available on the allergen's own page. The names gluten hides under covers the opposite failure — the terms that carry gluten without looking like they do.

What the scan still cannot see

Getting buckwheat right is a solved problem. Cross-contact is not. An ingredient list describes what a manufacturer put in deliberately, and says nothing about what arrived from a shared mill, a shared line or a shared scoop — and for grains like oats and buckwheat that is where most of the real exposure sits. A 2025 study of 163 flours found gluten in 84.91% of naturally gluten-free flours sold loose.

Food with no barcode has no ingredient list to read at all. For that, a single photograph of the plate can be analysed instead: the dishes are identified and the allergens each is likely to carry are flagged. It is deliberately weaker evidence — it reads a plate, not a recipe — and worth treating as a range rather than a verdict.

None of this needs an account. The app requires no sign-up, keeps your scan history on your device, collects no personal information and treats analytics as optional and anonymous, in 35+ languages. That is a claim worth checking in the privacy policy rather than taking on trust.

This page is information, not medical advice. GlutenScanning is a reference tool that reads published ingredient data. It does not test food, does not diagnose any condition, and does not establish that a product is safe for you. Decisions about a gluten-free diet belong with a clinician or dietitian who knows your history.

Common questions

Why would a scanner flag buckwheat as wheat? +

Because the string “wheat” appears inside the string “buckwheat”. An app that searches an ingredient list for bare substrings will match it, and the same trap catches wheatgrass, maltodextrin against malt, and modified corn starch against starch. Buckwheat is a pseudocereal, botanically closer to rhubarb than to wheat, and contains no gluten.

How does GlutenScanning avoid those false alarms? +

By ordering the matching. The ingredient text is normalised first — case, punctuation, brackets and E-number spellings levelled out — then known-safe phrases are matched longest-first and removed from a working copy before any gluten phrase is tested. Only what survives that pass is checked against the gluten and allergen catalogues.

Why does longest-first matter? +

Because the safe phrase is usually the longer one. Match “buckwheat” before you look for “wheat” and the trap never springs; do it the other way round and the shorter, riskier term wins every time. The ordering is the whole mechanism.

Is a false alarm really a problem? +

Yes, and it is underrated. A scanner that cries wolf on safe food gets ignored on the day it is right, and it also shrinks a diet that is already narrow by putting perfectly good products out of reach. Precision and sensitivity are both part of being useful.

What does the confidence score mean? +

It reflects how strong the underlying evidence is. A product whose ingredient list names wheat flour outright is a different kind of answer from one where the catalogue entry is sparse or the wording is ambiguous, so the result never arrives as a bare yes or no — it names the ingredient that triggered it, lists the other allergens found, and carries a score you can weigh.

Scan the next thing you are unsure about

GlutenScanning checks a barcode against gluten and 60+ other allergens, names the ingredient behind every verdict, and works in 35+ languages. Free, no account required.

Download on the App Store: GlutenScanning for iPhone

Keep reading

The names gluten hides under
The opposite failure: terms that carry gluten without looking like it.
How barcode gluten scanning works
The full path from camera to verdict, and where it fails.
163 flours, tested
What an ingredient list cannot tell you about cross-contact.
Food that has no barcode
What to do with a plate, a counter or a loose ingredient.