Why this is hard to keep track of

  • The trigger is invisible in the moment and forgotten by the next morning
  • Guilt afterwards makes it likelier to repeat, which nothing measures
  • The obvious explanation — stress — is usually wrong, or too broad to act on
  • Standard food diaries record the food and lose everything that caused it

Worth recording

  • What you ate and roughly when
  • What happened in the hours before, in whatever words you'd use
  • How the day had gone — sleep, workload, an argument, a good afternoon
  • Whether you'd eaten properly earlier, which is a common quiet cause

Cadence

Afterwards, when you can. Same day is close enough

In practice

Say it once, or photograph it

The entries most worth having are the ones made at the exact moment nobody wants to fill in a form. A sentence — typed, dictated, or replaced entirely by a photo of the plate — is a much lower bar, and it carries the context a calorie field would have thrown away.

Emotional Eating Chat

Ate a lot of crisps standing in the kitchen after that call with my sister. Wasn't hungry. Didn't really decide to.

Called 4 tools

  • log_meal(items: ["crisps"], at: "21:15", planned: false)
  • log_context(before: "difficult phone call", state: "wound up")
  • log_hunger(before: 2)
  • find_pattern(group_by: "antecedent")

Logged, no judgement attached. That's the sixth unplanned evening entry in four weeks. Five of the six followed something you'd described as a conversation that went badly. Two of them also followed a day where lunch was skipped, which is the other thread worth watching.

Every figure here was counted from entries you made. The model chose which tools to call — it doesn't score the meal, estimate calories from a photo, or decide what any of it says about you.

And then ask

The question the log can answer

Months of entries hold real answers to the things you've been guessing at, and reading them properly has always meant a spreadsheet and a free evening — which is exactly what nobody has.

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

Asking about the pattern Chat

Is it stress, or is it just that I haven't eaten enough during the day?

Called 3 tools

  • get_history(topic: "emotional-eating", window: "6m")
  • find_pattern(group_by: "context")
  • compare_periods(metric: "entries")

Both, and one is louder than you'd think. Across 41 evenings, unplanned eating happened on 14. Of those 14, eleven followed a day with no proper lunch — that's 79%, against 22% of the evenings where you did eat lunch. Difficult-day notes are also in there, but they mostly overlap the same days. Under-eating earlier is the stronger signal.

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.

What it does

Set up around emotional eating

The same mechanics as everything else here, pointed at what actually matters for this one.

An entry is a sentence

Type it or say it. No item lookup, no portion field, nothing to complete before the entry counts — which is the whole reason this one survives past week three.

Or just a photo

A picture of the plate takes a second and records the thing descriptions are worst at. We store it against the entry; we don't estimate a calorie count from it and hand you the guess.

Context, not just food

Where you were, who with, what had just happened. In almost every log on this site the pattern turns out to live in the context rather than in what was eaten.

No streak to break

A gap in the record is a gap in the record. Nothing resets, nothing is lost, and nothing tells you that four missed days undid the month before them.

Readable across months

One rough fortnight reads as one rough fortnight when it sits on a six-month line — which is the view that changes what people believe about themselves, and the one a daily score can't draw.

Yours, and exportable

Everything you've written and every photo, out in one file whenever you want it — including the date range a dietitian or therapist asked you about.

The reason a lot of people start

Something to actually bring to the appointment

You get fifteen minutes, and the first question is always some version of "so what does a normal week look like?" — which nobody on earth can answer accurately from memory.

What this gives you: Something concrete for a therapist or dietitian to work with: the actual antecedents, in your words, rather than "evenings, I think, when I'm stressed?"

  • Export the date range you were asked about, as a file you can print
  • Photos alongside the entries, which say more than any description
  • Counts and timings rather than an impression of the worst week
  • Nothing shared anywhere unless you choose to share it

What it won't do

  • Score a meal, or sort food into good and bad
  • Estimate calories from a photo and present the guess as a number
  • Set you a calorie target, a macro target, or a weight
  • Run a streak you can break, or tell you that you've fallen behind
  • Comment on your body. The photos here are of food
  • Diagnose anything, or suggest that a pattern is a diagnosis

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 notification designed to make you feel behind
  • Export everything you've logged, photos included, 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.