macOS · iOS · Windows · Android

Tratto

A bowel and food diary you will actually keep.

Three taps for a bathroom visit. One question at night. Everything stays on your device, and there is nothing to subscribe to, no account to make, and nothing to upload.

Download, free How it handles your data Notes & citations

Where it came from

The question behind Tratto was asked in 2020, as a university data science project: keep a food and bowel diary for 68 days, then work out which foods were doing the damage. The answer that came back was that the diary could not tell, and the reason was in the data rather than in the arithmetic. Most days were only half recorded, and the foods worth examining had never been eaten often enough or separately enough to be told apart.

That is the idea Tratto is built on. A diary is worth keeping, and it is worth keeping well, and the moment it starts naming culprits it is making things up. So this one records properly and says what it can and cannot see.

What it does

Three taps, and you are done

Open, pick the form from seven drawings, save. No typing, no scrolling through a form, no login screen between you and the thing you came to record. It is designed for one hand in a bathroom, because that is where it gets used.

Meals in plain language

Type or dictate what you ate the way you would say it out loud. Tratto matches it against a vocabulary of 142 ingredients, in English or Italian, and shows you what it recognised so you can correct it. Nothing is guessed silently.

It notices what you did not write down

A bathroom visit is memorable. A breakfast identical to every other breakfast is not, and that is exactly the gap that ruins a diary. Tratto asks about the slots you skipped and takes "nothing" for an answer, so an empty morning means empty rather than unknown.

It shows you your own numbers

How complete your diary is. How your forms are distributed. How your pain has moved. How much your numbers wander on their own, and how far apart two days have to be before they stop resembling each other. Counts and summaries, on your data.

A document to bring to an appointment

One page: the period covered, how many bowel movements, how the forms fell out, how pain went, and a note saying which scale was used. Raw record, no conclusions, nothing for a clinician to have to unpick.

When you want an answer, it runs a real test

Phase two stops observing and starts arranging: one ingredient against one comparison, alternating blocks of days, the order randomised, and the plan frozen before you begin. It is the only setup that can produce evidence rather than a hunch.

And it tells you when it is not worth it

Before you commit two months to a comparison, Tratto shows you the one number that decides whether the experiment can work at all.

With six pairs of blocks and a two-sided hypothesis, the test needs six agreements out of six. So even for a food that genuinely affects you in eight pairs out of ten, the chance of reaching a significant result is 26%. With five pairs or fewer, nothing can be significant. Nine is the first size that tolerates one disagreement.

Most apps in this category would not show you that, because it talks you out of using the feature. It is here because a two month experiment that could not have succeeded is worse than no experiment.

What Tratto never shows is a ranking of foods. No shortlist, no suspects tab, no p-value beside an ingredient. On the numbers a personal diary produces, that answer cannot be told apart from chance, and an app that names a culprit anyway is confidently wrong.

Who it is for

Before a gastroenterology appointment, where the clinician needs what happened rather than what you remember. Inside an elimination and reintroduction plan run with a dietitian, where the diary is the record of the protocol. When the trigger is already known and what matters is adherence. Before and after a treatment, where the point is the change.

In all of those a faithful record is the whole job, and the value is the timestamp: Stone et al., BMJ 2002 compared a paper diary against an electronic one that stamped every entry, and found reported adherence to paper at 90% against actual adherence of 11%. The electronic version reached 94%.


The details that decide it

Everything below is checkable in the source, and the parts that come from someone else's rules are cited on the notes page.

Privacy: it is a local app, in the strict sense

Integrations: files that anyone can open, and honesty about the rest

Export gives you a FHIR R4 bundle, three CSV files, the complete JSON, and on macOS and iOS a one-page PDF. Import takes the JSON back. Coding for interoperability is on a switch: a local coding is always present, and the external ones (SNOMED CT, LOINC) are optional and off by default, because SNOMED is not free in Italy and an archive should not become unexportable because of a licence.

What Tratto does not do is claim to write into Apple Health or Health Connect, because neither of them will take this. Verified against each platform's own list of types:

WhatApple HealthHealth Connect
Bowel movements and stool formno typeno type
Bloating, abdominal painseverity onlyno type
Diarrhea and constipation flagspresence onlyno type
A custom type of our ownnot allowednot allowed

Health Connect has 42 record types and the set is closed. Apple Health has seven gastrointestinal symptom types, all on a four-level severity enum, so a 0 to 10 score projects onto it and never comes back. Reading sleep and activity from those platforms is the direction that would work, and it is not in this version.

Scales: which ones, and why they are ours

Price: free, and here is what that costs you

PlatformPriceWhat you should know
WindowsFreePortable executable, no installer. Unsigned, so SmartScreen will warn you once.
AndroidFreeAPK. You will need to allow installation from whichever app you download it with.
macOS and iOSFreeBuilt from source. Not on the App Store, and on iOS without a paid Apple developer account a self-built app must be reinstalled every seven days.
SubscriptionNoneThere is no paid tier, no trial and no feature behind a purchase.
Your dataYoursIt is not the product. There is no one to sell it to and no channel to sell it through.

Windows is unsigned because signing would buy nothing: since 2024 an EV certificate no longer skips SmartScreen, and the managed signing service is closed to individual developers outside the United States and Canada. Saying so is cheaper than pretending.

The same numbers on every platform

The Apple version is written in Swift, the Windows and Android versions share a TypeScript core, and the same exact statistics therefore exist twice. Two implementations drift apart quietly, so neither is trusted alone: the Swift test suite writes a file of golden numbers and the TypeScript suite has to reproduce it digit for digit, tied ranks and the 64-bit block shuffle included. A number computed on your phone is the number computed on your laptop.

Get it

Windows

Portable build and a zip.

Android

APK, signed with a stable key so updates install over the old version.

macOS & iOS

SwiftUI and SwiftData. Build it from source.

Go to the releases Read the source