10 Phases to Take Your IT Services Net Carbon Negative (With AI) A developer published a 10-phase roadmap for making AI-enabled IT services net carbon negative, arguing that AI infrastructure buildout is driving emissions up at Google (+18% YoY), Microsoft (+25%), and Meta (+64%). The approach centers on measuring both generated and avoided emissions using open-source tools CodeCarbon and EcoLogits, and on model-routing, quantization, batching, and caching to cut inference energy. TL;DR — AI is making net-zero harder for the companies building it. But AI-enabled IT services can still be net carbon negative — if you measure both sides of the ledger and build a tool that proves it. This is the 10-phase roadmap. Before we build anything, let's look at what the data actually says. Google's 2025 report: emissions +18% YoY . Microsoft: +25% . Meta: +64% . All driven by AI infrastructure buildout. Data center electricity load at Google alone grew 37% year over year . A 2026 Nature study on US AI server deployments found the industry is unlikely to meet net-zero by 2030 without "substantial reliance on highly uncertain carbon offset and water restoration mechanisms." So if someone in your org says "we're carbon neutral because we use AI," that's not a defensible claim. The defensible claim is: AI-enabled IT services reduce more carbon than they emit. Google's own 2026 report shows 9 AI products enabled 41 Mt CO₂e in third-party emissions reductions — roughly 3× their own total emissions. That's the gap we're going to close, phase by phase. Every claim in this article rests on one equation: Net Impact = Emissions Generated digital − Emissions Avoided physical baseline markdown If the result is negative , you're net carbon negative. The critical rule: you must declare what's being replaced , not just what's being added . | Scenario | Replaces? | Net Effect | |---|---|---| | Video call replaces 500 km car trip | ✅ Yes | Strongly negative | | Digital document replaces paper + courier | ✅ Yes | Negative | | AI chatbot adds a layer on top of phone support | ❌ No | Positive worse | | Cloud migration replaces on-prem servers | ✅ Yes | Negative | Bake this into every tool and report you build. If a use case doesn't replace something, it doesn't count toward the net-negative claim. You can't prove net-negative if you can't measure the "generated" side. Two open-source tools from the CodeCarbon non-profit cover the full stack: python from codecarbon import EmissionsTracker with EmissionsTracker as tracker: your training / inference / batch job here train model tracker.print result Emissions gCO2eq : 12.45 Energy kWh : 0.031 Carbon intensity gCO2eq/kWh : 402 Measures CPU, GPU, and RAM power, applies regional grid carbon intensity. Supports PyTorch, TensorFlow, Hugging Face. python from ecologits import EcoLogits from openai import OpenAI EcoLogits.init providers= "openai" client = OpenAI api key="sk-..." response = client.chat.completions.create model="gpt-4o-mini", messages= {"role": "user", "content": "Summarize this report"} , print f"Energy: {response.impacts.energy.value.mean} kWh" print f"GHG: {response.impacts.gwp.value.mean} kgCO2eq" Intercepts API responses, extracts token counts and latency, computes energy via regression curves fitted to benchmark data. Tracks both operational and embodied hardware manufacturing emissions. Key insight from the 2026 literature: 45% of recent papers now strictly evaluate software-level carbon estimators like CodeCarbon. This is no longer a niche concern — it's becoming standard practice. Deliverable: A carbon baseline.py script that wraps all your compute and API calls, logs emissions to a time-series DB, and gives you a per-service, per-month baseline. The single highest-impact lever for reducing "generated" emissions is not switching data centers. It's using the smallest model that gets the job done. | Strategy | Typical Reduction | How | |---|---|---| | Route simple tasks to small models | 40–70% per query | Intent classifier → model router | | Quantize models FP16 → INT8 | 50–75% energy | Minimal accuracy loss | | Batch processing | 30–80% batch 8→64 | Amortize fixed overhead | | Cache frequent queries | 100% for hits | Semantic cache layer | | Trim context windows | 20–40% | Remove irrelevant tokens | A simple router pattern: php def route prompt: str - str: """Route to the smallest model that can handle the task.""" complexity = classify complexity prompt LLM or heuristic if complexity == "simple": return "gpt-4o-mini" ~0.02 gCO2e per reply elif complexity == "medium": return "gpt-4o" ~0.1 gCO2e else: return "o1" reasoning model, use sparingly EcoLogits estimates put a typical small-model reply at under 0.02 g CO₂e , while a large reasoning model with long output can hit several grams . That's a 100×+ difference for the same user-facing task. Deliverable: A model routing layer in your API gateway with per-request carbon logging via EcoLogits. Not all workloads are real-time. Batch jobs, model retraining, CI/CD pipelines, data processing — these can be shifted to hours when the grid is cleaner. python Pseudocode for a carbon-aware job scheduler from electricitymaps import get realtime carbon intensity def should run job job, sla deadline : current intensity = get realtime carbon intensity job.region forecast = get forecast job.region, hours ahead=6 Find the lowest-carbon window within SLA best window = min forecast, key=lambda h: h.carbon intensity if best window.carbon intensity < 150: gCO2eq/kWh threshold return schedule at best window.timestamp elif current intensity < 200: return run now else: return defer job, until=sla deadline - buffer In Kubernetes, this becomes a scheduler plugin that reads grid carbon intensity from APIs like WattTime or Electricity Maps and defers non-critical pods to low-carbon windows. Market context: Carbon-aware data center software is projected to reach $12.4B by 2030 . This is no longer experimental. Deliverable: A scheduler plugin K8s or Airflow that shifts batch workloads to low-carbon windows, with SLA guardrails. This is the "boring but essential" phase. You can't be net-negative if your data center is leaking energy. | Lever | Impact | Status in 2026 | |---|---|---| | 24/7 Carbon-Free Energy CFE | Eliminates Scope 2 | Google at 67% globally; replacing annual renewable matching as the standard | | Liquid cooling | PUE 1.05–1.15 | Now standard for AI facilities | | Kubernetes autoscaling | 30–50% less overprovisioning | Table stakes | | Spot instances | Shift to renewable peaks | 60–80% cost + carbon savings | | Retire unused capacity | 10–20% reduction | Kill experimental envs, idle GPUs, redundant models | | Edge inference | Reduces data transport | Jetson AGX Orin, Coral, etc. | The 2026 shift: 24/7 CFE is replacing annual renewable energy credits as the standard commitment. Hyperscalers are pivoting to For IT services teams, the practical move is: Deliverable: An infrastructure carbon audit + a 12-month energy optimization plan with PUE targets and CFE procurement milestones. This is the phase that turns "net positive" into "net negative." Scope 4 avoided emissions is the carbon your customers or users would have emitted without your service. It's the multiplier that makes the whole argument work. For each service, define the counterfactual what happens without your service and apply standard emission factors: php def calculate avoided emissions use case: dict - float: """ use case = { "type": "video conferencing", "trips replaced": 500, business trips/year "avg distance km": 250, one-way "car occupancy": 1.2, people per car } """ avoided = 0.0 Business travel if use case "type" == "video conferencing": trips = use case "trips replaced" distance = use case "avg distance km" 2 round trip 150 gCO2e per passenger-km by car DEFRA/ICCT factor avoided += trips distance 0.150 Paper elif use case "type" == "digital documents": tonnes paper = use case "tonnes paper saved" ~2.2 kgCO2e per kg of paper lifecycle avoided += tonnes paper 1000 2.2 Cloud vs on-prem elif use case "type" == "cloud migration": servers replaced = use case "servers replaced" On-prem server: ~500 kgCO2e/year energy + embodied amortized Cloud: ~200 kgCO2e/year shared infra, higher utilization avoided += servers replaced 300 return avoided kgCO2e avoided per year | Use Case | Avoided kgCO₂e/yr | Generated kgCO₂e/yr | Net | |---|---|---|---| | 500 video calls replacing 500 km car trips | 37,500 | ~78 500 × 0.157 g | −37,422 | | 20 tonnes paper → digital | 44,000 | ~5 | −43,995 | | 10 on-prem servers → cloud | 3,000 | ~2,000 | −1,000 | | AI logistics optimization 1,000 routes | ~50,000 | ~200 | −49,800 | The avoided side is 100–1000× larger than the generated side in most real-world IT service substitutions. Deliverable: A scope4 calculator.py module with sector-specific emission factors, integrated into your dashboard. This is the software that makes the case visible to stakeholders who will never read a CO₂ report. ┌──────────────────────────────────────────────────────┐ │ Frontend React / Streamlit / Dash │ │ │ │ ┌────────────┐ ┌────────────────┐ ┌───────────┐ │ │ │ Input Form │ │ Waterfall Chart│ │ What-If │ │ │ │ use case, │ │ avoided vs. │ │ Sliders │ │ │ │ volume │ │ generated │ │ model, │ │ │ └────────────┘ └────────────────┘ │ volume │ │ │ └───────────┘ │ ├──────────────────────────────────────────────────────┤ │ Backend Python / FastAPI │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │ │ │ CodeCarbon │ │ EcoLogits │ │ Scope 4 │ │ │ │ compute │ │ GenAI API │ │ Calculator│ │ │ └──────────────┘ └──────────────┘ └───────────┘ │ │ │ │ ┌────────────────────────────────────────────────┐ │ │ │ Net Impact = Avoided − Generated │ │ │ └────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────┤ │ Data Layer │ │ • Grid carbon intensity Electricity Maps API │ │ • Cloud provider PUE / CFE % │ │ • Sector emission factors DEFRA, ICCT, ADEME │ │ • Time-series store TimescaleDB / InfluxDB │ └──────────────────────────────────────────────────────┘ The dashboard should not lead with "your AI footprint is X kg." That sounds alarming and invites the "AI is bad" reflex. Lead with: "Without this service, the footprint would have been Y kg. With it, the footprint is Z kg. You saved Y − Z kg." The waterfall chart shows the avoided emissions as a large green bar and the generated emissions as a small red bar. The net is the gap. This is what makes the claim robust to skepticism . Deliverable: A deployable dashboard Streamlit is fastest for MVP; React + FastAPI for production with the architecture above. Once you can measure, you can gate . Add a carbon check to your CI/CD pipeline, the same way you add linting or security scans: .github/workflows/carbon-check.yml name: Carbon Budget Check on: pull request jobs: carbon: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - run: pip install codecarbon ecologits - name: Run carbon test run: | python -c " from codecarbon import EmissionsTracker with EmissionsTracker as t: Run your test suite / inference benchmark run benchmark emissions = t.get total emissions budget = 50 gCO2e per PR if emissions budget: print f'::error::Carbon budget exceeded: {emissions:.1f}g {budget}g' exit 1 print f'Carbon: {emissions:.1f}gCO2e budget: {budget}g ' " This is the FinOps of carbon . You set a budget per PR, per service, per month. When it's exceeded, the pipeline fails or warns . For non-critical deployments, shift them to low-carbon windows: python Deploy only when grid carbon is below threshold def carbon aware deploy deploy command, region, threshold=200 : while True: intensity = get grid carbon region if intensity < threshold: subprocess.run deploy command, shell=True return time.sleep 300 retry every 5 min Deliverable: CI/CD carbon gates + carbon-aware deployment script integrated into your pipeline. The final phase is the one that makes the claim stick . ┌─────────────────────────────────────────────────────────┐ │ Annual Carbon Report — FY2026 │ │ │ │ Emissions Generated Scope 1+2+3 digital : 12.4 t │ │ Emissions Avoided Scope 4 : 487.2 t │ │ ───────────────────────────────────────────────────── │ │ NET IMPACT: −474.8 t│ │ │ │ By service: │ │ • Video conferencing: −37.4 t 500 trips avoided │ │ • Digital documents: −44.0 t 20 t paper │ │ • Cloud migration: −1.0 t 10 servers │ │ • AI logistics: −49.8 t 1,000 routes │ │ • All other services: −342.6 t │ │ │ │ Carbon reduction levers applied: │ │ • Model right-sizing: −62% per-query emissions │ │ • Carbon-aware scheduling: −19% batch emissions │ │ • 24/7 CFE procurement: Scope 2 → 0 │ │ • PUE optimization: 1.32 → 1.08 │ │ │ │ Next year targets: │ │ • Expand Scope 4 to 3 new use cases │ │ • Carbon gate in 100% of CI/CD pipelines │ │ • 24/7 CFE for all cloud workloads │ └─────────────────────────────────────────────────────────┘ This net-negative claim holds only because the digital service replaces a more carbon-intensive physical process. If the service merely adds a digital layer without removing the physical one, the net effect is positive. We report both sides of the ledger because we believe the claim is only credible when the math is visible. This one paragraph is what separates a credible report from greenwashing. Deliverable: An automated annual report generator that pulls from your time-series DB, applies the counterfactual framework, and produces the waterfall + narrative above. Phase 1 → Acknowledge the problem AI is making it harder Phase 2 → Adopt the counterfactual framework avoided generated Phase 3 → Measure baseline CodeCarbon + EcoLogits Phase 4 → Right-size models biggest quick win, 40–70% reduction Phase 5 → Carbon-aware scheduling 15–35% reduction Phase 6 → Optimize energy infrastructure 24/7 CFE, PUE, kill dead weight Phase 7 → Quantify avoided emissions Scope 4 — the multiplier Phase 8 → Build the showcase dashboard make it visible Phase 9 → Integrate into CI/CD carbon gates, carbon-aware deploy Phase 10 → Report, iterate, prove annual loop, honest caveats A defensible, math-backed argument that your AI-enabled IT services are net carbon negative — with the dashboard to prove it, the CI/CD gates to enforce it, and the annual report to keep it honest. The counterfactual is your friend. Use it. Tools referenced: CodeCarbon https://codecarbon.io/ , EcoLogits https://github.com/mlco2/ecologits , ML CO₂ Impact https://mlco2.github.io/ , Electricity Maps https://www.electricitymaps.com/ , Climatiq https://climatiq.io/ , Net0 https://net0.io/ . Emission factors: DEFRA, ICCT, ADEME, GHG Protocol. ---