Skip to content

Features

patilyashh edited this page Aug 6, 2026 · 1 revision

Features

Everything XPENC does, how it works, and where to find it. As of v1.3.0 (plus the v1.3.1 beta items marked below).

Accounts

Accounts hold real balances: Cash, Bank, Card, Pay-later, Prepaid Balance, and a Savings Goal (see below).

  • Debit cards & UPI are linked instruments, not accounts. They spend their bank account's money, so a UPI payment never counts as its own pool of money — that would double-count the same rupees.
  • Pay-later accounts (BNPL, "buy now pay later") carry a balance you owe.
  • Prepaid Balance (new in 1.3.0) is for a canteen fob, gift card or transit card — money you already loaded onto it. Unlike Pay-later, it is not a liability: spending it draws down a real balance exactly like Cash or Bank.
  • Credit cards carry their own balance, negative when you owe money on them.
  • Archived Accounts (More → Accounts → Archived): archive an account you no longer use instead of deleting it — its history stays intact, and it can be unarchived any time.

Transactions: Income · Expense · Transfer

Three transaction types, kept strictly apart:

  • Income and Expense move money in or out of your net worth and are the only things that appear in budgets and income/expense reports.
  • Transfer moves money between your own accounts and never touches your net worth or your budgets — moving ₹5,000 from Bank to Cash is not "spending" ₹5,000.
  • Split expenses: divide a single transaction across multiple categories with its own numpad, so a big shopping trip doesn't have to be logged as one lump category.

Tags & receipts

Added in 1.3.0. Both are one tap away — always-visible shortcuts in the Add Transaction app bar (not buried below the keypad):

  • Tags — free-form labels beyond category, with autocomplete drawn from tags you've already used.
  • Receipts — attach a photo to any transaction, picked through the system file picker (not the camera, so no camera permission is needed). The image is copied into the app's own storage immediately.

Budgets

Per-category budgets with:

  • Period windows and live spend-vs-budget progress.
  • Once-per-period alerts at 80% spent and overspend.
  • A subcategory cap that can never exceed its parent category's budget — raising a child above its parent, or shrinking a parent below an existing child, is blocked. The Budgets screen threads subcategories under their parent, indented with a connecting line.
  • Totals never double-count a parent and its children: a subcategory's budget is a sub-allocation within its parent's cap, not additional spend.
  • An optional note field on any budget (v1.3.1 beta) for context on what it's for.

Savings Goals

Redesigned in the v1.3.1 beta: a goal is a real account, funded and drawn down by ordinary transfers — not a passive tracker that only reads another account's balance. It counts toward net worth and stays out of income/expense automatically, same as every other account. Start a fresh goal or turn an existing account into one; Add funds / Withdraw shortcuts sit on the goal screen itself.

Persons — dues & loans

Track who owes you and who you owe:

  • Running balances per person, with partial settlements.
  • Optional linkage to a real account movement (so lending cash actually debits your Cash account, if you want that).
  • Editable ledger entries (1.3.0) — tap an entry to edit direction, account, amount or date, instead of only delete-and-redo.
  • Archived Persons (More → Persons → Archived), mirroring Archived Accounts.
  • Lending money is not spending, and being repaid is not earning — person movements are excluded from budgets and income/expense reports, same principle as transfers.

Recurring rules ("Auto")

Set a rule once and XPENC posts it on schedule:

  • Frequencies: weekly, monthly, and (v1.3.1 beta) biweekly — for a loan repayment or anything else landing every two weeks.
  • Variable-amount rules (v1.3.1 beta): mark a rule "amount varies each time" (e.g. a salary that depends on hours worked). It still posts on schedule using the usual amount as a placeholder, but the posted transaction is flagged for review instead of silently trusting a guess.
  • Recurring rules are included in backup/restore (a bug that dropped them was fixed in 1.3.0).

Calendar & Cash Reminders

  • Calendar: a day-wise in/out grid of your transactions. The dot per direction (income/expense) shows nothing about the amount at a glance — readable at a distance and safe if someone glimpses your screen.
  • Cash Reminders: EMI/bill reminders that post nothing automatically — they notify you and wait for confirmation, by design. Nothing silently debits your accounts.

Shopping lists

Named, colour-coded lists instead of one flat list (redesigned in 1.3.0; existing items migrated onto a default list automatically).

Passcode lock

Settings → Security (new in 1.3.0): a 4–6 digit PIN gates the app on open, with an optional biometric (fingerprint/face) unlock on top. The passcode is device-local — a backup taken before a passcode existed never silently turns the lock off on restore, and the passcode itself survives a backup/restore untouched.

Screenshot blocking

v1.3.1 beta: a Settings toggle that blocks screenshots and screen recording, and blanks the app's thumbnail in the recent-apps switcher, via Android's native FLAG_SECURE.

Home screen widget

An Android widget (new in 1.3.0) showing net worth at a glance, live-updated whenever the ledger changes; tapping it opens the app. Also ships "+Expense" / "+Income" quick-add shortcuts.

Insights & Reports

One chart engine, several views under Stats:

  • Category pie chart, income vs. expense, net-worth trend over time.
  • Monthly and yearly toggles.
  • Per-account and per-budget statement PDFs.
  • Income & Expense Report PDF (new in 1.3.0): a period summary — category breakdown plus the same headline numbers Stats shows — downloadable alongside the existing statements.

Backup & export

See Backup & Restore for the full walkthrough. Short version:

  • Symmetric JSON backup/restore, plus CSV export shaped for accountants / Tally.
  • Durable, automatic backups (new in 1.3.0): backups live in the public Download/BACKUP XPENC folder via Android's MediaStore, so they survive the app being uninstalled — no storage permission needed. An optional schedule (daily / monthly / custom) runs opportunistically on app open, with configurable retention. "Find existing backups" recovers the on-device index after a reinstall with one folder-picker consent.
  • Clear all data (Settings → Clear all data, new in 1.3.0): wipes the ledger back to fresh-install defaults, after an automatic safety backup. Preferences and backup history are left alone.

Currency

Any world currency, chosen in Settings → Currency. As of the v1.3.1 beta, every amount field reads the currency you actually picked — not a hardcoded symbol.

Bank-SMS auto-capture — paused, returning

Shipped in 1.0, paused in 1.1.0: the READ_SMS permission made Google Play Protect block direct APK installs. The on-device pipeline (parser · dedupe · review cards · Auto-Approve with real Undo) is intact in the code and is planned to return in a Play-compliant form — see the Roadmap and open issues #26 (manual share-sheet import) and #25 (screenshot-based import) for the two approaches under discussion.

Design invariants behind every feature

These aren't preferences, they're enforced everywhere in the app (see structure.md and CONTRIBUTING.md in the repo for the full list):

  1. Amounts are integer paise/cents — never a floating-point double.
  2. Net worth = Σ account balances. Transfers keep it unchanged; income raises it; expense lowers it.
  3. Transfers and person (due/owe) movements are neither income nor expense and never appear in budgets or income/expense reports.
  4. Debit cards & UPI are linked instruments, not accounts — they hold no balance of their own.
  5. Nothing auto-posts silently — Cash Reminders and recurring rules always confirm with (or flag for review by) the user.

Clone this wiki locally