GuideNepalKharchapatraProductWalkthroughPersonal Finance

How Kharchapatra works: a walkthrough of the Nepali finance app, from signup to monthly review

A start-to-end tour of Kharchapatra — accounts, statements, budgets, goals, analytics, the tax helper, and the 15-minute monthly review.

Parjanya ShakyaJestha 2083 BS16 min read

Most personal finance tools assume two things that don't hold in Nepal. First, that your bank has a public API and a tidy CSV export. Second, that you live in a single-calendar world where "this fiscal year" means January-to-December.

Both assumptions break the moment you try to track money seriously in Nepal. Your bank's PDF doesn't open the way the app expects. Your accountant works in Bikram Sambat. Your salary slip has CIT and SSF deductions a Western tool has never heard of. And half your spending happens in eSewa and Khalti, not on a card.

Kharchapatra was built to handle exactly that — a Nepali household balance sheet, in रुपैयाँ, against the calendar your accountant actually uses. This post is a start-to-end walkthrough of what the app actually does, in roughly the order you'd touch it.

Why this app exists at all

Three problems Western finance trackers don't solve for a Nepali user, ranked by frequency:

  1. The statement isn't a CSV. Many Nepali banks issue PDFs as the default export. Those PDFs vary by bank and even by month within the same bank. Auto-import has to be flexible enough to handle that variation.
  2. The calendar is split. Your salary slip, tax filing, audit deadline, and most government rate changes are in BS. Your bank statement and most product UIs are in AD. An app that doesn't speak both forces you into a conversion habit you'll quickly drop.
  3. The categories are different. "Groceries" is a Western framing. Most Nepalis describe daily spending as खाना, किनमेल, यातायात, चियापानी. Categories named for the language you describe spending in are the difference between an app you use for a month and one you use for years.

Solving for those three is the spine of the product. Everything else — budgets, goals, analytics — is built on top.

The shape of the app

Three layers, in order:

LayerWhat lives thereWhere it shows up
CaptureStatement imports, manual entries, accounts, opening balances/dashboard/statements, /dashboard/accounts, the "+ Add" form
OrganiseCategories, transactions table, edit dialog, bulk recategorisation/dashboard/transactions, /dashboard/categories
DecideDashboard summary, analytics, budgets, goals, EMIs, tax helper/dashboard, /dashboard/analytics, /dashboard/budgets, /dashboard/goals, /dashboard/emi, /dashboard/tax

You can't make good budget decisions without organised transactions. You can't organise transactions without capturing them first. The walkthrough below moves through those three layers in order.

Step 1 — Sign up

Go to web.kharchapatra.com on a laptop or open the Android app. Sign-up takes a name, email, password (8+ characters), and a password confirmation — no card, no phone-number OTP. The session is stored as an httpOnly cookie that lasts thirty days, so you don't have to log in again unless you explicitly sign out.

Step 2 — Add your accounts

The first thing the app needs is the structure of your money — which banks you have, which wallets, and how much is in each.

