Skip to content

v0.0.1-beta

Latest

Choose a tag to compare

@johnra74 johnra74 released this 07 Sep 18:19

Changelog

Notable changes to MyFinance, newest first. Format follows
Keep a Changelog; versions follow
Semantic Versioning.

The version itself lives in Directory.Build.props and is the single source — the release
archive takes its name from it, the documentation reads it, and About shows it.

v0.0.1-beta — released

The first release. Everything below is new, so this entry describes what the application
does rather than what changed in it.

What it is

A personal finance application for Windows, written to replace Microsoft Money Plus Sunset
for one person's own books. It keeps a single encrypted book on the machine it runs on and
nothing leaves that machine: no telemetry, no crash reporting, no account aggregation, no
network calls of any kind. Bank data arrives only as a file the user downloaded themselves.

The book

  • One encrypted file (.mfdb) with a small sidecar (.mfmeta) holding the key
    derivation parameters and the schema version. Full-database encryption via SQLCipher, with
    the key derived from the password by Argon2id.
  • The password is never stored, in any form, and there is no recovery path. This is a
    deliberate design decision, not an omission — a book whose password is lost is lost.
  • Backups to a single .mfbak carrying both halves of the book, checkpointed and
    verified after writing. Taken automatically when the book is closed — on by default,
    because there is no password recovery and often no other copy — keeping the last ten by
    default, in a folder of your choosing. Restore happens before a book is opened, so nothing
    is holding the file being replaced.
  • A book from a newer version is refused, rather than opened read-only and quietly
    misread. The schema version is recorded in both the database and the sidecar.

Accounts and the register

  • Eight account types — checking, savings, money market, certificate of deposit, cash,
    credit card, line of credit and brokerage — grouped into bank, credit and other, with
    subtotals and a net-worth total that signs liabilities correctly. Anything else a migrated
    book contains arrives under a read-only catch-all rather than being forced into a type it
    is not.
  • A register with a running balance, splits, transfers as two linked legs, cheque numbers,
    cleared and reconciled states, and reconciliation against a statement.
  • Amounts are an integer count of cents throughout. No binary floating point anywhere in the
    arithmetic.

Getting a Money book across

  • A pure-C# reader for the Jet 4 / MSISAM format a .mny file uses — accounts,
    categories, payees, transactions, splits, transfers, payee memory, recurring bills and
    holdings.
  • The .mny is only ever read. Never opened for writing, moved or renamed.
  • Money's three category levels become two plus an income/expense kind; its payee memory
    becomes the memory that fills in the next import; its recurring bills come across with
    their frequencies verified against Money's own Bills screen rather than guessed, and a
    series whose repeat code has never been verified is reported for manual setup rather
    than converted to something plausible
    .
  • Due dates a bill was overdue for arrive skipped rather than outstanding, so the first
    auto-entry after a migration does not write a decade of payments that never happened.

Importing a statement

  • OFX 1.x and 2.x, QFX, QBO and QIF, with account matching, duplicate detection, a
    ledger-balance cross-check that catches a file imported with every sign reversed, and
    undo for a whole import.
  • Full account numbers are never stored — only a masked tail for display, plus a keyed
    digest used to recognise the account next time.

Categorizing

A six-source suggestion chain, tried in order of how much it can be trusted: a rule the user
wrote, a category named in the file itself, the payee's remembered category, a statistical
classifier, the merchant this one most resembles, and the bank's industry code. Every
suggestion says which source produced it.

The resemblance source uses a sentence-embedding model that runs locally; no transaction
text is sent anywhere. It is measured, not assumed, at around 63% correct — it earns its
place by covering rows nothing else can, not by being reliable, and it is tried last for
that reason.

Bills, budgets and reports

  • Recurring bills computed from an anchor date rather than from the previous occurrence, so
    a bill due on the 31st does not creep backwards after one February. Overdue backlogs are
    counted and shown, not silently entered.
  • A cash-flow forecast that names its low point.
  • Budgets: a figure per category per month, rollover of surplus only, and copy across a year.
  • Eight reports — spending by category and by payee, income by category, income and spending
    over time, account balances, net worth over time, transaction detail and a period
    comparison — each with both a chart and a table, drill-down to the transactions behind
    any figure, and CSV export.
  • Printing, with a preview.

Getting data back out

Constitution principle 10 is that the user's data stays theirs. Every report exports to CSV,
and the whole book exports to one documented JSON file that can be read without
MyFinance.

The export is not encrypted. That is what makes it readable by other software, and it
means an export needs the same care as any other copy of your finances.

Help and diagnostics

  • F1 anywhere, and a Help button, opening the page about the screen you are on. The
    documentation is carried inside the executable and read from your own machine, so it works
    with no connection and always describes the build you are running.
  • About shows the version, the licence and the third-party notices, and is reachable
    from the unlock screen without opening a book.
  • A diagnostics log, bounded in size, that records what went wrong and never records
    payees, amounts or account names
    . It is written and never transmitted.

What is in the download

MyFinance-1.0.0-win-x64.zip contains:

File
MyFinance.exe The whole application, about 85 MB
LICENSE Apache License 2.0
NOTICE Third-party notices for everything the executable carries

Requirements

  • Windows 11, x64 or ARM64.
  • No .NET runtime, and nothing to install: the executable is self-contained, needs no
    administrator rights, and can be copied anywhere, including onto a memory stick.

Known limitations

Stated because knowing them before you start matters more than a short list does.

  • No password recovery. By design, and worth repeating.
  • One currency. Account.CurrencyCode exists but the arithmetic does not honour it, so
    two currencies would silently add. A second currency is not supported and should not be
    entered.
  • No CSV statement import. A bank offering neither OFX nor QIF cannot be imported.
  • Search is per-register. There is no search across every account at once.
  • No attachments. A receipt cannot be kept against a transaction; the memo is text.
  • No tax-line assignment or tax report. A category can be flagged tax-related and
    nothing more.
  • Loans and mortgages arrive read-only, with no amortization and no principal/interest
    split, so a payment is one lump against a category.
  • Holdings arrive without cost basis. Money records none this reader can recover, so a
    migrated holding brings its quantity and nothing about what it cost.
  • A password-protected .mny cannot be read. Remove the password in Money and save a
    copy. MyFinance does not decrypt Money files.
  • No updater, and nothing that says a new version exists. Every upgrade is a file copy.
  • No idle lock. An open book stays open for the session; nothing re-asks for the
    password, so an unlocked book on an unattended machine is readable.
  • Accessibility is unverified. Every chart ships with a table and every status colour is
    written out in words, so no figure depends on seeing a colour — but there is no tested
    statement of keyboard-only, screen-reader or high-contrast support.
  • The executable is unsigned, so Windows SmartScreen will warn the first time it runs.

Licence

Apache License 2.0. See LICENSE, and NOTICE for what the executable carries and under
what terms.

Microsoft, Microsoft Money and Windows are trademarks of Microsoft Corporation. MyFinance is
not affiliated with or endorsed by Microsoft, and names those products only to describe what
it reads and what it runs on.