What's new

Release notes

v1.0.0

Released 29 July 2026

Nixpense: drop in a statement and see exactly where you stand.

Designed, built and maintained by Nixpense.

What it does

  • Import a bank or credit-card statement, or a paystub, as a PDF, and Nixpense reads the balances, the interest rate, the due date and every transaction straight off it — no typing. It recognises the major Canadian issuers, and reads an unfamiliar one from its labels rather than refusing it. When it does get a field wrong, correcting it teaches the parser where that figure sits on the page, so the next statement reads correctly.
  • It checks the arithmetic before it shows you anything. A statement is a closed system — previous balance, minus payments, plus purchases, equals the new balance — and Nixpense will not present a figure that does not add up. When it cannot verify something, it says so plainly instead of guessing.
  • From there: your net worth, what each debt actually costs you a month, a payoff plan that names which debt to attack first and when each one clears, the interest you have genuinely paid, and an income picture read from your paystubs.

Money in more than one currency

  • An account carries its own currency, so a loan taken out abroad stays denominated in the currency it was borrowed in, and its value at home follows the market rather than being frozen at the rate on the day you typed it in. You can view each currency separately — with no conversion — or combined into one total when that is the number you want.
  • Statements are read automatically from Canadian institutions. An account held in another currency is added the same way any account is, by entering it and choosing its currency; only the automatic reading of a foreign statement is out of scope.

Your data is yours

  • Nixpense never asks for a bank login. You hand it a document, and nothing else. Everything you import can be exported as a single file or deleted at any time, and the retained originals are listed so you can see exactly what is held.
  • The full detail is in the Privacy Policy and Terms, both readable without an account.

Database migrations in this version

Relevant if you run your own instance — apply these in order.

  • 0001_init — core schema and row-level security
  • 0002_account_loan_end_date
  • 0003_statements — retained statement contents
  • 0004_payments — payment ledger with the interest/principal split
  • 0005_paystubs — payroll history and income projection
  • 0006_document_storage — retained PDFs (private storage bucket + policies)
  • 0007_credit_limit — card limits, for utilisation
  • 0008_account_last4 — tells apart two accounts at the same bank
  • 0009_multi_currency — hold balances in more than one currency
  • 0010_days_accrued_fractional — lets a first payment record a part-day accrual
  • 0011_parser_rules — the parser remembers what you corrected
  • 0012_payment_reminders — opt-in email before a due date
  • 0013_harden_functions — pin a trigger search_path, un-expose the signup trigger from the API
  • 0014_rls_initplan — evaluate auth.uid() once per query instead of once per row
  • 0015_foreign_key_indexes — cover the nine foreign keys a cascade delete has to scan
  • 0016_net_worth_snapshots — what you were worth, recorded daily rather than inferred