Open Accounts in the sidebar. The "Add account" flow shows a preset list of 10+ Nepali institutions (NIC Asia, Nabil, Global IME, NMB, Standard Chartered, Himalayan, Prabhu, Siddhartha, plus eSewa, Khalti, IME Pay), or you can name a custom one (cash, hundi, a parent's joint account, anything). Each account takes:

  • Name (e.g., "NIC Asia salary", "eSewa primary", "Cash wallet").
  • Type (savings, current, wallet, cash, credit card).
  • Opening balance in rupees as of a chosen date. This is the number the rest of the app calculates from — get it right.
  • Currency (defaults to NPR; USD is supported for the dollar-account scenario).

The accounts page then shows each account with its current balance and a small sparkline of the balance trend over the last 30 days. Click into an account to see only its transactions, edit its details, or archive it.

Step 3 — Drop in a statement

This is where the hour you'd spend in a spreadsheet collapses to about a minute.

Go to Statements → Upload. Drag a CSV, PDF, or Excel file (the same file your bank emails or you download from their portal). The app:

  1. Auto-detects the format. eSewa Excel exports are recognised by their header structure. Bank PDFs are parsed using OCR fallback when needed. Bank CSVs are tested against a few common Nepali bank layouts.
  2. Maps the columns. Date, description, amount, debit/credit, account number — Kharchapatra guesses which column is which. You confirm or adjust the mapping in a simple table with dropdowns; it remembers the mapping for next time so you don't have to map twice.
  3. Shows a preview. Each parsed row appears in a review table with a checkbox. You can deselect rows that aren't real transactions (interest reversals, internal fund movements, anything the bank dumped in the file that shouldn't be a transaction).
  4. Dedupes. Anything that's already in your account (matched by date + amount + description hash) is flagged and skipped by default.
  5. Auto-categorises. Roughly 150+ English and Nepali keywords map transactions into 24 default categories — FOODMANDU goes to खानपिन, "DARAZ ORDER" goes to किनमेल, "FONEPAY SALARY" goes to तलब, and so on. You only need to fix the ones it gets wrong.
  6. Imports. Click confirm and the rows land in your transactions table.

For accounts that don't issue statements (cash, hundi, an informal loan account), the manual entry form on the dashboard is two fields: amount and a one-line description. Date defaults to today; category is suggested from the description.

Step 4 — The dashboard, at a glance

