BahiALPHA

A local-first, browser-native accounting app for Indian SMBs. No cloud, no subscription, no data leaving the device. One .khata file per company.

For the accountant

Daily invoicing, vendor bills with TDS, bank reconciliation, GSTR-1 / 3B / 26Q. Everything a day-to-day bookkeeper needs in one HTML file.

For the chartered accountant

Open one .khata per client. Trial balance, balance sheet, day book review, annotations, and a printable review report — per client, in seconds.

Bahi dashboard (pharma sample)

Two modes, one app

Bahi asks who are you? the first time you open it. Your answer flips a single flag in the browser, reshapes the sidebar, and tags every entry you post with the right actor in the audit log. You can switch any time from the topbar badge or with Ctrl+Shift+M. Both modes read and write the same .khata files — nothing is hidden from either side.

OWNER

Owner mode

The day-to-day bookkeeper running a business

  • Manage one company at a time — the .khata file you have open is yours
  • Raise invoices, record receipts, enter purchase bills, pay vendors with TDS, reconcile bank
  • Run GSTR-1, GSTR-3B, CMP-08, Form 26Q / 27EQ / 27D straight out of the ledger
  • Full inventory engine (WAC + FIFO + batches), delivery challans, e-way bills, FY rollover
  • Tally-style keyboard parity (F4–F10 vouchers, Ctrl+Z undo, Ctrl+Shift+B backup)
  • Audit log tags every action with actor='owner'

→ See the full accountant walkthrough

CA · AB

CA mode

The chartered accountant reviewing multiple clients

  • One CA profile, many client files — open any .khata a client sends you
  • Client-review panel with per-voucher-type unreviewed counts and bulk sign-off
  • Attach annotations to any entry; track which rows are reviewed vs unreviewed
  • CA-authored adjustment vouchers (year-end, depreciation, accruals, prepaid)
  • Printable review report PDF with firm letterhead, Trial Balance, P&L, BS, observations
  • Audit log tags every CA action with actor='ca' so the client can see exactly what changed

→ See the full CA audit walkthrough

Switching modes: click the OWNER / CA · AB badge in the topbar, or press Ctrl+Shift+M. The first time you pick CA mode, Bahi collects name, firm, and ICAI membership number — stored in IndexedDB on your machine only, never inside any client's .khata file. Your clients get the audit trail, not your profile.

Why local-first

Every Indian accounting tool on the market sends your books to someone else's database. Bahi doesn't. The whole application is one HTML file. Your data is one .khata file. You own both.

One file

Every company is a single .khata zip — manifest.json + books.sqlite. Copy, backup, version-control. Nothing else.

Zero servers

Bahi is a static HTML page. There's no backend to exfiltrate from, nothing to subscribe to, nothing to renew.

Audit-proof

Every entry appends to a signed, hash-linked audit log inside the file itself. Any tampering breaks the chain.

CA-ready

Built-in CA mode, review markers, annotations, and a printable review report. Works across multiple client files without a login.

The three sample files

Three intentionally different shapes — goods+services, goods-only, services-only — to prove the app handles every branch of the chart of accounts. All three pass the 45-assertion data integrity test suite.

Pharma — Goods + Services

Pharma — Goods + Services

Vaidya Life Sciences Pvt Ltd

  • GSTIN 27AABCV1234A1Z5
  • State Maharashtra
  • File pharma.khata

Pharmaceutical wholesaler across 2 FYs. Goods (HSN 30xx/38xx) + lab services (SAC 99xxxx). 120+ invoices, credit notes, advances, TDS deductions, bank reconciliation.

Manufacturing — Goods only

Manufacturing — Goods only

Shree Krishna Steel Industries Ltd

  • GSTIN 24AAACS5678B1Z3
  • State Gujarat
  • File manufacturing.khata

Steel products manufacturer. Heavy inventory (500+ stock movements across 2 FYs), WAC valuation, multiple godowns, high-value B2B invoices with e-way bills.

Consulting — Services only

Consulting — Services only

