clearlabel

For investors

An attribution engine for food and symptoms, built for population scale.

clearlabel is building an ingredient-resolved, symptom-linked food diary joined to an attribution engine, so each individual user gets a genuinely useful answer to a question they cannot answer any other way: which specific thing you ate is doing this to you.

Five ways to log a meal feed one instrument. The instrument is the company.

A stack of horizontal rows, each row one day of eating. Along every row, small grey marks stand for the individual ingredients logged that day, scattered without any pattern. Some rows carry a soft violet bloom at the right hand end, marking a day the person felt a symptom. Every row that carries a bloom also carries a mark at the same position along the row, drawn larger and in blue, and a faint vertical line runs down the stack through those blue marks. The rows without a bloom have nothing at that position.

  • One row, one day
  • Violet, a symptom
  • Blue, the exposure that lines up

The problem

The correct answer is invisible at the resolution people can observe.

People spend years on elimination diets, guessing. They cut gluten, feel better for a week, feel worse again, and never learn it was the xanthan gum in the oat milk. The problem is not that they lack willpower. The problem is that the correct answer is invisible at the resolution they can observe.

One day, drawn on its own between two long horizontal rules that mark the limit of what this person can see and run off both edges of the picture, with a short dimension line standing between them at the left. A single baseline carries a row of small marks, unevenly clustered along it the way meals fall through a day, and all of the same weight, so none of them stands out. A violet symptom bloom sits at the right hand end of the row. Above and below the rules, other days survive only as faint partial rows that run off the edges of the picture. From inside one day there is no second day to line the marks up against, so the answer is not merely hard to find here. It is outside what one day shows.

All one person can see

Proving which food is doing it requires four things to be true at once, and no consumer product delivers them together.

  1. Knowing what was actually in what you ate. At the ingredient level, not the dish level.
  2. Logging how you felt, close enough in time to be attributable. A reaction recorded three days later attributes to nothing.
  3. Doing it consistently for long enough to reach statistical power. One week of logs cannot separate a signal from a coincidence.
  4. Analyzing it with a method that survives confounding. Otherwise you learn that coffee causes headaches because you drink coffee on bad days.

Every existing product solves one of these and abandons the other three. That is not a gap in the market. That is the market.

85M+

users on the leading ingredient scanner, with roughly 25,000 new US users a day

Source: US Chamber of Commerce, on Yuka.

Ingredient anxiety is already mass market. The demand is not the question.

Attrition

is the normal outcome of food logging, not the exception

Source: users of the largest calorie logger describe logging as tedious and abandon it; the same pattern recurs across symptom-tracker communities.

The logging problem is real, and nobody has solved it. We are not going to put a precise-looking retention figure here that we cannot source.

The wedge

Every competitor picks a side of the same divide.

The field splits cleanly, and neither half can cross to the other.

A diagram of the field, drawn as two populated worlds either side of a neutral divide. On the left, a dense mesh of product graders, every one of them linked to its near neighbours and none of those links leaving the food side. On the right, the same field mirrored: a dense mesh of symptom loggers, linked to each other and to nothing else. From the leading face of each side, a row of links sets out toward the divide and stops short of it, ending in severed stubs that point straight at their counterparts across an empty corridor and never reach them. Only two curves cross the divide, one from each side, and they meet at a single join node that carries one blue arc and one violet arc because it is the only thing here that belongs to both.

Product graders

Yuka, FIG, GUS, Trash Panda

They tell you about the food. They know nothing about you. Their score is identical for a coeliac and a bodybuilder.

Symptom loggers

Bearable, mySymptoms

They tell you about you. They know almost nothing about the food. And time lag is where the design gets hard. One statistically literate user of a leading symptom tracker posted that the app appeared to be matching same-day pairs of factors and outcomes rather than calculating a correlation, and that it did not appear to account for time lag at all, so a food eaten today and felt tomorrow is never seen.

Source: public user post, reddit.com/r/BearableApp/comments/1eszlkf/.

Nobody has closed the loop, because closing it is genuinely hard. clearlabel is the join.

Two scores

One number is about the food. The other is about you. The gap between them is the product.

Clear Score is what is in the food. It is the same for everyone, and it does not change because you did. My Score is how that same food fits you specifically, learned from what you log and how you feel.

The distance between those two numbers is the thing no single-sided competitor can render at all. A grader has only the first. A symptom tracker has neither, because it never resolved the food.

One ring, drawn as a gauge, with a faint track running the whole way round it. From the left end of the horizontal diameter, a blue arc sweeps clockwise over the top and well round to the right: that arc is Clear Score, what is in the food. From that same point, an amber arc sweeps the other way, under the bottom, and stops noticeably short of where the blue arc stopped: that arc is My Score, how the same food fits you. A caliper is laid against the ring beside the two arc ends, dimensioning the vertical distance between them. That distance is the gap.

