Changelog
What changed in Expense
What changed in the app, newest first, grouped by date. Each entry is something a person using the app can see or do: a capability that did not exist, a fix for something that was wrong, a change to something that already worked. The same list is published as markdown at /changelog.md, so a model reading this site can see what changed and when.
Newest first. The entries are the changes a person using the app can see, not the plumbing behind them. The last group is a summary: the nine days of building that followed the first commit on 2026-07-30.
- FixedPressing ? now shows the G E keycap above the logo, the control that goes back to the expenses page.
- FixedA file can be dropped anywhere on the page, not only over the content area: dropping in the margins used to hand it to the browser instead.
- ImprovedThe warranty editor saves with Cmd+Enter and leaves with Escape, like the expense editors, and its Delete button asks first in the same dialog.
- NewThe home page plays a short demo of the app filing a receipt: the drop, the fields read from the PDF, and the expense on the list.
- NewThe new Warranties page tracks expiry dates, reads warranty terms from uploaded receipts and PDFs, and reminds you before coverage ends.
- NewWarranty terms prefill from a curated merchant policy when the merchant matches, and the prefilled terms stay editable.
- FixedMerchant warranty and return policy details were corrected, including the Costco return windows and Mattress Firm claims.
- NewConfirmation emails show the receipt image inline, so you can check the scan without opening an attachment.
- NewThe Email page lets you turn off a sender for your workspace without deleting the shared rule, and restore it later.
- NewYou are emailed when a connected mailbox needs reconnecting because its login stopped working.
- FixedEmails stranded by a crashed import are retried instead of being left behind.
- NewYou can connect any JMAP mail server as a receipt source, not only Gmail and FastMail.
- NewInsights adds a money checkup of year-to-date findings linked to the rows behind them, and charts for totals, categories and top merchants.
- NewThe alternatives comparison now says whether each competing app imports receipts from a mailbox, with a source for each claim.
- NewA new product facts page covers capture methods, Schedule C lines and pricing.
- FixedClosing or reopening a report from the Reports page now updates the report you clicked.
- NewA support page at /support gives you one address to write to, and what to include.
- NewInsights questions can be stopped mid-answer with a Stop button, and the ask box grows to fit questions of up to five lines.
- NewSettings lets you change your sign-in email, change your password and close your account.
- FixedEmail connections whose receipt catch-up fails are now flagged in Settings as needing attention.
- ImprovedBank statements can be dropped anywhere on the reconcile page, not just the upload box, and it takes CSV and PDF files.
- ImprovedExpense lists, expense details and receipt images all load faster.
- FixedInsight totals and breakdowns are summed to the cent, and a receipt captured twice is reported as a duplicate.
- NewThe Insights chat can log a purchase or a drive you describe: it prices the trip and files the amount and currency you confirm.
- NewMileage trips now default to one way with a round trip option, and you can save named places in Settings to reuse as trip stops.
- FixedChanging your password now signs out your other sessions and revokes access for connected apps.
- NewInsights understands plain time ranges such as this month or last quarter and sizes the chart and totals to them.
- NewExpense search accepts after: and before: dates, or since: and until:, to filter by a date range.
- ImprovedFollow-up questions in Insights can be narrowed by date, category, report, type, or merchant.
- FixedInsights answers now know today's date, so questions about now give the right answer.
- FixedThe Insights ask box clears after each question, and Enter while an answer is in flight no longer resubmits it.
- NewThe Insights ask box is now a conversation: each question joins a transcript and is answered from your own totals.
- FixedAsking Insights about AI spending no longer pulls in hosting and other infrastructure.
- NewA new Insights page charts your expenses over time, lists the matches in a table, and takes a filter you can type in plain English.
- NewSearch takes bare amount comparisons and ranges, so >100, <=50 or amount:100-110 narrow the list on the home page and in Insights.
- NewSearch knows shorthand (from:, store:, cat:, in:) and everyday words (food, gas), and completes values as you type.
- NewSettings has an Emails section where you can unsubscribe, and every marketing email carries a one-click unsubscribe link.
- ImprovedThe app, marketing pages and sign-in screens share a new palette: warm paper in light mode and green-tinted graphite in dark mode.
- FixedReceipts forwarded from a verified address or redirected inside Fastmail are now imported instead of rejected as unverified.
- NewGmail and Google Workspace can be connected as a mailbox, so Expense pulls receipts from Gmail the way it does from Fastmail.
- FixedThe landing page no longer crashes in browsers that block cookies.
- NewA /schedule-c-categories page explains each IRS Schedule C expense line in plain language.
- NewA /mileage-rates page lists the IRS standard rates for business, medical, moving, and charitable driving.
- FixedTimestamps in email review, reconcile, settings, and the email list now show your local timezone.
- FixedForms and the home navigation fit small screens instead of overflowing.
- NewA /connect page walks you through connecting an MCP client, with per-client steps and copy buttons.
- NewYou can rotate a receipt left or right in the editor, and the rotation is saved.
- FixedThe previous/next buttons in the expense editor now follow the same order as the main expense list.
- NewIn-page browser agents can read expenses, expense summaries, and reports from the app.
- FixedReport PDF exports no longer fail when the report name contains non-ASCII characters.
- NewConnecting FastMail no longer means pasting an API token: you sign in with FastMail instead.
- FixedReceipt confirmation emails are sent again for FastMail accounts.
- NewThe landing page shows how many of the first 100 free accounts have been taken.
- NewForeign-currency receipts convert to USD at the ECB reference rate for the expense date, keeping the original amount and rate.
- NewExpense search filters on report:, category:, merchant:, and description:, suggests known values, and shows an exact total.
- ImprovedEmail review scans the last 90 days of your inbox instead of the 50 most recent messages.
- ImprovedBank notification emails no longer land in auto-import, but charge alerts stay available in inbox review.
- FixedA receipt you import twice, by any route, no longer becomes a second expense, and a failed import retries once.
- NewBank charge alerts that an imported receipt already covers are skipped on the email review page and listed for reference.
- FixedExporting a report as PDF no longer fails.
- NewConfirmation emails include the original receipt: the body text quoted, or the image or PDF under its original filename.
- FixedReceipts that arrive by email keep the sender's local date instead of moving to the next day.
- NewA Cmd+K command palette adds keyboard navigation, expense search, new-expense shortcuts, and report PDF export.
- NewSign-up now offers a Connect FastMail button that skips the verification email, and there is a password reset flow.
- NewA new email review page lists receipt-like emails from a connected mailbox, so each one can be turned into an expense or ignored.
- ImprovedApple receipts now name the app or subscription plan in the expense.
- NewPDF bills with a text layer in a connected mailbox are imported automatically instead of being skipped.
- ImprovedRecurring billers such as Shopify, Conservice, Spectrum, and Verizon are recognized as receipts out of the box.
- FixedDate defaults and the future-date check now use your local day.
- FixedInbox scanning no longer stops at a batch of already-seen emails, so newer bills behind them are imported.
- NewConnecting a FastMail account imports its receipts automatically, moves them to Trash, and sends you a confirmation email.
- ImprovedExpense descriptions from email receipts now include the receipt number, so you can tell which email it came from.
- ImprovedExpenses imported from a connected mailbox are parsed locally, without sending your mail to an LLM.
- NewForwarding a receipt and getting the reply now use one address, receipts@labnotes.org, and replies are sent from the app's mailbox.
- NewEmailed receipts are picked up the moment they arrive instead of on a scheduled check.
- FixedA confirmation reply that fails to send is retried once, so senders don't re-forward the receipt and duplicate the expense.
- NewThe confirmation reply for an emailed receipt now includes the receipt image and the description read from it.
- NewExpenses can be dated in the future, on the web editor and through MCP.
- ImprovedSigning in locks for 15 minutes after five failed attempts.
- FixedAn expense with only a receipt image is no longer counted as complete, and mileage expenses now need a category.
- NewThe expense list shows each expense's description, not just its date and distance.
- NewYou can drop a receipt file on the expense editor to replace the image and re-read its fields.
- FixedExcel bank statements whose date column uses real date formatting now import instead of skipping those rows.
- NewEmailing or forwarding a receipt now gets a confirmation reply naming the amount and report, with the report's new count and total.
- NewThe Reports page lists open and closed reports with their counts and totals, and you can add, rename, close, reopen and delete them.
- NewExpenses in a closed report are read-only, with the editor fields disabled and the Save button hidden.
- NewThe app follows your system dark mode setting, including the marketing pages and the map.
- FixedThe app no longer answers messages from its own inbound address, which caused an endless email reply loop.
- NewReceipts arrive as a photo, a dragged file or a PDF, with the merchant, amount and category read from the image.
- NewForward a receipt email to your own address and it becomes an expense, once the sender confirms a verification link.
- NewAccounts with signup, invite-code joining and isolated data; signing in requires confirming your email first.
- NewMileage trips are mapped stop to stop, priced at the IRS rate for the drive's date and type, and drawn on a map in the report PDF.
- NewReports hold the year's expenses and export as a PDF with the receipts attached or a ZIP with the images and CSV.
- NewReconcile matches an uploaded card statement (CSV, Excel, QuickBooks, OFX/QFX, PDF) against the expenses you logged.
- NewAssistants connect over MCP to capture receipts, log mileage, read expenses and build reports.
- NewThe expense list searches by merchant, description, category, amount or mileage address, and flags possible duplicates.
- ImprovedThe app works with a keyboard or a screen reader: landmarks, labeled sections, focus held in dialogs, announced messages.
Free while it is early.
The first 100 accounts, no card. Everything on this page is already in them.