Tally: Budget App for Individuals and Couples
What Tally Does
Tally is built for one specific job: helping a person (or two people sharing a household) plan and track every dollar of income, in named envelopes, from their phone.
- Zero-based envelope budgeting. Every dollar of income is assigned to a named envelope — Groceries, Rent, Gas, Sinking Fund, and so on. When an envelope is empty, spending stops.
- Solo or shared, your call. A single user can run an entire budget on one phone. A couple can opt into a shared "household" so both partners see the same envelopes, the same balances, and the same transactions in real time. Built on a private iCloud CloudKit shared zone; no third-party social layer.
- Per-transaction tagging. Each transaction can be tagged to a person or kept generic — useful for couples splitting contribution and spending, and equally useful for a solo user separating personal from business spending.
- Sinking funds, rules, and recurring transactions. Predictable bills, irregular savings (car repair, Christmas, insurance premium), and rule-based payee → envelope categorization are all first-class.
- Plain-English insights and benchmarks. Tally compares spending against published guidance (Dave Ramsey, BLS Consumer Expenditure Survey, USDA food plans, CFPB) and offers gentle tips when an envelope is consistently overrun.
Who Tally Is For
The target user is a U.S.-based adult who wants a calm, opinionated budgeting app and is willing to assign every dollar to an envelope. This includes:
- Solo budgeters — single, divorced, widowed, or sharing a roof but not finances — who want zero-based budgeting without a spouse on the account.
- Couples in their 20s, 30s, or 40s who want their partner on the same screen, with the same data, on day one — not as an upsell.
- People who have rejected the spreadsheet but also rejected Monarch's "investment dashboard" sprawl and YNAB's $99/yr price.
- Former EveryDollar or Mint users who want something that respects an envelope model.
Tally is U.S.-only at launch (Plaid coverage and bank routing assume USD).
How Plaid Is Used Inside Tally
Plaid is an optional feature reserved for the paid tier. The free tier is a complete manual-entry budgeting app — Plaid is not required to use Tally.
Plaid products requested
- Link — for the bank connection UX.
- Transactions — the only data product Tally actually consumes. Tally fetches the transaction stream from the user's connected checking, savings, and credit card accounts, then matches each transaction to a budget envelope (or queues it for the user to assign).
- Auth and Identity are not requested. Tally does not initiate ACH transfers, does not move money, and does not need account/routing numbers.
- Investments, Liabilities, Income, and Assets are not requested. Tally is a zero-based budgeting app — net-worth tracking and investment dashboards are deliberately out of scope.
End-to-end flow
- The user (paid tier only) taps "Connect a bank" inside Tally's settings.
- Plaid Link runs inside the app and returns a
public_token. - Tally's iOS client posts the
public_tokenover HTTPS totally-finance-worker, a Cloudflare Worker we operate. The Worker exchanges the public token for anaccess_tokenusing our Plaid client secret, which is stored only as a Worker secret and never embedded in the iOS binary. - The Worker stores the encrypted
access_tokenkeyed by the user's CloudKit user record ID. It returns only an opaque connection ID to the client. - On schedule (and on user pull-to-refresh), the Worker calls
/transactions/sync, returns the delta to the iOS client, and the client writes those transactions into the user's CloudKit data — either the private budget zone (solo user) or the shared household zone (couple). - The user (or our rule engine) assigns each new transaction to a budget envelope. The envelope's "spent" total updates in real time.
Data Tally stores from Plaid
For each imported transaction Tally keeps: amount, currency, merchant name as returned by Plaid, posted date, account name (e.g. "Chase Checking ...4321"), and a Plaid-assigned category that we then map to the user's envelope. Tally does not store the user's bank login credentials, full account numbers, routing numbers, balance history beyond the most recent balance, or any investment, loan, or identity data.
Where the data lives
- iOS device. Transactions render from the user's CloudKit data, which is encrypted at rest by iCloud.
- CloudKit (the user's iCloud). Tally has no third-party server-side user database. Budget data, envelopes, and transactions live inside the user's iCloud account. Couples who opt into household sharing do so via Apple's CKShare flow into a private CloudKit shared zone — solo users never create a shared zone.
- Cloudflare Worker (
tally-finance-worker). Stores only the encrypted Plaidaccess_tokenand a small cursor for incremental sync. No transaction history, no PII, no merchant data is retained server-side once delivered to the iOS client.
Retention and deletion
If a user disconnects a bank inside Tally, the iOS client calls /item/remove on Plaid via the Worker and the Worker immediately deletes the stored access_token. Transactions already imported into the user's CloudKit data stay with the user (they own their budget history) unless the user deletes the budget or their Apple ID. There is no marketing pipeline, no analytics broker, and no sale of data — see the master privacy policy.
Security
- All client ↔ Worker traffic is HTTPS / TLS 1.2+.
- Plaid client secrets are stored as Cloudflare Worker environment secrets — never shipped in the iOS binary, never returned to the client.
- Plaid
access_tokens are encrypted at rest using Worker KV encryption and keyed per-user. - Couples opting into household sharing do so via Apple's CKShare invite flow inside Tally. The shared zone is only visible to the inviter and the explicitly invited partner — no public discovery, no friend graph. Solo users never expose their data to anyone.
- Tally has no advertising SDK, no analytics SDK that ingests financial data, and no third-party trackers.
Pricing
| Tier | What's included | Price |
|---|---|---|
| Free | Manual transaction entry, single user, unlimited envelopes, dashboard. | $0 |
| Paid | Everything in Free, plus optional household sync for couples, Plaid bank-link auto-import, rule-engine learning, recurring transactions, and insights. | $59.99 / yr or $179.99 one-time lifetime (first 1,000 customers only) |
Privacy and Terms
Tally is governed by the Everlight Digital privacy policy and terms of use. Tally-specific items (Plaid use, CloudKit shared zone, retention) are described above and supersede the master policy only where it is more specific.
Developer
Tally is built by Brendan Pratt under Everlight Digital, a sole-proprietor iOS studio based in the United States. Tally is an independent project with no bank, credit-card, or financial-institution affiliation.
Contact
For Plaid review verification, partnership inquiries, or general questions:
brendan@everlight-digital.com