Arjun Rao Advisory LLP

  • GSTIN 29AAEFA9012C1Z7
  • State Karnataka
  • File consulting.khata

Professional services LLP. SAC 9982xx only, no inventory, no purchases. Smaller scale — closer to what a single-partner or boutique firm looks like.

Try it yourself — 3 steps

The screenshots below are static. To click through the real app with the real data, grab a sample file from the repo and open it in the live build. No install, no account, no upload.

  1. Download a sample file

    Pick whichever shape you want to explore. These are the exact files used throughout this demo — synthetic data, 2 FYs each.

  2. Open the live app

    Use Chrome, Edge, Brave, Arc or Opera. Safari and Firefox don't expose the File System Access API that Bahi needs to write back to your disk.

    → Launch Bahi in a new tab. You'll land on the Workspace screen with the first-run welcome.

  3. Click "Open existing .khata"

    Pick the file you just downloaded. Bahi will ask permission to read & write the file on your disk — allow it.

    Once open, you'll see the dashboard with real receivables aging, top customers, and recent activity. Click anywhere in the sidebar to explore.

Download pharma sample (1.3 MB) Open app ↗ Files open read-write in place. Nothing uploads anywhere. If you prefer to keep the sample untouched, copy it first and open the copy.

Accountant walkthrough

Every route the day-to-day accountant touches, captured against the pharma sample. Click any screenshot to open the live Bahi route in this build (load pharma.khata first).

Daily

The work the accountant does every morning. Raise invoices, record receipts, enter purchase bills, pay vendors.

Sales invoices

Sales invoices

Every invoice with status badge (paid / partial / unpaid / cancelled), customer, date, amount and tax split. Filterable by series, customer, date range, and status.

Pharma sample#/#/invoices
New invoice form

New invoice form

HSN/SAC items, auto-routed CGST+SGST (intra-state) or IGST (inter-state), place-of-supply captured per invoice, round-off, notes, and live preview of the outgoing ledger entry.

Pharma sample#/#/invoice/new
Record a customer receipt

Record a customer receipt

Pick the customer, amount, mode (bank/cash/UPI), and allocate across one or many open invoices. Enforces allocated <= received.

Pharma sample#/#/payment/new
Purchase bills

Purchase bills

Vendor bills with input GST captured separately. Consulting has zero purchases — proof that the sample data is shape-correct.

Pharma sample#/#/purchases
New purchase bill

New purchase bill

TDS section selector (194J / 194C / 194I / 194H), tax-aware totals, and a preview of the resulting vendor ledger and TDS payable postings.

Pharma sample#/#/purchase/new
Pay a vendor (with TDS)

Pay a vendor (with TDS)

Pay a vendor bill, deduct TDS under the applicable section, and post to TDS Payable in one step. The section header and certificate metadata travel with the deduction.

Pharma sample#/#/vendor-payment/new
Record TCS collection

Record TCS collection

For sellers liable under 206C(1H). Bahi computes and posts the TCS payable liability alongside the customer receipt.

Pharma sample#/#/tcs-collection/new

Weekly

Housekeeping tasks. Review masters, reconcile bank, add new items and series.

Customer master

Customer master

Complete customer ledger with GSTIN, state, payment terms, current outstanding and aging. Clicking a row drills through to their invoice history.

Pharma sample#/#/customers
Vendor master

Vendor master

Vendors with PAN, GSTIN, default TDS section and current dues. Used for purchase and vendor-payment workflows.

Pharma sample#/#/vendors
Items & services

Items & services

Unified master for HSN goods and SAC services. Pharma has both: tablet strips, surgical consumables, lab services. Manufacturing has steel products only. Consulting has only SACs.

Pharma sample#/#/items
Invoice series

Invoice series

FY-scoped numbering series (INV/25-26, CN/25-26, PUR/25-26 …). Each .khata file carries its own series and resets them automatically at year-end rollover.

Pharma sample#/#/series
Bank reconciliation

Bank reconciliation

Pick a bank account, paste the bank statement rows, and match them against ledger entries. Unmatched items stay highlighted until resolved.

