Why this is hard to keep track of

  • Reactions lag by hours to days, so the obvious suspect is usually the wrong one
  • It's dose-dependent, so eating it once without incident proves nothing
  • Load accumulates across a day, and no diary captures a total
  • Cutting foods on suspicion narrows the diet without ever producing an answer

Worth recording

  • What you ate and roughly how much of it
  • The symptom, how long after, and how bad
  • Total load across the day rather than a single meal
  • The non-food variables that move the same symptoms

Cadence

A sentence after meals, symptoms whenever they show up

In practice

Say it once, in whatever words you have

The moments most worth recording are the ones where filling in a form is the least realistic thing in the world. A sentence, typed or dictated afterwards, is a much lower bar — and it carries the context a checkbox would have lost.

Food Intolerance Chat

Fine after the cheese sandwich at lunch, but wrecked after a latte and a yoghurt yesterday.

Called 4 tools

  • log_food(items: ["cheese sandwich"], reaction: false)
  • log_food(items: ["latte", "yoghurt"], reaction: true, date: "yesterday")
  • estimate_load(nutrient: "lactose", window: "day")
  • find_pattern(metric: "symptoms", group_by: "lactose_dose")

Logged both. Across 34 dairy exposures, the ones followed by symptoms average about 24g of lactose and the ones that aren't average about 6g. That looks like a threshold rather than a yes or no — hard cheese is low, milky coffee and yoghurt are not.

Every figure here was counted from entries you made. The model picked which tools to call — it doesn't interpret, diagnose, or decide what anything means about anyone.

And then ask

The question the log can answer

Months of entries hold real answers to the questions you've been guessing at, and reading them properly has always meant a spreadsheet and a free evening — which is not a thing anyone in this situation has.

Ask in plain language. The answers come back with the numbers behind them, including when those numbers are too thin to mean anything yet — which is the more useful answer more often than people expect.

Asking about the pattern Chat

So can I eat dairy or not?

Called 3 tools

  • get_history(topic: "food-intolerance", window: "6m")
  • find_pattern(group_by: "antecedent")
  • compare_periods(metric: "events")

On your log, in small amounts yes. 19 exposures under 10g produced symptoms twice; 11 exposures over 20g produced them nine times. That's a dose relationship rather than an all-or-nothing one, and it's worth confirming with a dietitian before you rebuild the diet around it.

Counts and averages over your own entries, nothing more. Where the data is confounded or too thin, the answer says so instead of rounding it into a conclusion.

The reason most people start

Something to actually bring to the appointment

You get fifteen minutes, once, after waiting months for it. The questions are specific and the honest answers are all some version of "I don't know, it's hard to say".

What this gives you: Dated food-and-symptom pairs with timings, which is something a GP or dietitian can actually act on.

  • Export the date range you were asked about, as a file you can print
  • Counts and timings rather than an impression of the worst week
  • Your own notes kept alongside the numbers, in your words
  • Nothing shared anywhere unless you choose to share it

What it won't do

  • Diagnose anything, or suggest that it could
  • Score a person, or rank them against anyone else
  • Set a target for fewer events, or a streak of good days
  • Recommend a treatment, a therapy, a diet or a medication change
  • Share your record with a school, a clinician or anyone else on its own

It's a notebook that can do arithmetic and answer questions about itself. Deciding what any of it means is a job for you and the people advising you.

Early access

Start with what you're already trying to hold in your head

Tell us what you've been trying to keep track of and we'll set it up with you — recording the thing that's actually useful, at a cadence that survives a bad week.

  • Founding accounts lock their price for life
  • No card, no trial clock, no notifications designed to make you feel behind
  • Export everything you've logged whenever you want

No card required. Unsubscribe any time.

Keep the record without it becoming another job

Founding pricing is locked for accounts opened during early access.

Founding accounts lock their price for life. No card required.