Clear Scorewhat is in the food

My Scorehow it fits you

the gap

Two tubs of ice cream can sit at opposite ends of the Clear Score, and both are still ice cream. We are not grading virtue. We are measuring ingredient quality and personal fit.

The product

Five ways in. One answer out.

Data has to arrive before anything can be attributed, so most of the engineering has gone into the arriving. There are five ways a meal enters the system, and a user can move between them mid-sentence.

  1. A conversational assistant. Tell it what you ate the way you would tell a person, and it resolves the meal into ingredients.
  2. Voice. Hands busy, mouth full, phone on the counter.
  3. One-tap logging. The things you eat every week are one press, because they are already known.
  4. Brand and product pickers. Search the catalog directly when you know exactly what you had.
  5. The barcode scanner. The fastest path when a package is in your hand, and the least important of the five now that the other four exist.

A diagram of how a meal arrives. Five strands enter from the left at five evenly spaced heights, one for each way in, and they are told apart by rhythm rather than by any picture of a device: the first is continuous, the second gently wavy, the third short dashed, the fourth long dashed, and the fifth, entering lowest, is the thinnest and faintest of the five. Each of the five runs level for a moment and then turns, and all five converge on a single point that sits a little below the middle of the fan, so none of them arrives straight and none of them is the main line. That point is the narrowest place in the drawing, and a single thick line begins there and runs on as a row of identical small blocks, which are the canonical ingredient tokens the engine reads.

Conversational assistantVoiceOne-tap loggingBrand and product pickersBarcode scannerOne canonical stream

Then the system gives something back, which is the only reason anyone keeps logging.

  • Patterns with their evidence attached. Not a verdict. An association, with the strength of the association and the uncertainty around it, so you can judge it yourself.
  • A biome view. What your diet is actually feeding, tracked over time.
  • A clinician-grade report. The thing you hand a doctor. Users ask for this constantly, and they ask for a summary rather than a spreadsheet.Source: public patient community threads, r/ibs and r/GERD.

The honest answer

A product willing to say “not yet” is the only kind whose “yes” is worth anything.

Naive correlation on a food diary produces confident nonsense, which is exactly why people abandon the symptom trackers. So clearlabel does not return a verdict. It returns evidence: an odds ratio with a 95% interval around it, and a plain statement of whether that evidence has cleared the bar yet.

Some associations clear the bar the engine sets and are surfaced. Most do not, and rather than guess, the engine says so and keeps watching. Most consumer health products are commercially unwilling to build that second state. It is the reason the first one can be trusted.

Illustrative. This is the shape of what the engine returns, not a result from a user. Beta has not started, so no real user data exists yet, and we would rather show you the shape of the output than invent a finding to make a page look better.

Two example rows on one odds-ratio axis. The first, an association labelled Promoted, has a point estimate of 2.8 with a 95 percent interval from 1.9 to 4.2, which sits entirely to the right of the no-association line at 1.0. The second, an association labelled Not yet, has a point estimate of 1.9 with a 95 percent interval from 0.8 to 4.3, which crosses the no-association line at 1.0.

  1. Promoted

    Onion, bloating

    Odds ratio 2.8

    95% interval 1.9 to 4.2

    This one cleared every condition the engine requires before it will show you anything.

  2. Not yet

    Cane sugar, bloating

    Odds ratio 1.9

    95% interval 0.8 to 4.3

    This one has not cleared those conditions. We are not telling you about it yet.

A correlation in your own logs, never a diagnosis.

The second card is the product. Anyone can ship the first one.

Why the join is hard

Three walls. Two are climbed and the third is built for and not yet measured.

Closing the loop between food and symptoms requires clearing three separate problems, and each one is hard for a different reason.

An elevation drawing of three walls standing on one ground line, each taller than the one before it, each face filled with a diagonal hatch so it reads as material. The first wall, exposure resolution, carries a climbing route drawn as an unbroken line up its face to a solid marker at the summit. The second wall, statistical honesty at n equals one, is taller and carries a differently shaped unbroken route to its own solid summit marker. The third wall, friction, is the tallest. Its route is unbroken for the lower two thirds and then continues as a dashed line to the top, where the summit marker is an open ring rather than a solid one, because that route is built and its summit is not yet measured.

  • Exposure resolution

    Climbed

  • Statistical honesty at n equals one

    Climbed

  • Friction, which is the real one

    Built for, not yet measured

Exposure resolution

