GitHub - leviceroy/Dividend-Tracker: Local-first dividend journal for macOS — downloads & release notes. Source is private. · GitHub
Skip to content

About

Local-first dividend journal for macOS — downloads & release notes. Source is private.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

24 Commits

Folders and files

Repository files navigation

Dividend Tracker

Dividend Tracker

Typing SVG


Release Downloads Last Commit Open Issues

Platform Tauri React TypeScript SQLite License


⬇️ Download the latest release


Explore: Features · Screenshots · Download · Manual · Roadmap · FAQ


Dividend Tracker — dashboard

Important

Dividend Tracker is Bloomberg for dividend investors — on your Mac.

A serious, local-first dividend journal: every payment, every position, every account, every currency — analyzed with decision-grade accuracy. Live prices, forward income on a trailing-12-month DPS basis, yield-on-cost on the capital actually invested, dividend CAGR & growth streaks, splits & DRIP handled correctly, FIRE income target — and your data never leaves your machine.

Free during the beta. ⬇️ Download the .dmg →

First launch on macOS: right-click the app → Open → Open (not Apple-notarized yet).

Your entire dividend life, in one local-first command center.

Why Dividend Tracker

  • Local-first and private. Your portfolio lives in a single SQLite file on your Mac. No accounts, no cloud, no broker logins, no telemetry. Back it up like any other file.
  • Built for the multi-account, multi-currency reality. Track Fidelity USD next to a Swiss broker in CHF; convert with live ECB rates or the historical pay-date rate; see the same number consistently across every tab.
  • Decision-grade accuracy. Forward income on the trailing-12-month DPS sum (not a single payment × frequency, the trap most trackers fall into). Yield-on-cost on the reporting currency actually invested (FX at purchase), not today's spot applied to old costs. Splits, special dividends, and DRIP handled the way an analyst would.
  • A serious income command center. Live valuation, current yield, unrealized & realized P&L, total return, CAGR, growth streaks, cut detection, concentration, FIRE-target progress, an upcoming-ex-date calendar — all in one dense, dark dashboard.

Features

📊 Dashboard — the income command center

KPI rows for realized income (TTM/YTD/MTD), forward income (annual + indicated, gross / net of WHT), valuation (market value, unrealized & realized P&L, total return), dividend growth (CAGR, streaks, cuts), quality (Chowder, 5y DGR, payout ratio, FCF coverage), efficiency / tax / risk (concentration HHI, WHT %, recoverable US WHT, Safety Score) — every card click-expandable for the formula and per-ticker contributor stats.

Dashboard

Plus a FIRE timeline with monthly-contribution projection, a benchmark comparison strip vs SPY / VYM / SCHD / SSMI, breakdowns by account and source currency, lifetime cumulative-income curve, sector allocation, a trajectory chart (yield-on-cost + forward income over 36 months), an income drawdown + total-return drawdown chart, an ex-date heatmap (78 weeks back, 26 ahead), and the Top-10 dividend-payer heatmap (area = income, color = DPS growth).

Dashboard — charts & treemap

Make it yours. Hit ⚙ customise on the FX banner to hide widgets you don't care about; drag the ⋮⋮ handle to reorder. The grid auto-fits to your window: panels pack 2 or 3 across on a wide monitor, single-column on a narrow one — no breakpoints to configure.

💸 Dividends — the income ledger

Every payment in a year/month tree with totals: gross, withholding, net, FX rate, reporting-currency local net, effective WHT %, and per-row YoC (split-adjusted).

Dividends ledger

The entry form auto-fills shares, DPS, FX, and ex-date when possible, with flags for qualifying / DRIP / special. Reinvested dividends with a price create the share-accruing "buy" automatically.

Dividend entry form

🏦 Holdings — what you own, what it pays

Per-position view: native + reporting cost (FX at purchase), forward annual income, YoC. Sortable; portfolio totals in the footer.

Holdings

🔁 Transactions — the source of truth

Buys, sells, opening balances, stock splits, and DRIP-generated buys, all in one ledger. Holdings derive from this via weighted-average cost. Splits scale shares and WAC correctly so cost basis stays intact.

Transactions

The transaction form supports T+1 settle-date auto-fill on the correct market calendar (US NYSE / Swiss SIX, holidays included) and an FX-rate-at-trade field with one-click historical fetch — so cost basis reflects what you actually invested in your reporting currency.

Transaction form — FX at trade

🏛 Accounts — per-broker rollup

Each broker account with currency, TTM income, and live market value of its holdings. Default-sorted by value.

Accounts

⚙️ Admin — preferences, demo data, updates

