Chart of Accounts

The Chart of Accounts (CoA) is the organized list of every financial account in your business. It is the structural backbone of your accounting system — every journal entry, every ledger posting, and every financial report depends on the accounts defined here. A well-designed CoA makes reporting clean and auditing straightforward. A poorly designed one creates confusion that grows worse with every passing month.

This chapter explains how the Chart of Accounts works in Udyamo ERP Lite, how accounts are organized into types and hierarchies, and how to create and manage accounts for your manufacturing business.

What You Will Learn

  • The purpose and structure of a Chart of Accounts
  • The five account types and how they map to financial statements
  • Account hierarchy using parent accounts
  • Account codes and their role in organization
  • Report groups and financial statement classification
  • System-generated accounts and their protection
  • How to set opening balances
  • Step-by-step instructions for creating and managing accounts

Prerequisites

  • Understanding of the five account types and double-entry bookkeeping (Chapter 31)
  • Access to the Accounting module in Udyamo ERP Lite

What is a Chart of Accounts?

Think of the Chart of Accounts as the filing system for your financial data. Just as a factory organizes its warehouse into zones, racks, and bins, the CoA organizes financial transactions into categories that make sense for reporting and analysis.

Every business transaction in the ERP ultimately posts to one or more accounts in the CoA. When you sell finished goods, the system credits a revenue account. When you buy raw materials, it debits an asset or expense account. When you pay factory rent, it debits an expense account and credits the bank account. The CoA defines what these accounts are, how they are grouped, and where they appear on your financial statements.

Account Types

Every account in Udyamo ERP Lite belongs to one of five types, stored in the account_type field:

Account TypeFinancial StatementNormal BalancePurpose
AssetBalance SheetDebitResources the business owns — cash, bank, receivables, inventory, machinery, land
LiabilityBalance SheetCreditObligations the business owes — payables, loans, GST collected, salary payable
EquityBalance SheetCreditOwner's stake — capital, retained earnings, reserves
IncomeProfit & LossCreditRevenue earned — sales, job work income, interest received, scrap sales
ExpenseProfit & LossDebitCosts incurred — raw materials, wages, rent, electricity, depreciation

Asset, liability, and equity accounts appear on the Balance Sheet. Income and expense accounts appear on the Profit & Loss statement. This classification is fundamental — it determines where every rupee shows up in your financial reports.

Account Hierarchy

Udyamo ERP Lite supports hierarchical accounts through the parent_id field. A parent account groups related child accounts, creating a tree structure that mirrors how you think about your finances.

For example, a manufacturing company might structure its expense accounts as follows:

Expenses (parent)
├── Manufacturing Expenses (parent)
│   ├── Raw Material Consumption
│   ├── Direct Labour
│   ├── Factory Rent
│   ├── Factory Electricity
│   └── Machine Maintenance
├── Administrative Expenses (parent)
│   ├── Office Rent
│   ├── Office Supplies
│   ├── Telephone & Internet
│   └── Professional Fees
└── Selling Expenses (parent)
    ├── Freight & Transportation
    ├── Sales Commission
    └── Advertising

Parent accounts aggregate the balances of their children. The "Manufacturing Expenses" parent shows the total of all manufacturing-related costs, making it easy to see at a glance how much your factory operations cost during a period.

Tip: Design your hierarchy before you start creating accounts. Sketch it on paper or in a spreadsheet first. Restructuring the CoA after hundreds of transactions have been posted is difficult and error-prone.

Account Codes

Each account has a code field that provides a short alphanumeric identifier. Account codes serve two purposes: they establish a logical ordering, and they make data entry faster (you can search by code instead of typing the full account name).

A common coding convention for Indian manufacturing companies:

Code RangeAccount TypeExamples
1000–1999Asset1010 Cash in Hand, 1020 HDFC Bank Current Account, 1100 Accounts Receivable
2000–2999Liability2010 Accounts Payable, 2100 GST Payable, 2200 Salary Payable
3000–3999Equity3010 Owner's Capital, 3020 Retained Earnings
4000–4999Income4010 Sales Revenue — Finished Goods, 4020 Job Work Income, 4050 Scrap Sales
5000–5999Expense5010 Raw Material Consumption, 5020 Direct Labour, 5100 Factory Rent

Tip: Leave gaps between codes (1010, 1020, 1030 rather than 1001, 1002, 1003). This lets you insert new accounts later without disrupting the sequence.

Report Groups

The report_group field on each account controls where the account appears in financial reports. While the account type determines which statement (Balance Sheet or Profit & Loss) an account belongs to, the report group determines the specific section within that statement.

For example, assets might be classified into report groups such as:

  • Current Assets — Cash, bank, receivables, inventory
  • Fixed Assets — Land, building, machinery, vehicles
  • Investments — Fixed deposits, mutual funds

Similarly, liabilities might be grouped as:

  • Current Liabilities — Trade payables, GST payable, salary payable
  • Long-term Liabilities — Term loans, debentures

These groupings align with the disclosure requirements of the Companies Act, 2013 (Schedule III) and make your financial statements audit-ready.

System Accounts

Some accounts in Udyamo ERP Lite are marked with the is_system flag set to true. These are created automatically when you set up the system and are used internally by the application for automatic postings:

  • Accounts Receivable — debited when you create a sales invoice
  • Accounts Payable — credited when you record a vendor bill
  • GST Input Credit — debited when you record GST on purchases
  • GST Output (Payable) — credited when you collect GST on sales
  • Sales Revenue — credited for invoice revenue
  • Cost of Goods Sold — debited when finished goods are sold

Warning: System accounts cannot be deleted and should not be renamed or reclassified. They are integral to the automatic posting logic. If a system account is deactivated or misconfigured, automatic journal entries from invoices, bills, and payments will fail.

