ecu

ecu

The expense tracker that actually keeps up with your finances.

iPhoneiPadMac
Download on the App Store

Multi-Account

Track multiple accounts with independent currencies. See your global balance across everything, converted in real time.

Multi-Currency

EUR, USD, GBP, JPY, CHF, CAD. Each account in its own currency with live exchange rates and foreign transactions.

Beautiful Charts

Income vs. expenses, spending by category, daily trends, balance forecasts. Seven charts, all fully accessible.

Recurring Transactions

Set it and forget it. Daily, weekly, monthly, or yearly, with smart clamping, pause, and resume.

Budgets

Set monthly limits per category. Visual progress bars show you exactly where you stand before you overspend.

Split Transactions

Break down purchases into line items. Individual names, amounts, and categories for each part of a transaction.

iCloud Sync

Your data lives across all your devices. Core Data with CloudKit keeps everything in sync seamlessly.

CSV & PDF Export

Export your transactions with a custom date range. Share reports in the format that works for you.

The Story Behind ecu

Before ecu existed, I tracked my expenses in an Excel spreadsheet. Then Notion. Both worked, until they didn't. I wanted something on my phone, something that could handle multiple accounts, forecast future transactions, and actually fit the way I think about money. I tried a few apps. Pennies came close, but always fell short on the features I needed.

In 2022, while finishing my Computer Science degree (3 year program), I had a final exam that required building a mobile app with an external database and a web interface. I saw an opportunity: instead of a throwaway school project, I'd build the app I actually wanted. That first version used SwiftUI with Firebase on the backend, paired with a read only Vue.js web interface (Express + Firebase, full auth system). It got me my diploma, and a tool I genuinely used every day.

After graduating, I realized Firebase was more of a constraint than a help for a personal finance app. So I rewrote everything from scratch using Core Data and CloudKit, Apple's native stack. No external servers, no web layer, just a clean iOS app that syncs seamlessly through iCloud. In 2025, I graduated from ESIEE Paris with an engineering degree in Computer Science and Applications, and ecu had grown alongside me the entire time.

This app has no ambition to top the charts. It's a fil rouge, a personal thread that runs through my career. I build it for myself, on my own time, because I use it every single day. If other people find it useful too, that genuinely makes me happy. It means something I built out of personal need resonates with someone else's.

It's been years since that first commit, and I'm proud of where ecu is today. I'll keep improving it for years to come, not because I have to, but because I want to.

Tristan NobreSoftware Engineer

What's New

2.15September 2026

All connected

Transfers you can edit after the fact, related transactions, split items in foreign currency, a list that finally reads well, and statistics to explore. A big update born from your feedback.

  • Editable transfers. Add, change or remove a transfer's link from the form, move it to another account, and ecu asks each time what to do with the counterpart. Between currencies, the amount actually received is kept, and the details screen opens the linked transaction in one tap
  • Related transactions. Group transactions that belong together, like an imported purchase and its customs fees, even spread across accounts. A group can carry a name and shows its total cost, converted to the account's currency
  • Split items in foreign currency. For a 100 USD purchase paid 80 EUR, enter the shipping and the item in dollars: ecu converts each line at the transaction's own rate, and the cents add up exactly
  • A clearer list. Planned transactions fade and fold away, section by section, Today clearly stands out, and a By month grouping (this month, next month, later) lands in Settings
  • Statistics to explore. Tap a slice of the donut to highlight it, or a category to open its insights, now across all your accounts at once. Along the way: Control Center controls fixed, the date rolls over at midnight by itself, and amounts no longer break across lines
2.15.1Linking a transaction to a debt gets more direct: debts come first, each with "New entry from this transaction" and "Link an existing entry", which opens that debt's own entries with a search
2.14September 2026

Automations, refined

Three controls for Control Center and the Action button, an Apple Pay automation that knows your habits, and your balance by voice.

  • Control Center and Action button. New transaction on the account of your choice, direct access to an account, and a Balance control that shows the amount at a glance and refreshes after every recalculation. Works with the Action button, on iOS 18 and later
  • A smarter Apple Pay automation. Pick the payment method, categories, tags and currency in the automation, or let ecu reuse those of your last visit to the same merchant. One automation per Wallet category is enough to file groceries under Groceries. Payments abroad are converted, a payment fired twice is added once, and silent adds send a notification
  • Balance by voice. Ask Siri "What's my balance in ecu?" or chain the new Get Balance action in your shortcuts: current, forecast or bank balance, with the number returned
2.13September 2026

Tailored accounts

