TallyPrime feature gaps: accounting, vouchers, masters and reports¶
Purpose. This file lists what TallyPrime does in accounting, vouchers, masters, reports and year-end work, and checks each item against KhataOS. It tells us what to build next for accountants who switch from Tally.
Clean room. Every description below is in our own words and based on Tally's public help pages, product pages and tutorials. No Tally binary was run or inspected, nobody logged in anywhere, and no Tally screen layout, field wording or image was copied. Where a common accounting term matches Tally's (for example "cost centre" or "post-dated"), it is used because it is the ordinary term.
Researched: 2026-10-21, against TallyPrime 7.x public help. Several Tally help pages are only published for Tally.ERP 9 or for older TallyPrime releases. Those URLs are marked (ERP 9 docs), and the feature should be checked in a current TallyPrime before it is treated as a spec.
Companion files:
docs/research/tally-shortcuts.md(key map),docs/research/tally-pain-points.md.Out of scope here: inventory and orders (stock items, godowns, delivery and receipt notes, negative stock), payroll, GST, TDS, VAT and e-invoicing. Those have their own research files.
How to read the tables¶
- Status:
- have means KhataOS does the job a Tally user expects.
- partial means part of it is there, or it exists without the Tally key or view.
- missing means there is nothing yet. A key bound in
crates/khata-keymap/src/tally.rswith no handler still counts as missing. - Effort:
- S is a few days.
- M is one to two weeks.
- L is three weeks or more, or it changes the data model.
- Priority:
- P1 means a user switching from Tally will miss it on day one, or migrated data loses meaning without it.
- P2 is weekly or monthly work.
- P3 is advanced or niche.
- File paths are relative to the repo root. In them, "FE" is
apps/desktop/src/screens/, "BE" isapps/desktop/src-tauri/src/and "core" iscrates/khata-core/src/.
1. Masters¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| M1 | Predefined chart of groups | Ships the standard primary groups (capital, loans, current assets and liabilities, sundry debtors and creditors, bank, cash, direct and indirect income and expenses, and so on) with their nature fixed | Every Tally-trained accountant knows where a ledger belongs, and the reports depend on these groups | have | core book.rs (DEFAULT_GROUPS), FE reports.ts ChartOfAccounts |
S | P1 | https://help.tallysolutions.com/groups-in-tallyprime/ |
| M2 | Custom groups and sub-groups | Lets you create your own groups under any group, with an alias, inheriting the parent's nature | Groups shape the Balance Sheet and P&L, for example "Directors' loans" under Loans | partial: sub-groups and aliases work, but a new primary group cannot be created (the Tally importer skips them) | FE group.ts, core book.rs create_group, crates/khata-import-tally/src/lib.rs (CustomPrimaryGroup) |
S | P2 | https://help.tallysolutions.com/groups-in-tallyprime/ |
| M3 | Group behaviour options | Per-group settings: collapse its ledgers like one sub-ledger in reports, show only the net debit or credit, use for automatic percentage calculations, and how to split purchase invoices | These keep the Trial Balance short (debtors show as one line) and drive discount and tax lines | missing | core chart.rs Group has nature, gross-profit and cash/bank flags only |
M | P3 | https://help.tallysolutions.com/article/te9rel52/Creating_Masters/Accounts_Info/Create_Group_with_advanced_usage.htm (ERP 9 docs) |
| M4 | Ledger master basics | Name, group, opening balance (Dr or Cr), credit period, mailing details and tax registration | This is the core master, created dozens of times a day | have (no ledger alias) | FE ledger.ts, core chart.rs Ledger |
S | P1 | https://help.tallysolutions.com/article/te9rel53/Creating_Masters/Accounts_Info/Creating_a_Ledger.htm (ERP 9 docs) |
| M5 | Opening balance bill by bill | When a party's opening balance is entered, you split it into the open invoices it is made of, each with a date and due date | After migrating, outstandings, ageing and settlement against old invoices only work if the opening bills exist | missing: bills exist only on voucher lines. The Tally importer also brings no bill references | FE ledger.ts (opening balance field), core voucher.rs BillAllocation, crates/khata-import-tally/src/parse.rs |
M | P1 | https://help.tallysolutions.com/article/te9rel53/Creating_Masters/Accounts_Info/Creating_a_Ledger.htm (ERP 9 docs) |
| M6 | Bill-wise switch and default credit period | Choose per ledger whether to track balances bill by bill, and set the default days until a bill is due | Some parties are tracked by invoice and others on running balance | partial: every party line asks for bills (no off switch), and credit days work | FE ledger.ts (credit period), FE voucher.ts (party lines always open bills), core book.rs set_credit_days |
S | P3 | https://tallysolutions.com/tally/bill-wise-details-report-in-tally-prime/ |
| M7 | Bank details on bank ledgers | Account number, IFSC or branch, cheque books with number ranges, and the cheque layout chosen for that bank | Cheque numbers fill in by themselves, each bank's cheque prints right, and blank leaves are tracked | missing | core chart.rs (no bank fields), BE invoice.rs (default layout only) |
M | P2 | https://help.tallysolutions.com/banking-cheque-printing-tally/ |
| M8 | Cost categories | A level above cost centres, so one expense can be split across two independent views at once (for example by department and by project) | Management reporting across more than one dimension | missing | none | M | P2 | https://help.tallysolutions.com/tally-prime/financial-controlling/cost-centre-or-profit-centre-tally/ |
| M9 | Cost and profit centres | Units such as a branch, project, employee or department, nested in a tree, that income and expense lines can be split across | Profit by branch or project without a separate set of books. Mid-sized Tally users rely on it | missing: the Tally importer also drops cost centre allocations | crates/khata-import-tally/src/parse.rs (test nested_allocations_are_not_ledger_lines) |
L | P1 | https://help.tallysolutions.com/cost-centre-or-profit-centre-tally/ |
| M10 | Cost centre classes | Saved percentage splits across centres, applied automatically when a ledger is used | Recurring overheads are shared the same way every month | missing | none | M | P3 | https://help.tallysolutions.com/cost-centres-in-tallyprime-faq/ |
| M11 | Budgets | Target amounts for groups, ledgers or cost centres over a period, on net movement or on closing balance, which can be nested | Plan against actual. Banks and boards ask for variance | missing | none | M | P3 | https://help.tallysolutions.com/tally-prime/financial-controlling/budgets-tally/ |
| M12 | Scenarios | Named "what if" views that add memo, reversing or optional entries to the real figures in reports | Provisional statements, such as accruals for a board pack, without touching the books | missing | none | M | P3 | https://help.tallysolutions.com/scenarios-tally/ |
| M13 | Custom voucher types | Your own voucher types (for example "Sales – Export" or "Cash Sales Branch 2") that inherit one of the base types and keep their own numbering and defaults | Separate invoice series per branch or GST registration, and cleaner registers | partial: only the fixed base kinds exist, each with its own numbering. The importer folds custom types into their base kind, so separate series merge | core voucher.rs VoucherKind, FE settings.ts VoucherTypeForm, crates/khata-import-tally/src/apply.rs voucher_kind |
M | P1 | https://help.tallysolutions.com/tally-prime/accounting/voucher-types-tally/ |
| M14 | Voucher numbering methods | Automatic, manual, or automatic with manual override. Adds prefix and suffix, restarts yearly or monthly, and blocks duplicates | Gapless invoice series that the law requires | have | core numbering.rs, FE settings.ts VoucherTypeForm |
S | P1 | https://help.tallysolutions.com/use-voucher-numbering-methods/ |
| M15 | Voucher type behaviour options | Per type: a separate effective date, allow zero-value entries, optional by default, narration on each line, print or share after saving, and a default bank and print title | Fits each voucher series to how the office works | partial: the only "after saving" step is the prompt to print a cheque | FE voucher.ts (Print cheque? after save), FE settings.ts |
M | P3 | https://help.tallysolutions.com/tally-prime/accounting/voucher-types-tally/ |
| M16 | Voucher classes | Presets on a voucher type that fill ledgers, limit which groups may be chosen, and auto-add lines such as tax or round-off | Fast, error-free invoices for clerks | missing | none | L | P2 | https://help.tallysolutions.com/article/te9rel64/Creating_Masters/Accounts_Info/Voucher_Class.htm (ERP 9 docs) |
| M17 | Currencies master | Foreign currencies with symbol, ISO code, decimals and dated exchange rates (standard, buying and selling) | Needed by exporters, importers and anyone with foreign bank accounts | partial (updated 2026-10-21): ledgers can be kept in a foreign currency (ISO code) and the rate used is remembered, but there is no screen to edit the currency list or keep a table of dated rates | core forex.rs, FE ledger.ts (Currency), apps/desktop/src/forex-api.ts, docs/multi-currency.md |
M | P2 | https://help.tallysolutions.com/create-alter-or-delete-currencies/ |
| M18 | Multi-masters (bulk create and alter) | Create or alter many ledgers or rates in one grid | Setting up a company, or a year-end clean-up | missing | FE alter.ts (one record at a time) |
M | P3 | https://help.tallysolutions.com/create-alter-or-delete-currencies/ |
2. Vouchers¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| V1 | Core accounting vouchers | Contra, Payment, Receipt, Journal, Sales, Purchase, Credit Note and Debit Note on their usual function keys | Daily entry | have | core voucher.rs VoucherKind, crates/khata-keymap/src/tally.rs (F4–F9, Alt+F5, Alt+F6), FE voucher.ts |
S | P1 | https://help.tallysolutions.com/tally-prime/keyboard-shortcuts/keyboard-shortcuts-tally-prime/ |
| V2 | Entry modes | Toggle between double-entry lines, single-entry (one cash or bank account at the top) and item invoice | Each user has a habit, and Ctrl+H switches modes | have | FE voucher.ts (ChangeMode) |
S | P1 | https://help.tallysolutions.com/tally-prime/accounting/voucher-types-tally/ |
| V3 | Narration and retrieving the last narration | Free-text note, with keys to pull the previous voucher's narration (same type, or same ledger) | Repetitive entries such as rent and salary | partial: narration works, but Ctrl+R and Alt+R are bound and have no handler | FE voucher.ts, tally.rs (RetrieveNarrationSameType, RetrieveNarrationSameLedger) |
S | P2 | https://help.tallysolutions.com/tally-prime/keyboard-shortcuts/keyboard-shortcuts-tally-prime/ |
| V4 | Cancel a voucher and keep its number | Voids the voucher but keeps it in the series | Series stay gapless for the auditor and the tax office | have | FE reports.ts DayBook (Alt+X), core book.rs cancel_voucher |
S | P1 | https://help.tallysolutions.com/tally/day-book-tally/ |
| V5 | Duplicate, insert or add a voucher from a report | From the Day Book or a register: copy a voucher as a new one, insert before the selected one, or add after it | Re-keying near-identical entries, and filling missed entries in date order | missing: Alt+2 and Alt+I are bound and have no handler | tally.rs (DuplicateVoucher, InsertVoucherBefore), FE reports.ts |
S | P2 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| V6 | Bill-wise details on party lines | Each party amount is tagged as a new bill, against an existing bill, an advance, or on account, with due dates | This drives outstandings, ageing and interest | have | FE bills.ts, core voucher.rs BillKind |
S | P1 | https://tallysolutions.com/tally/bill-wise-details-report-in-tally-prime/ |
| V7 | Optional vouchers | Mark any voucher as "not posted" (Ctrl+L). It sits in a register until made regular | Proforma or tentative entries, and bank-feed suggestions waiting for review | missing: Ctrl+L is bound and unhandled, and the importer skips optional vouchers | tally.rs (MarkOptional), crates/khata-import-tally/src/apply.rs (SkipReason::Optional) |
M | P2 | https://help.tallysolutions.com/create-optional-voucher/ |
| V8 | Post-dated vouchers | Mark a voucher post-dated (Ctrl+T), so it stays out of balances until its date. Includes a month-wise post-dated cheque summary per bank | Post-dated cheques (PDCs) taken from customers and given to suppliers. Common in Indian trade | missing: Ctrl+T is bound and unhandled | tally.rs (MarkPostDated) |
M | P2 | https://help.tallysolutions.com/post-dated-cheque-managment-tally/ |
| V9 | Memorandum vouchers | Entries kept off the books in a separate register, which can be turned into real vouchers later | Suspense notes, such as an expense not yet confirmed, without hitting any ledger | missing | none | M | P2 | https://help.tallysolutions.com/create-memorandum-voucher/ |
| V10 | Reversing journals | A journal that applies only up to a chosen date, then drops out. Used in scenarios | Month-end accruals and provisions that reverse next month | missing | none | M | P3 | https://help.tallysolutions.com/create-reversing-journal/ |
| V11 | Interest calculation | Per ledger or group, simple (one rate) or advanced (rates changing by date, on balance or on overdue bills). Includes interest reports, and booking the interest through debit and credit notes | Charging customers for late payment, and loans given or taken | missing: only GST Rule 37 interest notes exist | FE gst_rcm.ts (Rule 37 only) |
L | P2 | https://help.tallysolutions.com/tally-prime/accounting/interest-calculation-tally/ |
| V12 | Multi-currency vouchers | Enter a line in a foreign currency at the day's rate and see both currencies in ledgers and outstandings | Export invoices, import bills and foreign bank accounts | have (updated 2026-10-21): a line on a foreign-currency ledger takes its amount in that currency with a rate of exchange; ledger statements and outstandings show both currencies. One foreign currency per voucher | core forex.rs, FE voucher.ts, docs/multi-currency.md |
L | P2 | https://help.tallysolutions.com/tally-prime/accounting-and-inventory/multi-currency-in-tallyprime |
| V13 | Forex gain or loss | Works out realised gain or loss when a foreign bill is settled at a different rate, and shows unadjusted forex on the Balance Sheet until a journal books it | Correct profit, and audit of foreign balances at year-end | partial (updated 2026-10-21): realised gain or loss on settled foreign bills posts to Forex Gain/Loss on save; year-end revaluation exists as commands with no screen | core forex.rs, BE forex.rs |
M | P2 | https://help.tallysolutions.com/multi-currency/ |
| V14 | Bank allocation details | Per bank line: instrument type (cheque, NEFT and so on), instrument number and date, payee name and bank date | Matching to statements by cheque number, and cheque printing | partial: bank date is stored. Cheque numbers live in the voucher number or narration, and the importer drops this data | core voucher.rs Entry::bank_date, core banking.rs (reference_matched scans number and narration) |
M | P2 | https://help.tallysolutions.com/auto-bank-reconciliation/ |
| V15 | Cheque printing | Print the cheque from a bank payment, with layouts for each bank, adjustable sizes, and bulk printing of pending cheques | Saves hand-writing dozens of cheques a week | partial: prints from a saved bank payment, crossed "A/c Payee" or open, using one fixed CTS-2010 layout. No layout per bank and no bulk printing | FE voucher.ts printCheque, BE invoice.rs:232, crates/khata-print/src/lib.rs ChequeLayout |
M | P2 | https://help.tallysolutions.com/banking-cheque-printing-tally/ |
| V16 | Cheque register and cheque book status | Lists cheque leaves as available, issued but uncleared, cleared, or blank or cancelled | Stops misuse of blank leaves and tracks what has not been presented | partial: lists uncleared withdrawals only, with no cheque-book inventory | FE banking.ts ChequeRegister |
M | P3 | https://help.tallysolutions.com/banking-cheque-printing-tally/ |
| V17 | Bank reconciliation | Enter the date the bank cleared each entry, and see the book balance, uncleared amounts and the balance the bank should show | Monthly control, and every audit asks for it | have | FE banking.ts BankReconciliationReport, core banking.rs |
S | P1 | https://help.tallysolutions.com/tally/bank-reconciliation-tally/ |
| V18 | Statement import and auto-matching | Import a bank statement and pair its lines with book entries by amount, date and reference. Unmatched lines can become vouchers | Cuts reconciliation from hours to minutes | partial: CSV import and matching work. There is no Excel or MT940 import, and no vouchers are made from unmatched lines | FE banking.ts StatementReview, core banking.rs match_statement |
M | P2 | https://help.tallysolutions.com/auto-bank-reconciliation/ |
| V19 | Opening bank reconciliation | Record cheques that were still uncleared on the day the books start in this software | On migration, old uncleared cheques must still show in the reconciliation | missing | FE banking.ts (only lines on vouchers) |
S | P2 | https://help.tallysolutions.com/auto-bank-reconciliation/ |
| V20 | Unused voucher numbers | Shows the gaps in a series and lets you reuse one | Fixing gaps before a GST or audit check | missing: Ctrl+Alt+U is bound and unhandled | tally.rs (UnusedVoucherNumber) |
S | P3 | https://help.tallysolutions.com/tally-prime/keyboard-shortcuts/keyboard-shortcuts-tally-prime/ |
3. Reports: main statements¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| R1 | Trial Balance | Balances as at a date, grouped by primary group, expandable to sub-groups and ledgers. Can show opening, period debit and credit, and closing columns | This is the first check of the books, and the auditor's starting point | partial: a flat list of ledgers as at a date, with the opening difference row. It has no group hierarchy, no condensed or detailed toggle, and no period columns | FE reports.ts TrialBalanceReport, core book.rs trial_balance |
M | P1 | https://help.tallysolutions.com/tally/trial-balance-tally/ |
| R2 | Profit & Loss account | Income and expenses for a period in T form, with the trading part (gross profit) and stock | Monthly and yearly results | have (horizontal form only, no vertical or percentage view) | FE reports.ts ProfitLossReport, core reports.rs profit_and_loss |
S | P1 | https://help.tallysolutions.com/tally/profit-and-loss-statement-tally/ |
| R3 | Balance Sheet | Assets and liabilities as at a date, with the P&L balance, closing stock and any opening difference | Year-end, bank loans and statutory filing | have. The P&L balance is one accumulated figure, not split into "opening" and "current period" (see Y4) | FE reports.ts BalanceSheetReport, core reports.rs balance_sheet |
S | P1 | https://help.tallysolutions.com/tally/balance-sheet-tally/ |
| R4 | Cash Flow | Cash and bank inflow and outflow by month, broken down by the groups that caused them, plus a projection | Liquidity planning, and bankers ask for it | partial: the dashboard charts monthly inflow, outflow and cash balance. There is no group-wise cash-flow report and no projection | FE analysis.ts DashboardScreen, core analysis.rs MonthPoint |
M | P2 | https://help.tallysolutions.com/tally/cash-flow-and-projection-report-tally/ |
| R5 | Funds Flow | Working capital at the start and end, with the sources and uses of funds in between | Credit appraisal and CMA data for bank loans | missing | none | M | P3 | https://help.tallysolutions.com/tally/funds-flow-report-tally/ |
| R6 | Ratio Analysis | Liquidity, profitability and turnover ratios worked out from the books | Quick health check for owners and lenders | have | FE analysis.ts RatioAnalysisReport, core analysis.rs ratio_analysis |
S | P2 | https://help.tallysolutions.com/tally/ratio-analysis-tally/ |
4. Reports: books and registers¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| B1 | Day Book | Every voucher in a period, in date order, drilling to the voucher | Daily review of what was entered | have (no filter by voucher type, see F11) | FE reports.ts DayBook, core reports.rs day_book |
S | P1 | https://help.tallysolutions.com/tally/day-book-tally/ |
| B2 | Ledger vouchers | One ledger's entries for a period, with opening balance, running balance and closing balance | Party statements and checking an account | have | FE reports.ts LedgerStatementReport, core reports.rs ledger_statement |
S | P1 | https://help.tallysolutions.com/cash-bank-book-tally/ |
| B3 | Ledger monthly summary | One ledger's debit, credit and closing balance for each month of the year, drilling to that month's vouchers | This is how Tally users read cash, bank and big expense ledgers | missing | FE reports.ts (statement only) |
S | P1 | https://help.tallysolutions.com/cash-bank-book-tally/ |
| B4 | Group Summary and group vouchers | A group's sub-groups and ledgers with balances, expandable in place, plus all vouchers of the group | Drilling from the Balance Sheet into "Sundry Debtors" and then down | partial: drilling from the P&L or Balance Sheet gives a flat ledger list. No nested sub-groups, no group vouchers view, and it is not in Go To | FE reports.ts GroupSummaryReport, BE commands.rs group_summary |
M | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| B5 | Cash and bank books | A summary of all cash and bank ledgers, each opening to a monthly summary and then to vouchers | Daily cash position and bank-wise movement | partial: you can open a cash or bank ledger's statement through Find or Go To. There is no cash and bank summary and no monthly view | FE launcher.ts (ledgerItems), FE reports.ts LedgerStatementReport |
S | P1 | https://help.tallysolutions.com/tally/cash-bank-book-tally/ |
| B6 | Sales and purchase registers | Month-wise totals for a voucher type, drilling to that month's vouchers. F4 switches to another type | Monthly sales review and checking tax returns | missing: GSTR-1 lists sales for India only. There is no general register | FE launcher.ts reportItems (no register rows) |
M | P1 | https://help.tallysolutions.com/tally-prime/sales-process/how-to-work-with-sales-register-in-tallyprime/ |
| B7 | Journal and other voucher registers | The same month-wise view for Journal, Payment, Receipt, Contra, Credit Note and Debit Note | Auditors vouch journals separately, and payments are reviewed monthly | missing (comes almost free once B6 exists) | none | S | P1 | https://help.tallysolutions.com/docs/te9rel65/Reports/Display_Registers_Ledgers/Display_Journal_Register.htm (ERP 9 docs) |
| B8 | Columnar registers | A register with one column per ledger used (sales ledger, each tax and so on), plus party details | Tax reconciliation and export to Excel for the auditor | missing | none | M | P2 | https://help.tallysolutions.com/docs/te9rel65/Reports/Display_Registers_Ledgers/Display_Columnar_Sales_Register.htm (ERP 9 docs) |
5. Reports: bills, exceptions and statistics¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| X1 | Bills receivable and payable | Every open bill with date, due date, pending amount and days overdue | Collections and payment runs | have | FE reports.ts OutstandingReport, core reports.rs outstanding_bills |
S | P1 | https://help.tallysolutions.com/tally/manage-receivables-outstanding-tally/ |
| X2 | Ledger and group outstandings | One party's open bills, including on-account and advance amounts, and the same for a whole group | Phone calls to a customer, and statements of account | partial: drilling from outstandings opens the party's ledger statement, not that party's open bills | FE reports.ts OutstandingReport (partyStatement) |
S | P2 | https://help.tallysolutions.com/tally/manage-outstanding-payables-tally/ |
| X3 | Ageing analysis | Open bills split into age bands, by bill date or by due date, with bands you can change | Bad-debt provisioning and credit control | partial: fixed bands of 0–30, 31–60, 61–90 and over 90 days by days overdue. Bands cannot be changed and bill-date ageing is not offered | FE reports.ts AgeingReport, core reports.rs ageing |
S | P2 | https://tallysolutions.com/business-guides/how-to-track-receivables-aging-and-send-payment-reminders-in-tallyprime/ |
| X4 | Interest reports | Interest due on each party or loan, on balances or on overdue bills, for a period | Raising interest debit notes, and checking interest charged by lenders | missing (needs V11) | none | M | P2 | https://help.tallysolutions.com/tally-prime/accounting/interest-calculation-tally/ |
| X5 | Cost centre reports | Category summary, cost centre breakup, ledger-wise breakup by centre, and centre-wise P&L | Branch and project profitability | missing (needs M9) | none | M | P2 | https://help.tallysolutions.com/article/te9rel65/Reports/MIS_Reports/Cost_Category_Summary.htm (ERP 9 docs) |
| X6 | Budget variance | Budget against actual, with the variance as an amount and a percentage, inside the Trial Balance and Group Summary | Monthly MIS | missing (needs M11) | none | S | P3 | https://help.tallysolutions.com/tally-prime/financial-controlling/budgets-tally/ |
| X7 | Exception report: negative ledgers | Ledgers whose balance is on the "wrong" side, such as cash in credit or a debtor in credit | Catches entry errors before closing | missing | none | S | P2 | https://help.tallysolutions.com/docs/te9rel60/Reports/MIS_Reports/Exception_Reports.htm (ERP 9 docs) |
| X8 | Exception report: overdue receivables and payables | Only the bills past their due date | Daily follow-up list | partial: outstandings show days overdue but cannot list only overdue bills. India has the MSME 45-day report | FE reports.ts OutstandingReport, MsmeOverdueReport |
S | P2 | https://help.tallysolutions.com/docs/te9rel60/Reports/MIS_Reports/Exception_Reports.htm (ERP 9 docs) |
| X9 | Exception registers: optional, post-dated, memo and reversing | Lists of vouchers held outside the books, to review and convert | Nothing pending is forgotten at month-end | missing (needs V7 to V10) | none | S | P2 | https://help.tallysolutions.com/docs/te9rel66/Reports/MIS_Reports/Display_Optional_Vouchers.htm (ERP 9 docs) |
| X10 | Cancelled vouchers register | Lists only the cancelled vouchers | Auditors check every cancelled invoice | partial: the Day Book shows cancelled vouchers inline and marked, with no separate list | FE reports.ts DayBook |
S | P3 | https://help.tallysolutions.com/docs/te9rel60/Reports/MIS_Reports/Exception_Reports.htm (ERP 9 docs) |
| X11 | Statistics | Count of vouchers by type and of masters by kind, drilling to the entries | Sanity check after an import or a split, and audit sampling | partial: the home screen shows the total number of ledgers and vouchers only | FE home.ts (ledger_count, voucher_count) |
S | P3 | https://help.tallysolutions.com/tally/statistics-report-tally/ |
6. Report features (keys and views)¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| F1 | Drill-down and return | Enter opens the next level and finally the voucher for alteration. Esc goes back with the cursor where it was | This is how Tally users read every report | have | FE reports.ts Report (pick, DrillDown, resume) |
S | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F2 | F2 date or period in a report | Changes the as-at date or the From and To period of the report on screen | Constant use | have | FE reports.ts rangeDialog, dateDialog |
S | P1 | https://help.tallysolutions.com/tally-prime/keyboard-shortcuts/keyboard-shortcuts-tally-prime/ |
| F3 | Current date (F2) and current period (Alt+F2) | Sets the working date and the default period for every report until the company is closed | Working on last month, or on last year during audit | have | apps/desktop/src/shell.ts (askCurrentDate, askCurrentPeriod), FE home.ts |
S | P1 | https://help.tallysolutions.com/tally-prime/data-management/moving-to-the-next-financial-year/ |
| F4 | Detailed and condensed (Alt+F5) and expand one line (Shift+Enter) | Opens every group to its ledgers, or just the line under the cursor | Reading the Trial Balance and Balance Sheet without drilling | partial: only Stock Summary toggles. Trial Balance, P&L, Balance Sheet and Group Summary do not, and Shift+Enter is unhandled | FE inventory.ts (ToggleDetailed), tally.rs (ExpandLine) |
M | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F5 | New, alter and delete column (Alt+C, Alt+A, Alt+D) | Adds a column beside the report for another period, company, cost centre or scenario | Side-by-side comparison, such as this year against last year | missing: keys are bound and only the Tax Rates screen uses Alt+C | tally.rs (NewColumn, AlterColumn, DeleteColumn), FE settings.ts |
L | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F6 | Compare periods and auto columns (Alt+N) | Repeats the report in monthly, quarterly or yearly columns | A month-by-month P&L is the most asked-for MIS view | missing: only Schedule III (India) prints previous-period figures | tally.rs (AutoColumns), FE schedule3.ts |
L (with F5) | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F7 | F12 configure per report | Per-report display options, such as vertical Balance Sheet, percentages, opening and closing columns, or sorting | Firms format reports their own way | missing: Configure is in the shell's not-yet list |
apps/desktop/src/shell.ts (NOT_YET) |
M | P2 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F8 | Basis of values (Ctrl+B) | Changes what values feed the report, such as including optional or post-dated entries, a scenario, a scale factor (thousands or lakhs), or forex only | Provisional figures, and reports shown in lakhs | missing: bound and unhandled | tally.rs (BasisOfValues) |
M | P3 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F9 | Change view (Ctrl+H) | Switches to a related view of the same data, such as monthly summary, ageing or columnar | One key to pivot a report | partial: only the Dashboard (chart or table) and voucher entry mode use it | FE analysis.ts (ChangeView), FE voucher.ts (ChangeMode) |
M | P2 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F10 | Exception reports from a report (Ctrl+J) | Opens the exceptions that relate to the report on screen | Spot problems without leaving the report | missing: bound and unhandled | tally.rs (ExceptionReports) |
S (after X7 to X10) | P2 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F11 | Filter (Ctrl+F, formerly the Alt+F12 range filter) and value filter | Keeps only the rows or vouchers that match conditions (amount range, ledger, narration text, voucher type), and can recompute totals from only the matching vouchers | Finding one entry in a year's Day Book, or "all cash payments over 10,000" | missing: Ctrl+F and Ctrl+Alt+F are bound and unhandled in reports | tally.rs (Filter, FilterDetails) |
M | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/apply-filter-in-reports/ |
| F12 | Save view (Ctrl+L) | Saves a report with its period, columns and filters under a name that then appears in Go To | Monthly MIS packs opened in one keystroke | missing: bound and unhandled | tally.rs (SaveView) |
M | P3 | https://help.tallysolutions.com/tally-prime/accounting-financial-reports/how-to-save-views-of-reports-in-tallyprime/ |
| F13 | Change context (F4) | Switches the report to another ledger, group or voucher type without going back | Moving through many ledgers in a row | missing: bound and unhandled | tally.rs (ChangeContext) |
S | P2 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F14 | Alter master from a report (Ctrl+Enter) | Opens the ledger or group under the cursor for alteration | Fixing a ledger's group straight from the Trial Balance | missing in reports (works in list fields) | tally.rs (AlterMasterInline in Report), FE reports.ts |
S | P2 | https://help.tallysolutions.com/tally-prime/keyboard-shortcuts/keyboard-shortcuts-tally-prime/ |
| F15 | Select, hide and restore lines (Space, Ctrl+R, Ctrl+U) | Picks rows for bulk actions, or hides rows from view and print | Cleaner printouts, and bulk cancel or delete | partial: Space selects only in bank reconciliation | FE banking.ts (SelectLine), tally.rs (HideLine, RestoreLine) |
S | P3 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F16 | Print and export a report | Prints the report on screen, or exports it to a file | Sending to the auditor or the bank | have: print and CSV. Excel and PDF files, e-mail and WhatsApp are missing | FE reports.ts Report (print, exportCsv), BE export.rs |
S | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
| F17 | Go To and Report Directory | Jump to any report or master by typing part of its name | Speed | have | FE launcher.ts (GoToScreen, ReportDirectory) |
S | P1 | https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/ |
7. Year-end, audit and compliance¶
| # | Feature | What it does | Why accountants use it | Status | KhataOS file | Effort | Priority | Source |
|---|---|---|---|---|---|---|---|---|
| Y1 | Move to the next financial year | Change the current period to the new year, and balances carry forward with no closing entry | Every April | have: the books are one continuous trail, so balances carry forward on their own, and Alt+F2 sets the year | apps/desktop/src/shell.ts (askCurrentPeriod), core book.rs balances |
S | P1 | https://help.tallysolutions.com/tally-prime/data-management/moving-to-the-next-financial-year/ |
| Y2 | Restart numbering each year | Voucher series restart, with an optional year in the prefix | Invoice numbers that are unique within a financial year | have | core numbering.rs (Restart, yearly_with_year) |
S | P1 | https://help.tallysolutions.com/use-voucher-numbering-methods/ |
| Y3 | Split company data | Cuts one company into two at a date. The later one starts with carried balances and still-open bills and bank items | Keeps old years small and lets them be archived after audit | missing. It may not be needed for speed, given the trail design, but archiving a closed year is still asked for | none | M | P3 | https://help.tallysolutions.com/split-company-data-in-tallyprime-faq/ |
| Y4 | Opening and current-period profit on the Balance Sheet | Shows the P&L balance as profit brought forward plus profit for the current period | Reading the Balance Sheet after year one, and passing the transfer to reserves | partial: one accumulated figure since the books began | core reports.rs balance_sheet (profit_and_loss) |
S | P2 | https://help.tallysolutions.com/tally/balance-sheet-tally/ |
| Y5 | Lock books up to a date | Stops anyone adding, changing or deleting vouchers before a chosen date, except an administrator | After filing and audit, the closed year must not move | missing | core book.rs (no lock check in post_voucher, alter_voucher or delete_voucher) |
M | P2 | https://help.tallysolutions.com/tally-prime/access-control-data-security/tally-audit-tally/ |
| Y6 | Edit log that cannot be turned off | Keeps every version of every voucher and master, with user and time | Indian companies must keep an audit trail (Companies (Accounts) Rules, Rule 3(1)) | have as data: a hash-chained, append-only trail with before and after copies, and the database refuses edits | core audit.rs AuditLog, crates/khata-store/src/lib.rs (database_refuses_to_edit_or_delete_history) |
S | P1 | https://help.tallysolutions.com/edit-log-for-masters-transactions/ |
| Y7 | View the edit log (Alt+Q) | From a voucher or master, list its versions and show what changed from one version to the next | Auditors ask "who changed this invoice and when?" | missing as a screen: Alt+Q is bound and unhandled, though the data is all there | tally.rs (EditLog), core audit.rs |
M | P1 | https://help.tallysolutions.com/edit-log-for-masters-transactions/ |
| Y8 | Edit log summaries | Counts of altered and unaltered vouchers by type and month, and altered masters by kind | Audit sampling, and the auditor's certificate on the audit trail | missing | core audit.rs (data only) |
S | P2 | https://help.tallysolutions.com/view-edit-log-summary/ |
| Y9 | Audit listing and accepting changes | An auditor sees entries made or altered since the last review and marks them accepted | Continuous internal audit | partial: there is a read-only Auditor role, but no listing of changes or "accepted" marks | FE signin.ts (Auditor role), core profile.rs UserRole |
M | P3 | https://help.tallysolutions.com/tally-prime/access-control-data-security/tally-audit-tally/ |
| Y10 | Verify data integrity | Checks the company data for corruption before a split or after a crash | Trust in the books | have: the trail is re-verified when the books load | core audit.rs verify, core book.rs replay |
S | P2 | https://help.tallysolutions.com/split-company-data-in-tallyprime-faq/ |
| Y11 | Users and roles | Separate logins with rights, such as entry only or reports only | Office staff against the owner and the auditor | have | FE signin.ts UsersScreen, core profile.rs |
S | P2 | https://help.tallysolutions.com/tally-prime/access-control-data-security/tally-audit-tally/ |
Counts¶
| Status | Count |
|---|---|
| have | 25 |
| partial | 25 |
| missing | 41 |
| Total rows | 91 |
Counts updated 2026-10-21 after V12, V13 and M17 were re-checked.
Notes from the codebase check¶
- Bound but unhandled keys. Many Tally keys are already in
crates/khata-keymap/src/tally.rswith no screen handling them. These include Ctrl+B, Ctrl+J, Ctrl+F (in reports), Ctrl+L, Alt+C, Alt+N, Alt+Q, Ctrl+T, Ctrl+L (in vouchers), Alt+2, Alt+I, Ctrl+R, Alt+R, F4 (in reports), Shift+Enter and Ctrl+Alt+U. A switcher presses them and nothing happens. A short "not available yet" toast like the one the shell gives forNOT_YETactions would be kinder until each is built. Updated 2026-10-21: the shell'sNOT_BUILTset now gives that message for most of them; Ctrl+F in reports (Filter) and Alt+C/Alt+D in reports outside Tax Rates still do nothing. - The importer drops data silently.
khata-import-tallydrops bill allocations, cost centre allocations, bank and instrument allocations, optional vouchers and custom voucher type identity. It still balances, but outstandings and ageing come out empty after migrating from Tally. That is why M5, M9 and M13 are P1. - The trail design makes year-end simpler. Because balances are worked out from one continuous trail, "close the year" and "carry forward" need no special step (Y1). The remaining year-end gaps are presentation (Y4), locking (Y5) and archiving (Y3).
Build next: ranked top 15¶
Ranked by day-one pain for Tally switchers first, then by value for the effort.
| Rank | Item | Rows | Effort | Why now |
|---|---|---|---|---|
| 1 | Opening bills on party ledgers, and importing bill allocations from Tally | M5, plus the importer | M | Without them, outstandings and ageing are empty after migration, which breaks the first week |
| 2 | Edit log viewer (Alt+Q), with a version diff | Y7 (then Y8) | M | The data already exists. It is a statutory need in India, and the cheapest compliance win |
| 3 | Sales, purchase, journal and other voucher registers (month-wise, then vouchers, with F4 to switch type) | B6, B7 | M | Tally users review every month through registers, and none exist yet |
| 4 | Group hierarchy in Trial Balance and Group Summary, with detailed and condensed (Alt+F5) and Shift+Enter | R1, B4, F4 | M | The Trial Balance is the first report anyone opens, and a flat ledger list is not what Tally users read |
| 5 | Ledger monthly summary, and the cash and bank books summary | B3, B5 | S | Cheap, and it is the default way Tally users read cash and bank |
| 6 | Report filter (Ctrl+F) with amount, ledger, type and text conditions | F11 | M | Finding one entry in a large Day Book or ledger is a daily task |
| 7 | Custom voucher types on a base type, with their own series, and import kept by type | M13 | M | Multi-series invoicing (branches, GST registrations) is common, and imports merge series today |
| 8 | Multi-column reports and period comparison (Alt+C, Alt+N) | F5, F6 | L | Month-wise P&L and this year against last year are the most asked-for MIS views |
| 9 | Cost categories and cost centres: allocation on lines, reports and import | M8, M9, X5 | L | Mid-sized users depend on them, and the importer drops them today |
| 10 | Duplicate, insert and add voucher (Alt+2, Alt+I), and retrieve narration (Ctrl+R, Alt+R) | V5, V3 | S | Small effort, and these keys run through every data-entry day |
| 11 | Exception reports (negative ledgers, overdue only, cancelled) and Ctrl+J | X7, X8, X10, F10 | S | Month-end checks that are quick to build on the existing reports |
| 12 | Post-dated vouchers (Ctrl+T) and the post-dated cheque summary | V8, X9 | M | Post-dated cheques are routine in Indian trade |
| 13 | Optional vouchers (Ctrl+L), their register, and importing them | V7, X9 | M | Proforma and tentative entries. Also the base for bank-feed suggested vouchers (V18) |
| 14 | Lock books up to a date, and split profit into brought-forward and current period | Y5, Y4 | M | Protects audited years and makes the second-year Balance Sheet read correctly |
| 15 | Interest calculation on balances and overdue bills, with interest reports | V11, X4 | L | Charging customers for late payment is a long-standing Tally strength. It builds on the bill data from item 1 |
Next in line: the rest of multi-currency (a currencies and rates screen, revaluation; V13, M17), cheque layouts per bank with bulk printing (V15, M7), F12 configure (F7), and cash-flow and funds-flow statements (R4, R5).
Sources¶
All URLs are public pages, accessed 2026-10-21.
- Working with reports (Ctrl+B, Ctrl+H, Ctrl+J, Ctrl+L, columns, drill-down): https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/working-with-reports/
- Accounting and financial reports index: https://help.tallysolutions.com/tally-prime/accounting-financial-reports/accounting-financial-reports-tally/
- Filters in reports: https://help.tallysolutions.com/tally-prime/reports-in-tallyprime/apply-filter-in-reports/
- Keyboard shortcuts: https://help.tallysolutions.com/tally-prime/keyboard-shortcuts/keyboard-shortcuts-tally-prime/
- Voucher types and their options: https://help.tallysolutions.com/tally-prime/accounting/voucher-types-tally/
- Cost centres: https://help.tallysolutions.com/cost-centre-or-profit-centre-tally/
- Cost centres FAQ: https://help.tallysolutions.com/cost-centres-in-tallyprime-faq/
- Budgets: https://help.tallysolutions.com/tally-prime/financial-controlling/budgets-tally/
- Scenarios: https://help.tallysolutions.com/scenarios-tally/
- Interest calculation: https://help.tallysolutions.com/tally-prime/accounting/interest-calculation-tally/
- Multi-currency: https://help.tallysolutions.com/tally-prime/accounting-and-inventory/multi-currency-in-tallyprime
- Currencies: https://help.tallysolutions.com/create-alter-or-delete-currencies/
- Cheque printing: https://help.tallysolutions.com/banking-cheque-printing-tally/
- Post-dated cheques: https://help.tallysolutions.com/post-dated-cheque-managment-tally/
- Bank reconciliation: https://help.tallysolutions.com/tally/bank-reconciliation-tally/
- Auto bank reconciliation: https://help.tallysolutions.com/auto-bank-reconciliation/
- Moving to the next year: https://help.tallysolutions.com/tally-prime/data-management/moving-to-the-next-financial-year/
- Split company FAQ: https://help.tallysolutions.com/split-company-data-in-tallyprime-faq/
- Edit log for masters and transactions: https://help.tallysolutions.com/edit-log-for-masters-transactions/
- Edit log summary: https://help.tallysolutions.com/view-edit-log-summary/
- Tally Audit: https://help.tallysolutions.com/tally-prime/access-control-data-security/tally-audit-tally/
- Statistics: https://help.tallysolutions.com/tally/statistics-report-tally/
- Cash and bank books: https://help.tallysolutions.com/tally/cash-bank-book-tally/
- Sales register: https://help.tallysolutions.com/tally-prime/sales-process/how-to-work-with-sales-register-in-tallyprime/
- Bill-wise details (Tally product page): https://tallysolutions.com/tally/bill-wise-details-report-in-tally-prime/
- Receivables ageing guide (Tally product page): https://tallysolutions.com/business-guides/how-to-track-receivables-aging-and-send-payment-reminders-in-tallyprime/
- (ERP 9 docs) Exception reports: https://help.tallysolutions.com/docs/te9rel60/Reports/MIS_Reports/Exception_Reports.htm
- (ERP 9 docs) Optional vouchers register: https://help.tallysolutions.com/docs/te9rel66/Reports/MIS_Reports/Display_Optional_Vouchers.htm
- (ERP 9 docs) Journal register: https://help.tallysolutions.com/docs/te9rel65/Reports/Display_Registers_Ledgers/Display_Journal_Register.htm
- (ERP 9 docs) Columnar sales register: https://help.tallysolutions.com/docs/te9rel65/Reports/Display_Registers_Ledgers/Display_Columnar_Sales_Register.htm
- (ERP 9 docs) Group advanced options: https://help.tallysolutions.com/article/te9rel52/Creating_Masters/Accounts_Info/Create_Group_with_advanced_usage.htm
- (ERP 9 docs) Ledger creation: https://help.tallysolutions.com/article/te9rel53/Creating_Masters/Accounts_Info/Creating_a_Ledger.htm
- (ERP 9 docs) Voucher class: https://help.tallysolutions.com/article/te9rel64/Creating_Masters/Accounts_Info/Voucher_Class.htm
- (ERP 9 docs) Cost category summary: https://help.tallysolutions.com/article/te9rel65/Reports/MIS_Reports/Cost_Category_Summary.htm