An open source methodology for measuring ESG impact indicators of companies using open data.
Economy as a Code is a technical approach to measuring the economic, social, fiscal, and carbon impact of companies across territories. It relies on certified open data sources, making results reproducible, auditable, and transparent.
Book: Economy as a Code: A technical approach to ESG indicators Website: economy-as-a-code.com Author: Tristan Méneret Official implementation partner: IN France (Société.com Group)
| Indicator | Abbr. | What it measures | Unit |
|---|---|---|---|
| Economic Impact | IE | Revenue contribution to territories | EUR |
| Social Impact | IS | Jobs generated across territories | ETP |
| Fiscal Impact | IF | Tax contribution to territories | EUR |
| Carbon Impact | IC | CO2e footprint of economic activity | tCO2e |
Results are presented as macro totals and broken down by country with percentages.
pip install eaacfrom eaac import EaaCEngine
engine = EaaCEngine()
impact = engine.compute(siren="443061841")
print(impact.summary())Data is fetched automatically from open sources (INSEE SIRENE, ADEME).
impact = engine.compute(
company_data={
"name": "Acme Corp",
"country": "DE",
"revenue": 5_000_000,
"employees": 45,
"taxes": 120_000,
"nace_code": "6201",
"establishments": [
{"country": "DE", "revenue": 4_000_000, "employees": 38},
{"country": "FR", "revenue": 800_000, "employees": 5},
{"country": "PL", "revenue": 200_000, "employees": 2},
],
}
)impact = engine.compute(siren="443061841", suppliers="suppliers.csv")Suppliers CSV format:
supplier_siren,country,amount,revenue,employees,name
123456789,FR,150000,0,0,French Supplier
,ES,22000,500000,12,Spanish Supplier
,GB,627,800000,5,UK Supplier- French suppliers: provide
supplier_siren, data is fetched automatically - International suppliers: provide
country,amount,revenue,employees
940k EUR 7.4 ETP 55k EUR 6.6 tCO2e
Country Economic Social Fiscal Carbon
France 916k EUR (97%) 7.1 ETP (96%) 54k EUR 5.8 tCO2e (88%)
Spain 22k EUR (2%) 0.3 ETP (4%) 316 EUR 0.8 tCO2e (12%)
Estonia 676 EUR (0%) 0.0 ETP (0%) 6.9 EUR 0.0 tCO2e (0%)
...
# French company
eaac compute --siren 443061841
# With suppliers
eaac compute --siren 443061841 --suppliers suppliers.csv
# International company
eaac compute --data company.json --suppliers suppliers.csv
# Export
eaac compute --siren 443061841 --format json --output report.json
eaac compute --siren 443061841 --format csv --output report.csv| Source | Data | Scope |
|---|---|---|
| API SIRENE (INSEE) | Company data (revenue, employees, NAF) | France (automatic) |
| Base Empreinte (ADEME) | GHG emission factors by sector | France / EU |
| INSEE TES | Input-Output Table (sector purchase ratios) | France |
| Manual input | Company data for non-French entities | International |
economy-as-a-code/
├── src/eaac/
│ ├── engine.py # Main engine (ImpactResult, EaaCEngine)
│ ├── cli.py # Command-line interface
│ ├── indicators/
│ │ ├── economic.py # IE (Economic Impact)
│ │ ├── social.py # IS (Social Impact)
│ │ ├── fiscal.py # IF (Fiscal Impact)
│ │ └── carbon.py # IC (Carbon Impact)
│ └── connectors/
│ ├── sirene.py # INSEE SIRENE API (French companies)
│ ├── insee_tes.py # Input-Output Table (sector ratios)
│ ├── ademe.py # ADEME emission factors
│ └── international.py # Country names and international utilities
├── docs/methodology/ # Methodology documentation
├── examples/ # Usage examples
└── tests/ # Test suite
Contributions are welcome. Please open an issue first to discuss what you would like to change.