Every account now decides whether it tracks the In Bank status, and a single balance renders big on the account screen.

  • In Bank, per account. A savings account that only receives transfers has no notion of a transaction being in the bank. Turn the status off in the account's features: the checkmark, the filter, the form option and the dedicated balance disappear, the bank balance follows the current one, and nothing is erased if you turn it back on
  • Hero balance for accounts. Show a single balance on an account and it renders big and centered, like the home Total, with the same gestures: tap to cycle the type, long-press to pick one
2.12September 2026

ecu, revealed

Add a transaction from a contactless payment, let tips reveal the hidden gestures, read what's new right inside the app, and build widgets that do more.

  • Apple Pay and Shortcuts. Pay contactless and ecu offers to log the transaction: a one-time Shortcuts automation, an Add / Ignore confirmation, and merchants recognized automatically even behind bank prefixes. Works with Siri too
  • Tips at the right moment. Five contextual tips reveal the invisible gestures (tappable balances, swipes, long-presses) and retire as soon as you master them. The Discover ecu guide collects 24 subtleties by theme, in the home menu and Settings
  • What's new, in the app. After each update, a recap presents what changed, independently from the App Store notes. The full history stays browsable in Settings: you won't miss a feature again
  • Widgets that do more. The net balance with debts deducted reaches the widget and the lock screen, a Quick Add widget opens the entry form directly, every account in the medium widget is tappable, and amounts stay readable whatever their size
  • A warm welcome. A welcome tour guides newcomers to their first account. The home screen gains a balance bar pinned while scrolling and a big centered view when a single balance is shown
2.12.12.12.0 stayed on TestFlight, so the App Store gets 2.12.1 directly: compacted and tappable widget amounts, the pinned balance bar on the home screen, the hero view for a single balance, and widget labels finally translated
2.12.2The What's New history now reaches back to the very first version: every update gets its name and headline features back, browsable from Settings
2.11September 2026

Cancelled, not forgotten

Cancel a transaction without losing its trace, compose your totals with or without debts, travel back with balance at date, and finally filter by exclusion.

  • Cancelled transactions. Seller backed out? Strike the transaction through instead of deleting it: it stays visible in your history but leaves your balances, statistics, budgets, and export totals. Linked transfers cancel together, and everything is reversible
  • Customizable totals. The home screen shows 1 to 4 global balances of your choice: current, forecast, bank, end of month, in 7 or 30 days, and most of all the net with debts deducted. Tap to cycle, long-press to pick directly
  • Balance at date. Where was I at the end of January? Pick a date and read the account balance, or a debt's remaining to repay, exactly as it was that day
  • Filters reimagined. Filters leave the list for a dedicated panel, with chips that always show what's active. Every dimension becomes multi-select with an Include or Exclude mode: showing everything except those categories is finally possible
  • Input guardrails. Every form asks before discarding unsaved changes, the + button joins the bottom bar so it no longer covers the swipe-to-delete gesture, and amounts accept very large values
2.11.1Filter revamp (dedicated sheet, exclusion mode, chips) and a fix for a rare crash while typing in a split item. 2.11.0 stayed on TestFlight, so the App Store gets 2.11.1 directly
2.10August 2026

Faster and more polished

An under-the-hood update born from a full audit of the app: faster launch and home screen, nicer forms, stronger accessibility, and more reliable recurrings.

  • Performance. Launch no longer waits for internal maintenance, and the home screen stops recomputing full sorts just to show a counter. Balance recalculations are now batched
  • Everyday comfort. The transactions menu navigates on first tap, a Done button finally dismisses the notes keyboard, Save buttons stay disabled while a required field is empty, and every form action answers with a haptic tap
  • Accessibility and localization. The Insights and amount-history charts speak with VoiceOver, selection cells announce their state, and the app icon shortcuts and permission prompts are finally translated in French
  • More reliable recurrings. Pausing then resuming a recurring properly regenerates the upcoming occurrences, and installment numbers (3/12, 4/12...) no longer drift after a manual deletion
2.9August 2026

Debts

Track money taken from your savings (or lent to someone) without juggling mirror transactions. A standalone ledger, independent from accounts and invisible to your balances.

  • Standalone ledger. A new "Debts" section on the main screen, independent from accounts: zero interaction with your balances, statistics, or widgets. Each debt has its own currency and always shows what's left to repay
  • Minimal entries. Every movement boils down to the essentials: name, amount, date, note. A Borrow / Repay toggle sets the direction and the total updates itself. Repay more than you took and the debt flips to an advance, shown in green
  • Transaction linking. From a transaction's details, link it to an existing debt entry or create one pre-filled (amount, date, name, direction guessed). Perfect when a transfer to your savings account repays your stash. Deleting one never touches the other
  • Initial amount. When creating a debt, enter what's already borrowed: the first entry is created automatically. Migrate a manual tally in ten seconds
  • Close accounts and debts. Close an account or a debt instead of deleting it: history is kept and stays browsable (transactions, stats, insights) from a "Closed" screen, and everything can be reopened at any time. Closed accounts leave the global totals and the widget
