# Obsidian Tracker: Data Plots From Your Markdown Notes

> Obsidian Tracker is an Obsidian plugin that collects numbers and occurrences from notes, especially daily notes, then renders the results as charts and calendars. It is aimed at users who want lightweight quantified-self reporting without moving their note data into a separate application.

**pyrochlore/obsidian-tracker** — A plugin tracks occurrences and numbers in your notes

- Repository: https://github.com/pyrochlore/obsidian-tracker
- Stars: 1,962 · Forks: 258
- Language: TypeScript
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/pyrochlore-obsidian-tracker

## Why Obsidian Tracker Exists

Obsidian Tracker addresses a specific problem in note-based tracking: a user may record repeated values in daily notes without wanting to maintain a separate spreadsheet or analytics service. The plugin reads those notes and turns the collected data into visual output inside Obsidian. The README names daily notes as the initial source of targets, while the included examples cover habits, blood pressure, finances, file metadata, frontmatter, inline fields, emojis, and multiple targets. This makes the plugin relevant to quantified-self workflows where the vault is already the primary record.

The intended audience is an Obsidian user who wants numbers to remain close to the notes that produced them. Tracker can represent occurrences and numeric values, rather than treating a note as prose that must be interpreted manually. Its examples also show that the plugin is not limited to a single daily checklist. It can inspect frontmatter, inline Dataview fields, sentences, files, tags, lists, and selected files. That flexibility is useful when a user’s tracking method changes over time.

There is a design tradeoff here. Tracker depends on the structure and consistency of the vault. If notes do not contain recognizable targets, the plugin has no data to plot. The README does not describe automatic schema generation, import tools, or a separate data store, so users should treat their note format as part of the application configuration rather than as incidental text.

## How Tracker Reads Obsidian Notes

The documented workflow starts with targets in daily notes, followed by a note that contains tracker code blocks. Preview mode renders those blocks, so the plugin is oriented toward live note views rather than a separate web console. The repository includes an `examples` directory and a simplified examples table in `docs/Examples.md`, which gives users concrete configurations to inspect.

The plugin supports several input paths. Release notes document support for frontmatter fields, lists, existence checks, inline Dataview fields, checkboxes, emojis, HTML image tags as emoji inputs, and values in specified files. Parameters such as `file`, `specifiedFilesOnly`, `fileContainsLinkedFiles`, and `fileMultiplierAfterLink` are documented for retrieving data from selected files. The exact parser behavior for a particular vault is not reproduced in the README, so users should follow the corresponding documentation and example file rather than infer every rule from the project description.

The `1.19.0` release added `searchType: frontmatter.exists`, which tracks whether a frontmatter field exists. The release history also documents expression operators and functions such as `dataset()`, `sum()`, and `maxStreak()`, plus `First` and `Last` expression functions. This separates collection from calculation. A tracker block can identify a dataset and then apply an expression to produce the displayed result. The repository does not claim that Tracker runs independently of Obsidian, so the plugin should be evaluated as part of an Obsidian vault.

## Charts, Calendars, and Expression Processing

Tracker’s output types are more varied than a simple count table. The release notes identify line and bar charts, pie charts, stacked bar charts, and calendar views. The project also records fixes and improvements for full-bar display, axis intervals, axis label formats, chart aspect ratios, legends, tooltips, missing-data coloring, and chart scaling when moving between monthly views. These changes show that rendering behavior is a substantial part of the plugin, not only text parsing.

Calendars have received separate controls. Version `1.17.0` added `colorByStreak` for increasing color intensity based on a streak, while `1.16.0` introduced `thresholdType` and changes to full-bar display. Annotation mode is available for the month view. The repository includes dedicated examples such as `TestCalendar.md`, `TestAxisIntervalAndFormat.md`, `TestBarChart.md`, `TestPieChart.md`, and `TestLegends.md`, which are the clearest starting points for understanding output configuration.

Tracker also treats numeric presentation as part of the configuration. The `{{average}}` format changed in `1.13.3`, and older template variables such as `{{sum}}` were deprecated in favor of expression functions. The migration example in the README is direct: replace `{{sum}}` with `{{sum()}}`, and replace `{{sum(1)}}` with `{{sum(dataset(1))}}`. This is useful for existing vaults, but it means old tracker blocks are not necessarily compatible with the current expression syntax without edits.

## Installing Obsidian Tracker and Creating a First Tracker

The README links to the project’s Installation documentation and says that Tracker can be installed from Obsidian or manually. It does not provide the individual installation commands or manual file-copy steps in the README text, so those commands are intentionally omitted. The documented next step is to install and enable the plugin, then add tracker code blocks to a note. The repository’s examples are the project-specific reference for the block syntax.

The README gives this usage sequence: identify targets in daily notes, create a note for the tracker, add a tracker block manually or use the documented commands, and switch the document view mode to `Preview`. The plugin then renders the code block. Since no complete tracker block is included in the README, a first user should copy a relevant example from the `examples` directory rather than invent syntax.