To attribute a reaction to an ingredient, you have to know the ingredients. That means a product catalog with international coverage, resolving a brand and a product out of messy human input, and breaking a dish down into what is actually in it. clearlabel runs roughly 50,000 products ingested from Open Food Facts, an internal estimate, plus a USDA FoodData Central nutrient layer mapped onto our own canonical ingredient vocabulary rather than added as products, plus multi-jurisdiction regulatory data and automatic dish decomposition. The public datasets are available to anyone. What takes time is the canonical ingredient vocabulary and the mapping work that makes them join.

Sources: Open Food Facts, internal catalog estimate; USDA FoodData Central, mapped as a nutrient layer onto the canonical ingredient vocabulary.

Statistical honesty at n equals one

A single person's food diary is a small, messy, self-confounded dataset. Run ordinary correlation over it and you get confident nonsense, which is precisely why people quit the symptom trackers. Doing this correctly requires comparing a person against themselves rather than against a population, adjusting for the things that travel with a symptom without causing it, and refusing to show a finding until it has cleared more than one independent condition. The system is built to say “not yet” and to mean it. That is a product decision most consumer health apps are commercially unwilling to make.

Friction, which is the real one

If logging is hard, the data never arrives, and every statistical advantage is worth nothing. This is where most of the engineering has actually gone, and it is the least obvious moat. Friction reduction is not a UX nicety here. Friction reduction is the data strategy. It is also the one wall we have built for and not yet measured: whether real people sustain logging is exactly what beta answers, and we have not run beta.

The reason nobody has this dataset is not that nobody wanted it. It is that collecting it required the logging burden to fall below the threshold ordinary people will sustain, and that only became possible recently.

The compounding asset

Each log will answer one person and add a row to something that does not otherwise exist.

A log does two things at once. It sharpens that user's own answer immediately, which is why they keep logging. And it adds one row to a longitudinal, ingredient-resolved, symptom-linked record of what people eat and how it makes them feel.

That second thing is post-market surveillance for the food supply. Today, when a reformulation or an additive causes a population-level problem, the signal surfaces through scattered anecdote and regulatory action, years late. Existing food-safety surveillance runs on adverse-event reports and outbreak investigation. An instrument that read the same signal out of continuous, ingredient-resolved consumer logs would be a different class of evidence entirely.

The flywheel is the ordinary network effect made specific. More users produce more exposures, which produce tighter intervals, which produce better individual answers, which retain users, which produce more exposures. The unusual part is that the aggregate has value to clinicians, researchers and regulators that no competitor can extract, because it is a byproduct of the individual product rather than a separate collection effort.

A line drawing of the world on a globe, seen from over the Atlantic, with the Americas, Europe and Africa in one frame. Forty-eight populated places are marked, and every one of them is an empty ring rather than a filled point, because nothing has been recorded in this layer yet. Five of those rings carry a dashed line rising from them to a small open circle, showing how a column would rise where rows accumulated. No column carries a value, and none is taller than another.

Designed, not populated

To be exact about what exists: this layer is designed in, and it is not shipped. The aggregate view is gated behind an affirmative-consent architecture that has not been built yet, and it will not turn on before that architecture does. Nothing described in this section is running today.

Why now

Four things converged, and only recently.

A diagram of four conditions on one shared line that runs from earlier at the left to today at the right. Each condition is drawn as a bar that begins at the point it became true and continues to the right hand edge, because none of the four has since reversed. The four bars begin at four different points, and the last of them to begin is the competitive lane opening. The stretch from that last beginning to the right hand edge is shaded and labelled now, because it is the only stretch in which all four conditions hold at the same time. The line carries no dates and no bar start is dated, because only one of the four conditions has a date we can defend.

Now
  1. The competitive lane opened

  2. The friction problem became solvable

  3. The data substrate opened

  4. The demand side hardened

The competitive lane opened

Cara Care, the strongest correlation-first competitor, effectively exited the US consumer market. It was acquired by Mahana in March 2024, filed for bankruptcy in December 2024, and now exists as a German prescription-only DiGA under Bayer. A serious competitor vacated the field, and the trackers that remain still stop at the symptom rather than resolving the food.

Sources: CB Insights; Fast Company.

The friction problem became solvable

Natural-language logging and a grounded assistant that can answer from a user's own data were not buildable at consumer quality until very recently. This is the enabling technology, and it is the honest answer to “why did nobody do this before”.

The data substrate opened

Open Food Facts, USDA FoodData Central and multi-jurisdiction regulatory data have only recently matured to the point where ingredient-level exposure resolution is possible at all. Ten years ago the first wall could not be climbed at any price. Having the sources is not the same as having the join; reconciling them into something an attribution engine can query is the work, and it is not a weekend.