2.9.1TestFlight-only release, shipped to the App Store with 2.10.0: budget alerts fire once per month per threshold, the daily reminder no longer disappears after logging a transaction, destructive deletions (account, debt, recurring, categories...) ask for confirmation, the widget refreshes right after every change, and the app ships its Apple privacy manifests
2.8May 2026

Recurring Versioning

Editing a recurring no longer rewrites your whole history. Every field carries its own timeline with effective-from dates, plus a step chart for amount evolution and a proper subscription cancellation flow.

  • Per-field timeline. Every field on a recurring (amount, payment, merchant, categories, tags, name, notes) keeps its own ordered history of values with effective-from dates. Bumping your salary? Past transactions keep the old amount, future ones follow the new
  • Effective-from picker. Every edit reveals a date picker right under the field. Defaults to today for amount and payment (forward-only), to the template's start date for metadata fields (categories, tags, merchant, name, notes), which cascade across history by default. An "Advanced versioning" disclosure groups the less-common fields
  • Amount-over-time chart. A compact step-line chart in the recurring detail view shows how its amount evolved over time. Perfect for tracking subscription price creep or salary raises across years
  • Subscription cancellation flow. A dedicated "Cancel subscription" button opens a sheet with a date picker (past, present, or future). If transactions exist after the chosen date, a confirmation dialog offers three options: delete them, keep them (shown in red in history), or abort the whole operation
  • Post-cancellation marking. Generated transactions dated after the cancellation date appear in red on the recurring's detail view and get a "Post-cancellation" chip in the transaction details. No way to confuse them with active ones
2.8.1Settle a multi-installment recurring early (for example a PayPal 4x): records the remaining balance as one transaction, removes the upcoming installments, and closes the recurring. Search and sorting (alphabetical or custom) in the Categories, Payment Methods, Tags, and Merchants lists, with manual reordering fixed. Transaction duplication now copies every field: foreign currency, merchant, tags, split items, and the original date
2.7May 2026

Insights & Receipts

A new Insights view to drill into any dimension, receipts attached to your transactions, and a gallery to find them all.

  • Insights view. Pick a dimension (category, payment, tag, merchant), pick an item, pick a period, and see everything spent or earned. Totals, adaptive time-series chart, top 5, and a compare-with-previous-period toggle
  • Receipts attached to transactions. Take photos or import images and PDFs (Amazon, Fnac, anything). Multiple receipts per transaction, full-screen viewer with zoom, automatic iCloud sync
  • Account-wide gallery. A new toolbar entry opens the grid of every attachment in the account, sorted by date. Tap a thumbnail to jump to its parent transaction
  • Paperclip indicator. A paperclip badge appears on the transaction card whenever at least one receipt is attached. Visible at a glance
  • Long-press quick receipt. Long-press a transaction then "Add Receipt" opens the camera straight away. The captured photo is saved as a receipt on that transaction
2.7.1Recurring bug fix. Editing the date of a pre-generated installment no longer causes a duplicate to be regenerated. One-time launch cleanup of existing duplicates: keeps the edited copy, removes the auto-regenerated one
2.7.2Recurring polish. Future transactions are colored in the generated list. Paid/Remaining amounts use the correct sign and color (red for expenses, green for income). "Spending" section renamed to "Earnings" for income recurrences. Estimated total now respects manually-edited installments in per-installment mode
2.7.3Attachment picker fix. The source menu (Photo / Library / File) no longer auto-dismisses. iOS simulator falls back to the photo library instead of using the broken simulated camera that crashed on capture
2.7.4Attachment cap dropped from 20 MB to 1 MB to fit under CloudKit's per-record budget. More aggressive image compression (cascading JPEG quality 0.85 → 0.3 until the result fits). Stop-gap until 2.8.0 moves attachments to detached CKAsset storage to lift the cap again
2.7.5Recurring polish. Auto-scroll-to-today removed. All four filter views (categories, payments, tags, merchants) now share the same grid layout with Clear Selection pinned at the top. Merchant is finally saved on recurring templates in per-installment mode. Recurring delete no longer crashes. Same-day transaction order is now stable. Edits to a recurring template propagate to every generated transaction field by field: any field you've manually overridden stays as-is, other fields follow the new template
2.6May 2026

The Big Recurring Update