Pharma sample#/#/bank-reconcile
Credit notes

Credit notes

Sales returns with a back-link to the original invoice. Pharma has 4-5 credit notes in the sample against expired stock returns.

Pharma sample#/#/credit-notes
New credit note

New credit note

Pick parent invoice, adjust lines, auto-reverses the proportional tax, and produces a balanced journal entry.

Pharma sample#/#/credit-note/new
Debit notes

Debit notes

Purchase returns, symmetric to credit notes. Rare in the sample but the route renders correctly with the empty-state panel for companies that have none.

Pharma sample#/#/debit-notes
New debit note

New debit note

Adjust the parent purchase bill, reverse the proportional input GST, and post the balanced ledger entry.

Pharma sample#/#/debit-note/new
Advances

Advances

Customer advances received before an invoice exists. Tracked separately and auto-adjusted against the first matching invoice.

Pharma sample#/#/advances
New advance receipt

New advance receipt

Capture the advance, its GST treatment (taxable on receipt or on adjustment), and the PAN/GSTIN for statutory reporting.

Pharma sample#/#/advance/new

Monthly

Period close and statutory filings. Dashboard review, aging, GST returns and TDS returns.

Dashboard

Dashboard

KPIs for the current month: cashflow vs last month, total outstanding receivables, GST liability, receivables aging and top customers. This is the first thing the accountant sees every morning.

Pharma sample#/#/dashboard
GSTR-1

GSTR-1

Outward supplies summary auto-assembled from the invoice table. B2B, B2CL, B2CS, exports, CDNR, HSN summary — all tabs.

Pharma sample#/#/gstr1
GSTR-3B

GSTR-3B

Monthly return summary: 3.1 outward, 3.2 inter-state supplies, 4 ITC, 5 exempt, 6.1 payment. Numbers reconcile to the sales and purchase registers.

Pharma sample#/#/gstr3b
Form 26Q

Form 26Q

Quarterly TDS return for non-salary deductions. Lists every deduction with section, deductee PAN, amount, rate, date of deduction and date of deposit.

Pharma sample#/#/form-26q
Form 27EQ

Form 27EQ

Quarterly TCS return — counterpart to 26Q on the collection side. Renders the quarter selector and the (empty) deductee table for sample data.

Pharma sample#/#/form-27eq
Form 27D certificates

Form 27D certificates

TCS certificate generator — one printable certificate per collectee per quarter.

Pharma sample#/#/form-27d
Tax challan templates

Tax challan templates

ITNS 280 / 281 challan printable templates pre-filled from the period's liability. No bank integration — just print and take to the bank portal.

Pharma sample#/#/tax-challans
CMP-08

CMP-08

Composition scheme quarterly statement. Renders empty for the sample files since none are composition dealers — but the route is healthy.

Pharma sample#/#/cmp08

Inventory (goods companies)

Every inventory route in sequence. Pharma has the full story — dashboard, stock on hand, register, valuation, batches, aging, godowns, DCs, e-way bills and transfers.

Inventory dashboard

Inventory dashboard

Stock value on hand, count of items below reorder level, count of batches expiring soon, and a top-10 by value strip. Only goods companies see this populated.

Pharma sample#/#/inventory
Stock on hand

Stock on hand

Per-item current balance across godowns with WAC (weighted average cost) valuation. Used for monthly closing and the balance-sheet stock figure.

Pharma sample#/#/stock-on-hand
Stock movement log

Stock movement log

Every in/out movement — sale, purchase, transfer, adjustment, return — with source document reference. This is the source of truth the register is built from.

Pharma sample#/#/stock-movements
Stock register (per item)

Stock register (per item)

Walk-through of a single item's movements with running balance and running WAC. Auditor workflow: pick an item, verify opening + movements = closing.

Pharma sample#/#/stock-register
Batch list

Batch list

Batch-tracked items with manufacture and expiry dates. Critical for pharma — expired batches block sale at the item-picker.