For contributors or users preparing a local build, the repository provides these documented development commands. `npm run dev` starts Rollup in watch mode, while `npm run build` creates a production build. The automated test commands are also documented.

```bash
npm run dev
npm run build
npm test
npm run test:watch
npm run test:coverage
```

`npm run dev` watches source changes, `npm run build` creates the production bundle, and `npm test` runs the Jest test suite. The package metadata identifies the package as `obsidian-tracker` version `1.19.0` and uses Rollup configuration files for development and production builds.

## Configuration Surface and Operational Limits

The amount of configuration available is both a feature and a learning cost. The project documents target evaluation, input parameters, expressions, settings, commands, and examples as separate documentation topics. Users can configure date boundaries and formats, convert text or emoji values with `textValueMap`, shift values according to rules, filter selected files, and select chart presentation options. Some date-related releases address `YYYYMMDD` numeric YAML, relative dates, and all values of `startWeekOn`.

The repository does not document a general rollback command or a compatibility promise for every older tracker block. That matters during upgrades because expression syntax has already changed. It also does not provide enough information in the README to claim how missing values behave in every chart type. The release notes mention fixes to missing-data coloring, but they do not define a complete data-quality policy.

Tracker is also dependent on Obsidian’s environment. Release history includes fixes for plugin loading on iOS and rendering on some macOS machines, which confirms that host compatibility has been an issue. A user evaluating the plugin should verify the current plugin behavior in the exact Obsidian version and operating system used by the vault. The README does not describe offline data migration, multi-user synchronization, or a server component.

## Obsidian Tracker Versus a Separate Analytics Tool

The practical alternative is a dedicated analytics or spreadsheet workflow that exports data outside Obsidian. The difference is architectural. Obsidian Tracker keeps collection and visualization in the same vault, using notes, code blocks, frontmatter, and Obsidian’s Preview view. A separate tool can provide independent data storage and its own analysis interface, but the README does not document a particular competitor or compare its chart capabilities with Tracker.

Tracker is more suitable when the vault is the canonical record and the desired outputs are small embedded plots, calendars, summaries, and expression-driven values. A separate analytics system is the better fit when data must be shared independently of Obsidian, managed through a formal database schema, or retained when the note application changes. That comparison is based on where the project operates, not on an unsupported claim that either approach is faster or more accurate.

For a tracker user, the first verification should be a small vault containing one daily-note target and one example block. Check that the target is detected, that the rendered output appears in Preview mode, and that the intended date range and expression produce the expected value before copying a larger configuration across the vault.

## Conclusion

Obsidian Tracker fits Obsidian users who already record repeatable metrics in Markdown and want charts, calendars, expressions, and frontmatter queries beside those notes. It is a poor fit for users needing a standalone database, a documented rollback process, or a dashboard independent of Obsidian. Before adoption, verify that the documented installation method fits the vault, then confirm that your notes contain the target syntax and that the expressions and chart settings you need are supported by the current plugin version.

## FAQ

### How do I install Obsidian Tracker?

The README links to the project’s Installation documentation and says the plugin can be installed from Obsidian or manually. It does not include the detailed installation steps in the displayed README text.

### How do I create a tracker in Obsidian Tracker?

Add targets to daily notes, create a note for the tracker, add a tracker code block manually or through the documented commands, and switch the document view mode to Preview. The repository’s `examples` directory contains project examples for this workflow.

### Can Obsidian Tracker read frontmatter and inline fields?

Yes. The release notes document frontmatter support, frontmatter existence checks, frontmatter keys containing lists, inline Dataview fields, and support for emoji values. The README also links to target evaluation and input parameter documentation.

### What changed in Obsidian Tracker 1.19.0?

Version `1.19.0` added `searchType: frontmatter.exists`, allowing the plugin to track whether a frontmatter field exists. The README also identifies version `1.18.0` changes to date parsing, list-valued frontmatter keys, and `startWeekOn`, but those changes belong to the earlier release.

### When was Obsidian Tracker last pushed?

The repository is not archived, and its last push was on 2026-04-13. The release history includes version `1.19.0` on 2026-02-21, version `1.18.0` on 2026-02-19, and version `1.17.0` on 2025-06-20. The README does not provide a maintenance policy.

## Sources

- [Issues](https://github.com/pyrochlore/obsidian-tracker/issues)
- [License: MIT](https://github.com/pyrochlore/obsidian-tracker/blob/master/LICENSE)
- [pyrochlore/obsidian-tracker on GitHub](https://github.com/pyrochlore/obsidian-tracker)
- [README](https://github.com/pyrochlore/obsidian-tracker/blob/master/README.md)
- [Releases](https://github.com/pyrochlore/obsidian-tracker/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/pyrochlore-obsidian-tracker
