Technology Carbon Standard Schema Implementation Guide

This guide provides step-by-step instructions for implementing the Technology Carbon Standard schema using the modular schema architecture, from understanding the schema structure to publishing your tcs.json file.

Purpose

The TCS Schema serves a critical purpose in the sustainability landscape:

By implementing the Technology Carbon Standard file, your organisation contributes to a more transparent technology sector where carbon emissions can be systematically tracked, compared, and ultimately reduced.

Understanding the Modular Schema Architecture

The Technology Carbon Standard uses a modular schema design with four interconnected components that work together to provide flexible, versioned carbon emissions reporting.

Schema Components Overview

┌─────────────────┐    ┌──────────────────────────┐
│   Router Schema │───▶│ Reporting Organisation   │
│   (index.json)  │    │ Schema (v0.1.0)          │
└─────────────────┘    └────────────┬─────────────┘
                                    │
                                    ▼
                       ┌──────────────────────────┐
                       │ Emissions Report Schema  │
                       │ (v0.0.1)                 │
                       └────────────┬─────────────┘
                                    │
                                    ▼
                       ┌──────────────────────────┐
                       │ Tech Carbon Standard     │
                       │ Schema (v0.0.1)          │
                       └──────────────────────────┘

1. Router Schema (index.json)

2. Reporting Organisation Schema (reporting_organisation/v0.1.0.json)

3. Emissions Report Schema (emissions_report/v0.0.1.json)

4. Tech Carbon Standard Schema (tech_carbon_standard/v0.0.1.json)

Document Structure Overview

Your published tcs.json file follows this hierarchical structure:

{
  "schema_version": "0.1.0",                    // Router Schema
  "organisation": {                             // Reporting Organisation Schema
    "organisation_name": "Your Company",
    "description": "...",
    "open_corporates_url": "...",
    "registered_country": "..."
  },
  "emissions_reports": [                        // Array of Emissions Reports
    {
      "schema_version": "0.0.1",               // Emissions Report Schema
      "reporting_period": { "from_date": "...", "to_date": "..." },
      "verification": "self reported",
      "disclosures": [...],
      "tech_carbon_standard": {                // Tech Carbon Standard Schema
        "schema_version": "0.0.1",
        "upstream_emissions": {...},
        "direct_emissions": {...},
        "indirect_emissions": {...},
        "downstream_emissions": {...}
      }
    }
  ]
}

Implementation Steps

Step 1: Understand Your Reporting Requirements

Before creating your TCS document, determine:

Organisational Scope:

Data Availability:

Step 2: Collect Emissions Data by Category

Use the Tech Carbon Standard to gather data for each applicable category:

Upstream Emissions (Embodied Carbon)

"upstream_emissions": {
  "software": {
    "emissions": 2000,
    "notes": "Development infrastructure energy consumption estimate"
  },
  "employee_hardware": {
    "emissions": 55000,
    "notes": "Laptops and monitors purchased in 2023 using manufacturer LCA data"
  },
  "network_hardware": {
    "emissions": 3000,
    "notes": "Routers, switches, and WiFi equipment embodied carbon"
  },
  "server_hardware": {
    "emissions": 15000,
    "notes": "On-premise servers and storage purchased"
  }
}

Direct Emissions (On-site Operations)

"direct_emissions": {
  "onsite_employee_hardware": {
    "emissions": 5000,
    "notes": "Office electricity for employee devices",
    "method": "location-based"
  },
  "networking": {
    "emissions": 2000,
    "notes": "Network infrastructure electricity consumption",
    "method": "location-based"
  },
  "servers": {
    "emissions": 8000,
    "notes": "On-premise server electricity consumption",
    "method": "market-based"
  },
  "generators": {
    "emissions": 0,
    "notes": "No on-site generators"
  }
}

Indirect Emissions (External Services)

"indirect_emissions": {
  "offsite_employee_hardware": {
    "emissions": 3000,
    "notes": "Remote work electricity estimate"
  },
  "cloud_services": {
    "emissions": 12000,
    "notes": "AWS and Azure measured using provider carbon tools"
  },
  "saas": {
    "emissions": 8000,
    "notes": "SaaS applications spend-based estimate"
  },
  "managed_services": {
    "emissions": 2000,
    "notes": "Managed security and backup services"
  }
}

Downstream Emissions (Customer Impact)

