ecu
The expense tracker that actually keeps up with your finances.
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.
What's New
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
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
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
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
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
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
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
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
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
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
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 ℹ️
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
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
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
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
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