erpnext icon indicating copy to clipboard operation
erpnext copied to clipboard

Detailed Profit and Loss Statement

Open smbcatalyst opened this issue 1 year ago • 3 comments

ERPNext is providing very basic view for profit and loss statement which is not useful for analysis purpose. It should show Gross Profit, EBITDA, PBT, PAT and Net Profit as all the softwares provide the same. I have attached the same in attached file. Can we consider this as a feature request and work on the same to priority? (As it is just a restructuring of Accounts group (account type), it will not take much time)

Revenue Sales Generated from Selling Products/Services to Customers
Less: Cost of Goods Sold (COGS) Costs Directly Associated with Core Revenue Production
Gross Profit Gross Profit = Revenue – COGS
Less: Operating Expenses (SG&A) Indirect Costs NOT Directly Related to Revenue Creation
Operating Income (EBITA) EBITA = Gross Profit – Operating Expenses
Less: Interest Expense, Depreciation, Amortisation Periodic Payments on Debt Obligation (i.e. the Cost of Debt Financing)
Pre-Tax Income (EBT) EBT = EBIT – Interest Expense - Depreciation - Amortisation
Less: Taxes Legally Mandatory Payments to the City, State, and Federal Government
Net Income (“Bottom Line”) Net Income = EBT – Taxes
[Format MIS (1).xlsx](https://github.com/frappe/erpnext/files/14298549/Format.MIS.1.xlsx)

smbcatalyst avatar Feb 15 '24 17:02 smbcatalyst

@ruthra-kumar @deepeshgarg007 could we review this, please?

umairsy avatar May 15 '24 11:05 umairsy

It would be better to have the ability to configure arbitrary calculated line items in the P&L. The Report format above is non standard and in my experience, different companies and industries have different needs. Also, the nomenclature is is inconsistent between jurisdictions or accounting conventions, Gross Profit and Gross Margin are often used interchangeably, until they are used in the same P&L to mean different things.

This specification, as proposed, is inflexible and too specific. In order to met smbcatalyst's needs, I'd propose a low code report builder that exposes the functions inside financial_statements.py in a way that they can be composed by collecting account ranges to meet the needs of different businesses and jurisdictions.

I'd be happy to provide some examples.

agritheory avatar May 15 '24 12:05 agritheory

@agritheory,

Can you share some examples? Following is what I could best think of.

Proposal 1

Make account type extensible

Account Type is used for multiple scenarios and having bifurcation for use cases could be useful.

  • Validation (use account_type)
  • Reporting (new field reporting_category)
  • Automating account selection and creating accounting entry (new field split from existing account_type as purpose)

Suggested Changes:

  • Account type can be split between account_type and purpose. Account Type can purely mean classification of account and purpose to setup special type of account (like stock received but not billed).
  • Granularity and determination of what should form part of account type?
    • It's easy for an accountant to understand
    • Covers bifurcation needed for generation of reports without any special configuration
    • eg: keeping cash/bank/receivable/payable still as account type
  • DocType Reporting Category: Used specifically for reporting in financial statements. This is configurable at users end, and they can call this anything they like. This will be used by Report Template to group accounts and build financial reports. eg: Expense can be further split into Finance Cost and Employee Cost for appropriate reporting.
  • Setting account type and reporting tag should be mandatory for child accounts.
  • Account type can be fetched from Reporting Tag

Financial Report Template

  • This can be used to build templates for country specific use cases or as per legal requirements.
  • This could be used to build all reports - Profit and Loss, Balance Sheet, Cash flow, Ratio Analysis
  • There could be different configuration options like
    • Naming
    • Which account types to show
    • Formula to compute totals, etc
  • There could be following validations
    • Include all accounts from Expense / Income / Asset / Liability

Country Specific Templates

  • Country Specific apps can take-up creation of chart of accounts, account types by defaults
  • They can also prepare templates for Financial Reports for country specific laws with custom grouping. eg: For Companies Act or Income Tax Act in India compliance app.

Potential Issues

  • Changing account type could be complex and breaking.

Proposal 2

No need to make any changes to account type and build completely independent Financial Report Template

  • Map accounts directly in template instead of account type
  • When a new account is created, it gets mapped to other account by default

Drawbacks

  • Will be a complete custom solution for each site and will need to be configured.
  • Creation of new account every time will need updating of this templates.
  • This could be an issue with multi-company scenario.

Major difference between proposal 1 and 2 is how accounts are grouped and selected in Report Template

  • Proposal 1 can support grouping by reporting category
  • Proposal 2 will group accounts by account name. This could be messy and error prone where there are too many accounts.

Questions

  • Can you think of a better way?
  • What other things I could take care of?
  • Any other configurations that could be useful?
  • Any other validations?

vorasmit avatar Jul 16 '24 05:07 vorasmit