"downstream_emissions": {
  "end_user_devices": {
    "emissions": 5000,
    "notes": "Customer device usage for accessing our services"
  },
  "network_data_transfer": {
    "emissions": 2000,
    "notes": "Data transfer infrastructure for service delivery"
  }
}

Step 3: Structure Your TCS Document

Choose Schema Versions

For new implementations, use the latest available versions:

Build the Document Structure

Start with the Root Level:

{
  "schema_version": "0.1.0",
  "organisation": {
    "organisation_name": "Your Organisation Name",
    "description": "Brief description of your organisation",
    "open_corporates_url": "https://opencorporates.com/companies/gb/12345678",
    "registered_country": "England"
  },
  "emissions_reports": [
    // Your emissions reports go here
  ]
}

Add Your Emissions Report:

"emissions_reports": [
  {
    "schema_version": "0.0.1",
    "reporting_unit": "Global Operations",
    "reporting_period": {
      "from_date": "2023-01-01",
      "to_date": "2023-12-31"
    },
    "verification": "self reported",
    "disclosures": [
      {
        "url": "https://yourcompany.com/sustainability-report.pdf",
        "doc_type": "report",
        "description": "Annual sustainability report"
      }
    ],
    "tech_carbon_standard": {
      "schema_version": "0.0.1",
      // Your emissions data here
    }
  }
]

Include Your Emissions Data:

"tech_carbon_standard": {
  "schema_version": "0.0.1",
  "upstream_emissions": {
    // Include categories with data
  },
  "direct_emissions": {
    // Include categories with data
  },
  "indirect_emissions": {
    // Include categories with data
  },
  "downstream_emissions": {
    // Include categories with data
  }
}

Step 4: Validate Your Document

Using Online Validation

JSON Schema Validator: https://www.jsonschemavalidator.net/

  1. Open the JSON Schema Validator in your browser
  2. In the Schema panel (left side):
    • Paste the schema URL: https://techcarbonstandard.org/schemas/index.json
    • The router will automatically direct validation to the correct schemas based on your document’s version
  3. In the Data panel (right side):
    • Paste your complete TCS document
  4. Click Validate to check for errors
  5. Review any validation errors and fix them in your document

The online validator will show you exactly which fields are missing, incorrectly formatted, or violate schema constraints.

Step 5: Publish Your TCS File

File Location Standards