The demand side hardened

Food sensitivity self-diagnosis moved from fringe to mainstream, and elimination-by-guesswork is now a widely shared frustration rather than a niche one. Ninety-four percent of users of the largest ingredient scanner report they stopped buying a product after a bad score, on the company's own published figures.

Source: Yuka, published social impact data, yuka.io/en/social-impact.

Proof

The instrument is built and tested. The constraint is population.

The engine is not a plan. It runs in production.

It was validated against synthetic ground truth, which is the only way to prove a statistical engine is correct. With seeded data you know the right answer before you run the engine, so you can check whether it finds it, and whether it finds things that are not there. Real user data cannot validate an engine. It can only be analyzed by one.

One test case matters more than the rest. A standing daily medication, something a person takes every single day, does not demote a genuine trigger. That is precisely the failure mode that breaks naive implementations: a constant in the data quietly eats the signal, and the real trigger disappears. The engine is tested against that exact case and holds. Confirming that the deployed API carries that fix is on the pre-beta checklist and is not yet signed off, and how the engine holds is in the technical brief.

This is the shape of a synthetic validation run rather than a result table: we planted the answers first, so we can check both what the engine finds and what it correctly leaves alone.

Two columns of marks, side by side, joined row by row. The left column is what we planted before the engine ran. A solid mark there is an association we deliberately planted as true. A hollow ring is a pair we deliberately planted as nothing, put in as a trap. The right column is what the engine returned. Beside every solid planted mark there is a matching recovered mark, joined to it by a line that crosses the full width of the frame. Beside every hollow one there is nothing at all: that line sets out, stops in the middle of the frame and ends in a small open stub, because the engine correctly returned nothing there. An even muted band runs the full width across every row, standing for a medication taken every single day, and its daily texture repeats identically from one end to the other. Every join passes straight through the band unbroken, so a thing that is present on every day cuts no line and demotes nothing.

What we planted

What the engine returned

  • Correctly not returned
  • Standing daily medication, every row

Around the engine, built over the same period:

1,274 commits over 101 days

2026-04-23 to 2026-08-02

Source: repository history, 2026-08-02.

2,294

tests passing across 231 files

Source: full local suite run, 2026-07-28; database suites run serially and are excluded from CI.

89

additive rules across 11 categories, each with a jurisdiction flag and an authoritative source

Source: the clearlabel additive taxonomy.

28

symptom labels in one shared vocabulary, so evidence cannot split on spelling

Source: packages/symptoms.

Here is what we do not know. No real user has logged anything yet. Beta has not started. So retention and logging adherence are unmeasured, and they are the two numbers that determine whether the compounding asset compounds. We are not going to estimate them for you. The instrument is built and behaves correctly on the hard cases we constructed to break it; the constraint is population; that is what this round buys.

The field

Thirteen apps. One row that matters.

The full comparison is on the public product site, and most of it is unsurprising: plenty of apps scan a barcode, several flag additives well, a few log a body carefully. Scroll to the row that reads “connects food to your symptoms with statistics you can check”. Two symptom trackers get a partial mark on it. One column gets a Yes.

CapabilityClear LabelYukaFigTrash PandaBobby ApprovedEWGSpoonfulmySymptomsBearableZoeMyFitnessPalNoomLevels
Barcode scanYYYYYPYPNPYYP
Ingredient and label OCRYPPPPNPNNNNNN
Additive flaggingYYYYYYYNNNNNN
Score personalized to youYNNNNNNNNYNNY
Symptom, food, and context logYNNNNNNYPPPPP
Confounder-adjusted attributionYNNNNNNPPNNNN
Timeline linking food to symptomsYNNNNNNYPNNNN
Gut biome viewYNNNNNNNNYNNN
Lab importYNNNNNNNNPNNN
Ask AI about your own dataYNNNNNNNNPNPP
Clinician-ready reportYNNNNNNPPNNNN
CommunityYNNNNNPNNNYYN

Every clearlabel mark in this table is a capability that is live today. None of these rows are roadmap.

See the full comparison

Request access

If this is a conversation you want, start it.

There is a deeper technical brief behind the gate: the engine internals, the cost model, the pricing math, and an honest list of everything that is not yet measured. Ask for it and we will open it, and we would rather have the conversation than send a deck.

A shallow band of fine lines. They enter across the full width of the frame, faint and grey at the edges, run down almost parallel, and then gather into one point at the bottom centre, directly above the request button. Over the last part of each run the lines warm from grey into amber, so the point they gather on is the brightest part of the drawing. The point itself is left empty.

Already have access? Open the technical brief

Washington Health Data