Tools · Accounting
Trial Balance & Financial Statements
Generate Trial Balance, Profit & Loss Account, Balance Sheet and ledger schedules directly from the registered Client/FY Accounting Mirror. The mirror remains read-only.
{% if message %}
{{ message }}
{% endif %}
{% if command_error %}
{{ command_error }}
{% endif %}
{% if selected_client and report %}
Mirror FY
{{ financial_year }}
Version {{ report.current_payload.mirror_version_no or report.current_payload.version_no or '-' }}
Ledgers
{{ report.current.count }}
{{ report.current.group_count }} Tally groups loaded
Previous Year
{{ previous_fy }}
{{ 'Comparative mirror loaded' if previous_available else 'No registered comparative mirror' }}
Mapping Review
{{ statements.unmapped|length }}
Unmapped ledgers
{% if report.current.hierarchy_warning %}
The mirror Trial Balance loaded, but the Local Agent could not return the full Tally group hierarchy. Update the Local Agent to the latest version for automatic custom-group resolution. Immediate parent-group classification is still being used.
{% endif %}
{% if statements.balance_sheet_difference|abs > 1 %}
Balance Sheet review required: Assets and Equity/Liabilities differ by ₹ {{ '{:,.2f}'.format(statements.balance_sheet_difference) }} after mapped finalisation. Review unmapped or incorrectly classified ledgers before using the statements as final.
{% elif statements.profit_transfer_applied %}
Current-year profit/loss was not yet reflected in the source capital balances, so the ERP applied a read-only finalisation transfer for this financial statement view. The Accounting Mirror was not changed.
{% endif %}
Balance Sheet
Presentation follows the ruled comparative format used in your existing statements.
| Particulars | Note | 31 Mar {{ financial_year[:4]|int + 1 }} | 31 Mar {{ financial_year[:4] }} |
| EQUITY AND LIABILITIES |
{% for code, meta in schedules.items() if meta.statement == 'BS' and meta.bs_side == 'LIABILITY' and (statements.current_bs.get(code,0) or statements.previous_bs.get(code,0)) %}
| {{ meta.label }} | {{ loop.index }} | {{ '{:,.0f}'.format(statements.current_bs.get(code,0)) }} | {{ '{:,.0f}'.format(statements.previous_bs.get(code,0)) }} |
{% endfor %}
| Total Liabilities | | {{ '{:,.0f}'.format(statements.current_liabilities) }} | {{ '{:,.0f}'.format(statements.previous_liabilities) }} |
| ASSETS |
{% for code, meta in schedules.items() if meta.statement == 'BS' and meta.bs_side == 'ASSET' and (statements.current_bs.get(code,0) or statements.previous_bs.get(code,0)) %}
| {{ meta.label }} | - | {{ '{:,.0f}'.format(statements.current_bs.get(code,0)) }} | {{ '{:,.0f}'.format(statements.previous_bs.get(code,0)) }} |
{% endfor %}
| Total Assets | | {{ '{:,.0f}'.format(statements.current_assets) }} | {{ '{:,.0f}'.format(statements.previous_assets) }} |
Profit & Loss Account
Generated from mapped mirror ledgers; inventory movement is used for cost of goods sold.
{% set cp=statements.current_pl %}{% set pp=statements.previous_pl %}
| Particulars | Current FY | Previous FY |
{% for label,key in [('Revenue from operations','REVENUE'),('Other Income','OTHER_INCOME'),('Total Income','TOTAL_INCOME'),('Cost of goods sold','COST_OF_GOODS_SOLD'),('Direct Expenses','DIRECT_EXPENSES'),('Employee benefits expense','EMPLOYEE_BENEFITS'),('Finance Cost','FINANCE_COST'),('Depreciation and amortization expense','DEPRECIATION'),('Other expenses','OTHER_EXPENSES'),('Total expenses','TOTAL_EXPENSES'),('Profit/(Loss) for the year','PROFIT')] %}
| {{ label }} | {{ '{:,.0f}'.format(cp.get(key,0)) }} | {{ '{:,.0f}'.format(pp.get(key,0)) }} |
{% endfor %}
{% if is_partnership %}
Partnership Profit Allocation
Ratios are Client/FY-specific. When they total 100%, the year's profit/loss is allocated to partner funds for the final Balance Sheet without changing the mirror.
Configured ratio: {{ '%.2f'|format(statements.profit_share_total) }}%
{% if statements.partnership_allocations %}{% for row in statements.partnership_allocations %}
{{ row.partner_name }} · {{ row.profit_share_percent }}%
₹ {{ '{:,.0f}'.format(row.amount) }}
{% endfor %}
{% endif %}
{% endif %}
Trial Balance & Ledger Mapping
Default classification follows the complete Tally group hierarchy. Use an override only when a ledger needs a different financial-statement schedule.
| Ledger | Tally Group | Root Group | Schedule | Closing Dr | Closing Cr | Mapping |
{% for line in current_lines %}| {{ line.ledger_name }} | {{ line.parent_group }} | {{ line.root_group }} | {{ line.schedule_label }} | {{ '{:,.0f}'.format(line.closing_debit) }} | {{ '{:,.0f}'.format(line.closing_credit) }} | |
{% endfor %}
{% endif %}
{% endblock %}