A habit tracker for shift workers
Every habit app is built on a seven-day week that repeats. A roster is not that. So the app marks you down for days you were on a night block, the streak stops describing anything real, and you delete it — which is the correct response to a number that is lying to you.
Why habit apps break on a rotating roster
Almost every tracker asks the same question at setup — which days of the week? — and then measures you against that answer forever. It is a good question if your week repeats. On four-on-four-off, on a Panama or DuPont pattern, on a run of nights followed by a run of days, your week does not repeat; at best the shape of your fortnight does. A habit left on "daily" then generates misses for the afternoons you were asleep after a night shift. The number goes down and it is measuring the roster, not you.
There is a second problem underneath that one, and it is the real one. Habits form through repetition in a stable context — roughly the same cue, the same time, the same place. Wood, Tam and Guerrero Witt (2005) followed students through a transfer to a new university and found their exercise, newspaper-reading and TV habits survived only where parts of the performance setting stayed the same; changed intentions could not account for the disruption. The 2024 meta-analysis of habit-formation studies points the same way, noting that self-chosen habits performed in the morning tend to come out strongest. A rotating roster removes the fixed cue by design.
So this is a cue problem, not a discipline problem, and it is not one you created. You did not pick the pattern. What you can pick is what the habit is attached to — and that is most of what this page is about.
For scale: Eurofound's 2024 European Working Conditions Survey found that 21% of workers worked shifts, and that one in five reported not getting 11 hours' rest between two working days at least once in the previous month. In the US, the most recent published Job Flexibilities and Work Schedules survey (BLS, 2017–18) put 16% of wage and salary workers on a usually non-daytime schedule — 5.9% evenings, 3.6% nights, 2.4% rotating and 2.6% irregular. That is not a niche, and habit apps still open by asking which weekdays you would like to repeat.
One thing this page will not do. Shift work has real, documented health associations, and a habit tracker is not a treatment for any of them — nobody here is going to lecture you about sleep for a schedule you do not control. The narrow claim is about bookkeeping: a tool should not add a second problem on top of the first one by recording failures you never earned.
What actually helps when your week does not repeat
Days you did not schedule are skipped, not counted as misses
Set a habit to specific weekdays and the days outside that set are not part of the run at all — they neither credit you nor break you. That is literally the rule the streak calculation follows, not a marketing description of it. If your pattern has a genuinely fixed component (permanent nights, earlies Monday to Thursday), this alone fixes most of the problem.
A pause window for the run you already know is coming
Set a pause from and until — either end optional — with a reason you will recognise later, like "nights, 12th–19th". Paused days are not due, so the run before the block reconnects to the run after it. It does not inflate the number either; nothing is being awarded while you are paused.
Some habits need no logging at all
"Break" habits are the ones that are a don't rather than a do — no energy drink after 2am, no phone in bed after a late. In break mode a day counts when there is no record, so a shift where you never open the app is a win rather than a gap. It is the mode that survives a twelve-hour day best, because it asks nothing of you on that day.
One number that does not care what shift you are on
Alongside habits there are number targets — a start value, a current value, a target, a unit — drawn as a progress curve rather than a chain. Weight, hours slept across a week, steps, a lift. When nothing about your week repeats, a slowly moving number is a far more honest measure of the last two months than a streak is.
You can log the day after it has ended
Come off a night at seven in the morning and the app has already rolled into a new day. You can navigate back to the previous day and tick it there, so nothing is lost to the handover. See the limits section below for the part of this we have not solved.
Daily tracking works with no signal
Ticking habits, logging numbers, counters and checklists all work offline — hospital basements, warehouse floors, the back of a truck, the underground. Writes queue on the device and sync when you are back on a network. Creating and editing goals still needs a connection.
A setup that survives a rotation
Twenty minutes, once. The goal is a tracker that still tells the truth on the fourth night of a block — not one that looks tidy on a Monday morning.
1. Anchor the habit to the shift, not to the clock
"Before the shift", "on the break", "after handover" travel with you through a rotation; "8am" does not. Name the habit for the anchor rather than the hour — "Walk before shift", not "Morning walk". You cannot keep a fixed time-of-day cue on a roster, so use the one structure that does repeat: the shape of a shift.
2. Make two versions — a days version and a nights version
Set the same intention up as two habits at two different sizes: "Walk 30 min" on your day rotation and "Walk 10 min (nights)" on the block. Ten minutes on the fourth night is not a failed thirty-minute habit; it is a different habit that you actually keep. There is no roster import to do this for you, so this is the workaround — and in practice it is also the more honest model of what you can do on each pattern.
3. Pause the block as soon as the rota drops
When you get the next rota, open the two or three habits that will not survive the block and set a pause window across it with the reason written in. Do it in advance, not afterwards. The thing that ends most comebacks is not the block — it is opening the app on the far side of it and finding a fortnight of red waiting for you.
4. Keep one number running underneath all of it
Add one number target that ignores shifts entirely: weight once a week, total hours slept, total steps. On a rotation this is the only genuinely continuous measurement you have, and it is the one that will tell you in March whether January and February went anywhere. Habits answer "did I do it today"; the number answers "is this working".
What this cannot do for you
Stated plainly, because you will find all of it in the first week anyway and it is better you decide with the real picture.
- There is no roster import and no shift-pattern engine. You can schedule a habit on specific weekdays and you can pause it across a block, but a four-on-four-off cycle does not map onto a seven-day week and the app will not work that out for you. Pause windows are set by hand, one habit at a time.
- The day rolls over at local midnight and you cannot move it. If you finish a night at 07:00 on Tuesday, that is already Tuesday to the app — Monday closed at midnight. You can go back and log against Monday manually, but there is no "my day starts at 4pm" setting, and there is no plan to pretend otherwise on a landing page.
- Reminders are a schedule you save, not a notification you receive. You can set a time and days per habit, and the app shows them to you — but nothing pushes an alert to your phone. There are no push notifications of any kind.
- Creating and editing goals needs a connection. The daily loop is offline-first; setting up a pause window three floors underground is not.
- It is a web app you use in a browser and add to your home screen. There is no store listing and no watch app — which is also why it works identically on a personal phone and a locked-down work laptop.
- Nothing here addresses the health side of shift work, and nothing here is medical advice. If your sleep or your bloodwork is the actual problem, that is a conversation with a doctor and an occupational health service, not with a habit app.
Questions shift workers actually ask
How do I track habits on a rotating roster?
Schedule only what genuinely repeats weekly, pause across the blocks that do not, and keep one number target running underneath both. Days outside a habit's weekday set and days inside a pause window are not counted as due, so neither breaks the streak. Most people on rotations do better with two smaller habits — a days version and a nights version — than with one ambitious habit that only fits half the cycle.
Can I import my shift pattern or my rota?
No. There is no roster import and no shift-pattern engine, and it would be dishonest to imply one. What exists is per-habit weekday scheduling and pause windows you set yourself. For a fixed pattern that covers it completely; for a rotating one it costs about a minute of admin each time the rota drops.
What happens to my streak when I'm on a run of nights?
With a pause window across the block, nothing: those days are not due, so the run before reconnects to the run after. The number does not grow during a pause and it does not reset. Without a pause, days the habit was not scheduled for are still skipped, but a day it was scheduled for and missed will end the run — which is why setting the pause in advance matters.
My shift ends at 7am. Which day does that count as?
Your local civil day, which rolls over at midnight — so a shift ending at 07:00 on Tuesday is Tuesday, and Monday's tracking closed six hours earlier. You can navigate back to Monday and tick it there, so nothing is unrecoverable. But there is no configurable day-start hour, and if you need a tracker whose day begins at 4pm, this is not it yet.
Is it free, and does it work with no signal?
It is free: unlimited habits and life areas, no card. Daily tracking — ticking habits, logging numbers, counters, checklists — works with no connection and syncs when you are back; creating goals and the AI Coach need one. The AI Coach runs on your own OpenAI or Anthropic key, so you pay your provider directly, never us.
Related reading
Sources
- Eurofound, European Working Conditions Survey 2024 — Highlights
"In 2024, 21% of workers worked shifts", and "1 out of every 5 workers reported not having 11 hours rest between 2 working days at least once over the month prior to the survey." Based on 36,644 interviews across 35 countries. - US Bureau of Labor Statistics, Job Flexibilities and Work Schedules 2017–2018
Released 24 September 2019 and still the most recent published edition — the figures describe 2017–18, not today. Wage and salary workers at their main job; the self-employed are excluded. - Wood, Tam & Guerrero Witt (2005), Changing circumstances, disrupting habits
Journal of Personality and Social Psychology 88(6). Habits survived a move to a new university only where aspects of the performance context stayed the same. Student sample; we are reasoning by analogy to shift work, which nobody has studied directly. - Lally et al. (2010), How are habits formed
Median 66 days to 95% of automaticity, range 18–254 — from the 39 participants whose curves fitted the model, mostly UK postgraduates. Its "missing one opportunity did not materially affect the habit formation process" describes a single isolated miss inside an otherwise consistent run. It is not evidence about a fortnight of nights, and we do not use it that way. - Singh et al. (2024), Time to Form a Habit — systematic review and meta-analysis
Healthcare 12(23), 20 studies, 2,601 participants. Medians of 59–66 days with individual variability from 4 to 335 days, and morning, self-selected practices showing greater habit strength — which is the finding that cuts against a rotating roster rather than for it.
Set it up for the roster you actually work.
Free plan, no card. About twenty minutes to set up properly.
Start free