What you measure every day
Weight, hours of sleep, kilometres, a pain score, the mood on a bad week: all of it is one number written down often enough to mean something. tagwerk has no tracker screen for that and needs none — a tag can carry a value, and the statistics do the rest. This page is about how to write one so it counts, and about what happens to it afterwards.
A tag, a colon, a number
Anything you write down repeatedly is a measurement, and it goes in the line where it happened rather than in an app of its own:
Notes/2026/09/2026-09-17.md
07:10 #weight:81.4 #sleep:7,5
- [x] 5 km, easy #run:32
Headache from about three #pain:4 #pain-note:weather
Second coffee at four #mood:6
The tag is still a tag: filtering, searching and the task list all go by
#weight, and the number rides along. Nothing has to be
defined first — there is no list of trackable things, no unit picker and no setup. A
measurement exists because you wrote one.
What counts as a number
This is the part worth reading once, because the difference decides whether a reading is averaged or merely counted:
| Written | Read as |
|---|---|
#weight:81.4 | the number 81.4 |
#weight:81,4 | the same number — both separators are typed by real keyboards |
#temperature:-3 | the number −3; a leading sign is fine |
#weight:81,4kg | a word. A unit makes it text — put the unit in the tag name instead |
#money:1.234,56 | a word. Two separators are ambiguous, and guessing wrong turns 1234 into 1.2 |
#time:09:00 | the number 9, with :00 behind it as ordinary text |
None of these are errors and nothing is rejected — a word is a perfectly good reading, it is just counted rather than averaged. But a column of “81,4kg” will never draw a curve, and finding that out in March costs you the winter.
Words are counted
A reading does not have to be a number.
#weather:rain, #mood:good
and #pain-note:evening are readings too; the statistics
count how often each word appeared instead of averaging them.
Typing the colon offers the words that tag has carried before — across the whole vault, those nearest today first — so “good” does not quietly become “Good” and then “gut”. Numbers are never offered, because a list of yesterday's weights is not a suggestion.
What the statistics answer
Hold the tag in the note, or reach it from the chips in the panels. For one tag it answers how many lines and days carry it, what became of the tasks among them, and — for the numbers — the minimum, the maximum, the average, the median, the standard deviation and the sum, with the run over time drawn as a chart.
Nested tags count towards their parent, and the answer says how much of it came from a
child: #run/interval is part of
#run. The task filter is the one place that does not
work that way — a chip matches the tag exactly — which matters if you plan to filter as
well as measure.
The statistics are part of tagwerk Pro (€12 / US$12 once, no subscription). Without it the overview of a tag shows its mentions and a notice where the figures would be, the statistics list in the side panel shows example data, marked as such, and your own readings stay where they always were: in the notes, in the search, and in your files.
A reading belongs to its day
When a task moves to another day or repeats, the copy carries the tag but not the number. That is deliberate: a reading is an observation of the day it was written on, and a daily habit that carried its reading along would report the same value every day — the statistics would then be built on a copy of a single measurement.
So a repeating task is the reminder, and the reading is what you write when you have actually looked:
- [ ] Blood pressure, morning R/P1D #bp: - [x] Blood pressure, morning #bp:128
The copy keeps the colon, and that is what makes the reminder ask. A tag written
#bp: is waiting for a value: tick the task off and
tagwerk asks for one — one field per waiting tag, including those on the sub-tasks that
are ticked off with it — and writes it into the line together with the tick. The last
value you wrote for that tag stands in the field as a hint.
Nothing is forced. Leave the field empty and the task is done with the tag still waiting; dismiss the question and the task stays open. Dropping a task never asks — it did not happen, so there is nothing to have measured — and a tag written without a colon is never asked about at all.
Careful with that second line: a reading ends at the slash, so
#bp:128/78 records the number 128 and leaves
/78 beside it as ordinary text. It looks like a blood
pressure and counts as a systolic one. Two tags say what you mean:
#bp-sys:128 #bp-dia:78.
It stays on your device
This is the reason to do it here rather than in a tracking app: there is no account, no advertising and no telemetry, we run no server your readings could sit on, and nothing leaves the phone unless you set up a sync of your own. The readings are lines in your own Markdown files — you can read them without tagwerk, export the lot as a ZIP, print a month, or delete a day and have it gone.
Two things this is not. It is not a medical device and gives no advice: it records what you write and adds it up, and what the numbers mean is between you and someone qualified to say. And it is not evidence — plain files are editable by anything, which is exactly why they are yours.
Something missing here, or something wrong? Write to , or open an issue in the tracker.