Configuration
Where settings live
Settings live in three places, by scope:
- Plugin settings (Settings → Community plugins → Kanban Action Planner). Vault-wide defaults (property names, default statuses, date format) plus a central “Note types” list. Each note type’s shared config (statuses, colors, cards, card titles, relationships, estimate property + unit, archiving) is defined here once, and every board applies it to the notes it recognizes. You never reconfigure a type board by board. When the Obsidian Starter Kit is present, its note types are synchronized into this list automatically; the Default entry covers notes with no recognized type. Click Configure next to a type to edit it.
- Per-board configuration (Configure view, the Bases view options for the Kanban view). Settings for this board only, grouped into Columns, Cards, Swimlanes, Filters, and Calendar. Pickers for properties the board writes (status, order, grouping) list only your notes’ frontmatter properties; read-only pickers (card sort, panel sort, title) also offer
formula.*andfile.*columns. With the Obsidian Starter Kit enabled, frontmatter pickers are further limited to your note types’ known properties.
The gear in the board’s top-right is a shortcut to the plugin’s Note types settings. Note-type config lives there, not on the board: colors, cards, card titles, relationships, estimate, archiving, default swimlane grouping.
Precedence, most specific wins: a view’s Configure-view setting → the note type’s shared config (Settings → Note types) → the global default. Swimlane grouping is a good example. It has a shared default per note type, and any single view can override it in Configure view → Swimlanes (which defaults to “Use note type default”).
Property names
The plugin reads and writes ordinary note properties (frontmatter). Nothing exotic, nothing hidden. The defaults below are used today; per-view overrides may arrive in later releases.
| Property | Default | What it does |
|---|---|---|
| Status | status | Its value places a card in a column. Auto-detected: a property named status, else any property whose name contains status. |
| Manual order | manual_order | Stores a card’s position within its column (a number). Written when you drag to reorder. |
| Estimate | estimate | How long you expect a note to take. A number of days by default. A note type can associate its own property and unit (days or minutes, e.g. a tasknotes-compatible time_estimate) in Configure → Estimate; minute values convert to days everywhere via Minutes per day (default 480 = an 8-hour workday). With a start date it gives a card its span on the timeline. Written when you resize a bar or via Set estimate…, always in the note’s own unit. |
| Milestones | milestones | List of <date> <label> entries rendered as diamond markers on the timeline. Set globally with Milestones property. |
| Contexts | contexts | Optional list of GTD-style contexts (@work, @home, …). Drives the @ context switcher in the toolbar; it filters only, the plugin never writes it. Set globally with Contexts property; must not be a reserved filter word (parent, status, due, …). |
| Duration | duration | The note’s own tracked time in minutes: recomputed from its time-entries list every time a session stops (an edited or deleted entry is honoured). Set globally with Duration property; a note type can map its own in Configure → Time tracking. A legacy number left by an older version is still read when neither the entries list nor this property is set. |
| Total duration | total_duration | The persisted tracked-time rollup (minutes): the WBS row menu’s Save total tracked time writes the subtree total (own + descendants) here. Set globally with Total duration property, per type in Configure → Time tracking. |
| Time entries | time_entries | List of {startTime, endTime, description} objects (local ISO datetimes), one per tracked session, TaskNotes’ format, never compacted. The ledger the duration is recomputed from. Set globally with Time entries property, per type in Configure → Time tracking. |
| Last session | date_last_session | Date of the latest time entry, stamped on every stop. Set globally with Last session property, per type in Configure → Time tracking. |
| Pomodoros | pomodoros | Daily-note list property receiving one record per pomodoro ({id, taskPath, startTime, endTime, plannedDuration, type, completed, activePeriods}, TaskNotes’ shape). The daily note is resolved through Periodic Notes, else the core Daily Notes plugin, else the Daily note folder / format (fallback) settings. Pomodoro lengths and the long-break interval are settings too. |
| Time blocks | time_blocks | The ideal week: a list of <days> HH:MM-HH:MM entries on a 15-minute grid (mon-fri 09:00-12:00; a day list or range repeats, an end before the start crosses midnight). Read and written by Ideal week mode. Set globally with Time blocks property. |
| Planned minutes | minutes_planned_per_week | Minutes per week reserved by the note’s time blocks; recomputed by the plugin on every block edit, do not edit by hand. Set globally with Planned minutes property. |
| Target minutes | minutes_per_week | The weekly time budget you intend to give a note, in minutes. Shown in the ideal week’s rail against the planned minutes; a note without one is asked for it the first time a block is planned for it. Set globally with Target minutes property. |
| Alarm minutes | minutes_alarm_per_week | Optional weekly alarm in minutes: when the minutes tracked this ISO week (the note’s own entries plus its linked tasks’) exceed it, the budget ring turns red and one notice fires per note per week. Set globally with Alarm minutes property. The four ideal-week properties can be mapped per note type in Configure → Ideal week. |
| Committed date | date_committed | When you committed to the note. The WBS lifecycle chip shows the lead (started − committed) next to the cycle (done − started) and the lateness (done − due) of done items, or the days active for open ones; a missing date leaves its slot blank. Set globally with Committed date property. |
| Areas | areas | List of the areas (life domains) a note belongs to: Health, Exercise, Work… Read only: the ideal week’s rail and targets table can group by area (a note files under its first value). Set globally with Areas property, per type in Configure → Ideal week. |
The status property is auto-detected, but the columns are defined explicitly (see below).
Time tracking and pomodoro settings
| Setting | Default | What it does |
|---|---|---|
| Ask for a description when a session stops | Off | Prompt for the entry’s description after a stop. The entry is written first; skipping loses nothing. The note’s last description is prefilled. |
| Idle detection (minutes) | 30 | Minutes without activity in Obsidian before a running session asks: end when the activity stopped, keep running, or discard. 0 = off. |
| Session cap (minutes) | 480 | Longest session written without asking. Past it (and for a suspicious session found after a restart) you are asked to end at the cap, keep running, or discard. 0 = no cap. |
| Chain phases automatically | On | A completed phase starts the next one: work → break (short, or long every Nth) → work on the same note. A phase stopped early never chains; Skip to the next phase always does. |
| Sound at phase boundaries | Off | A short two-tone cue when a phase completes. |
| System notification at phase boundaries | Off | A desktop notification when a phase completes (permission is requested once). |
| Work / Short break / Long break (minutes) | 25/5/15 | Phase lengths. |
| Long break interval | 4 | Every Nth completed work pomodoro is followed by a long break. |
They are never inferred from the values your notes happen to carry.
One related global setting is not a property name. Minutes per day (default 480 = an 8-hour workday) says how many minutes one day of work represents. It converts minute-based estimates into days for rollups, timeline bars, and calendar spans, and it sizes the day component of every displayed duration (1d 2h).
Defining columns
Columns are defined, never guessed from the values present in notes. A typo in a note can never create a stray column. A board takes its columns, in order of preference, from:
- the per-view Statuses (columns) list (view settings), then
- the Obsidian Starter Kit note type’s allowed status values (if installed), then
- the global Default statuses list (plugin settings, one per line).
A leading number sets the order and is hidden in the header: 10 Todo, 20 Doing, 30 Done. Notes whose status isn’t a defined column go to the Unmapped column (shown first by default; a view option can move it last; hidden when empty). With no definition at all, every card sits in Unmapped.
Manual order
When you reorder cards, the plugin assigns a numeric manual_order. It uses fractional midpoints, so a single move usually rewrites only the card you moved. A column is renumbered to whole numbers only when it has to be (e.g. when some cards have no order yet).
Note types and the Obsidian Starter Kit
The Obsidian Starter Kit is optional. If you use it, everything below configures itself. See Using this plugin with the Obsidian Starter Kit.
Board configuration (currently: colors) is grouped into a note type. When the Obsidian Starter Kit plugin is installed and recognizes your notes as a note type, the board uses that type as its note type. It takes the status property and its allowed values from the Starter Kit and builds columns in the defined order, including empty ones. The Starter Kit remains the source of truth for those facts; your color choices are stored locally in this plugin and keep working even if the Starter Kit is disabled.
You can also define your own note types without the Starter Kit (Settings → Note types → Add note type): give the type a name and recognition rules (by tag, folder, or path regex). The plugin recognizes notes from those rules. Starter Kit recognition is tried first when it’s installed, then your local rules. A note that matches no type (and notes when nothing is defined) uses the Default note type.
Colors
Colors are saved per note type, so all boards of the same note type share them. Each status can use an auto-assigned palette color, a chosen palette color, or a custom hex value. Column backgrounds are a translucent blend of the card color over your theme background. That way they look right in both light and dark themes.
The per-status rows appear in Settings → Note types → Configure → Colors for every note type, whether you just created it or configured it months ago. The statuses listed are the ones the board itself uses: the Obsidian Starter Kit’s declared status values when it owns the type, else the type’s own columns, else the global default statuses.
Swimlanes
A board can be split into horizontal lanes. The grouping is saved per note type (and can be overridden per view):
- None: one plain board.
- By note type: one lane per recognized Starter Kit note type.
- By property: one lane per distinct value of a chosen property; lanes order by a numeric prefix the same way columns do. Cards missing the value collect in an Ungrouped lane (hidden when empty).
Dragging a card to another lane rewrites the grouping property to the target lane’s value (or clears it for Ungrouped). Note-type lanes are read-only, because a note’s type comes from its tags/folder, so cross-lane drags there are ignored.
Relationships
Each relationship role reads a link-property (frontmatter wikilinks), configured per note type in Configure board → Relationships:
| Role | Default property | Meaning |
|---|---|---|
| Parent | parent | Notes this note is a child of. |
| Sibling | siblings | Peer notes (mutual). |
| Child | children | Notes that are children of this. |
| Blocked by | blocked_by | Notes blocking this one. |
Inverse relations are derived automatically (a declared child gives the target a parent, and so on). Setting a role’s property to None turns that role fully off: its badge never appears, no direct links, no inverse of an active opposite role, no heuristic. The Detect children by tag option adds a heuristic: a note carrying one of the listed tags that links to a card counts as that card’s child (this also keeps the child role active).
Every note resolves with its own type’s properties. On a mixed board, a task can name its parent in related_projects while a project names its goal in related_goals, and the whole chain still resolves, badges, WBS tree, zoom, and filters included. Notes without a recognized type fall back to the board’s active note type.
Relationships are editable from the board: the card menu’s Relationships submenu adds and removes direct links, and the WBS re-parents by drag. Every write lands in the owning note’s own role property. Inverse-derived and heuristic relations stay read-only (they live on the other note). A non-empty blocked by flags the card (red badge + edge) and drives the Blocked cards view filter and badge navigation; it never changes status on its own.
Archiving
Archiving moves a note out of the board into a folder, saved per note type in Configure board → Archiving:
-
Archive folder: the destination path. It supports placeholders resolved at archive time:
Placeholder Resolves to Example `` 4-digit year 2026`` 2-digit month 06`` 2-digit day 26`` 2-digit ISO week 26`` quarter (Q-prefix) Q2`` YYYY-MM-DD2026-06-26`` YYYY-MM-DD-HHmmss2026-06-26-143015`` a fresh unique id a1b2c3…Placeholders are case-insensitive. Leaving the folder blank disables archiving. Missing folders are created; a name clash is refused and logged, so nothing is overwritten or silently renamed.
-
Auto-archive on status: optional (off by default). Select one or more statuses; a card is archived the moment it transitions into any of them. Reordering within such a status does nothing.
-
Done-date properties: comma-separated frontmatter properties, first present wins (e.g.
date_completed, date_abandoned). Only used with a grace period (below); blank means the type archives on the transition itself.
Mirrored from the Obsidian Starter Kit. When the Starter Kit (1.19+) declares a type’s archive (Settings → Obsidian Starter Kit → Note types → Edit → Archive), this panel shows that declaration read-only instead: its folder, its archiving statuses, the dates they stamp as the done-date properties, and its per-type delay — which replaces the global grace period below for that type. Edit it there; boards re-sync on every load. Both plugins may keep archiving the same type: a note already under the archive folder is never moved again by either.
You can also archive by hand, from a card’s right-click menu (Archive). Moves go through Obsidian’s file manager, so wikilinks to the note are updated and stay valid.
Folder notes move whole. A note that is its folder’s namesake (Projects/Foo/Foo.md, or with a parenthesised type suffix: Projects/Foo/Foo (Project).md) is archived by moving the folder. Every sibling file goes with it and links keep resolving. On a name clash the move is refused and logged. The same applies to automation Move to folder actions.
Archive grace period
By default an auto-archive status archives on the transition. Settings → Archiving → Archive grace period (days) keeps the card on the board instead, until its done date (the type’s first present done-date property) is that many days old:
- Aged notes are archived when a board loads (once per open board), or on demand with the Archive aged done notes (open boards) command. A notice summarizes what moved.
- A note sitting in an auto-archive status with no done date gets a done-date property stamped with today, which starts its clock. The property picked is the one an automation rule of that type would write on that transition (so Abandoned stamps
date_abandoned), else the first listed. This happens whether the note got there via the board (when no automation rule stamped a date on that transition) or was marked done in the editor or by a script. An unparseable date is left alone and the note waits. - Types without done-date properties ignore the grace period and archive immediately.
- Notes another board or an external tool archived in the meantime are skipped.
Date properties
Three dates drive every mode: the scheduled date (when work is planned to start), the due date (the deadline), and the optional defer date (when it may start). Each is a frontmatter property name resolved at three levels, most specific wins:
- Per board — Configure view (a board that reads different properties than the rest).
- Per note type — _Settings → Note types → Configure → Dates*. Also holds the date format used when writing.
- Global default — Settings → Kanban Action Planner.
Every per-type field is empty = inherit, and shows the inherited value as its placeholder. Blank one out to go back to following the global setting.
Before 1.29, a note type silently copied the global defaults when it was first created and there was no UI to change them, so editing the global Scheduled date property or Due date property appeared to do nothing: the frozen copy won, and the timeline showed everything as Unplanned. Those copies are cleared automatically on upgrade.
Calendar mode
Calendar mode is toggled per view by the in-view Board / Calendar switch. It reads two date properties (their names are set in plugin settings) and writes them when you drag-schedule:
| Property | Default | Role |
|---|---|---|
| Scheduled date | date_scheduled | The Unplanned tab + the calendar’s scheduled day. |
| Due date | date_due | The No deadline tab + the calendar’s due day. |
Dates are parsed leniently (a YYYY-MM-DD or full date string, or a real date value) and written with the note type’s momentjs date format (default YYYY-MM-DD). The calendar’s default range (week/month/quarter/year) and the panel sort (manual order / name / a property) are view options. To narrow the calendar (grid and panel together), use the toolbar filter box. See the usage guide’s “Filtering” section.
The week the calendar grid starts on is set by First day of the week in the plugin settings (default Monday). Keep in mind that this only affects the calendar display; the `` archive placeholder stays ISO week numbering.
Timeline mode
Timeline mode places each card by a start date plus an estimate. There is no end-date property. The start is your scheduled-date property and the milestone list defaults to milestones (Milestones property), both global settings. The estimate defaults to the global Estimate property (estimate, days), and each note type can override the property and unit (days or minutes) in its Configure → Estimate section; minute estimates convert to days via the global Minutes per day setting and always span at least one whole day on the chart. Per view, Configure view → Timeline only sets the Default range (Quarter by default). Estimates are written as plain numbers in the note’s own unit; fractional day values round up to whole days, minimum 1. Old per-view start/estimate/end/milestone keys in a .base file are ignored.
WBS mode
The WBS reuses the properties you already have: the start date is your scheduled-date property, the estimate the same per-type estimate configuration the timeline uses (global days-based default, or the note type’s own property + unit), and the tree comes from your parent/children relationship link properties (each note resolved with its own type’s properties, so cross-type chains work on mixed boards). One new global setting: Progress property (default progress), a number from 0 to 100 driving the per-node progress bars and their rollups. Progress and estimates are always written as plain numbers. There are no per-view WBS options; the collapsed nodes and panel state are remembered per view automatically.
Ideal week mode
Ideal week mode draws the recurring time blocks of the board’s active notes. It shows how you want to spend a week, not a plan for one particular week. Which statuses are active comes from the note type’s status configuration mirrored from the Obsidian Starter Kit (the per-value planning role); without roles, every status not declared done counts. A note also has to carry the time blocks property to appear (tasks do not), and a dated note (a project with a start and a due date, as configured for its type in Calendar) only while today lies between them.
Global settings under Ideal week start with the property names: Time blocks property, Planned minutes property, Target minutes property, Alarm minutes property, Areas property and Committed date property (see the property table; the five ideal-week properties can be overridden per note type in Configure board → Ideal week). Then come the two that decide how targets behave: Target follows planned (on by default: an edit that plans more than a note’s weekly target raises the target to the planned minutes, and a note without a target gets one from its planned minutes instead of a prompt, with a notice; never lowered) and Available hours per week (the base of every share in the targets table; empty = the visible grid hours × 7, the whole week by default). The rest shape the grid: Grid starts at / Grid ends at (hours, the full day by default), Work hours (09:00-17:00 by default; empty = no band) and Work days (mon-fri by default; the band’s days), New block length (60 minutes), Day window (06:00-22:00 by default: the hours that fill the pane, the scale follows the pane height; empty = the whole grid) and Minimum pixels per hour (the grid never gets denser than this and scrolls instead). There are no per-view options. The panel state, the grid / targets face and the two grouping choices are remembered per view.
View modes
Under View modes in the plugin settings, switch off the modes you do not use (Calendar, Timeline, WBS, Triage, Agenda, Ideal week; the board itself stays). A switched-off mode leaves the mode switch of every board, its commands only show a notice, and an embed asking for it (mode=triage) or a view remembered in it opens the board instead. Nothing is lost. Switch it back on and the views come back where they were.
Done state
Per note type, Configure board → Done state defines what “done” means: turn on Has a done state, then pick the property and value(s) that mark a note of that type as done. By default the property is the type’s status property, and you toggle the statuses that count (e.g. Completed and Done). Point it at another property to match its values instead (one per line, case-insensitive); with no values listed, a checkbox true counts as done. A done note reads as 100% complete in the WBS progress rollups, even without a progress number, so parents show real momentum as their children complete.
With the Obsidian Starter Kit (1.13+): when a note type’s Status section there declares its status property and done states, this plugin mirrors them. The done state becomes read-only here (“Mirrored from the Obsidian Starter Kit”), the status property and columns follow the declaration, and one stamping rule per status that stamps a date (Planned → date_committed, Completed → date_completed, …) appears under Automations (Stamp … on …, mirrored, re-synced on every board load; only if empty so a date you set by hand is never overwritten). Edit all of it in the Starter Kit. A type whose Starter Kit status is not configured keeps its plugin-owned done state exactly as before.
Starter Kit 1.15+ with its own automation engine: when Run automation rules is on in the Starter Kit, it stamps those dates itself, from the editor, scripts, other plugins, not only from this board. This plugin then stops generating its mirrored stamping rules (existing sk-stamp:* rules are dropped on the next sync). One executor per rule: no date is written twice. Your own rules here keep running on board writes as before.
Creating notes (quick capture)
Configure board → Creating notes, per note type. Drives the Add card button in each column (see the usage guide).
Every field is empty = inherit, so a Starter Kit note type usually needs nothing here:
| Setting | Empty falls back to |
|---|---|
| Target folder | The Starter Kit type’s associated folder → the folder the Base filters on → Obsidian’s default new-note folder |
| Template | The Starter Kit type’s template → the template your Templater folder/file rules resolve → none |
| Name prefix / Name suffix | The Starter Kit type’s note name prefix / suffix, unless the Starter Kit marks it optional |
| Open the note after creating it | On |
The folder and the name prefix/suffix accept ,, ,, ,, ,.
When the Starter Kit (1.22 and later) marks a type’s name prefix or suffix as optional, it is not inherited: notes created from the board get the bare name, and the field shows None (optional in the Starter Kit). Type one here when you still want this board to decorate the notes it creates — your value always wins. Cards keep stripping an optional affix from notes that carry it.
Prefixes and suffixes keep their spaces ( (Task) is not the same as (Task)), because the Starter Kit recognizes note types by exactly that spelling. They are never added twice.
The template is applied before the card’s status, swimlane value, tags, and order are written, so the column you clicked always wins over a status a template asks for.
Automation rules
Per note type, Configure board → Automations defines rules of the form “when this happens to a note, do that”. Each rule has a trigger, and a list of actions that run in order:
Triggers
- Enters a status / Leaves a status: toggle any of the type’s status values; the rule fires when a note transitions into (or out of) one of them, whether by drag, the card menu, the WBS status dot, a pane drop, a bulk edit, or triage. It fires once per actual transition. Dropping a card back on its own column does nothing.
- Enters a done state: fires when the note enters any of the type’s done values (see Done state) from a non-done one. Completed, Abandoned, Superseded: one rule covers them all, and moving between two done states does not re-fire it.
- Is archived: fires just before the note moves to its archive folder (manual, bulk, or status-triggered), so property changes land on the archived note.
- Property matches a condition:
property = / ≠ / > / ≥ / < / ≤ value, oris set/is unset. Numbers compare numerically, everything else as case-insensitive text (ISO dates order correctly). The rule fires when the condition becomes true. Editingprogressfrom 40 to 100 fires aprogress ≥ 100rule once; nudging it from 100 to 110 doesn’t. Any edit source counts, including typing in the editor, as long as a board showing the note is open.
Actions
- Set property: the value supports the archive placeholders (
,,,,,,,); plain numbers andtrue/falseare written as numbers and booleans. The only if empty toggle skips the write when the property already has a value. That is the right choice for date stamps (date_completed= ``), so a date set by hand wins. - Remove property: deletes the property (e.g. clear
date_duewhen a task is done). - Add tag / Remove tag: edits the frontmatter
tagslist (case-insensitive,#optional). - Move to folder: the same placeholder-driven move archiving uses. Folders are created on demand, a name collision refuses the move (logged), links are preserved.
Automation writes never trigger other automation rules (no cascades). If a transition both auto-archives the note and matches rules, the property/tag actions run first and the archive decides the final folder; move actions on that rule are skipped. With an archive grace period the transition does not archive. A rule that stamps a done-date property (e.g. date_completed = ``) is what the later sweep reads, and the plugin stamps one itself when no rule did.
Card title
The card heading is the note name by default. Per board, Configure view → Cards → Title property picks a property (or base formula) to show as the heading instead. Handy when filenames are IDs or date-prefixed slugs and a title/name property carries the readable label. Cards whose note is missing the property (or has it empty) fall back to the note name. The chosen property is not repeated as a body field, and clicking the card still opens the note.
| Setting | Scope | Default | What it does |
|---|---|---|---|
| Title property | Per board | Note name | Shows this property’s value as the card heading, in board and calendar. |
Filtering the note type’s name decoration
Note types decorate file names so recognition rules can key off them: the Obsidian Starter Kit writes ` (Task), (Project), AI Wiki - `. On a board where every card is already the same type, that decoration is noise, so cards show Ship the plugin, not Ship the plugin (Task).
Configure board → Card titles, per note type:
| Setting | Default | What it does |
|---|---|---|
| Strip the name prefix | On | Removes the type’s name prefix from card titles, optional or not. |
| Strip the name suffix | On | Removes the type’s name suffix from card titles, optional or not. |
| Extra prefixes | Empty | More prefixes to remove, one per line (a Draft - convention, …). |
| Extra suffixes | Empty | More suffixes to remove, one per line. |
Both toggles are on by default for every note type, including types configured before this existed. Turn one off to see the full file name on cards again.
What is stripped is the type’s Name prefix / Name suffix (Creating notes) when you set one there, otherwise the Starter Kit type’s own prefix/suffix. Each side is applied at most once, and only at the very start or end of the title. Leading and trailing spaces count, so list ` (Draft), not (Draft). Extras accept the same , , … placeholders as note creation, and match any value they can produce ( - ` strips 2026-09-22 - ).
An affix the Starter Kit marks as optional is still stripped — the setting says (optional in the Starter Kit) next to it. Optional only decides what note creation ADDS, so older notes that carry the affix and newer ones without it read the same on the board.
This is presentational only, and applies in every view mode (board, calendar, timeline, triage, WBS, agenda, ideal week). File names, search, links, and every write path keep the full name. A note whose entire name is decoration keeps its name rather than showing a blank card.
Due countdown
A card can show a compact countdown to its due date (Today, In 3d, 2d overdue, in 2w, in 3mo; the unit auto-scales from days to weeks to months), color-coded by urgency (red overdue, amber today, orange soon, muted further out). It reuses the same Due date property as the overdue emphasis, so there is no extra property to configure.
| Setting | Scope | Default | What it does |
|---|---|---|---|
| Show due countdown | Per board | Off | Turns the badge on for this board (Configure view → Cards). |
| Due countdown position | Global | Title row | Where the badge sits: Title row (right-aligned pill), Field chip, Top-right corner, or Footer row. |
| Due “soon” threshold (days) | Global | 7 | Within how many days the badge turns warm (orange). Changes the color, not whether the badge shows. |