π Obsidian Vehicle Dashboard
A self-updating vehicle cost & maintenance dashboard for Obsidian, built entirely on plain markdown notes, the Dataview plugin, and a CSS snippet β no external services, no spreadsheets, no manual math.
Log a fill-up or a repair as a normal note with a few frontmatter fields, and the dashboard automatically calculates everything else.
β¨ What it tracks
| Metric | How |
|---|---|
| π£οΈ Current odometer | Highest odometer reading across all logged notes |
| β½ Average consumption (L/100km) | Fill-to-fill method β averaged across every valid full-tank-to-full-tank segment, not a naive totalΓ·total |
| πΆ Fuel cost this month | Sum of fuel spend in the current calendar month |
| πΆ Fuel cost / 100km | Same fill-to-fill segments, cost instead of liters |
| π§ Total maintenance cost & cost/km | Oil changes, inspections, tyres, tyre rotations, battery, repairs |
| π’οΈ Next oil change | From the last logged oil change's due date/odometer |
| π Next inspection | Same, for roadworthiness inspections |
| π Next tyre rotation | Defaults to 10,000 km from tyre fitting date until you log an actual rotation |
| π Tyre age | From the last logged tyre fitting (or a fallback baseline field) |
| π Battery age | Same, for the battery |
| π° Total ownership cost | Purchase price + all fuel + all maintenance + all other costs |
| π§Ύ Other running costs | Insurance, parking, tolls, fines, car washes β tracked separately from mechanical maintenance |
| π Alerts | Overdue/due-soon warnings for oil, inspection, tyre rotation, aging tyres/battery, and a heuristic for a possibly-missed fill-up |
All thresholds (alert windows, tyre/battery age limits, rotation interval) are plain constants at the top of the script β no need to touch the logic to retune them.
π¦ What's in this repo
βββ Dashboard.md # The live-calculating dashboard note
βββ Vehicle Info.md # One-time baseline: purchase price, tyre/battery install dates, etc.
βββ Vehicle Dashboard Entry Manual.md # Field-by-field reference for both templates
βββ Templates/
β βββ Fuel Entry Template.md
β βββ Maintenance Entry Template.md
βββ Fuel Log/ # One note per fill-up
βββ Maintenance Log/ # One note per service/repair/cost
βββ vehicle-dashboard.css # Optional styling (cards, colored alerts, bordered tables)
π Setup
- Install the Dataview community plugin and enable JavaScript queries (Settings β Community plugins β Dataview β Enable JavaScript Queries β off by default).
- Copy this repo's contents into your vault (any location β the dashboard finds notes by frontmatter
type:, not by folder path). - (Optional but recommended) Copy
vehicle-dashboard.cssinto your vault's.obsidian/snippets/folder, then enable it under Settings β Appearance β CSS snippets. - Fill in
Vehicle Info.mdonce with your car's details. - Open
Dashboard.mdβ it should render immediately using the sample data. Delete the example notes and start logging your own.
βοΈ Adding entries
Copy Templates/Fuel Entry Template.md or Templates/Maintenance Entry Template.md (e.g. via Obsidian's Templater plugin, or just duplicate + rename), fill in the frontmatter, save.
Minimal fuel entry:
---
type: fuel
date: 2026-09-05
odometer_km: 128450
liters: 38.7
cost_eur: 62.30
full_tank: true
missed_previous_fillup: false
station: "EKO"
---
Minimal maintenance entry:
---
type: maintenance
date: 2026-09-05
odometer_km: 128500
category: oil_change
cost_eur: 90
next_due_date: 2027-09-05
next_due_odometer_km: 138500
notes: "5W-30 synthetic + filter"
---
Full field reference, category list, and common pitfalls are documented in Vehicle Dashboard Entry Manual.md.
β οΈ Rules that actually matter
- Frontmatter must start on line 1 β no leading blank line, no wrapping it in a
```yamlcode fence. - Dates are always
YYYY-MM-DD. categoryvalues are exact, lowercase, underscored words β see the manual for the full list.- Fill to full whenever practical β the consumption/economy math only trusts full-tank-to-full-tank stretches.
π οΈ Customizing
Everything lives in two files:
Dashboard.mdβ all calculation logic, in onedataviewjscode block. Category lists (MAINT_CATEGORIES/OTHER_CATEGORIES) and alert thresholds are constants near the top.vehicle-dashboard.cssβ all visual styling, using Obsidian's own theme variables so it adapts to light/dark mode and whatever theme you're running.
To add a new maintenance category, add it to the appropriate array in Dashboard.md β it'll start appearing once you log at least one entry using it.
π License
MIT β use it, fork it, adapt it to your own vehicle (or fleet).
How to Install
- Download the dashboard markdown file from GitHub
- Drop it into your vault (anywhere)
- Install the Homepage plugin and point it at the file
- Enable any listed CSS snippets for the intended look
Stats
Stars
2
Forks
0
License
MIT
Last updated 1mo ago
Categories