Over the last few months we’ve been working on some new software to make it easier to discover sustainability data online. These data disclosures are driven by laws like the Corporate Sustainability Reporting Directive (CSRD) in Europe, that come into effect this year. In this post, tech and policy director Chris Adams introduces some of new software projects software, what you can do with them, and shares a a few new updates to the developing carbon.txt spec.
Setting the context around carbon.txt
Last year, we wrote a post introducing a project we referred to as carbon.txt – an open source project to make sustainability information easier to discover and use. We also wrote about why we felt that having a single place to look on any domain for public sustainability data relating to that company was a good idea.
We followed this with a bunch of primary research: in-depth interviews with experts on the new disclosure laws, and people in the technology sector who had to prepare the documents that contained this new data coming into the public domain.
We also spent a decent amount of time thinking about how the architecture of our own platform might need to change if we were to ‘eat our own dogfood’, and start using this newly public data in our own verification process. We offer a verification service for hosting providers who want to make claims about running their digital infrastructure on green energy – if this describes you, then check our guidance on how to get verified.
You can see the extensive report called Making carbon.txt work in the Green Web Foundation, elsewhere on the website, where it summarises our thinking, and our intended approach.
We’ve now spent the last 2-3 months building the software described in that report, and now we have:
- An extendable open source carbon.txt validator, written in Python, that works as a stand-alone project from our platform, with an API for parsing, validating, and processing carbon.txt files, plus any disclosure documents linked in them like CSRD reports.
- A refreshed carbon.txt website, with updated file builder and syntax checker, that integrates with this validation tool
- Updated documentation with instructions on creating, and using carbon.txt files, as well as guidance on extending the validator to do useful new things with linked disclosure documents
- Example plugins demonstrating how we are using carbon.txt ourselves – to show how we are parsing data in documents like the CSRD reports published later this year.
Let’s look at these each in a bit more detail:
An extendable open source carbon.txt validator
We want people to adopt carbon.txt as a mechanism for linking to disclosed sustainability data in various forms. If you want people to share data in a predictable, structured fashion, then building tooling to help them do so will often increase the likelihood of them doing so successfully.
So, building an open source validator to check existing carbon.txt files makes sense.
The carbon.txt validator is written in Python, is available for download from the Pypi software repository, at https://pypi.org/project/carbon-txt, as well as being developed in the open on Github at https://github.com/thegreenwebfoundation/carbon-txt-validator.
Internally, this validator uses an XBRL-certified validating processor, Arelle, for parsing CSRD reports. This is the same software people use for parsing financial data, because we think it’s a good idea to treat sustainability data with the same respect as financial data.
This validator works locally on the command line, for easy integration into data pipelines, but it also offers an OpenAPI-compatible API, that supports building new software on top of it.
In fact, that’s how we built the next thing we’ll be talking about – our refreshed carbon.txt website.
A refreshed carbon.txt website
If you want people to create carbon.txt files to link to disclosed sustainability data, then in addition to there being a spec to follow, it’s a good idea to provide accessible tooling to help them build their own carbon.txt files in a low-effort, and error-free way.
Build carbon.txt files with our file builder
With that in mind, we have an updated spec explaining the different elements that make up a valid carbon.txt file, and interactive builders to ease the process of creating carbon.txt files containing links to supporting documents for green claims about using green energy.
We know digital services increasingly rely on a supply chain of different services, so the builder provides a way to describe them, and where relevant the sustainability data they have in the public domain to back their claims.
Validating carbon.txt files
As mentioned, while we have built tooling that lets you validate and parse carbon.txt files locally, the tools also offer an API. Our online validator uses this API to both check the syntax of the contents of carbon.txt files, but also via our plug-in system, to parse and process linked documents you might use for disclosure.
We’ll cover this in more detail below.
Updated documentation with instructions on creating, and using carbon.txt files
We’re aware that our approach with carbon.txt is very much about connecting, not collecting sustainability data, and there are a number of new concepts we introduce.
We’ve also hinted at a plugin system, that is a key idea to this project. The carbon.txt validator is designed to be extended, and we have instructions on how to build new plugins that provide the ability to parse and process the link documents in a carbon.txt file.
In fact, some of the key functionality in the new carbon.txt validator, the ability to read and parse CSRD reports, and parse out meaningful disclosure data is implemented as a plugin.
Example plugins demonstrating how we are using carbon.txt ourselves
As we mentioned before, our own validator, that we use on the carbon.txt website relies on special plugin, that is designed to focus on a subset of data related to green energy in the E1 part of the European Sustainability Reporting Standards.
Under the hood, this data is parsed using Arelle – one of the same libraries in used in software used to help companies publish this data too.
Because the code is open source, you can see the specific data points we’re targetting – here’s the Python class containing them. If you follow the link, you should see things listed like “E1-5 AR 34 – Percentage of renewable sources in total energy consumption”, and so on.
Querying for more than Green Energy
However, we’re focussing on that specific subset only because our focus as an organisation has historically been on green energy. We know the CSRD covers a range of other environmental justice and governance-related considerations, and these all have their own standardised datapoints you can query for using our tooling too.
We’ve designed the system to query for information about all of these other standards too, so if you cared about say… Pollution (ESRS E2), or Water and Marine Resources (ESRS E3), making a plugin to query any published report from any company covered by the CSRD in Europe (and there are thousands of them), would be pretty straight forward – you’d just list different set of datapoints instead.
The full list of datapoints that we might expect to be published is extensive, and for those curious, we have published a list from EFRAG, of ALL the datapoints that can be queried. EFRAG is the organisation acting as a steward for the standards, so it’s about as close to the source as we can find.
Querying more than just CSRD reports
We’ve focussed quite a lot on the CSRD in carbon.txt files in this blog post. We’ve done so because we think it’s an important law, and the reports mandated by the CSRD should be very data-rich documents. But it’s not the only form of structured, disclosed sustainability data.
We know that every datacentre in Europe above certain size has had to compile similar kinds of data as a result of the Energy Efficiency Directive, which we’ve written about too – and publish them. How about a plugin for parsing those documents?
We also know that all certified B-Corps above certain size also need to make parts of their B Impact Assessment public. If this is in the public domain, then we shoud be able to link to it, and make this information easier to discover and use. Maybe a plugin for that too?
Zooming specifically into Green Energy, we’ve been working with Energy Tag and Green Software Foundation, and poring over the APIs and specs they publish. It looks like it’s technically possible to publicly link to a set of certificates for a specific amount of period of power, from a specific generation plant, at a specific time, to back claims about powering digital infrastructure with clean energy. We’ve outlined how in this issue here in the GSF’s Real time Cloud working group project.
This would offer an unprecedented level of transparency, and speaks to how a connect, not collect style approach is powerful, webby and from our point of view really exciting.
Where to go next
If you want to disclose data using a carbon.txt file, the best link to follow is one pointing to our main carbon.txt website, aimed at implementers.
If you want to use some of the tooling around carbon.txt for processing disclosed data, then our check our Green Web Foundation developer site to understand the architecture of the project, and how to build your own plugins for your own data processing pipelines.
If you want to learn more about the goals and the history of the project, and how to request partners adopt carbon.txt as a mechanism for disclosure of sustainability when you work with them, visit our carbon.txt section of this website, which is aimed at sustainability professionals, buyers and policymakers more than developers.
Getting support
For a query you’re not comfortable sharing publicly, or for commercial support using any of the tooling around carbon.txt, please use our contact form.
For anything else, please open an issue on the carbon-txt-site github repository – our chosen place for community support.
Onwards!