Skip to content
Ritesh FirodiyaGet in touch

Work / Chitragupt / Wiki / Concepts

expense-pillar

Conceptcanonicalverified 2026-07-10

CONCEPT.EXPENSE-PILLAR

Expense pillar

Summary

Expense is the household cashflow lens — a review-only surface that decomposes parsed bank + card statements into four metrics (Income · Expense · Invested · Saving), flags two independent monthly signals (▲ drew-from-balance ≠ ▼ deficit), and lets the user teach the auto-categoriser on ambiguous merchant rows. It never sets budgets, never caps spending, and never moves money.

Why it matters

The whole point of Expense is to answer "did I live within my income this month, and if I invested, did I do it from surplus or by drawing down savings?" — a two-marker question. Collapsing that into a single deficit marker (as earlier drafts did) misrepresents months where investing exceeded surplus without expense exceeding income. Getting the marker semantics wrong makes the chart lie about the user's own finances.

Implications

  • KPI strip is four metrics, not three. Income · Expense · Invested · Saving. Definitions: Income = salary + refunds + interest; Expense = consumption + EMI + tax + rent; Invested = money moved into MFs / stocks / FDs; Saving = Income − Expense. Invested is not part of Expense.
  • Two independent monthly markers, not one.
    • ▲ drew from balance (blue) — Invested > (Income − Expense). User invested more than their monthly surplus and drew from stored balance. Not a deficit.
    • ▼ deficit (rose) — Expense > Income. Consumption exceeded income regardless of investing. Both can appear independently. A month can carry ▲ without ▼ (invested aggressively from stored balance while covering all expenses — see the Feb example: "Income ₹3.20L still covered ₹2.34L of expenses (no deficit). You then chose to invest ₹2.82L — ₹86k from surplus + ₹1.96L drawn from your saved balance.").
  • Review-only. No budgets, no caps, no auto-pause of subscriptions, no move-money. Category budgets are permanently out of scope. Corollary of read-only-review.
  • Cashflow chart is stacked bars + income line. Bars (bottom → top): Expense (rose) · Invested (blue) · Saving (amber). Overlay: Income (emerald) line. Marker glyphs (▲ / ▼) render per-month above the bar.
  • Where-money-went donut groups 8 canonical categories: Housing · Food & groceries · Loan EMI · Other · Transport · Tax · Subscriptions · Health.
  • Largest single outflows filters to ≥ ₹25,000 this AY · excludes investments & family transfers. Rows carry tax-linked chips (§80C, §80D, §80C · Edu, Loan, Housing) that feed pillar-tax.
  • No AY selector; AY appears in copy labels only. Range selector 1M / 3M / 6M / 1Y / Custom (default 1Y) is the only date control. Copy strings are allowed to reference AY ("…this AY", "Expense Review is locked for AY 2026-27"). See 2026-06-11-ay-selector-tax-only.
  • Categorise-assist is parser correction, not action. The modal on expense-transactions.html surfaces the txn context ("Last 90d: 3 txns · Avg ₹3,150"), AI-suggested categories with confidence (Groceries 82% · Household 12% · Health 6%), and a full chip menu including tax-linked (§80C invest, §80D health insur, Gift / loan, Transfer, One-off · skip, + Custom). Optional "Apply to all future <MERCHANT> charges" creates a merchant rule editable in Settings · Merchant rules. Categorise-assist never executes external action — it teaches the parser. Formal write-up: categorise-assist.
  • Transactions surface is the categorisation workbench. Table Date · Merchant · Account · Category · Amount with search / category / account / date filters (default 1Y). Totals strip: Showing · Inflow · Outflow · Net · Uncategorised. Aside: uncategorised queue + Download CSV + Add a merchant rule. See expense-transactions.
  • Family variant is a superset lens, not a separate mode. Household burn donut split by member, stacked-by-member 12M cashflow chart, per-member × per-category grid, and cross-household detectors (OTT-overlap, joint-bill split, senior-parent §80D super-top-up hints). See family-workspace and pillar-tax for how §80D moves flow back into tax optimisation.
  • Free tier locks the review. Empty locked variant carries blurred previews and "Expense Review is locked for AY 2026-27" · "Unlock · ₹249". Ingest still runs; only the review surface is gated.

Related

Sources

  • .context/designs/web/expense/expense-empty.html
  • .context/designs/web/expense/transactions.html
  • .context/designs/web/expense/expense.html
  • .context/designs/web/expense/categorise.html
  • .context/designs/web/expense/expense-locked.html
  • .context/designs/web/expense/family.html
  • .context/designs/web/expense/family-locked.html

Every project of mine is written down like this.

Read the résumé