Open /dashboard — the home screen. Seven sections, top to bottom:

  • Sync status strip. A small banner showing "Synced X min ago" when you've synced from the Android app at least once. Hidden for web-only users — it only appears once a mobile device has registered a sync.
  • Summary card with greeting and net balance. "Good morning, Parjanya" up top, then a hero card showing current net balance across all accounts, plus the period summary (income, expense, transaction count for the month).
  • Quick actions. Four shortcut tiles: Import statement, Analytics, Budgets, Savings Goals — the fastest path to the next-most-common thing you'll do after opening the dashboard.
  • Health score card. A 0–100 score with a coloured arc, plus a four-factor breakdown: savings rate ((income − expenses) ÷ income), budget adherence (% of budgets within their cap), expense diversity (1 − top category's share, so the score rewards not having all spending in one bucket), and emergency fund (balance ÷ avg monthly expense, normalised to 6 months). Expand the card to see each factor's formula in plain language.
  • Expense by category (donut chart). The dominant categories of the current month, with percentages.
  • Income vs Expense Trend (area chart). Income and expense across the recent period. The shape of the gap between the two curves is where the saving rate lives.
  • Recent transactions. The last few transactions, each with the category-coloured icon (income green, expense red, transfer violet), the merchant/description, the date, and the signed amount with the typographic minus.

The dashboard is read-only by design — for editing, you go to the transactions page. The dashboard is the "is anything weird" view, not the "fix it" view.

Step 5 — Working with transactions

/dashboard/transactions is where you spend the most time once a month. The page has four moving parts:

Search bar. A debounced search box for free-text search across descriptions and merchants. Active filters appear as removable pills so you can see what's being applied and click to clear individual ones.

Advanced filter popover. For when you want to be precise: amount range, type (income/expense/transfer), specific account, specific category, source (manual/imported/recurring), and a date range.

The table itself. Each row shows: date, description, category, account, amount. Click any row to open the edit dialog — change the category, the description, the amount, the account, or move it to a different date. Selecting multiple rows opens the bulk action bar at the bottom: bulk recategorise (the most common operation), bulk delete, or move-to-account.

Pagination + CSV export. The table is paginated 25 rows at a time. The export button at the top right downloads every row matching the current filter (not just the visible page) as a UTF-8 BOM-encoded CSV that opens cleanly in Excel.

The thing most users underuse: bulk recategorisation. If the auto-categoriser put 40 different "FOODMANDU" rows into "Shopping" by mistake, you don't fix them one at a time. You search "foodmandu", select all, recategorise to खानपिन — one operation.

Step 6 — Categories, your way

The category page is where the Nepali-language framing lives. Default categories include खानपिन, यातायात, किनमेल, घरभाडा, बिजुली, खानेपानी, इन्टरनेट, मनोरञ्जन, स्वास्थ्य, शिक्षा, तलब, बोनस, घरबाट सहयोग — plus their English equivalents.

System defaults are read-only (they back the auto-classifier and stay consistent across accounts). You can add your own custom categories alongside them — set a colour and icon for each, and edit or delete the custom ones at any time. Custom categories play with budgets and analytics the same way default ones do.

Step 7 — Budgets

/dashboard/budgets lets you set a cap per category over a chosen period. Set "खानपिन — Rs 12,000" and the app:

  • Shows a progress bar that fills as the period progresses, with the current percent inside a tile next to the budget name.
  • Turns the card border amber once spend crosses 80% of the cap — you see it at a glance the next time you open the dashboard or budgets page.
  • Turns the card border red once spend crosses 100%, and the card's footer switches from "Rs X remaining" to "Rs Y over."

There are no push notifications today — the surfacing is visual on the budgets and dashboard screens. The math is honest: budgets are a forecasting tool, not a moral one. If you blow past a budget the app says "you went over"; it doesn't try to make you feel guilty.

Step 8 — Goals and recurring rules

Goals (/dashboard/goals) are sinking-fund-style savings targets. Each goal has a name, a target amount, an optional target date, and a coloured progress card. You add to the goal manually as you save; the card shows progress against the target and the underlying math.

Recurring rules (/dashboard/recurring) capture the predictable monthly bills — rent, internet, electricity, Netflix, the loan EMI — so they don't need to be re-entered each month. Each rule has a name, amount, category, account, and a frequency (daily/weekly/monthly/yearly). The page tracks each rule's next-due date; clicking Run now materialises any rules whose next-due date has passed into real transactions, showing you how many were created.

Step 9 — Analytics

/dashboard/analytics is where the dashboard's snapshot becomes a multi-period view. Three panels:

  • Category drilldown. Ranked bars of either expense or income by category for a chosen period. Click any bar and you jump to the transactions page already filtered to that category and date range — the most useful single feature for "where did all my money go in Mangsir."
  • Income vs expense trend comparison. A grouped bar chart of income and expense by day, week, month, or year. The granularity tab toggles the bucket size.
  • Balance history. A line chart of any single account's balance over the chosen period. Use this when you're trying to spot where a specific bank account's balance started bleeding.

The export button on this page downloads the underlying data so you can run your own pivot in Excel if you want to.

Step 10 — The EMI calculator

/dashboard/emi is a standalone calculator that takes principal, interest rate, and tenure, and returns the EMI, total interest, and an amortisation schedule month-by-month. It's the same math as the home loan EMI math post, wrapped in a form. Useful for any "should I take this loan at this rate" question before you sign — quicker than building a spreadsheet, and the amortisation table makes prepayment scenarios visible.

Step 11 — The tax helper

/dashboard/tax estimates your Nepal personal income tax against the current Bikram Sambat fiscal year's slabs. Inputs:

  • Annual income (rupees).
  • Filing status (individual or couple — the couple-status slabs are wider, per the Finance Act).
  • SSF participant flag (zeros out the 1% social security tax on the first slab per Sec 21(4)).
  • Standard deductions: retirement contribution (CIT/PF/SSF up to the Rs 5 lakh cap), life insurance premium (up to Rs 40,000), health insurance premium (up to Rs 20,000), donations.

Output: total tax, effective rate, take-home, and a per-slab breakdown showing how each tax bracket contributes. Useful for the "should I top up CIT this year" question — see the CIT vs PF vs SSF post for the framing.

For full FY mechanics, the income tax brackets post walks through the slabs in detail.

Step 12 — Settings and what stays private

/dashboard/settings is the spine of the account:

  • Profile. Name, email, password.
  • Demo session. Only visible if you're in a demo account — lets you reset the demo data or exit the demo cleanly.
  • Theme. Light, dark, or system (the dashboard fully supports both).
  • Locale. English by default; partial Nepali UI for category names and key labels.
  • Danger zone. Permanent account deletion. Requires typing your email to confirm, and the deletion request goes to the backend with a confirm-email check.

What does not happen anywhere in the app: a request for your banking password. No "log in with your bank to import" flow. The closest the app gets to your bank is a statement file you exported yourself.

The 15-minute monthly ritual

Once a month, ideally on the first weekend of a new BS month, the loop is:

  1. Open Statements. Drop in last month's bank and wallet statements. Confirm the mapping (already remembered from last time), uncheck any junk rows, and import.
  2. Open Transactions. Search for anything the auto-categoriser flagged as "uncategorised" and bulk-recategorise.
  3. Open the dashboard. Eyeball the summary cards. If anything looks weird ("expense up 60% this month"), click into the category drilldown.
  4. Open Budgets. Adjust caps if your reality has shifted (festival month, wedding month, a new EMI).
  5. Open Goals. Check that the savings goals are on track for the target dates.

That's it. Fifteen minutes, roughly twelve times a year. The blog post The 15-minute monthly money review walks the ritual itself in more detail — Kharchapatra is the tool that makes it take fifteen minutes instead of two hours.

What Kharchapatra doesn't do (yet)

A few things to be honest about:

  • No live bank connection. Open Banking is not available in Nepal, and screen-scraping someone else's credentials is the wrong tradeoff. The statement-upload workflow is deliberate.
  • No NEPSE portfolio tracking inside the app. For NEPSE-specific tools, Mero Share's portfolio view is what most users already use. Kharchapatra tracks the cash flowing in and out of your trading account, not the holdings themselves.
  • No automatic foreign-currency conversion. USD accounts are supported as a currency tag; if you earn in USD, the remote-work post covers the exchange-rate timing question separately.
  • No tax filing. The tax helper estimates what you owe; it doesn't file. For filing you still need a CA or the IRD portal.

The product is a tracker and a thinking tool. It is not a bank, a broker, or an accountant. The roadmap is to keep adding the smallest features that compound into a tighter monthly review, in that order.

Bikram Sambat: what's shipped, what's on the way

A note worth surfacing because the calendar question is the first thing most Nepali users ask about.

What's shipped on the web today:

  • The tax helper anchors to the current Nepali fiscal year — FY 2082/83 in the slab definitions and label.
  • Money is in NPR (paisa under the hood, displayed via formatMoney).
  • The mobile Android app surfaces BS more prominently in its day-to-day UI.

What's not yet shipped on the web:

  • Transaction rows currently show AD dates (day-month-year, "16 May 2026") via the standard formatter.
  • There is no BS-strip header, BS-aware filter, or BS goal-target picker on the web yet — those are on the build list.

The product intent is BS-first because the rest of your financial life already runs on it — salary slip, IRD circular, audit deadline, accountant's filing schedule. The web build is currently mid-transition toward that intent; the tax helper is the most visible BS touchpoint right now, and richer BS UI is in progress.

What you actually need to know

  • Kharchapatra is built around three layers — capture, organise, decide — and the entire monthly loop is fifteen minutes once you've set up.
  • Statement import is the workhorse: CSV / PDF / Excel from any Nepali bank, eSewa / Khalti / IME Pay auto-detected, with column mapping, dedup, and auto-categorisation built in.
  • Budgets show progress visually (amber at 80%, red over 100%), recurring rules handle predictable bills via a "Run now" processor, analytics drill from a category to its transactions in one click, the tax helper handles current FY slabs, and the EMI calculator covers loan math.
  • Your bank password never leaves your bank — Kharchapatra works only on statements you export yourself.

Questions, feature requests, or banks Kharchapatra should support out of the box? Email parjanya57@gmail.com.