Reporting currency, FX display mode (at-current vs at-transaction) and provider, FIRE income target, demo-data load/delete, the database file location, in-app updates, and release notes.

Admin

And…

  • Multi-currency, with two display modes: at-current (live ECB / Yahoo rates) for net-worth tracking, at-transaction (pay-date rate) for tax reporting.
  • Splits, special dividends, DRIP — modeled correctly, not approximated.
  • Auto-updates — the app checks for new signed releases on launch and offers an in-place update with release notes.
  • Universal binary — runs natively on Apple Silicon and Intel.

Screenshots

Download & Install

Grab the latest .dmg from Releases. Universal build — Apple Silicon and Intel.

  1. Open the .dmg and drag Dividend Tracker to /Applications.
  2. First launch: right-click → Open → Open (the app isn't Apple-notarized yet, so Gatekeeper warns). Or, from the terminal:
    xattr -dr com.apple.quarantine "/Applications/Dividend Tracker.app"
    

The app starts with an empty database (per user, under ~/Library/Application Support/com.chrismeiam.dividend-tracker/). Pop into Admin → Load demo data to explore with a sample portfolio before entering your own.

Updates

The app checks the public release feed on launch and prompts to install a newer signed version (verifies a cryptographic signature, downloads, installs, relaunches). You can trigger a check anytime from Admin → Check for updates — and read the release notes from Admin → Release notes.

Try it instantly

Admin → DEMO DATA → Load demo data seeds two sample accounts (Fidelity USD, Swissquote CHF), four holdings (JNJ, KO, NESN, NOVN), and five recent dividend payments so every tab fills with realistic numbers immediately. Delete demo data removes exactly those rows — your own data is never touched. Loading is blocked once you've entered real transactions.

Recently shipped

The v0.8.x arc widened the Dashboard into a customisable analyst surface and landed the dividend-quality lens the app was missing:

  • Dividend Safety Score (open formula, no subscription) — 0–100 read per holding from streak, payout ratio, FCF coverage, debt/equity, earnings growth. Every weight documented; ETFs and funds skipped cleanly.
  • Quality KPI row — Chowder Number, income-weighted 5y DGR, payout ratio, FCF coverage — each click-through detail panel explains the formula and the threshold band.
  • Benchmark comparison — portfolio vs SPY / VYM / SCHD / SSMI: 1y total return, current yield, 3y DGR, with spread.
  • Aristocrat / King / Achiever / Contender badges with portfolio income-share by class.
  • Trajectory chart (YoC + forward income over 36 months) · drawdown chart (income + total return) · ex-date heatmap (78 weeks back, 26 ahead) · FIRE timeline with monthly-contribution projection.
  • Per-ticker drill page — full dividend history, growth, fundamentals, positions across accounts, free-form research notes.
  • Customisable dashboard — hide/show widgets via the ⚙ customise panel; drag the ⋮⋮ handle to reorder; layout auto-fits to viewport width (panels pack side-by-side when there's room, stack when there isn't).
  • Command palette (⌘K) — global fuzzy navigation across tabs, dialogs, and actions.
  • CSV export for Dividends / Holdings / Transactions / Accounts.
  • Allocation by market value — sector and geography lenses sit alongside the income-weighted allocation, so "where is my money concentrated" is answerable from the dashboard.
  • Reinvestment simulator — counterfactual overlay: pick 1Y / 3Y / 5Y / All and see the actual cumulative income curve next to "what if every dividend since then had been DRIP'd into the same ticker?" The widening gap visualises the compounding effect with the delta in the header.
  • Watchlist tab — pre-purchase research dock between Holdings and Transactions. Per-row current price, TTM yield, 5y DGR, payout, FCF coverage, expense ratio, Safety Score band. Target-price and target-yield cells light up green when the market crosses them. Inline-create new instruments without leaving the tab; one click to promote a ticker to a real position.
  • Expense ratio + TTM yield per instrument — Holdings + Watchlist both show the two key fund metrics. Expense ratio for ETFs / funds banded cheap-index (<10bps) green to expensive (>50bps) red. TTM yield prefers your own ledger when there's local dividend history, falls back to Yahoo's stored value for fresh tickers.
  • Broker-declared ex-dividend dates + macOS notifications — the Upcoming Ex-Dividend Dates widget reads broker-published dates from Yahoo's calendarEvents instead of projecting from history. Each row shows green ● declared / muted ○ projected so you can tell which figures are authoritative. Admin → NOTIFICATIONS opt-in fires a macOS notification N days before each declared ex-date (default 3 days).
  • Owner Earnings + Implied Cost of Capital — Buffett / Damodaran lens on the dashboard. Owner Earnings yield (FCF proxy), Implied CoC (fcf_yield + earnings_growth), Equity Risk Premium vs your risk-free setting, plus a Coverage column so you can see when the headline is half-blind.
  • Sector-tuned Safety Score — payout-ratio bands now adjust for business model: REITs and utilities get looser thresholds (80% payout is normal); financials get tighter ones. Watchlist gets a new COVERAGE column that flags when a Safety Score is computed from partial data.
  • Per-transaction fee split — the FEE column on transactions now breaks down into commission, stamp duty (Swiss FSTT / UK SDRT), and FX spread. Click ▾ split on the transaction form to enter each separately; the legacy aggregate stays in sync.
  • Per-account portfolio detail — click any row on the Accounts tab to drop into a dedicated per-portfolio surface: 4 KPI cards (value, total return, IRR, passive income), allocation donut + breakdown table across six asset classes (Stocks, REITs, Bonds, Commodities, Funds, Cash placeholder), holdings list scoped to the account. Auto-classifies from Yahoo's fund category; per-ticker override in Admin → Data → INSTRUMENTS cleans up the Yahoo misclassifies in minutes. Per-account math reuses the dashboard helpers on filtered slices, so summing across accounts equals the portfolio headlines by construction.
  • Monte-Carlo on the FIRE timeline — 1,000 sequence-of-returns paths overlay the deterministic projection as a p10–p90 ribbon, so the income-target answer is honest about uncertainty. Volatility and path count are configurable in Admin → FIRE & PROJECTIONS.
  • Declared-pay override for Forward Annual — Yahoo's summaryDetail.dividendRate already reflects announced raises. Forward Annual now prefers the declared per-share rate per ticker, falling back to the TTM-DPS sum where unavailable. The FORWARD ANNUAL detail panel shows Trailing / Indicated / Declared side-by-side so you can see which source the headline is using.
  • Fuzzy ticker search — typing SPI in any ticker field surfaces SWX:CHSPI. Arrow keys + Enter to pick.
  • Undo toasts on the heavy-traffic tables · per-jurisdiction treaty WHT rates · user-configurable yield band thresholds.

Coming next

A focused build queue, in the order it'll land. The roadmap is open — see How to vote below.

1. Broker CSV import — Schwab · Fidelity · IBKR · Swissquote · UBS

Stop typing dividends by hand. Drop in a broker CSV, map the columns once, and the app dedups the rest. This is the biggest day-one friction, so it lands first. → #9 Broker CSV import

2. Tax-year CSV exports — DA-1 (Swiss) + 1099-DIV (US)

Pre-formatted exports against the WHT-tracking work already in development. One CSV per tax year, per jurisdiction, ready for your accountant. → #4 Per-jurisdiction tax reports + CSV exports

3. Cost-basis methods — FIFO / LIFO / WAC

Today every position uses weighted-average cost. Adding FIFO and LIFO as selectable per-account methods unlocks lot-level realized P&L for the tax exports above — particularly relevant for US 1099 reporting.

4. Windows build

Tauri supports it; the signing + auto-update pipeline needs porting. → #5 Windows build

After those, in priority order: iOS / iPad read-only companion (#15) · encrypted iCloud backup · WHT-tracking general availability (#1). The full backlog lives in ROADMAP.md and the open roadmap issues.

How to vote

Want a feature higher up? Reactions are the vote. Open the issue, click the smiley (😀) button at the top-right of the issue body, and pick 👍. The roadmap is sorted by 👍 count — the most-voted items get prioritised. Comments are welcome too, but reactions are what move the priority needle.

Found a bug or have an idea that isn't tracked yet? Open an issue.

FAQ

Is my data private? Yes. It lives in a single SQLite file on your Mac. No accounts, no cloud, no broker connection.

Does it connect to my broker? No. You enter buys, sells, splits, and dividends yourself (the demo data shows the shape). The app fetches public market prices, exchange rates, and historical dividend events from Yahoo / Frankfurter (ECB).

Does it run on Intel Macs? Yes — universal build.

Windows? Planned. The Tauri stack supports it; not built yet.

Is it really free? Free during the beta. A yearly subscription is planned later; existing installs will keep working.

Does it give financial or tax advice? No. It's an informational tool. Verify any figure before relying on it for trades or taxes — see the EULA.

License

Proprietary — see the EULA. The Software is licensed, not sold; redistribution and reverse engineering are not permitted.


© 2026 Chris Wenk. All rights reserved.

About

Local-first dividend journal for macOS — downloads & release notes. Source is private.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors