← Back to Expense LensRSS

Changelog

New updates and improvements to Expense Lens.

v2.51.0March 20, 2026

Memory Upgrade 🧠

Expense Lens now remembers how you describe expenses everywhere — manual entry, receipt review, batch confirm, and CSV imports all teach the AI your language. Plus Google integration status is now honest about token issues.

  • NEWDescription learning wired to all expense paths — manual saves, receipt review edits, batch confirm-all, and CSV imports all train the AI on your merchant descriptions
  • IMPROVEDBatch description learning API — imports and multi-receipt confirms send learned descriptions in a single request instead of one-by-one
  • FIXEDGoogle integrations now show "Reconnect needed" when OAuth tokens expire instead of falsely showing green "Connected" status
  • FIXEDFixed 2FA heading on login page showing raw translation key instead of localized text
  • FIXEDDescription learning only triggers when you actually change the description — no more redundant saves from confirm-without-edit
v2.50.0March 19, 2026

Smooth Moves ✨

Pages now flow into each other with silky crossfade animations — expense cards morph seamlessly between list and detail views, and auth pages transition with shared branding elements. Plus a month-long analytics blind spot is finally fixed.

  • NEWView transitions — smooth crossfade animations when navigating between pages, with shared-element morphing on expense cards and auth flows
  • IMPROVEDAccessibility-first animations — all transitions respect prefers-reduced-motion for users who are sensitive to motion
  • FIXEDFixed GA4 analytics tracking that was silently broken since Feb 18 — CSP now correctly allows Google Analytics data beacons
v2.49.0March 14, 2026

Sprechen Sie Deutsch? 🇩🇪

Full German language support across the entire app — 1,288 translation keys covering every page, component, email, and PDF. Plus smarter recurring expense detection.

  • NEWGerman (Deutsch) language support — language picker on login/signup, all pages and 30+ components fully translated
  • NEWGerman onboarding flow with localized category presets (Privat, Freelancer, Digitaler Nomade)
  • IMPROVED1,288 i18n keys at 100% English/German parity
  • IMPROVEDRecurring expense detection overhaul — stricter 3-expense minimum, 20-day interval threshold, duplicate detection, and user feedback loop
  • FIXEDFixed hydration error in language picker cookie handling
v2.48.0March 12, 2026

Smarter Subscriptions & Cleaner Exports

Overhauled recurring expense detection with stricter thresholds and user feedback, plus streamlined the export experience.

  • IMPROVEDRecurring expense detection now requires 3+ matching expenses and 20+ day intervals — no more false alerts from batch spending
  • NEWNew "Is this recurring?" confirmation buttons on notifications — tell the system when it gets it right or wrong
  • IMPROVEDCleaner notification text — removed emojis and "irregular" labels, switched to short frequency tags (/mo, /qtr, /yr)
  • IMPROVEDSystem remembers dismissed recurring patterns and won't re-notify
  • IMPROVEDExport moved exclusively to the Reports page — removed redundant Export Excel button from expenses list
  • FIXEDMileage tracker GPS dot now correctly centers above the bottom sheet, with true edge-to-edge map display
  • FIXEDMileage expenses no longer show a "no receipt attached" warning
v2.47.0March 11, 2026

Smoother Onboarding & Tighter Security

Streamlined onboarding from 5 steps to 4, squashed iOS quirks, and locked down Firestore rules for new subcollections.

  • IMPROVEDOnboarding simplified from 5 steps to 4 — removed the security/2FA step, moved tips opt-in to the celebration page
  • IMPROVEDHologlobe shrunk to 150px for a cleaner onboarding visual
  • IMPROVEDUnified stepper design across all onboarding steps
  • FIXEDiOS viewport lock, input zoom prevention, and tap-after-blur issues resolved
  • SECURITYAdded Firestore security rules for trips, notifications, and recurringExpenses subcollections
v2.46.0March 10, 2026

Fresh Icons & Mobile Polish

New aperture lens branding across all platforms, responsive analytics on small screens, and critical category bug fixes.

  • IMPROVEDNew aperture lens favicon and PWA icons — teal ring with 6 blades, transparent background, proper padding at all sizes
  • IMPROVEDAnalytics stat cards now scale responsively on mobile — no more overflowing numbers on small screens
  • FIXEDBatch scanner no longer stores garbage "default-0" category IDs when no match is found
  • FIXEDCategories now update correctly when switching projects during expense editing
v2.45.0March 7, 2026

Fix with AI & Digest Hardening

AI-powered field correction for scanned receipts, bulletproof weekly digest emails, iOS PWA polish, and infrastructure reliability fixes.

  • NEW"Fix with AI" button on expense details — check which fields are wrong and AI re-extracts only those, keeping the rest locked
  • IMPROVEDWeekly Spending Digest now has a circuit breaker (aborts after 5 failures) and writes full audit logs to Firestore
  • FIXEDiOS PWA no longer clips into the status bar — safe-area insets applied to MobileHeader
  • FIXEDExchange rate cache degrades gracefully on cold dev starts instead of throwing 500 errors
  • FIXEDDeploy script runs non-interactively — no more stuck "Press Enter" prompts
  • FIXEDFixed build-breaking export on private digest route function
  • FIXEDPrivate GCS receipt images now load correctly via Admin SDK auth instead of raw fetch
v2.44.0March 3, 2026

Light Mode, i18n & PWA Ready

Full light mode support across every screen, internationalization framework with English and German, PWA-ready with proper manifest and icons, plus a wave of PDF viewer and UX fixes.

  • NEWLight/dark mode toggle on login and signup pages - switch themes before you even sign in
  • NEWInternationalization framework (next-intl) with English and German translations - cookie-based locale, no URL changes
  • NEWPWA manifest, icons, and apple-touch-icon - install Expense Lens as a home screen app
  • IMPROVEDFull light mode support across onboarding, pricing, paywall, scan usage bar, keyboard shortcuts overlay, and Google sign-in button
  • IMPROVEDSafe-area bottom padding for PWA on mobile - no more content hidden behind the home bar
  • IMPROVEDDesktop "+ New" button now opens a dropdown with Upload and Manual entry options
  • IMPROVEDBar track contrast improved with gray-200/neutral-800 for better visibility in both themes
  • FIXEDPDF viewer now works in Safari - data URIs converted to Blob URLs for cross-browser compatibility
  • FIXEDPDF iframe viewer with proper CSP headers, auth token on re-scan, and stored home currency for conversion display
  • FIXEDStripe cancel button now redirects to the previous page instead of dumping you on /pricing
  • FIXEDFree plan users now see accurate copy in Lens instead of misleading plan info
  • FIXEDToast notifications no longer overlap with the chat FAB on desktop
  • FIXEDCheckout handles 2FA gracefully with proper 401 logging instead of cryptic errors
  • FIXEDFirebase Storage CORS configured for proper cross-origin receipt image loading
v2.43.0March 2, 2026

Locked Down & Bulletproof

Critical security hardening across API routes plus a fix for manual expense saving. Your data is safer and the app is more reliable.

  • SECURITYPatched path traversal vulnerability in receipt image proxy - crafted URLs can no longer access unauthorized storage buckets
  • SECURITYClosed userId injection in extract API - internal calls can no longer consume another user's scan quota
  • SECURITYFixed SSRF in storage proxy - hostname allowlist now validates against exact project domain only
  • SECURITYAdded rate limiting to admin migration endpoint (1 req/5min per IP)
  • FIXEDManual expense save no longer silently fails - undefined fields are now stripped before Firestore write
  • FIXEDError messages when saving expenses now show the actual issue instead of a generic "please try again"
  • FIXEDFixed unescaped apostrophe in changelog that was crashing local dev builds
v2.42.0March 1, 2026

We're Live - Payments & Multi-Currency Billing

Expense Lens is officially live! Stripe payments are enabled with multi-currency checkout, subscription management, and a hardened production payment pipeline.

  • NEWMulti-currency Stripe billing - pay in USD, GBP, EUR, CAD, or CHF with automatic currency matching based on your project
  • NEWSubscription cancellation - cancel your plan directly from settings, no email required
  • NEWPromo code auto-apply - share links with ?promo=EARLYBIRD and the discount applies automatically at signup
  • IMPROVEDLaunch copy refresh - login, signup, and onboarding screens updated from pre-launch to live messaging
  • FIXEDStripe live/test key isolation - production now correctly uses live keys with fail-safe blocking of accidental test-key fallback
  • FIXEDCheckout redirect hardening - return URLs now use the correct public origin instead of internal addresses
  • FIXEDCross-mode customer fix - switching between test and live Stripe modes no longer breaks checkout
  • SECURITYDocker env leak prevention - .dockerignore now blocks .env.local from being baked into production images
v2.41.0February 28, 2026

Eyes on Everything

Under-the-hood observability upgrades - we now catch errors before you notice them and understand how people actually use the app.

  • NEWSentry integration - real-time error tracking and performance monitoring so bugs get squashed faster
  • NEWPostHog product analytics - privacy-first usage insights (no session recording) to help us build what matters most
  • FIXEDCleaned up deprecated Sentry config options for a smoother deployment
v2.40.0February 27, 2026

Launch-Ready Polish

Mobile experience overhaul, smarter navigation, and the foundation for tip emails - the final tune-up before launch day.

  • IMPROVEDiOS-adaptive menu - bottom navigation now hugs above the Safari home bar instead of hiding behind it
  • IMPROVEDProjects mobile UX - project switcher redesigned for thumb-friendly use on small screens
  • FIXEDAdd-manually routing - navigating to the manual expense form no longer briefly flashes the wrong page
  • IMPROVEDSEO hardening - noindex on app pages and proper reply-to headers on outbound emails
  • NEWTip emails foundation - user consent tracking, secure HMAC unsubscribe links, and branded HTML email templates ready for launch notifications
v2.39.0February 26, 2026

Under-the-Hood Hardening

Friendlier error messages, smarter image validation, and a massive codebase refactor that sets the stage for multi-language support.

  • IMPROVEDFriendlier error messages - upload a photo that isn't a receipt and you'll get a helpful explanation instead of a cryptic error
  • FIXEDNon-receipt image handling - the app now gracefully detects and rejects non-receipt uploads with clear guidance
  • FIXEDPassword error messages - login and signup forms now show human-readable errors instead of technical codes
  • IMPROVEDi18n preparation - all user-facing strings centralized into constants, laying the groundwork for multi-language support
  • IMPROVEDCode quality - unified auth middleware across all 36 API routes, standardized error responses, and 60 new automated tests
v2.38.0February 25, 2026

14-Day Refund & Billing Polish

Request a refund right from the app within 14 days - no email needed. Plus smoother plan switching, better emails, and security fixes.

  • NEW14-day refund - request a full refund directly from Settings within 14 days of subscribing, with eligibility checks and instant processing
  • NEWHTML email templates - beautiful branded emails with safe word verification replace plain-text notifications
  • IMPROVEDPlan switching polish - persistent toast confirmations, immediate Stripe payment on upgrades, and reliable downgrade scheduling
  • IMPROVEDPaywall & settings overhaul - clearer copy, usage warnings on tier cards, single CTA per state, "Switch plan" instead of "Downgrade"
  • FIXEDCSP security headers - Google Analytics/GTM and Cloud Functions unblocked after Content Security Policy was too restrictive
  • FIXEDToast rendering - toasts now display above modals instead of getting trapped behind backdrop blur
v2.37.0February 24, 2026

Plan Switching & Waitlist Reliability

Switch your plan right from the app, and waitlist sign-ups are now rock-solid with smarter error handling.

  • NEWIn-app plan switching - switch your subscription from Settings with Stripe proration, no need to visit a billing portal
  • NEWPlan comparison in paywall - existing subscribers see all tiers with switch options and a badge on their current plan
  • FIXEDHomepage waitlist fix - replaced embedded forms with direct /join links to avoid Cloudflare email obfuscation blocking sign-ups
  • IMPROVEDRate limit handling - waitlist forms now gracefully handle 429 responses instead of showing cryptic errors
  • IMPROVEDEU withdrawal terms updated - free trial scans no longer waive the 14-day right of withdrawal
  • FIXEDFirestore composite index added for scan count queries - fixes errors when payment enforcement is enabled
v2.36.0February 21, 2026

Reference Currency & Production Hardening

Reports and exports now show a reference currency column, outbound emails got smarter reply routing, and app routes are locked down from search engine indexing.

  • NEWReference currency on reports & exports - see amounts converted to your chosen reference currency alongside the original
  • FIXEDGoogle OAuth redirect fix - resolved 4 missing Cloud Run secrets that broke the Google integration auth flow
  • IMPROVEDReply-To header on all outbound emails - replies now route back correctly instead of bouncing
  • IMPROVEDSEO noindex on app routes - authenticated pages no longer appear in search engine results
  • IMPROVEDRounded corners on Google Integrations card - visual polish for consistency
  • FIXEDBlog vs-expensify FAQ section fix and Open Graph images added for better social sharing
v2.35.0February 20, 2026

Per-Project Currencies & Bulletproof Receipt Exports

Each project now has its own base currency with live reconversion, and receipt PDF exports are completely rebuilt server-side - no more missing pages.

  • NEWPer-project currency - set a unique base currency per project from Settings; header switcher shows a currency badge (e.g. [CHF]) for non-default currencies
  • NEWLive expense reconversion - switching a project's currency triggers server-side reconversion of all its expenses using live exchange rates
  • NEWCurrency onboarding banner - first-time explainer helps users discover and set up per-project currencies
  • FIXEDReceipt PDF export rebuilt server-side - PDF receipts are now converted to PNG via pdftoppm before rendering, fixing silent failures that caused only ~half of receipts to appear in exports
  • FIXEDMagic byte detection - receipt files with incorrect content-type in Firebase Storage are now auto-corrected at the proxy layer
  • FIXEDAdmin SDK fallback - legacy Firebase Storage URLs with expired tokens now resolve correctly via Admin SDK
  • FIXEDDual bucket URL support - receipt proxy now handles both .firebasestorage.app and .appspot.com bucket URL formats
  • IMPROVEDHeader project dropdown simplified to switch-only - project editing moved to Settings for a cleaner UI
  • SECURITYRemoved hardcoded secrets from el-watcher.config.cjs
  • IMPROVEDGA4 expense_created event - receipt scan and upload paths now fire analytics events for better usage insight
v2.34.0February 19, 2026

Google Drive Sync & Smarter Duplicate Review

Connect Google Drive and Gmail to auto-import receipts, plus a redesigned duplicate review flow that lets you compare and resolve duplicates without leaving the page.

  • NEWGoogle Drive & Gmail integration - connect your account to auto-sync receipts from Drive and Gmail into Expense Lens
  • NEWForce Sync button - manually trigger a Google Drive/Gmail sync from the integrations settings page
  • NEWInline duplicate review - compare potential duplicates side-by-side in an expandable modal with delete, keep both, or skip actions
  • IMPROVEDGoogle-synced expenses now inherit your default project automatically instead of appearing unassigned
  • IMPROVEDDrive sync cursor only advances when files process successfully - no more silently skipping failed imports
  • FIXEDDuplicate count now shows correct number of groups instead of counting individual expenses
  • FIXEDOAuth token refresh no longer fails silently when credentials are missing from config
  • FIXEDGoogle OAuth redirect fixed for localhost development environments
v2.33.0February 18, 2026

Security Hardened & Cloud Isolation

Major security audit response - hardened authentication, eliminated SSRF vectors, isolated email rendering, and added enterprise-grade HTTP security headers.

  • SECURITY2FA bypass fixed - all protected API routes now verify two-factor completion server-side
  • SECURITYSSRF vectors eliminated - storage proxy and receipt image endpoints locked to exact hostname matching with redirect blocking
  • SECURITYXSS protection - receipt image URLs are now sanitized to block data: URIs, javascript: schemes, and non-storage URLs
  • SECURITYDebug endpoint removed - /api/debug-env no longer exposes environment variable status
  • SECURITYPassword policy strengthened - minimum 8 characters with uppercase or number required
  • SECURITYTiming attack prevention - password reset responds in constant time regardless of account existence
  • SECURITYWebhook signature verification - inbound email receipts now validate Svix HMAC-SHA256 signatures with replay protection
  • SECURITYHTTP security headers added - CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy
  • SECURITYGlobal auth middleware - all API routes now verify Firebase JWT as a defense-in-depth safety net
  • IMPROVEDEmail rendering isolated to Cloud Run - Puppeteer runs in a network-isolated container with zero GCP permissions
  • FIXEDGoogle Sign-In restored - CSP frame-src updated to allow Firebase auth iframe
  • IMPROVEDGoogle Drive pending receipts now use cloud storage instead of Firestore to avoid document size limits
v2.32.0February 17, 2026

Subscriptions, Mobile Chat & Visual Polish

Auto-detect subscriptions, a redesigned mobile chat experience, refreshed charts, and multi-currency accuracy across the board.

  • NEWSubscription auto-detection - receipts are now automatically identified as subscriptions (Netflix, Spotify, gym, etc.) at scan time with no manual tagging
  • NEWRecurring pattern analysis - tracks billing frequency (monthly/yearly) and flags price changes on your subscriptions
  • NEWSubscription queries in Lens - ask "what are my subscriptions?" or "what do I pay monthly?" for aggregated answers
  • IMPROVEDAI Chat mobile redesign - full-screen Crisp-style panel from the hamburger drawer, with scroll lock, no iOS auto-zoom, and proper quick-action link handling
  • IMPROVEDDashboard chart refresh - TradingView-style angular lines, violet area fill, and thinner line weight for a cleaner look
  • IMPROVEDBudget bars now use 3-state color coding: category color (0–80%) → amber (80–100%) → red (>100%) across all pages
  • IMPROVEDMulti-currency totals fixed - budgets, categories, and analytics now use home-currency amounts for accurate totals
  • IMPROVEDCurrency and exchange rate context added to Lens for accurate multi-currency answers
  • FIXEDShow Category Icons setting now properly respected on analytics, reports, and categories pages
  • FIXEDPage headings standardized to uppercase with consistent subtitle styling
  • FIXEDKeyboard shortcuts button repositioned to avoid overlapping the chat FAB
  • IMPROVEDIn-app FAQ now links to expense-lens.com/faq instead of a built-in page
v2.31.0February 16, 2026

Meet Lens - Your AI Expense Assistant

Ask questions about your spending in plain English. Lens understands concepts like "AI tools" or "travel expenses" and finds the right transactions instantly.

  • NEWAI Chat (Lens) - ask natural language questions about your expenses and get instant, contextual answers with streaming responses
  • NEWSemantic search - ask about concepts like "AI spending" or "cell service" and Lens maps them to the right merchants, categories, and tags automatically
  • NEWMulti-merchant and multi-category queries - broad questions find ALL matching expenses, not just the first match
  • NEWSemantic tags - expenses are auto-tagged at extraction time for smarter conceptual search across categories
  • NEWMerchant type classification - structured business types (mobile-carrier, ai-platform, etc.) for better filtering and intent understanding
  • IMPROVEDChat context carries forward - follow-up questions remember what you were just talking about
  • IMPROVEDProject-aware chat - mention a project name naturally and Lens filters to that project's expenses
  • FIXEDFixed intent parser misclassifying unrelated merchants for conceptual queries
  • FIXEDWord-boundary matching prevents partial matches (e.g., "ai" no longer matches "AirGSM")
  • NEWAmount filtering - ask "expenses under $100" or "between $500 and $1000" and Lens filters by amount
  • NEWSubscription detection - expenses are auto-tagged as subscriptions at extraction time, and Lens answers "what subscriptions am I paying for?"
  • NEWCross-project comparison - compare spending between two projects in a single query
  • NEWRecurring expense analysis - pattern detection for frequency, price changes, and predicted next charges
  • SECURITYSecurity and data integrity audit - 8 findings addressed across chat endpoints and data access patterns
v2.30.0February 15, 2026

FAQ, Reports Polish & Visual Refresh

A brand-new FAQ page, smoother mobile report generation, and a refined color palette that feels right at home in both light and dark mode.

  • NEWFAQ page - searchable, filterable knowledge base with category pills, accordion Q&A, and SEO-optimized JSON-LD schema
  • NEWMobile report bottom sheet - swipe-up format selector replaces the old dropdown for PDF/CSV generation
  • NEWSticky Generate Report button on mobile - always visible at the bottom with loading state feedback
  • IMPROVEDCategory color palette refined to muted Notion/Linear-style Tailwind 500 swatches, WCAG-friendly on both themes
  • IMPROVEDDuplicate expense warning modal polished for mobile layouts
  • IMPROVEDDark mode charts use hardcoded teal hex for consistent SVG rendering and styled tooltips
  • FIXEDExpense row hover/active states now show proper teal gradient fade instead of invisible interaction
  • FIXEDMonth divider labels correctly reference the month below, not above
  • FIXEDFallback 📦 icon restored for categories without custom icons
  • FIXEDCustom categories auto-rotate through color palette during onboarding instead of all getting the same color
v2.29.0February 13, 2026

Mobile-First Makeover

A cleaner, faster expense list - collapsed filters, visible sorting, and subtle touches that make mobile feel native.

  • NEWCollapsed filter bar - search, category, and filters consolidated into a single row with expandable panel
  • NEWSort toggle button - tap to cycle between Date, Amount, and Merchant A-Z sorting
  • NEWCategory icon toggle - new setting to show or hide emoji icons on expense lists
  • NEWSwipe discovery hint - first-time mobile visitors see a peek animation revealing swipe actions
  • IMPROVEDHidden header on detail view reclaims ~50px of mobile screen space
  • IMPROVEDCategory names now render as styled rounded chips for better visual separation
  • IMPROVEDExpenses page header shows current month total and count instead of all-time stats
  • IMPROVED"Filters" label changed from all-caps to sentence case for consistency
  • FIXEDAnalytics page no longer shows all zeros on initial load (fixed real-time data listener)
  • FIXEDEmail-ingested expenses now correctly show AI provider and confidence score
v2.28.0February 12, 2026

Keyboard Power-Up

Faster editing, smarter modals, and a smoother mobile experience - your keyboard does more than ever.

  • IMPROVEDEnter key now saves your edits before navigating to the next expense - no more lost changes
  • NEWCmd+Enter (Mac) / Ctrl+Enter saves and advances from the description field
  • NEWKeyboard support in modals - Enter to confirm, Esc to cancel (Delete, Move to Project, Review)
  • IMPROVEDReviewModal shortcuts enhanced - Cmd+Enter saves, E to edit, Delete to remove, Esc to exit
  • IMPROVEDGlobal Esc-to-blur - press Esc in any input to re-enable keyboard shortcuts
  • FIXEDFixed dashboard stat cards overflowing on mobile with long currency amounts
v2.27.0February 11, 2026

Keyboard Shortcuts & CSV Overhaul

Power through expense reviews with keyboard shortcuts, and export accountant-ready CSV files with category totals.

  • NEWKeyboard shortcuts on expense detail - press ? to see all shortcuts
  • NEWType-to-filter category dropdown - find categories instantly
  • NEWNavigate expenses with arrow keys or J/K, focus fields with single-key shortcuts
  • IMPROVEDCSV export redesigned - cleaner column order, category subtotals, grand total, metadata header
  • IMPROVEDCSV now shows project names instead of database IDs
  • IMPROVEDExchange rates rounded for readability (2 decimals for major currencies, 4 for others)
  • FIXEDFixed expense numbering resetting to "1 of X" after editing
v2.26.0February 11, 2026

Email Screenshots & Unreviewed Expenses

Email receipts are now saved as screenshots for PDF reports. New expenses from email forwarding are marked as unreviewed with a teal dot.

  • NEWUnreviewed expense indicator - teal dot and bold text for new email-ingested expenses
  • NEWFilter by unreviewed expenses and bulk mark-as-reviewed
  • NEWTeal badge on Expenses nav showing unreviewed count
  • NEWEmail receipts now saved as PNG screenshots for clean PDF reports
  • IMPROVEDMulti-currency conversion happens automatically on email-forwarded receipts
  • FIXEDFixed PDF attachments being corrupted by image processing - PDFs now preserved correctly
v2.25.0February 10, 2026

Travel Report

New report style: per-country spending breakdown. See where your money went across borders - with local currencies, top merchants, and category splits for each country. AI receipt scanning now detects and saves the country automatically.

  • NEWTravel Report PDF - See exactly what you spent in each country, with auto-calculated exchange rates
  • NEWCountry detection saved on expenses from AI receipt scanning
  • IMPROVEDCSV export now includes Country column
  • IMPROVEDReport style picker updated to 3-column grid
v2.24.0February 10, 2026

Drag & Drop Scanning

Drag a receipt image or PDF anywhere in the app - we'll scan it and extract the details automatically. No buttons, no menus. Just drop it. Desktop only. Works on every page.

  • NEWDrag & drop scanning - drop receipt images or PDFs anywhere to scan instantly
  • NEWFull-page drop zone overlay with visual feedback
  • IMPROVEDNew helpful tips to discover features faster
  • IMPROVEDEmpty state now mentions drag-and-drop as an option
v2.23.0February 8, 2026

Professional Reports

Two new report styles designed for real-world use - a visual monthly summary and an accountant-ready tax report.

  • NEWMonthly Summary PDF - branded one-pager with category breakdown, daily spending chart, and top merchants
  • NEWTax Report PDF - deductible vs. personal split, dual-currency tables with exchange rates, accountant-ready format
  • NEWEnhanced CSV export - 13 columns including exchange rates, source, and Business/Personal type for QuickBooks/Xero
  • IMPROVEDSmart alerts: We'll flag potential duplicates before you generate a report
v2.22.0February 6, 2026

Business vs. Personal Categories

Flag categories as Business or Personal. See your tax-deductible totals at a glance.

  • NEWOne-click toggle to separate Business from Personal expenses
  • NEWTax Summary on analytics - deductible vs. personal totals with percentage split
  • NEWBudget vs. Actual section on analytics - overall and per-category progress bars
  • IMPROVEDBIZ badge on category cards for quick identification
v2.21.0February 4, 2026

Smarter Budgets & Analytics

Color-coded budgets, spending forecasts, per-project analytics, and trend arrows on every category.

  • NEWColor-coded budget bars - green under 70%, yellow 70-90%, red when you're over
  • NEWOver-budget state - red bar with "Over by $X" when you exceed 100%
  • NEWRemaining budget + days left on every category
  • NEWPer-project analytics with "All Projects" dropdown
  • NEWMulti-currency breakdown - pie chart and table showing spending per currency
  • NEWDaily burn rate stat card on dashboard
  • NEWSpending forecast - linear projection for month-end estimate
  • NEWCategory trend arrows - ↑↓$X compared to last month
  • IMPROVEDActive categories sorted to top, empty ones dimmed
  • IMPROVEDBetter math: exact dollar differences instead of confusing percentages
v2.20.1February 1, 2026

Edit Experience Overhaul

Autosave, searchable currencies, and a cleaner mobile editing experience.

  • NEWAutosave - we save as you type. No more Save button.
  • NEWSearchable currency picker - find any of 160+ currencies instantly
  • NEWPotential duplicate indicator - red border on merchant field when a match is detected
  • IMPROVEDCompact edit layout - removed heading, tighter padding, More Info at bottom
  • IMPROVEDMobile header hides on scroll for more screen space
  • IMPROVEDSubtle tap feedback on expense rows
  • FIXEDFixed an issue where saving empty expenses caused an error
v2.20.0January 29, 2026

Smart Category Learning

Expense Lens now learns from your corrections. Categorize a merchant once - it remembers forever.

  • NEWAI learns your category preferences per merchant - correct once, never again
  • NEWFrequency-based learning - if you split a merchant across categories, it tracks the most common
  • IMPROVEDAI now gets smarter the more you use it, learning your specific rules
  • IMPROVEDEmail-forwarded receipts also benefit from your learned preferences

Stay in the loop

Get notified when we ship something new.

© 2026 Expense Lens · Privacy · Terms