Skip to main content

Track habits & measurements

A habit answers did this recurring behavior happen? A measurable answers what numeric value did I observe? They can support the same goal without being interchangeable: “Emperor penguin roll call” is a habit, while “Penguins accounted for” is a measurable value.

Habits are currently an optional feature and ship switched off. Open Settings → Advanced Settings → Config Flags and turn on Enable Habits page. The Habits destination and the Habits entry under Settings → Definitions then appear. Measurables need no flag.

Work with habits

The Habits page organizes active definitions into what is due now, scheduled for later, and completed. Its daily summary, consistency history, streaks, and completion-rate chart help you notice patterns without treating one missed day as the entire story.

All screenshots
ScreenshotMobile view
Penguin Operations habits dashboard showing habitat checks, penguin roll call, sardine inventory, completion state, streaks, and recent history

Create and edit habits

  1. Open Habits and select +. To change an existing habit, press and hold it, or open its completion sheet and select the pencil. Settings → Definitions → Habits still lists every definition and opens the same editor.
  2. Name the behavior concretely. The example chips (measure blood pressure, 6,000 steps, functional strength training, take medication) fill in a name and pre-select the matching signal.
  3. Select Continue, decide how Lotti knows the habit is done (below), and set its category and times.
  4. Select Create habit.
All screenshots
ScreenshotMobile view
New habit, step 1 of 2: What do you want to keep doing? with name and description fields and example chips
All screenshots
ScreenshotMobile view
New habit, step 2 of 2: How do we know it's done? with the manual row, a Steps signal set to daily at least 6,000, Add a signal, and the Settings section

Let recorded data check a habit off

The How do we know it's done? card lists the habit's signals. I'll tick it myself is always on — you can record any habit by hand. Add a signal offers three kinds:

  • a measurable you record in Lotti (any entry, or a daily total at least / at most a value, in the measurable's unit);
  • health data imported from Apple Health or Health Connect (any reading, or a daily value at least / at most a threshold — steps default to at least 6,000);
  • a workout type that has appeared in your imports (any session, or a duration, distance, or energy at least / at most a value).

With two or more signals, How this habit counts as done chooses whether any signal, all signals, or at least N of them complete it. Once the day's data satisfies the rule, the habit is checked off for you, marked auto on the Habits page with the signal and time, and announced with a notification — habits completed within a few seconds of each other are grouped into one, each habit is announced at most once a day, and Notify on auto-completion switches it off per habit. Anything you record yourself, including a skip, always wins over the automatic check-off.

The editor's settings

All screenshots
Search definitions here. The star, hidden-eye, and lock identify favorite, inactive, and private habits.
ScreenshotMobile view
Habit settings containing Emperor penguin roll call, Review sardine forecast, and Walk the habitat seals with favorite, inactive, and private states
All screenshots
ScreenshotMobile view
Edit habit page for Emperor penguin roll call with the signals card, the Settings section, and the favorite, private, and active options
All screenshots
ScreenshotMobile view
The editor's Settings section with category, start date, show from, alert time, and the notify-on-auto-completion switch
  • Category for filtering and visual context.
  • Start date, and for a daily habit the time it is shown from and when Lotti should show an alert. The data model also understands weekly and monthly schedules; the editor exposes these time controls for daily habits.
  • Notify on auto-completion (on by default).
  • When editing: Favorite for higher prominence, Private to hide it unless private entries are shown, Active to control whether it appears on the Habits page without deleting its history, and Delete.

Record what actually happened

Open a due habit or use its quick action. The completion sheet shows the habit's own signals first — each with its rule status and a two-week sparkline, and for a measurable one-tap chips with the values you log most (health data and workouts come from imports, so they have no chips). Tapping a chip records the measurement immediately; if that completes the habit, Success is pre-selected and you can still add a comment before Record. Below the signals, the form supports three outcomes:

  • Success — the behavior happened.
  • Missed — it was expected and possible, but did not happen.
  • Skip — it did not reasonably apply that day.
All screenshots
ScreenshotMobile view
Completion sheet for inspecting the habitat seals, with Krill rations and Steps signal rows, quick-record chips, sparklines, and the Success, Skip, and Missed outcomes

Use the state that preserves reality. A candid history is more useful than a perfect-looking chart. Completion records are journal entries, so later views can reconstruct the effective result for each habit and day.

Work with measurables

A measurable definition describes the number before you record it: its name, unit, privacy, and how multiple observations combine on charts.

All screenshots
ScreenshotMobile view
Measurable settings containing Habitat pressure, Penguins accounted for, and Sardines consumed

Create a measurable data type

  1. Open Settings → Definitions → Measurables.
  2. Select the add action.
  3. Add a name, optional description, and concise unit abbreviation.
  4. Choose the default aggregation used by charts.
  5. Decide whether it should be favorite or private, then save.
All screenshots
ScreenshotMobile view
Habitat pressure measurable editor using kPa and Daily average aggregation

Choose aggregation based on what repeated readings mean:

AggregationUse it when
No aggregationEvery individual observation matters
Daily sumReadings accumulate, such as sardines consumed
Daily maximumThe day's peak is the important signal
Daily averageReadings sample a changing value, such as habitat pressure
Hourly sumAccumulation needs finer hourly buckets

The unit is display context, not a converter. If you define habitat pressure as kPa, record values in kPa consistently. Create a separate measurable if a different unit represents a genuinely different series.

Record a measurement

Open a dashboard that contains the measurable and select the add action on its chart. Enter the observed value; Lotti keeps the unit beside the number so it is clear what will be saved. Recent distinct values appear as Quick log actions when repeating one of them is useful.

All screenshots
ScreenshotMobile view
Sardines consumed measurement editor opened from its populated dashboard chart, with 84 sardines, quick-log suggestions, observed time, comment, and Save action

Use Observed at for the time the reading was actually taken, rather than the time you happen to enter it. The first page selects the calendar date. Today returns directly to the current date.

All screenshots
ScreenshotMobile view
Observed at calendar selecting Friday July 17 2026 for the sardine measurement

Scroll to the time section to set the hour and minute. Now restores the current time. Select Done to return to the still-filled measurement draft, then Save to create the journal entry.

All screenshots
ScreenshotMobile view
Observed at time wheel set to 10:30 AM for the sardine measurement

The comment is optional, but it is useful when a number needs operational context—for example, a delivery, an unusual shift, or a changed measurement method. Saving a measurement does not alter the measurable definition or its aggregation rule.

Connect the two without confusing them

A roll call can be completed successfully even if only 36 penguins were counted—the habit records whether the procedure happened, while the measurable records the result. Put both on a dashboard when their relationship answers a recurring operational question.