Pharma sample#/#/batches
Valuation summary

Valuation summary

Stock value by godown and by item class. Ties directly to the inventory line on the balance sheet.

Pharma sample#/#/valuation-summary
Reorder alerts

Reorder alerts

Items below reorder level. The accountant runs this weekly to trigger purchase indents.

Pharma sample#/#/reorder-alerts
Stock aging (batch)

Stock aging (batch)

Batch-tracked stock bucketed by age (0-30 / 31-60 / 61-90 / 90+ days). Pharma's sample data doesn't cross the 0-30 day threshold so the route renders its empty-state panel — a valid result.

Pharma sample#/#/stock-aging
Godown master

Godown master

Named storage locations — factory, warehouse-1, consignment — with per-location stock roll-ups.

Pharma sample#/#/godowns
Delivery challans

Delivery challans

DCs for goods dispatched without an immediate invoice (job-work, consignment, returnable).

Pharma sample#/#/delivery-challans
New delivery challan

New delivery challan

Item picker, transport details, and the 'convert to invoice' button that reuses the DC lines on a new tax invoice.

Pharma sample#/#/delivery-challan/new
E-way bills

E-way bills

E-way bill register for invoices crossing the INR 50k / inter-state threshold. Each row links back to its parent invoice.

Pharma sample#/#/eway-bills
New e-way bill

New e-way bill

Transporter details, distance, vehicle number and validity. Bahi pre-fills from the selected invoice so there's no retyping.

Pharma sample#/#/eway-bill/new
Stock transfers

Stock transfers

Inter-godown transfer register — one side of the 'out' matches the other side's 'in'.

Pharma sample#/#/stock-transfers
New stock transfer (outward)

New stock transfer (outward)

Pick source godown, destination godown, items, quantities. Produces the 'out' movement and a printable transfer slip for the receiving side.

Pharma sample#/#/stock-transfer/out/new
Stock transfer (inbound import)

Stock transfer (inbound import)

Import the paired 'in' side of a transfer from a sister godown .khata file. Keeps both sides reconciled without network sync.

Pharma sample#/#/stock-transfer/in/import

Accounting & journal

Free-form accounting entries — journal voucher, day book, ledger lookups, registers.

Journal voucher

Journal voucher

Free-form double-entry voucher for anything the dedicated forms don't cover — depreciation, provisions, expense accruals, CA adjustments.

Pharma sample#/#/journal/new
Day book

Day book

Chronological voucher tape — every entry in date order with narration, ref and running totals. The auditor's first scan of the period.

Pharma sample#/#/day-book
Account ledger

Account ledger

Ledger view for any account — sundry debtors, vendor subledger, bank, TDS payable — with opening, movements and closing balance.

Pharma sample#/#/account-ledger
Sales register

Sales register

GST-compliant sales register: invoice no, customer, GSTIN, taxable value, CGST, SGST, IGST. Used for filing GSTR-1 and also as a standalone printout for CAs.

Pharma sample#/#/sales-register
Purchase register

Purchase register

Symmetric register on the input side. Drives the ITC figures in GSTR-3B Table 4.

Pharma sample#/#/purchase-register

Yearly & governance

Trial balance, financials, period locks and year-end rollover.

Trial balance

Trial balance

Opening + debits + credits + closing for every account grouped by type (asset / liability / income / expense / equity). Grand totals must tie — enforced by a data-integrity test.

Pharma sample#/#/trial-balance
Balance sheet

Balance sheet

Schedule-III compliant balance sheet assembled from the trial balance in-browser. No cloud, no spreadsheet.

Pharma sample#/#/balance-sheet
Profit & loss

Profit & loss

P&L summary with income categories, direct expenses, and indirect expenses. Drilldown to account ledger from each line.

Pharma sample#/#/pnl
Period locks

Period locks

Lock a completed fiscal period so no backdated entries can be made. Attempted writes are blocked with a visible banner.

Pharma sample#/#/period-locks
FY rollover wizard

FY rollover wizard