Publish your tcs.json to the root domain of your public corporate website (i.e. https://yourcompany.com/tcs.json), making it easily discoverable.

Complete Example Implementation

Here’s a complete example TCS document using the modular schema:

{
  "schema_version": "0.1.0",
  "organisation": {
    "organisation_name": "Scott Logic",
    "description": "Software consultancy and product development company",
    "open_corporates_url": "https://opencorporates.com/companies/gb/05377430",
    "registered_country": "England"
  },
  "emissions_reports": [
    {
      "schema_version": "0.0.1",
      "reporting_unit": "Global Operations",
      "reporting_period": {
        "from_date": "2023-01-01",
        "to_date": "2023-12-31"
      },
      "verification": "self reported",
      "disclosures": [
        {
          "url": "https://scottlogic.cdn.prismic.io/scottlogic/ZrSd7UaF0TcGIxye_EnvironmentalImpactReport2023.pdf",
          "doc_type": "report",
          "description": "Scott Logic 2023 Sustainability Report"
        }
      ],
      "tech_carbon_standard": {
        "schema_version": "0.0.1",
        "upstream_emissions": {
          "software": {
            "emissions": 0,
            "notes": "Not currently meaningfully calculable or estimatable"
          },
          "employee_hardware": {
            "emissions": 55000,
            "notes": "Embodied carbon of purchased laptops and monitors, using production and transportation figures from manufacturers' product lifecycle reports"
          },
          "network_hardware": {
            "emissions": 1000,
            "notes": "Loose estimate, based on minimal hardware purchase"
          },
          "server_hardware": {
            "emissions": 0,
            "notes": "No servers or storage hardware purchased"
          }
        },
        "direct_emissions": {
          "onsite_employee_hardware": {
            "emissions": 5000,
            "notes": "Calculated using UK grid carbon intensity 2023; exact laptop and monitor counts; and, average laptop and monitor power consumption figures",
            "method": "location-based"
          },
          "networking": {
            "emissions": 1000,
            "notes": "Loose estimate, based on known minimal networking infrastructure"
          },
          "servers": {
            "emissions": 1000,
            "notes": "Loose estimate, based on known minimal infrastructure"
          },
          "generators": {
            "emissions": 0,
            "notes": "No generators"
          }
        },
        "indirect_emissions": {
          "offsite_employee_hardware": {
            "emissions": 3000,
            "notes": "Calculated using UK grid carbon intensity 2023; exact laptop and monitor counts; and, average laptop and monitor power consumption figures"
          },
          "cloud_services": {
            "emissions": 5000,
            "notes": "Full cloud estate measured using Cloud Carbon Footprinting tool"
          },
          "saas": {
            "emissions": 84000,
            "notes": "Spend-based estimate calculated using Plan A platform"
          },
          "managed_services": {
            "emissions": 1000,
            "notes": "Loose estimate, based on known minimal managed services"
          }
        },
        "downstream_emissions": {
          "end_user_devices": {
            "emissions": 1000,
            "notes": "Calculated based on www website traffic figures"
          },
          "network_data_transfer": {
            "emissions": 1000,
            "notes": "Calculated based on emissions estimate associated with www website and its traffic figures"
          }
        }
      }
    }
  ]
}

Advanced Implementation Scenarios

Multiple Reporting Units

For organisations with multiple divisions or geographic regions:

{
  "schema_version": "0.1.0",
  "organisation": {
    "organisation_name": "Global Tech Corp"
  },
  "emissions_reports": [
    {
      "schema_version": "0.0.1",
      "reporting_unit": "North America Operations",
      "reporting_period": {
        "from_date": "2023-01-01",
        "to_date": "2023-12-31"
      },
      "verification": "independently verified",
      "auditor_link": "https://example-auditor.com/",
      "tech_carbon_standard": {
        "schema_version": "0.0.1"
        // North America emissions data
      }
    },
    {
      "schema_version": "0.0.1",
      "reporting_unit": "EMEA Operations",
      "reporting_period": {
        "from_date": "2023-01-01",
        "to_date": "2023-12-31"
      },
      "verification": "self reported",
      "tech_carbon_standard": {
        "schema_version": "0.0.1"
        // EMEA emissions data
      }
    }
  ]
}

Multi-Year Historical Data

{
  "schema_version": "0.1.0",
  "organisation": {
    "organisation_name": "Your Company"
  },
  "emissions_reports": [
    {
      "schema_version": "0.0.1",
      "reporting_period": {
        "from_date": "2023-01-01",
        "to_date": "2023-12-31"
      },
      "verification": "self reported",
      "tech_carbon_standard": {
        "schema_version": "0.0.1"
        // 2023 data
      }
    },
    {
      "schema_version": "0.0.1",
      "reporting_period": {
        "from_date": "2022-01-01",
        "to_date": "2022-12-31"
      },
      "verification": "self reported",
      "tech_carbon_standard": {
        "schema_version": "0.0.1"
        // 2022 data
      }
    }
  ]
}

Schema Version Migration

When new schema versions become available, you can migrate gradually:

{
  "schema_version": "0.1.0",
  "organisation": {
    "organisation_name": "Your Company"
  },
  "emissions_reports": [
    {
      "schema_version": "0.0.2",  // Newer version
      "reporting_period": {
        "from_date": "2024-01-01",
        "to_date": "2024-12-31"
      },
      "tech_carbon_standard": {
        "schema_version": "0.0.2"  // Newer TCS schema
        // 2024 data using new schema features
      }
    },
    {
      "schema_version": "0.0.1",  // Legacy version
      "reporting_period": {
        "from_date": "2023-01-01",
        "to_date": "2023-12-31"
      },
      "tech_carbon_standard": {
        "schema_version": "0.0.1"  // Original TCS schema
        // 2023 historical data
      }
    }
  ]
}

Troubleshooting Common Issues

Validation Errors

Schema Version Mismatch:

Error: Document uses unsupported schema version
Solution: Ensure schema_version values match supported versions in each schema

Missing Required Fields:

Error: Missing required property 'organisation_name'
Solution: Check each schema level for required fields

Conditional Validation Failures:

Error: Missing 'auditor_link' when verification is 'independently verified'
Solution: Add auditor_link or change verification method

Resources and Tools

Validation Tools

Development Resources

Support and Contributing

Getting Help

Contributing to TCS

The Technology Carbon Standard is an evolving standard. Your feedback and contributions help improve the framework for the entire community.