Public beta on TestFlight · iOS 26.2+

Finely

Know what your month is really costing you.

Finely Home screen showing the current period

A balance explains today. A period explains the decision.

Personal finance becomes useful when past activity and future commitments stop competing for attention. Finely keeps both visible and works out what they leave you for the current period, without asking you to reconcile raw accounting data.

Recorded money, what already happened (income, expenses, and transfers), plus committed money, what is already planned (subscriptions, fixed charges, and expected income), gives the current period: what is still available. On the period's timeline, recorded money fills the days up to today and committed money the days until the period ends.

From input to understanding

Each screen answers a different question, but none keeps its own version of the ledger. One path runs from capture to an explainable decision.

Five steps: 1. Capture, from manual entry, recurring declarations, or CSV import. 2. Consolidate, through one write path for every change. 3. Project, recorded and future movements in one order. 4. Understand, in Home, Activity, and Statistics. 5. Ask and act, a plain-language question answered by exact, app-owned calculations.

One source of truth, several ways to read it

Screens never merge stored and scheduled money on their own. Every change goes through one write path into SwiftData, and one read projection builds the picture every screen shares.

Manual entry, recurring setup, CSV import, and Siri and Shortcuts all write through one write path, which owns every change. It stores facts in SwiftData: recorded transactions and recurring rules, kept separate. A read projection merges recorded and forecast movements once, in order; Home, Activity, Statistics, and Analysis all read from it. Projected rows are never stored.

How a transaction is written once and read back everywhere is the subject of The Ledger Behind Finely.

Forecast the future, never rewrite the past

A recurring charge is useful before it happens, but it only becomes history when it is due. Finely keeps projection and persistence apart, so planning stays current while completed periods stay trustworthy.

A monthly subscription of 9.99 euros rises to 12.99 euros. Charges from March to June were written once when they fell due, and their amount never changes. From today, July to October are derived from the recurring rule each time a period is read, at the rule's current price, and are never stored. Today falls in June: editing June's charge updates the series from here on, while earlier charges can no longer be edited.

The difficult work sits between the screens

  • Local financial truth

    SwiftData stores facts and domain services derive meaning, so balances, periods, projections, and comparisons stay deterministic and testable.

  • Controlled import

    Column mapping, category inference, and duplicate detection happen before one batched save.

  • Paid access

    StoreKit 2 transaction updates and current entitlements drive Pro features, not optimistic purchase UI state.

  • Privacy and continuity

    Amount masking, an optional app lock, export, and sync status stay visible to the person using the app.

End-to-end ownership

I set the product direction, design the interaction, model the financial domain, build the UIKit architecture, define persistence and monetization boundaries, test difficult calendar behavior, and prepare the app for release. Finely is in public beta on TestFlight; its evidence is the completeness and coherence of the system being built.