A deep overhaul of recurring transactions, customizable forecast balances, auto-scroll to today, and tags.

  • Total-amount mode. Enter "$400 across 4 payments" instead of "$100 four times". A new picker on the recurring form
  • Already-paid offset. Tell ecu how many installments were paid externally before tracking started. ecu only generates the rest
  • Recurring spending tracker. See exactly what each recurrence has cost you, with a progress bar on finite plans
  • Customizable forecast balance. Show end-of-week, end-of-month, in-7-days or in-30-days balances on account cards
  • Auto-scroll to today. No more scrolling past future transactions every time you open an account. ecu jumps straight to today
  • Tags. Lightweight multi-select labels orthogonal to categories: perfect for cross-cutting themes like "vacation 2026"
  • Merchants. A fourth dimension alongside categories, payments and tags: one merchant per transaction (Amazon, Walmart, …) with its own filter
  • Per-account feature toggles. Enable or disable categories, payments, tags and merchants independently for each account. Existing values are preserved
  • Filter revamp. 3-position bank picker, plus "Uncategorized" / "Not tagged" / "No payment" / "No merchant" merged into their respective pickers
  • Skip an occurrence. Long-press a future generated transaction to remove just that one without affecting the rest of the series
  • Link to template. Tap straight from any generated recurring transaction to its parent template
2.5March 2026

Merge, Ignore & Stay Notified

Clean up your categories with merge, hide transfers from stats, and never miss a beat with fully customizable notifications.

  • Merge categories & payments. Reassign all transactions to another item and delete the duplicate
  • Ignore in Statistics. Flag categories or payments to exclude from charts (perfect for inter-account transfers)
  • Notifications overhaul. Daily reminders, weekly budget summaries, monthly recaps, and mid-month budget alerts
  • Expense filter. Show only income, expenses, or all transactions
  • 1-month stats period. New 1M option in statistics alongside 3M, 6M, 1Y, All
  • Granular notification settings. Each notification type individually configurable with time and day pickers
  • Emoji picker fix. All emojis now accepted, including symbols like 🅿️ and ℹ️
2.5.1New setting: choose which balance to display on account cards (Current, Forecast, or Bank)
2.5.2Reduction items in split transactions (coupons, discounts) and delete-from-edit-form for categories and payment methods
2.5.3Stats fixes for split transactions and a new "Recompute All Data" button in Settings
2.4March 2026

The Power User Update

Everything you need to take full control of your finances. Search, export, budgets, widgets, and more.

  • Full-text search. Find any transaction instantly across names, notes, amounts, and categories
  • CSV & PDF export. Generate reports with custom date ranges
  • Monthly budgets. Set spending limits with visual progress tracking and alerts
  • Home screen widgets. Glance at your balance and forecast without opening the app
  • Biometric lock. Protect your data with Face ID or Touch ID
  • Quick actions. Long-press the app icon to jump straight to adding a transaction
  • Haptic feedback. Subtle, satisfying responses to every interaction
  • Manual iCloud sync. One-tap sync button in Settings
  • Notifications. Budget alerts and recurring transaction reminders
2.4.1Native emoji keyboard. Removed last third-party dependency
2.4.2Dark mode fixes, custom color picker, redesigned category picker, smart toolbar pinning
2.3March 2026

Quality & Polish

A stronger foundation with split transactions, smarter navigation, and fully accessible charts.

  • Split transactions. Break purchases into detailed line items
  • Duplicate transactions. One tap to copy any transaction
  • Accessible charts. Full VoiceOver support on all 7 chart types
  • Persistent filters. Your view preferences saved across sessions
  • NavigationStack. Modernized navigation across the entire app
2.2March 2026

Autopilot for Your Bills

Recurring transactions that handle themselves. Set the rules, and ecu does the rest.

  • Recurring transactions. Daily, weekly, monthly, or yearly with flexible rules
  • Pause & resume. Put subscriptions on hold without deleting them
  • Smart generation. Transactions auto-created on app launch
  • Redesigned UI. Fresh transaction details, cards, and account views
2.1March 2026

See the Full Picture

Per-account and global statistics, multi-category transactions, and smarter filtering.

  • Per-account stats. Dedicated charts for each account
  • Global overview. Balance evolution, income trends, spending breakdown
  • Multi-category. Tag transactions with multiple categories
  • Settings page. Default currency picker and exchange rate management
2.0March 2026

Multi-Currency, From the Ground Up

A complete rewrite of the financial engine. Every account gets its own currency, with live exchange rates tying it all together.

  • Per-account currencies. EUR, USD, GBP, JPY, CHF, CAD
  • Live exchange rates. Global balance auto-converted in real time
  • Linked transactions. Seamless transfers between accounts
  • Precision engine. All amounts stored as integers, zero rounding errors