Close the current fiscal year and carry forward balances as opening entries in the new year. Creates a snapshot before committing.

Pharma sample#/#/fy-rollover
Annotations

Annotations

Sticky notes the CA leaves on specific entries, customers or accounts. Visible in-line and in the annotations register.

Pharma sample#/#/annotations

Manufacturing highlights

High-value B2B invoices, heavy stock movement, WAC valuation. Goods-only workflow — no SACs, no credit notes in the sample.

Dashboard

Dashboard

KPIs for the current month: cashflow vs last month, total outstanding receivables, GST liability, receivables aging and top customers. This is the first thing the accountant sees every morning.

Manufacturing sample#/#/dashboard
Sales invoices

Sales invoices

Every invoice with status badge (paid / partial / unpaid / cancelled), customer, date, amount and tax split. Filterable by series, customer, date range, and status.

Manufacturing sample#/#/invoices
Customer master

Customer master

Complete customer ledger with GSTIN, state, payment terms, current outstanding and aging. Clicking a row drills through to their invoice history.

Manufacturing sample#/#/customers
Purchase bills

Purchase bills

Vendor bills with input GST captured separately. Consulting has zero purchases — proof that the sample data is shape-correct.

Manufacturing sample#/#/purchases
Inventory

Inventory

Manufacturing sample#/#/inventory
Stock on hand

Stock on hand

Per-item current balance across godowns with WAC (weighted average cost) valuation. Used for monthly closing and the balance-sheet stock figure.

Manufacturing sample#/#/stock-on-hand
Stock movement log

Stock movement log

Every in/out movement — sale, purchase, transfer, adjustment, return — with source document reference. This is the source of truth the register is built from.

Manufacturing sample#/#/stock-movements
Valuation summary

Valuation summary

Stock value by godown and by item class. Ties directly to the inventory line on the balance sheet.

Manufacturing sample#/#/valuation-summary
Stock aging (batch)

Stock aging (batch)

Batch-tracked stock bucketed by age (0-30 / 31-60 / 61-90 / 90+ days). Pharma's sample data doesn't cross the 0-30 day threshold so the route renders its empty-state panel — a valid result.

Manufacturing sample#/#/stock-aging
Stock register (per item)

Stock register (per item)

Walk-through of a single item's movements with running balance and running WAC. Auditor workflow: pick an item, verify opening + movements = closing.

Manufacturing sample#/#/stock-register
Delivery challans

Delivery challans

DCs for goods dispatched without an immediate invoice (job-work, consignment, returnable).

Manufacturing sample#/#/delivery-challans
E-way bills

E-way bills

E-way bill register for invoices crossing the INR 50k / inter-state threshold. Each row links back to its parent invoice.

Manufacturing sample#/#/eway-bills
Stock transfers

Stock transfers

Inter-godown transfer register — one side of the 'out' matches the other side's 'in'.

Manufacturing sample#/#/stock-transfers
Godown master

Godown master

Named storage locations — factory, warehouse-1, consignment — with per-location stock roll-ups.

Manufacturing sample#/#/godowns
Trial balance

Trial balance

Opening + debits + credits + closing for every account grouped by type (asset / liability / income / expense / equity). Grand totals must tie — enforced by a data-integrity test.

Manufacturing sample#/#/trial-balance
Balance sheet

Balance sheet

Schedule-III compliant balance sheet assembled from the trial balance in-browser. No cloud, no spreadsheet.

Manufacturing sample#/#/balance-sheet
Profit & loss

Profit & loss

P&L summary with income categories, direct expenses, and indirect expenses. Drilldown to account ledger from each line.

Manufacturing sample#/#/pnl
GSTR-1

GSTR-1

Outward supplies summary auto-assembled from the invoice table. B2B, B2CL, B2CS, exports, CDNR, HSN summary — all tabs.

Manufacturing sample#/#/gstr1
GSTR-3B

GSTR-3B

Monthly return summary: 3.1 outward, 3.2 inter-state supplies, 4 ITC, 5 exempt, 6.1 payment. Numbers reconcile to the sales and purchase registers.

