Skip to content

Repository files navigation

Ledgr — Personal Finance for Obsidian

Multi-currency personal finance tracker that lives entirely inside your Obsidian vault. No accounts, no cloud, no subscriptions.


Features

Core

  • Quick transaction capture — log expenses and income in seconds via modal or command palette; Enter to save on desktop
  • Dashboard — monthly cash flow summary: income, expenses, savings, savings rate gauge, category donut chart, 6-month trend, per-category budget bars; Cash Flow Health panel (OCF/ICF/FCF)
  • Budgets — set per-category monthly limits with over-budget indicators and fixed/variable classification
  • Net worth tracker — bank accounts, investment accounts, and liabilities across multiple currencies with allocation chart and history chart
  • Liability tracker — track loans, mortgages, credit cards; log payments with live balance preview; closure prompt when paid off
  • Debt cost analysis — enter APR to see monthly interest cost, months to payoff, total interest, extra payment what-if, avalanche vs snowball priority order
  • Property equity — link a mortgage to a property asset to track equity %, LTV ratio, and principal paid
  • Financial statements — CPA-style Income Statement, three-section Cash Flow (Operating/Investing/Financing), Balance Sheet; K/M/B formatting
  • Cash Flow Forecast — 3/6/12M projection, what-if simulator (up to 4 scenarios), Runway to Commit timing
  • Savings goals — set a target amount, deadline, and linked account; see projected completion date and progress bar
  • Daily countdown — budget remaining and daily allowance for the rest of the month
  • Recurring templates — save fixed monthly expenses and income; apply in one click at month start

Standing — The Bearing

  • Financial health index — scored 0–100 from 6 behavioral pillars (Discipline, Ballast, Provision, Composure, Momentum, Reserve)
  • Shareable card — old money assay seal design, zero monetary amounts, exportable as PNG
  • Forward projection — "At current trajectory, Established in ~4 months" based on score history
  • Behavioral guidance — weakest pillars surface with deep-links to the relevant section

Reports

  • Monthly review — generate a Markdown note summarizing any past month
  • Ledgr Wrapped — annual year-in-review note

Transfer Tracker (opt-in)

  • Log international money transfers with fee, exchange rate, and received amount
  • Dashboard widget with monthly and YTD totals, lifetime sent, history with period filter

Navigation & UX

  • Sticky top tab bar — Dashboard | Net Worth | Statements | Standing — works on mobile and desktop
  • Transaction edit and delete (2-step confirm on delete)
  • Currency toggle — switch between base and secondary currencies instantly
  • Old Money design system — charcoal, small caps, tabular numerals
  • Guidance deep-links scroll to the relevant section in the target tab

Mobile

  • Fully responsive throughout
  • Safe-area-inset support for iPhone notch and home indicator
  • Compact controls in sticky zone on small screens

Quick Start

Manual installation:

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. In your vault, create the folder .obsidian/plugins/ledgr/.
  3. Copy the three files into that folder.
  4. Open Obsidian → Settings → Community plugins → enable Ledgr.
  5. The onboarding wizard runs on first launch.

From the community store (pending review): search "Ledgr" in Settings → Community plugins → Browse.


How It Works

All data is stored as plain files in your vault under a configurable folder (default: Private/Finance).

  • Transactions — monthly Markdown files (transactions/YYYY-MM.md) as human-readable tables with Dataview inline fields
  • Budgetsbudgets.json
  • Net worthnetworth.json (accounts, brokerages, liabilities)
  • Goalsgoals.json
  • Transfersremittances.json (if transfer tracker is enabled)

No external services are contacted. No data ever leaves your device.


Configuration

Open Settings → Ledgr or tap the gear icon on the dashboard.

Setting Description
Finance folder Vault path where all Ledgr data is saved
Base currency Your primary currency (JPY, USD, EUR, PHP, etc.)
Secondary currencies Up to two additional currencies for display toggles
Exchange rates Manual rates — update as needed; staleness indicator on dashboard
Enable transfer tracker Opt-in module for international transfers
Append to daily note Auto-append spending summary when opening a daily note

Exchange rates use the format BASE_QUOTE — e.g. JPY_PHP means 1 JPY = X PHP.


Liability Tracker

Add liabilities (mortgage, car loan, credit card, personal loan, student loan, installment/BNPL) in the Net Worth tab. For each liability set:

  • Original amount and current balance
  • Monthly payment amount and due day
  • Reminder days ahead (shows upcoming payment banner on the dashboard)

When a payment is due, a banner appears on the dashboard with a Pay button. Tapping it opens a payment modal showing a live preview (Balance → Payment → Remaining), logs the payment against the account balance, and records it as a transaction in the correct expense category.


Transfer Tracker

Enable in settings. Log any international transfer with:

  • Amount sent and received
  • Service (Wise, Revolut, Bank Transfer, or custom)
  • Fee and exchange rate at time of transfer

Dashboard shows monthly/YTD totals alongside regular spending. Full history with month/year/all-time filter.


Dataview Compatibility

Transactions are written with Dataview inline fields so they can be queried directly.

TABLE amount, currency, category, subcategory
FROM "Private/Finance/transactions"
WHERE type = "expense"
SORT date DESC
TABLE sum(amount) as Total
FROM "Private/Finance/transactions"
WHERE category = "Food & Drink"
GROUP BY date

Fields per transaction: date, type, amount, currency, category, subcategory, note.


File Structure

<financeFolder>/
  transactions/
    YYYY-MM.md           # One file per month — readable table + Dataview fields
  budgets.json           # Category limits
  networth.json          # Accounts, brokerages, liabilities
  goals.json             # Savings goals
  remittances.json       # Transfer history (if enabled)
  ledgr-templates.json   # Recurring transaction templates
  ledgr-bearing.json     # Bearing score history (per-pillar, monthly)
  ledgr-nw-history.json  # Net worth snapshots (monthly totals)
  reviews/
    YYYY-MM-review.md    # Generated monthly review notes
    YYYY-wrapped.md      # Generated annual wrapped notes

Development

Requirements: Node.js 18+, npm.

npm install

# Dev build with watch + auto-copy to vault
VAULT_PATH=/path/to/your/vault npm run dev

# Production build
VAULT_PATH=/path/to/your/vault npm run build

Create a .env file in the repo root with VAULT_PATH=/path/to/vault to avoid setting it every time.


Roadmap

  • CSV import / export
  • Recurring transaction templates
  • Historical exchange rate tracking
  • Net worth snapshots over time
  • Multi-household / multi-country view

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages