github eitchtee/WYGIWYH 0.26.1

one hour ago

Fixes in 0.26.1

Investment returns could read wrong on 0.26.0:

  • Unit-priced accounts now use their income categories, tags and entities. Before, every unlinked outflow counted as a loss, and interest or yields were counted as new money in. A foreign-currency account with interest and one exchange out could show a loss as large as the exchange. Now it works like accounts tracked by value: transactions with an income category, tag or entity are gains or losses, and other unlinked ones are money in or out, valued at that day's price.
  • Transfers out of accounts tracked by value count their own amount. Buying a coin from a savings account no longer moves the coin's price change onto the savings account.
  • API: creating or updating an account with income_categories, income_tags or income_entities no longer returns a 500.

Tip

If your investments show a 0% return, edit them and set the Income categories (or tags) you use for interest, yields and balance corrections. Without them, every transaction that isn't a transfer counts as money in or out, so value always equals invested.

This release includes a database migration (help text only). It runs automatically on startup.

What's Changed in 0.26.1

  • fix(investments): correct returns on unit-priced and value-tracked accounts by @eitchtee in #656

Full Changelog: 0.26.0...0.26.1


0.26.0

Bank Sync

WYGIWYH can now import your bank transactions automatically through a bank data service. Three are supported:

  • Lunch Flow, with an API key
  • SimpleFIN, mostly US banks through SimpleFIN Bridge
  • Pluggy, Brazilian banks through Open Finance

Add a service under Management > Automation > Bank Sync, link each of its accounts to a WYGIWYH account with a "Sync from" date, and it syncs on a schedule (every 24 hours by default). Synced transactions can run your transaction rules, and Match existing transactions links bank transactions to ones you already entered by hand instead of creating duplicates. Your edits to synced transactions are kept, and deleted ones don't come back.

With Pluggy, pending transactions (like credit card purchases on an open bill) come in right away as unpaid and are marked paid with their final amount once the bank confirms them.

Self-hosting your own SimpleFIN server? Add its host to the new SIMPLEFIN_ALLOWED_HOSTS variable.

📖 Bank Sync on the wiki: setup, getting credentials for each service, and how syncing works.

Investments

A new Investments page (Tools > Investments) tracks what you own, what you paid for it and how it's doing. It's built on what WYGIWYH already has: an investment is an account with the new Investment switch on, purchases and sales are transfers, and prices are exchange rates.

  • Priced by units (stocks, ETFs, crypto) or tracked by value (fixed income, savings, pensions, property)
  • Holdings: invested, value, total return and money-weighted return (annualized after a year), with totals in your home currency and the currency effect split out
  • Charts: allocation by asset class and currency, value against invested over time, return per investment
  • Asset classes and rebalancing: set a target % per class and see how much to buy or sell to reach it
  • Income: dividends, rent and interest paid into other accounts can count towards an investment's return
  • A page per investment with value, price against average cost, monthly earnings and income charts
  • DCA entries are now linked as transfers (existing ones included), so they show up as investments automatically
  • API: /api/investment-classes/, /api/accounts/{id}/performance/, and investment_class on accounts

📖 Investments on the wiki: how to set up each kind of investment and what the numbers mean.

Automatic Exchange Rates

  • New provider: AllRatesToday Central Banks. It reads the latest rate table published by a central bank (Brazil, India, ECB and more), no API key needed. Useful when your currency isn't covered by Frankfurter. Thanks @cahthuranag!
  • Options field for provider-specific settings.
  • Single exchange rate is replaced by two options: One exchange rate per day and Exchange rates to keep (a per-pair limit, oldest deleted first). Services that had "Single exchange rate" on now keep 1 rate. Investments use past rates for their history, so if you track investments, clear that limit or raise it.
  • The wiki now also documents the Yahoo Finance, FXMacroData and Transitive providers.

📖 Automatic Exchange Rates on the wiki

Other improvements

  • Better transaction picker for DCA entries and rules: each option shows a mini transaction, results follow the monthly view order, and search matches descriptions, categories, tags, entities, accounts, dates and amounts.
  • Transfers: entities, paid state and inactive items now work properly in the transfer form, and account names use the free space on the row.
  • Fixes: the update banner sticks across page loads and restarts, the mobile datepicker survives boosted navigation, imports no longer hardcode the Docker image's paths, toast close buttons are properly spaced, the DCA create transaction layout is repaired, and a non-ASCII DCR initial access token no longer errors.
  • Demo: now includes investment examples, and moved to demo.wygiwyh.herculino.com, hosted by Simafri.

Thanks to @officialasishkumar, @cahthuranag and @jeonghun917 for their contributions!

This release includes database migrations. They run automatically on startup.

What's Changed

  • fix(updates): keep update banner across page loads and restarts by @eitchtee in #640
  • build(deps): bump oauthlib from 4.0.0 to 4.0.1 by @dependabot[bot] in #641
  • fix(datepicker): keep the mobile overlay attached after boosted navigation by @officialasishkumar in #644
  • chore(dev): run the dev stack in multiple git worktrees by @eitchtee in #645
  • feat(automatic-exchange-rates): add central bank tables as a provider by @cahthuranag in #642
  • fix(import): stop hardcoding the Docker image's paths by @officialasishkumar in #643
  • fix(toasts): space the close button from the text and edges by @eitchtee in #646
  • fix(dca): repair the create transaction section layout by @eitchtee in #647
  • feat(transactions): better transaction picker for DCA and rules by @eitchtee in #648
  • Compare the DCR initial access token as bytes so a non-ASCII token ge… by @jeonghun917 in #649
  • feat(investments): investment tracker with asset classes and rebalancing by @eitchtee in #651
  • feat: bank sync with external providers (Lunch Flow, SimpleFIN, Pluggy) by @eitchtee in #650
  • Translations update from Weblate by @eitchtee in #652
  • fix(transfers): entities, paid state and inactive items in the transfer form by @eitchtee in #653
  • fix(transactions): let transfer account names use the free row space by @eitchtee in #654
  • feat(demo): add investment examples to the demo data by @eitchtee in #655

New Contributors

Full Changelog: 0.25.0...0.26.0

Don't miss a new WYGIWYH release

NewReleases is sending notifications on new releases.