Manufacturing sample#/#/gstr3b

Consulting highlights

Services-only LLP. No inventory, no purchases, simpler dashboard. Proof that Bahi's layout scales down as well as up.

Dashboard

Dashboard

KPIs for the current month: cashflow vs last month, total outstanding receivables, GST liability, receivables aging and top customers. This is the first thing the accountant sees every morning.

Consulting sample#/#/dashboard
Sales invoices

Sales invoices

Every invoice with status badge (paid / partial / unpaid / cancelled), customer, date, amount and tax split. Filterable by series, customer, date range, and status.

Consulting sample#/#/invoices
Customer master

Customer master

Complete customer ledger with GSTIN, state, payment terms, current outstanding and aging. Clicking a row drills through to their invoice history.

Consulting sample#/#/customers
Items & services

Items & services

Unified master for HSN goods and SAC services. Pharma has both: tablet strips, surgical consumables, lab services. Manufacturing has steel products only. Consulting has only SACs.

Consulting sample#/#/items
Credit notes

Credit notes

Sales returns with a back-link to the original invoice. Pharma has 4-5 credit notes in the sample against expired stock returns.

Consulting sample#/#/credit-notes
Receipts & payments list

Receipts & payments list

All customer receipts and vendor payments in one register. Clicking a row shows the allocation breakdown and the underlying ledger entry.

Consulting sample#/#/payments
Advances

Advances

Customer advances received before an invoice exists. Tracked separately and auto-adjusted against the first matching invoice.

Consulting sample#/#/advances
Journal voucher

Journal voucher

Free-form double-entry voucher for anything the dedicated forms don't cover — depreciation, provisions, expense accruals, CA adjustments.

Consulting sample#/#/journal/new
Day book

Day book

Chronological voucher tape — every entry in date order with narration, ref and running totals. The auditor's first scan of the period.

Consulting sample#/#/day-book
Trial balance

Trial balance

Opening + debits + credits + closing for every account grouped by type (asset / liability / income / expense / equity). Grand totals must tie — enforced by a data-integrity test.

Consulting sample#/#/trial-balance
Balance sheet

Balance sheet

Schedule-III compliant balance sheet assembled from the trial balance in-browser. No cloud, no spreadsheet.

Consulting sample#/#/balance-sheet
Profit & loss

Profit & loss

P&L summary with income categories, direct expenses, and indirect expenses. Drilldown to account ledger from each line.

Consulting sample#/#/pnl
Sales register

Sales register

GST-compliant sales register: invoice no, customer, GSTIN, taxable value, CGST, SGST, IGST. Used for filing GSTR-1 and also as a standalone printout for CAs.

Consulting sample#/#/sales-register
GSTR-1

GSTR-1

Outward supplies summary auto-assembled from the invoice table. B2B, B2CL, B2CS, exports, CDNR, HSN summary — all tabs.

Consulting sample#/#/gstr1
GSTR-3B

GSTR-3B

Monthly return summary: 3.1 outward, 3.2 inter-state supplies, 4 ITC, 5 exempt, 6.1 payment. Numbers reconcile to the sales and purchase registers.

Consulting sample#/#/gstr3b
Form 26Q

Form 26Q

Quarterly TDS return for non-salary deductions. Lists every deduction with section, deductee PAN, amount, rate, date of deduction and date of deposit.

Consulting sample#/#/form-26q

CA audit walkthrough

One CA profile, three client files, one review workflow. The CA opens each .khata in sequence, runs trial balance / balance sheet / P&L, uses the review panel to annotate and sign off, and exports a printable report — all without leaving the browser.

Client 1 — Pharma (Vaidya Life Sciences)

CA opens pharma.khata. Mode badge turns into the CA tile. Review workflow begins.

Client 1 — Dashboard

Client 1 — Dashboard

CA opens pharma.khata. Mode badge flips to 'CA · CS'. Dashboard greets them with the client's outstanding receivables and aging.

CA audit walkthrough#/#/dashboard
Client 1 — Trial balance