Opening Balances

When you begin using Udyamo ERP Lite mid-year or transition from another system, you need to enter opening balances for all accounts as of your starting date (typically 1 April of the financial year). The opening_balance field on each account stores this value.

Opening balances ensure that your Balance Sheet is correct from day one. Without them, assets, liabilities, and equity will be understated, and your trial balance will not reconcile with your previous records.

Required: Opening balances must satisfy the accounting equation. Total debit opening balances (assets + expenses) must equal total credit opening balances (liabilities + equity + income). If they do not balance, review your data entry for errors or omissions.

Step-by-Step: View the Chart of Accounts

  1. Navigate to Accounting > Accounts from the main menu
  2. The CoA displays all accounts in a list, grouped by account type
  3. Use the search bar to find an account by name or code
  4. Click any account to view its details, including the current balance

Chart of Accounts list view

Step-by-Step: Create a New Expense Account

Suppose your factory has started a new activity — heat treatment — and you want to track its costs separately.

  1. Navigate to Accounting > Accounts
  2. Click the New Account button
  3. Fill in the required fields:
FieldValue
NameHeat Treatment Expenses
Account TypeExpense
Code5060
ParentManufacturing Expenses
Report GroupManufacturing Overheads
DescriptionCosts related to heat treatment processes including furnace operation and outsourced HT services
Opening Balance0.00
ActiveYes
  1. Click Save

The new account is now available for use in journal entries, and any costs posted to it will appear under "Manufacturing Expenses" in reports.

Creating a new expense account

Step-by-Step: Create a Sub-Account

Sub-accounts allow finer granularity. Continuing the example above, if you want to separate in-house heat treatment costs from outsourced heat treatment:

  1. Navigate to Accounting > Accounts and click New Account
  2. Set the Parent field to "Heat Treatment Expenses" (the account you just created)
  3. Name the account "In-House Heat Treatment" with code 5061
  4. Save and repeat for "Outsourced Heat Treatment" with code 5062

The parent account "Heat Treatment Expenses" will now aggregate the balances of both sub-accounts.

Example Chart of Accounts for a Manufacturing Company

The following is a representative CoA structure. Your actual accounts will vary based on your industry and scale.

CodeAccount NameTypeParent
1010Cash in HandAssetCurrent Assets
1020HDFC Bank — Current AccountAssetCurrent Assets
1030ICICI Bank — Current AccountAssetCurrent Assets
1100Accounts ReceivableAssetCurrent Assets
1200Raw Materials InventoryAssetCurrent Assets
1210Work-in-Progress InventoryAssetCurrent Assets
1220Finished Goods InventoryAssetCurrent Assets
1500Factory BuildingAssetFixed Assets
1510Plant & MachineryAssetFixed Assets
1520Moulds & DiesAssetFixed Assets
1530Office EquipmentAssetFixed Assets
1540VehiclesAssetFixed Assets
2010Accounts PayableLiabilityCurrent Liabilities
2100CGST PayableLiabilityCurrent Liabilities
2110SGST PayableLiabilityCurrent Liabilities
2120IGST PayableLiabilityCurrent Liabilities
2130GST Input Credit (CGST)AssetCurrent Assets
2140GST Input Credit (SGST)AssetCurrent Assets
2150GST Input Credit (IGST)AssetCurrent Assets
2200Salary PayableLiabilityCurrent Liabilities
2300TDS PayableLiabilityCurrent Liabilities
2500Term Loan — SBILiabilityLong-term Liabilities
3010Owner's CapitalEquity
3020Retained EarningsEquity
4010Sales Revenue — Finished GoodsIncomeRevenue
4020Job Work IncomeIncomeRevenue
4050Scrap SalesIncomeOther Income
4060Interest ReceivedIncomeOther Income
5010Raw Material ConsumptionExpenseManufacturing Expenses
5020Direct LabourExpenseManufacturing Expenses
5030Factory RentExpenseManufacturing Expenses
5040Factory ElectricityExpenseManufacturing Expenses
5050Machine MaintenanceExpenseManufacturing Expenses
5100Office RentExpenseAdministrative Expenses
5110Telephone & InternetExpenseAdministrative Expenses
5200Freight OutwardExpenseSelling Expenses
5300DepreciationExpenseNon-Cash Expenses
5400Bank ChargesExpenseFinancial Expenses

Tips & Best Practices

Tip: Follow the principle of "as detailed as necessary, as simple as possible." Do not create 200 accounts when 50 will suffice. You can always add accounts later, but merging or deleting accounts with existing transactions is not straightforward.

Tip: Review your CoA with your accountant or auditor before entering opening balances. Their input on report groupings and classification will save rework during the audit.

Tip: Use the active field to deactivate accounts you no longer need instead of trying to delete them. Inactive accounts retain their historical data but do not appear in drop-down selections for new transactions.

Warning: Never create duplicate accounts for the same purpose. If two people independently create "Machine Repair Expenses" and "Machinery Maintenance," you will end up with costs split across both accounts, making reports inaccurate. Establish naming conventions and enforce them.

Quick Reference — Account Fields

FieldDescriptionRequired
nameHuman-readable account name (e.g., "Raw Material Consumption")Yes
account_typeOne of: asset, liability, equity, income, expenseYes
codeShort alphanumeric identifier for sorting and quick searchYes
parent_idLinks to a parent account for hierarchical groupingNo
descriptionDetailed explanation of what this account is used forNo
opening_balanceBalance carried forward from the previous system or financial yearNo
current_balanceSystem-calculated running balance (not manually editable)Auto
is_systemTrue for system-generated accounts; prevents deletionAuto
report_groupClassification for financial statement presentationNo
activeWhether the account appears in transaction formsYes