What we shipped

Changelog

Ship small, ship often, write it down. New features and fixes land every week.

feature

Sole proprietor support, alongside incorporated

Pick "Sole proprietor / freelancer" at signup and Ledg branches the experience: T1 + T2125 deadlines (April 30 payment, June 15 file) instead of T2; Owner Draw and Owner Investment labels instead of Owner Withdrawal and Owner Deposit; calendar fiscal year is forced (CRA requires it); the minute-book section disappears from the sidebar; Business Number is optional until you register for GST. Same Stage / Ledger / Statements / Rules / receipts in Drive / accountant handoff pack as the corporate side. The corporations table holds both entity types; if a sole prop later incorporates, a new corp record is created and the prior books stay intact for T1 reference.

feature

Rules: click-to-detail editor with duplicate cleanup

Every rule on /dashboard/rules opens a sticky right-side detail panel on click. Rename the display name (what shows on every matching transaction), change the bank descriptor stored against the rule, swap the category, or delete. Duplicate rules (different raw bank descriptors that all clean up to the same display label and category) collapse into one row with a "merged ×N" badge; a "Clean up duplicates" page action sums the usage counts onto the primary and removes the others. Add-rule dialog blocks creating a collision instead of silently growing the list.

fix

Statements: owner deposits stop polluting revenue

Every aggregator (income statement, balance sheet, cash flow, investor summary, Pulse YTD/MTD cards, MCP get_sales / get_expenses / get_sales_tax_collected) now classifies entries by category, not by amount sign. Owner Deposit / Owner Withdrawal / Loan Proceeds / Loan Repayment / Internal Transfer / Tax Remittance / Capital Asset are balance-sheet movements and never appear on the income statement. The balance sheet now surfaces capital assets, loans payable, and owner contributions explicitly instead of using a balancing-figure fudge. Cash flow gets operating / investing / financing breakdown. The accountant handoff pack's GST/PST summary picks up the same fix.

feature

MCP server: 12 read-only tools, AI-friendly defaults

Two new tools join the MCP layer: list_accounts (so AI clients can discover accountId before calling get_account_balance) and list_categories (so AI clients use exact case-sensitive labels instead of guessing the chart of accounts). list_corporations now returns entityType so AI clients see whether the row is a corp or a sole prop. list_deadlines defaults to a rolling 12-month window from today instead of a fixed calendar year, so a corp whose fiscal year crosses the calendar boundary always sees the right deadlines. list_minute_book returns an empty list with an explanatory message for sole proprietorships. get_sales / get_sales_tax_collected / get_expenses now exclude Owner / Loan / Transfer / Tax Remittance / Capital Asset entries so totals stop being inflated by balance-sheet moves.

polish

Stage and Ledger: top row opens automatically on entry

Walking into Stage or Ledger now selects the topmost row by default and opens its detail in the right rail, so the rail is informative on first paint instead of empty. Manual close or any row click takes over from then on; the auto-default never fights the user once they've picked.

feature

Deadline reminder emails

One email when an applicable deadline lands 30, 7, or 0 days out. The cron checks every corporation daily, computes the deadlines that match the corp's filing profile, and sends a single bundled email per corp. Skips ones that don't apply (no payroll = no T4 reminder). Toggle and override email address sit in Settings → Company. Cron is idempotent so a retry on the same day never double-sends.

feature

Filing profile drives the Tax Calendar

Settings → Company now asks five questions: GST or HST registered, PST registered, pays employees, pays dividends, and Quick Method GST election. The Tax Calendar filters out deadlines that don't apply (no payroll = no T4 row, not GST registered = no GST quarterly), Stage and Reports show a banner when GST is on and unregistered values appear, and Quick Method registrants see a one-line disclaimer in three places that the per-entry GST split is the regular-method math.

feature

Ledg AI cleans vendor names and proposes categories

When a transaction lands in Stage, Ledg AI normalizes the cryptic bank descriptor into a readable vendor name and proposes a category from your CCPC chart of accounts. "SQ *DARK HORSE NEW WESTM BC" arrives as "Dark Horse Coffee" coded to 5350 Meals and entertainment. You confirm every commit, suggestions are remembered per vendor, and the model never posts to the ledger on its own. Available on Free and Solo at no extra cost.

feature

Bank sync, live for real Canadian banks

Plaid is live in production. Connect any Canadian institution from Stage and transactions sync over OAuth straight through your bank, not through us. Big-5 (RBC, TD, Scotia, BMO, CIBC) and major credit unions supported on day one. Transactions land in Stage minutes after they post.

feature

Disconnect a bank in one click

Connected banks list now has a Disconnect button on every row. We tell Plaid to revoke access, delete the bank rows we received but you never moved into the ledger, and keep the entries you already promoted. CRA still expects six years of promoted entries, so those stay where they are.

Showing 10 of 52

One more sheet off your plate.

Ledg keeps shipping so you do not have to chase spreadsheets. Free up to 100 ledger entries.

Start free
Changelog | Ledg