To produce an ESG report with Odoo, you install the ESG app, load emission factors suited to your country, link a factor to each type of purchase, and Odoo then calculates greenhouse gas emissions from your supplier invoices and generates the report in the VSME format, the European standard for SMEs. In Odoo 20, the full document comes out of a Print button: 39 pages for the manufacturing SME we use as an example.
It is neither another spreadsheet nor a separate carbon accounting tool. Emissions are calculated from the data the company already enters for its accounting, its employees and its vehicles. The work lies elsewhere: choosing the right factors, setting the right rules and reviewing the result. This article walks through the app's method, screen by screen, on a fictitious company built in an Odoo 20 database, then covers the settings that separate an accurate report from a rough one.
Can Odoo really produce an ESG report?
Yes. Odoo 19 and Odoo 20 include an ESG app (environmental, social and governance), organized in three stages that you find in its menus: collect, measure, act. It covers the three areas that an SME's customers, banks and insurers ask about.
- Environmental: the carbon footprint by scope, from scope 1 (fuels burned on site and in vehicles) to scope 3 (purchases, transport, waste, employee commuting).
- Social: headcount by gender and age, and the gender pay gap, taken from the Employees app.
- Governance: metrics linked to the European ESRS standards, with a double materiality assessment, and reduction actions tracked over time.
The report itself is generated in VSME format, the voluntary standard EFRAG wrote for SMEs. Odoo also offers a CSRD report template for companies subject to it. So this is not a decorative dashboard: it is a structured document, section by section, that a company can send to a major customer.
You when your biggest customer wants your carbon footprint by the end of the month, and you have never opened a single emission factor.
Why start from the ERP rather than a separate carbon accounting tool?
Because most of an SME's emissions come from its purchases, and its purchases are already in its accounting. Sheet metal, electricity, gas, diesel, the carrier, the sales team's hotels: each item has a vendor bill, an amount, often a quantity. A separate tool forces you to extract this data, re-enter it, then do it all again the following year. In an ERP, the data is already there, dated, linked to a vendor and to an account.
Odoo's documentation says it plainly: the app reads journal entries, and only those posted to accounts that reflect actual consumption.
“Odoo collects activity data from journal entries posted to expense and asset accounts. […] Only these account types are considered for carbon footprint calculations, in line with the Bilan Carbone methodology.” (Odoo, ESG app documentation, version 20.0, 2026)
The second advantage is traceability. Every tonne in the report traces back to an invoice line, with its factor, its calculation method and its uncertainty. When a customer or an auditor asks where a figure comes from, you open the invoice. And since everything is connected, employees, vehicles and revenue come from the same data as payroll, the vehicle fleet and invoicing.
Odoo did not arrive in this field by chance. Its open source community has been working on carbon accounting for several years: the OCA, the association that maintains Odoo's free modules, publishes a repository of modules dedicated to tracking CO2 in accounting, presented at its technical days in 2023 and 2024. The publisher's ESG app takes the same idea, an ERP that already holds all the activity data, and makes it available without custom development.
How does Odoo calculate emissions, in practice?
The formula is the same as in any carbon accounting: activity data multiplied by an emission factor. What changes is how Odoo feeds each of the two terms.
Emission factors: ADEME and IPCC in one click
In the Configuration menu, under Databases, two databases load with a single button: the ADEME database and the IPCC database. In our demo database, more than 17,000 factors arrived this way, including the June 2026 version of the ADEME database. Each factor has a scope, a source (purchased goods, electricity, fuels, waste, etc.), a unit, an uncertainty and a calculation method.
Two methods: quantities or euros
A physical factor multiplies a quantity: 0.0519 kg of CO2e per kWh for French grid electricity in 2024, 3.10 kg per liter of diesel, 2,211 kg per tonne of new steel. A monetary factor multiplies an amount: 0.317 kg per euro of metal products, 0.075 kg per euro of IT services. The difference shows in the uncertainty Odoo displays: 10% for electricity or steel counted in quantities, 80% for ADEME's monetary ratios.
Assignment rules: the factor lands on the invoice by itself
You still need to tell Odoo which factor applies to which purchase. That is the job of assignment rules: a factor per product, per vendor or per account, with the product taking precedence over the vendor, and the vendor over the account. Once the rules are set, the accountant enters bills as before, and each line receives its factor when it is posted. A button also applies a rule retroactively over a period, and AI assistance can suggest a factor for lines left without a rule, using credits purchased separately.
Two other sources complement the accounting. The vehicle fleet and employee records provide commuting data: distance, number of days on site, vehicle emissions. And manual entry covers anything without an invoice, such as a refrigerant leak or waste collected free of charge.
What does the result look like for a real SME?
To show it, we built a fictitious but realistic company in an Odoo 20 database: a sheet metal and welded fabrication SME with 38 employees, €5.8 million in revenue and a single site. Its 2025 year comes down to 209 vendor bills, 31 vehicles for commuting and a press brake bought during the year. No emissions were entered by hand.
The result fits on one line: 1,098 tonnes of CO2e, 85% of it in scope 3. Purchased steel sheet alone accounts for 68% of the total, far ahead of the gas for the curing oven and the diesel for the vans. That is typical of a processing company, and it is exactly what a spreadsheet based on euro ratios would have measured poorly. The carbon analysis then compares years and scopes: in 2026, the company uses it to track the effect of moving from 29% to 45% recycled steel in its sheet metal purchases.
This company's full report, exactly as Odoo generated it, is available as a free download, with three explanatory pages we added at the front: the breakdown of emissions, what Odoo calculates on its own and what the company provides. You can view it here: the sample ESG report generated by Odoo 20.
You when the year's 209 bills turn into a carbon footprint without a single line copied into a spreadsheet.
What is in the VSME report generated by Odoo?
VSME is the voluntary sustainability reporting standard for SMEs, written by EFRAG. It does not oblige anyone, but it has become the common language between an SME and those who ask about its impact. The European Commission is pushing in that direction.
“The Commission encourages large companies and financial institutions that seek sustainability information from SMEs to base their requests on the voluntary standard as far as possible.” (European Commission, recommendation on the VSME standard, July 30, 2025)
Odoo generates this report as an article in the Knowledge app, split according to the sections of the standard: B1 to B11 for the Basic Module, C1 to C9 for the Comprehensive Module. The figures are variables calculated at print time: headcount by gender and age, median hourly pay gap, revenue, total emissions, carbon intensity. The Carbon Footprint report is embedded as is.
What the report cannot guess, the company fills in: a description of its business and its site, its energy consumption in MWh, its reduction targets, its waste tonnages, its policies. The template flags these passages in square brackets, which avoids the blank page without creating the illusion of a report that writes itself. For an SME, the question is therefore not compliance with an obligation, but answering properly those who have one.
What do the rules require across Europe?
Across the European Union, the framework is the CSRD, cut back in 2026 by the Omnibus directive: it now only covers companies with more than 1,000 employees and €450 million in turnover, and member states must transpose it by 19 March 2027. Some countries add their own national obligations, such as France's mandatory greenhouse gas assessment for companies with more than 500 employees.
An SME of 38 employees like the one in our example is not covered. Its large customers are, and to measure their own purchases they question their suppliers. That is how the request reaches an SME, as a questionnaire or a request for a VSME report. Switzerland and the United Kingdom, outside the EU, have their own frameworks, but their large companies ask the same questions.
The method, on the other hand, is the same everywhere: the GHG Protocol and its three scopes, which Odoo follows. The VSME is therefore the most useful format for an SME anywhere in Europe. What changes from one country to another is the emission factors.
That is the point to check outside France. Odoo ships two databases: ADEME's, built for France, and the international database of the IPCC. Electricity is the clearest case: our example uses the French grid factor, 0.0519 kg CO2e per kWh, very low because of nuclear power, so 602 MWh weigh only 31 tonnes. In a country with a more carbon-intensive grid, scope 2 will weigh far more. Each factor in Odoo carries a country: create or import your national factors, and the rest of the method stays the same.
Which settings make the difference between an accurate report and a rough one?
The app does the calculation. It does not choose the assumptions. While building our example, we identified seven settings whose absence skews the result, sometimes visibly, sometimes without anyone noticing.
- Use recent factors. The ADEME database contains several vintages for the same item: grid electricity exists from 2011 to 2024. An old or foreign factor goes unnoticed.
- Count what weighs most in quantities. Energy in kWh, diesel in liters, materials in tonnes, with products that have the right unit of measure: uncertainty drops from 80% to 10%.
- Write assignment rules for every recurring purchase. Without them, “to be defined” lines pile up and the total is underestimated.
- Neutralize depreciation charges with the “Zero Emission” factor provided by Odoo: a machine is counted in the year it is purchased, not a second time through its depreciation.
- Put commuting in scope 3. Odoo ships this factor in scope 1 (mobile combustion), whereas the GHG Protocol classifies commuting in scope 3: in our example, about twenty tonnes changed scope.
- Complete employee records: “Employee” type, actual working schedule, date of birth, salary. An unsuitable schedule is enough to divide the calculated hourly wage by four, and therefore to skew the pay gap.
- Review before sharing. In Odoo 20, the report's revenue comes out with a negative sign, some numbers are not rounded, and the NACE code label is in English: you correct them in the report article.
Where should an SME start?
With the quality of its accounting. The ESG app is only as good as the vendor bills: purchases posted to the right account, products rather than free-text labels, quantities filled in for energy and materials. If your accounting in Odoo still needs to be made reliable, that is the first project, and we cover it in detail on our page dedicated to accounting for SMEs.
Next, start from a closed fiscal year rather than the current one: the bills are complete, revenue is final, and the report will serve as the baseline year for targets. In manufacturing, material purchases and energy almost always make up most of the footprint; that is where quantities need attention first. We support manufacturing companies on these topics, as we explain on our page Odoo for manufacturing.
Finally, set a simple target and track it in Odoo: the app offers actions with a baseline value, a target value and a history, which turns the annual report into a dashboard for the following year. AI assignment and most of the screens in this article come from the latest version, whose other changes we present in what's new in Odoo 20.
- Odoo, ESG app documentation, version 20.0, 2026: https://www.odoo.com/documentation/20.0/applications/finance/esg.html
- European Commission, “Commission presents voluntary sustainability reporting standard to ease burden on SMEs”, July 30, 2025: https://finance.ec.europa.eu/publications/commission-presents-voluntary-sustainability-reporting-standard-ease-burden-smes_en
Article written by Billy Felicie
Odoo integration expert at Hors du Commun (Lyon). I have been helping SMEs implement their digital tools and optimize their business processes for more than 5 years.