📘 Double-Entry Bookkeeping

Real Books. Debits, Credits, Proof.

A genuine double-entry ledger — chart of accounts, balanced journal entries, trial balance, investment cost basis, multi-currency, and tax tracking. Not an approximation.

🔒 Data never leaves your device — no account, no server, 100% private
Total Assets
$0
Total Liabilities
$0
Net Worth
$0
Savings Rate (MTD)
0%
Books Status
✏️ New Entry
0 entries
DateDescriptionTypeCategoryAmount
🏦 Chart of Accounts 0 accounts
CodeNameTypeCurrencyCash? Balance

💡 Every account has a normal balance: Assets & Expenses increase with debits · Liabilities, Equity & Revenue increase with credits. This is what makes the books provably correct — not just organized.

🔄 Reconcile an Account
Pick an account and enter the statement balance to begin.
📈 Holdings $0 market value
AccountSymbolSharesAvg CostCost BasisPriceMarket ValueUnrealized
💵 Buy / Sell

Uses average cost basis (ACB) — the method the CRA requires for identical properties, and a defensible standard elsewhere too. Realized gains post automatically to a Realized Capital Gains revenue account.

💰 Realized Gains this year
Total Realized$0
to

⚖️ Balance Sheet (as of today)

Total Assets$0
Total Liabilities$0
Total Equity$0
Assets = Liabilities + Equity?

📄 Income Statement this month

Total Revenue$0
Total Expenses$0
Net Income$00%

💸 Statement of Cash Flows this month

Operating Activities$0
Investing Activities$0
Financing Activities$0
Net Change in Cash$0

🧾 GST/HST Remittance this month

Tax Collected (on revenue)$0
Tax Paid / ITCs (on expenses)$0
Net Owed to CRA$0

🔍 Trial Balance ✓ Balanced

CodeAccountDebitCredit
Totals$0$0

📒 General Ledger

DateMemoDebitCreditRunning Balance

📈 Net Worth Trend

🍩 Spending by Category this month

🌍 Currency
FromToRateDate
📗 Migrate from QuickBooks

In QuickBooks: Reports → Journal (or Transaction Detail by Account with Group By set to None) → export to CSV, for your journal. For your accounts, export your Account List (Chart of Accounts) to CSV. Import the Chart of Accounts first — the journal import matches transactions to accounts by name.

Each QuickBooks journal line becomes one debit or credit line here — your existing double-entry structure carries over directly, it isn't reconstructed from guesses. Any transaction that doesn't balance, or references an account we can't match, is skipped and listed above rather than posted incorrectly.

⬇ Import / Export
Every export includes your full chart of accounts, journal entries, investment lots, and FX rate table — a complete, portable set of books.

What Makes This Actual Bookkeeping

Most free trackers ask what you own and what you owe, then call it done. Real bookkeeping is built on one rule that never bends: every entry has a debit and a credit, and they must always be equal. That single constraint is what makes a trial balance provable instead of just plausible — the "Books Status" badge above isn't decoration, it's the actual mathematical proof that nothing in your ledger is unaccounted for.

Quick Entry vs. Advanced Journal Entry

Quick Entry still works exactly like a simple tracker — pick Income, Expense, or Transfer, fill in the blanks. Behind the scenes, it's generating a fully balanced double-entry journal entry for you, so you get the speed of a simple app with the rigor of real books.

Advanced Journal Entry is there for the transactions Quick Entry can't represent honestly — a mortgage payment that's part principal, part interest, and part escrow in one cheque; a paycheque with gross pay, tax withholding, and a 401(k) deduction all at once. Add as many lines as the transaction actually has, and the entry won't post until the debits and credits match.

Why the Trial Balance Matters More Than It Sounds

A trial balance is the single check that separates bookkeeping from a spreadsheet of numbers that happen to look reasonable. Because every journal entry here is validated before it's ever saved — debits must equal credits, full stop — the trial balance is guaranteed to balance by construction. That's not a coincidence; it's the entire point of double-entry. If you ever see it flagged as unbalanced, something in the data was corrupted or imported incorrectly, and you'll know to go find it before it quietly throws off every report downstream.

Investment Gains, Done Properly

Selling part of a position you built up over several purchases raises a real question: which shares did you actually sell, and what did they cost? This tracker uses average cost basis — blending every purchase into one running cost per share — which is both simpler to reason about than FIFO lot-matching and the method Canada's CRA specifically requires for identical properties. Sell some shares and the realized gain posts automatically to a Realized Capital Gains account, ready for your income statement and tax reporting.