Client 1 — Trial balance

First scan of completeness — grand totals tied, every entry balanced, suspense account empty.

CA audit walkthrough#/#/trial-balance
Client 1 — Balance sheet

Client 1 — Balance sheet

Schedule-III grouping. Reconciles directly to the trial balance so there's no 'spreadsheet step' to audit.

CA audit walkthrough#/#/balance-sheet
Client 1 — Profit & loss

Client 1 — Profit & loss

P&L summary. Drilldown is one click — from any line to the underlying ledger.

CA audit walkthrough#/#/pnl
Client 1 — Day book review

Client 1 — Day book review

Chronological voucher tape. The auditor clicks through suspicious entries and drops annotations as they go.

CA audit walkthrough#/#/day-book
Client 1 — CA review panel

Client 1 — CA review panel

Every voucher gets a 'Reviewed' checkbox and an inline 'Note' button. The header counts tell the CA how much is left to sign off.

CA audit walkthrough#/#/ca/review
Client 1 — Annotations

Client 1 — Annotations

Running list of all notes the CA left on this file. Export to the review report with one click.

CA audit walkthrough#/#/annotations
Client 1 — Review report

Client 1 — Review report

Final PDF-ready report combining client identity, review checkpoints, annotations and sign-off.

CA audit walkthrough#/#/ca/report

Client 2 — Manufacturing (Shree Krishna Steel)

Close client 1, open client 2. Same keystrokes, different client.

Client 2 — Dashboard

Client 2 — Dashboard

CA closes pharma.khata, opens manufacturing.khata. The mode badge persists, the dashboard refreshes to the new client.

CA audit walkthrough#/#/dashboard
Client 2 — Trial balance

Client 2 — Trial balance

Manufacturing's trial balance. Same layout, different numbers — no context switching cost.

CA audit walkthrough#/#/trial-balance
Client 2 — Balance sheet

Client 2 — Balance sheet

Heavy on fixed assets and inventory, as you'd expect for a steel products company.

CA audit walkthrough#/#/balance-sheet
Client 2 — Profit & loss

Client 2 — Profit & loss

High cost of goods sold relative to sales — consistent with the manufacturing margin profile.

CA audit walkthrough#/#/pnl
Client 2 — CA review panel

Client 2 — CA review panel

Same review workflow applied to the second client. Nothing to install or configure between files.

CA audit walkthrough#/#/ca/review

Client 3 — Consulting (Arjun Rao Advisory)

Close client 2, open client 3. Services-only balance sheet, and a CA adjustment voucher example.

Client 3 — Dashboard

Client 3 — Dashboard

Consulting LLP — smaller scale, services only, no inventory panel.

CA audit walkthrough#/#/dashboard
Client 3 — Trial balance

Client 3 — Trial balance

Fewer accounts, simpler structure — typical for a services LLP.

CA audit walkthrough#/#/trial-balance
Client 3 — Balance sheet

Client 3 — Balance sheet

Receivables-heavy, no inventory line. The balance sheet layout adapts to the data present.

CA audit walkthrough#/#/balance-sheet
Client 3 — Profit & loss

Client 3 — Profit & loss

Services revenue and professional expenses. TDS under 194J is auto-accumulated from the vendor payments.

CA audit walkthrough#/#/pnl
Client 3 — CA adjustment voucher

Client 3 — CA adjustment voucher

CA-authored adjustment entry — depreciation provision, year-end expense accrual, or any reclassification. Signed with the CA's identity from the profile.

CA audit walkthrough#/#/ca/adjustment/new

Capture summary

Every screenshot on this page is generated by capture.py — a Playwright script that drives a local Bahi dev server, loads each sample file via Bahi's in-page globals, navigates to each route, and records a 1400×900 PNG. The script doubles as a regression test: any route that fails to render or throws a console error is flagged in CAPTURE-LOG.md.

Pharma

58 routes captured.

Manufacturing

22 routes captured.

Consulting

17 routes captured.

CA audit

18 routes across 3 client files.