ae-platform / module-06 · governance layer · H3 · PI-7
Minimal Risk No HITL · Fully Autonomous CSRD Scope 3 · EU Taxonomy
Module 06  ·  Governance Layer  ·  H3 · PI-7  ·  2026

GreenOps Platform: Carbon-Aware Scheduling
Defer When the Grid Is Dirty

±6h
deferral window
73% chance of a clean window within range
41%
average carbon reduction
vs immediate-dispatch baseline
18.4
kgCO₂eq saved / month
all pillars · fully auditable to the job level
Abstract

GreenOps is a cross-cutting governance module in The Autonomous Enterprise Platform — it shifts every flexible workload from every process pillar to low-carbon grid windows without touching a single pillar's domain logic. It is the only AE Platform module with no HITL checkpoint and no human decision path: scheduling decisions are fully autonomous within a ±6 hour deferral window. Hard-deadline jobs are never deferred.

All carbon savings are auditable to the job level and exported as CSRD Scope 3 Category 11 emissions data, shared across the entire platform. Every dispatch writes an actual-vs-baseline record to BigQuery — sourced from metered GKE compute utilisation, not estimates — so a CSRD auditor can verify every savings claim against the source carbon intensity API data and the arithmetic independently.

carbon-aware scheduling GCP Carbon Footprint API Firestore deferred queue GKE Autopilot CSRD Scope 3 Category 11 EU taxonomy circuit breaker minimal risk

§1 System Context

GreenOps serves all four process pillars equally — Quote-to-Cash, Procure-to-Pay, Finance Operations, Supply Chain — and every pillar that follows. The CTO and sustainability team are consumers of GreenOps output (the ESG metrics dashboard and Strategy Dashboard feed), not participants in its decisions. Carbon intensity in, optimal dispatch time out — no humans required.

Figure 1
System context (C4 Level 1) — fully autonomous within ±6h window, no HITL, hard-deadline jobs never deferred
GreenOps Platform M-06 · Governance Layer · H3 Carbon intensity forecaster Scheduling decision engine Job dispatcher (GKE Autopilot) ESG metrics writer Cloud Run · BigQuery · Cloud Scheduler No HITL · No ML inference · Minimal Risk Hard-deadline jobs: never deferred Flexible jobs: ±6h window from submission europe-west3 · always-on · all process pillars GCP Carbon Footprint API grid intensity · europe-west3 gCO₂eq/kWh · 12h forecast Cloud Scheduler All process pillar batch jobs flexibility_window: flexible | hard GKE Autopilot Job dispatch at optimal window Low-carbon window confirmed All process pillar ML batch jobs BigQuery ESG Metrics ae_greenops.job_metrics kgCO₂eq saved per job · CSRD CSRD Scope 3 Export Category 11 · EU taxonomy Platform-wide sustainability report
GreenOps boundary (teal) · Carbon API + BigQuery ESG (teal) · GKE Autopilot dispatch (purple) · CSRD export (amber).
1.1 Deferral eligibility — representative batch jobs
JobPillar / ModuleScheduleDeadline TypeMax DeferralEligible?
Weekly model retraining (RevRec AI)Quote-to-Cash · M-03Sundays 02:00 UTCSoft — weekly freshness±6 hours✓ Deferrable
Weekly model retraining (Asset IQ RUL)Quote-to-Cash · M-05Sundays 03:00 UTCSoft — weekly freshness±6 hours✓ Deferrable
Weekly model retraining (ContractGuard)Quote-to-Cash · M-02Sundays 04:00 UTCSoft — weekly freshness±6 hours✓ Deferrable
Daily feature pipeline backfillGovernance Layer · M-08Daily 01:00 UTCSoft — before daily RUL run±3 hours✓ Deferrable
Daily RUL batch predictionQuote-to-Cash · M-05Daily 02:00 UTCHard — FSM queue same dayNone✗ Never deferred
FinRisk anomaly model refreshQuote-to-Cash · M-04Daily 03:00 UTCHard — streaming model currencyNone✗ Never deferred
ContractGuard Vector Store reindexQuote-to-Cash · M-02Monthly, 1stSoft — monthly precedent freshness±12 hours✓ Deferrable

§2 Container Diagram — C4 Level 2

The GreenOps Platform boundary contains four distinct deployable containers. Each maps to a GCP-managed service with an explicit IAM surface and VPC-SC perimeter membership. Technology choices are documented in ADR-GO02 through ADR-GO05.

Figure 2
greenops-sa@ roles: run.invoker · datastore.user · bigquery.dataEditor · monitoring.viewer — scoped to the greenops project only
ContainerTechnologyRoleIAM / Notes
Cloud SchedulerGCP ManagedHTTP POST trigger · job_id, suite_id, deadline, flexibility_window flagExternal trigger source
GreenOps AgentCloud Run · always-onCarbon forecaster · decision engine · job dispatcher · circuit breakerSA: greenops-sa@ · min-instances:1
FirestoreGCP Native, Datastore modedeferred_jobs collection · TTL on window_expiryADR-GO03
BigQueryGCP Native, Serverlessae_greenops.job_metrics · CSRD export querymetered_kwh · carbon_saved
GKE AutopilotGCP ManagedAll process pillar batch ML jobsroles/container.developer · greenops-sa@
Carbon Footprint APIGCP, VPC-SC nativeCircuit breaker on timeoutNo internet egress required
All six containers sit inside the VPC-SC perimeter (europe-west3, greenops project). ADR-GO03 documents the Firestore vs Cloud Tasks decision for the deferred queue.

§3 Architecture — Carbon-Aware Scheduling Pipeline

The GreenOps scheduling pipeline runs every 30 minutes to re-evaluate deferred jobs against the latest carbon intensity forecast. The decision to dispatch is autonomous and immediate — no human is in the path. A circuit breaker wraps every Carbon Footprint API call: on timeout or 5xx, GreenOps enters degraded mode — all queued jobs dispatch immediately with api_fallback:true flagged in the ESG record, and full scheduling resumes on the next successful API response.

Figure 3
30-minute re-evaluation loop · hard-deadline bypass · Firestore deferred queue · BigQuery ESG record per dispatch
Decision PointConditionOutcome
Hard deadline checkhard_deadline = trueBypass — dispatch immediately
Intensity checkintensity < 80 gCO₂eq/kWhDispatch immediately
Defer checkintensity ≥ 80 + window openAdd to Firestore deferred queue
Expiry checkwindow expiredForce dispatch + expiry flag
Re-evaluationevery 30 minutesRe-check all deferred jobs against latest forecast
Every dispatch — immediate, deferred-then-dispatched, or expiry-forced — writes a BigQuery ESG record (ae_greenops.job_metrics) feeding the monthly CSRD Scope 3 Category 11 export.

§4 State Machine — Job Lifecycle

The GreenOps job state machine has no failure state — every job reaches COMPLETE. Hard deadline jobs bypass the DEFERRED state entirely. Window-expired jobs dispatch at whatever the current intensity is; the ESG record captures the actual emissions accurately (saving_pct = 0% in the worst case — the data is honest, not optimistic).

Figure 4
SUBMITTED → EVALUATING → [DEFERRED] → DISPATCHING → COMPLETE · window expiry = forced dispatch, not failure
StateTriggerDetail
SUBMITTEDCloud SchedulerJob arrives with job_id, suite_id, deadline, flexibility flag
SUBMITTED → EVALUATINGalwaysCarbon API check
EVALUATING → DEFERREDintensity ≥ 80Firestore queue, 30-min re-eval loop
EVALUATING → DISPATCHINGintensity < 80 or hard_deadlineGKE Autopilot submit
DEFERRED → DISPATCHINGintensity↓ or window expiredDispatch at improved or current intensity
DISPATCHING → COMPLETEjob runsESG record written to BigQuery

§5 Data Flow Sequence

A weekly ContractGuard Vector Store reindex arrives at 02:00 UTC, is deferred because europe-west3 is at 142 gCO₂eq/kWh, re-evaluated five times across the 30-minute loop, dispatched at 06:12 when intensity drops to 71, and completes with a 49% carbon saving logged to BigQuery.

Figure 5
contractguard_vectorstore_reindex · 02:00 UTC · deferred 4h12m · dispatched at 71 gCO₂eq/kWh · 49% saving
TimeActorEvent
02:00Cloud Schedulercontractguard_vectorstore_reindex · flexible
02:01Agent → Carbon APIget_forecast(europe-west3, 12h)
02:01Carbon API → Agentcurrent: 142 · min@06:12: 68 gCO₂eq/kWh
02:02Agent → Firestorequeue_deferred(job_id, window_expiry=08:00) · intensity 142 ≥ 80
02:30–04:30Re-evaluation cycles128 defer · 112 defer · 98 defer · 84 defer · 76 approaching threshold
06:00Agent → Carbon APIget_forecast(europe-west3, 12h)
06:00Carbon API → Agentcurrent: 74 · next 30min: 68 → dispatch
06:12Agent → GKEgke.submit_job(contractguard_vectorstore_reindex, carbon_intensity=71, metered_kwh=1.8)
07:14Agent → BigQueryactual 0.128 kgCO₂ · baseline 0.248 kgCO₂ (at 138) · saved 0.120 · saving_pct 49% · csrd_eligible: true
07:14StateComplete · deferred_by: 4h12m · carbon_saving: 49% · CSRD eligible: true

§6 ESG Metrics Dashboard

GreenOps produces auditable carbon savings data — not estimates or projections. Every dispatch writes an actual-vs-baseline record to BigQuery. The CSRD Scope 3 Category 11 export aggregates savings across all process pillars and is generated monthly from these records. The figures below are indicative of a full H3 platform deployment at ClaraVis's workload volume.

Monthly Carbon Saved
18.4
kgCO₂eq / month · all pillars
Jobs Deferred (monthly)
14
of 22 flexible jobs · 64% deferral rate
Avg Carbon Reduction
41%
vs immediate dispatch baseline
Avg Deferral Duration
3.8h
well within ±6h window
GreenOps Platform SLOs — Reliability Targets
Dispatch Latency P99
<90s
job submission → GKE dispatch · hard deadline path
Re-eval Loop Availability
99.5%
30-min cycle completes within 35 min · error budget 3.6h/month
ESG Record Write SLO
99.9%
every dispatch writes a BigQuery ESG record

SLO breach triggers a Cloud Monitoring alert to the AE Platform on-call. Downstream suites are notified via the platform event bus. The circuit breaker (ADR-GO04) activates automatically — no manual intervention required. Error budget is tracked monthly and reviewed alongside CSRD savings figures.

CSRD Scope 3 Category 11 — Use of Sold Products
CSRD Scope 3 Category 11 covers emissions from the use of sold products. For a medical imaging OEM like ClaraVis, this includes the energy consumed by MRI and CT units in customer facilities. GreenOps addresses the indirect emissions from ClaraVis's own GCP workloads across all process pillars — a smaller but fully auditable contribution. The BigQuery ae_greenops.job_metrics table exports monthly to a CSRD-aligned CSV with: reporting_period, scope, category, activity_description, activity_units, activity_quantity, emission_factor, total_emissions_kgCO2eq. This export feeds directly into ClaraVis's sustainability reporting tool and satisfies the EU taxonomy technical screening criteria for climate change mitigation.

§7 Architecture Decision Records

Five GreenOps decisions, all defensible on their own terms.

ADR-GO01 ±6 hour deferral window — not ±1 hour, not ±24 hours Accepted

The deferral window is the single most important GreenOps design parameter. Too short (±1 hour) and the window is rarely wide enough to capture a meaningful carbon intensity improvement — europe-west3 intensity changes gradually, and a 1-hour window often doesn't span a low-carbon trough. Too long (±24 hours) and flexible jobs start to accumulate in the deferred queue for periods that affect model freshness. ±6 hours was chosen on two empirical observations: (1) analysis of 90 days of europe-west3 Carbon Footprint API data shows a low-carbon window (below 80 gCO₂eq/kWh) occurs within 6 hours of any given time approximately 73% of the time. (2) the ML models across the platform's process pillars were evaluated for freshness sensitivity — all maintain acceptable prediction quality with weekly retraining cycles; a 6-hour delay on a weekly job represents a 0.4% increase in the retraining interval, statistically indistinguishable from expected model performance at the weekly evaluation frequency.

ADR-GO02 GCP Carbon Footprint API over third-party carbon intensity APIs Accepted

Electricity Maps and WattTime were evaluated — both provide more granular real-time and forecast carbon intensity data than GCP's Carbon Footprint API, including marginal emissions rates. Rejected for three reasons. (1) GCP's Carbon Footprint API is available within the VPC-SC perimeter as a GCP-native service — no outbound internet call required; third-party APIs require outbound HTTPS calls that must be documented in the VPC-SC threat model and approved by the CISO. For a governance-layer module serving all process pillars, adding an external API dependency for a Minimal Risk module is not justified. (2) GCP Carbon Footprint API data is directly aligned with the GCP billing carbon reporting ClaraVis already uses internally — using the same data source for scheduling decisions and CSRD reporting ensures internal consistency. (3) at the forecast granularity required (30-minute intervals, 12-hour horizon), the GCP API is sufficient — the marginal vs average emissions distinction matters more for real-time demand response than for batch job scheduling with a 6-hour window.

ADR-GO03 Firestore (Datastore mode) as deferred queue — not Cloud Tasks Accepted

Cloud Tasks was the primary candidate — it is the canonical GCP service for delayed/scheduled task execution. Rejected for two reasons. (1) GreenOps does not need guaranteed-once delivery with a fixed delay; the deferred queue requires re-evaluation on every 30-minute loop against the current carbon intensity — the dispatch decision is "dispatch when a condition is met on a schedule," a query pattern, not "dispatch after N minutes." (2) Firestore enables the query GreenOps actually needs: SELECT all jobs WHERE window_expiry > NOW() AND state = DEFERRED — a predicate query over a mutable document store that Cloud Tasks does not expose. The tradeoff — no native dead-letter queue — is mitigated by window-expiry forced dispatch: every job that cannot be deferred successfully is force-dispatched at window_expiry, not lost. Document accumulation is bounded by job volume (≤30 jobs/week at ClaraVis H3 workload), so unbounded growth is not a concern at this scale.

ADR-GO04 Carbon Footprint API circuit breaker — dispatch-all degraded mode, not block Accepted

When the GCP Carbon Footprint API is unavailable (timeout, 5xx, or stale data beyond 90 minutes), GreenOps must choose between two degraded modes: (A) block all job dispatch until the API recovers, or (B) dispatch all queued jobs immediately and flag records as api_fallback:true. Option A preserves carbon optimisation intent but violates the "every job dispatched eventually" safety property — a multi-hour API outage would hold all process pillar training jobs in DEFERRED state, potentially cascading into model freshness violations. Option B sacrifices carbon savings for the duration of the outage but maintains the scheduling reliability guarantee GreenOps promises to all process pillars. Degraded-mode dispatches are flagged in BigQuery and excluded from CSRD savings calculations — the audit trail remains accurate. The circuit breaker threshold: 3 consecutive API failures within a 5-minute window triggers degraded mode; recovery requires 2 consecutive successful calls.

ADR-GO05 Static 80 gCO₂eq/kWh dispatch threshold for MVP — adaptive threshold deferred to Phase 2 Accepted (MVP)

Google's carbon-aware computing research (Radovanovic et al., 2021) uses a rolling percentile threshold — typically the 75th percentile of the trailing 30-day distribution — rather than a static absolute value, adapting to seasonal variation in europe-west3's carbon intensity. The adaptive approach is architecturally superior and is the target state for Phase 2. It is deferred for MVP for two reasons. (1) it requires 30 days of historical Carbon Footprint API data before the rolling window is statistically meaningful — deploying in H3 means the threshold logic would run on incomplete data for the first month. (2) a static threshold is easier to audit: CSRD reviewers can verify that every job dispatched below 80 gCO₂eq/kWh meets the threshold without reconstructing the rolling window at each dispatch time. Phase 2 will introduce a threshold_type field (static | rolling_p75) in the ESG record to maintain auditability across the transition.

§8 Stakeholder Rebuttals

Four objections raised during the GreenOps design review. Each rebuttal is grounded in architectural evidence, not opinion.

CTO · S-01
What's the actual carbon saving — is this meaningful or greenwashing?
"18.4 kgCO₂eq per month sounds small. ClaraVis's installed MRI fleet consumes gigawatt-hours annually. Is a carbon-aware scheduler for ML training jobs a genuine sustainability initiative or a token gesture?"
Architect Response
18.4 kgCO₂eq per month from GKE batch scheduling is a small number in absolute terms — it is the right number for this scope. GreenOps addresses Scope 2 emissions from ClaraVis's own GCP workloads across all process pillars, not the Scope 3 Category 11 emissions from 12,000 MRI units in customer facilities, which is a genuinely large source requiring a product-level energy efficiency programme, not a cloud scheduling optimisation. GreenOps is correctly scoped: it addresses what it can address, produces auditable evidence (BigQuery per-job records), and contributes to the CSRD reporting obligation under EU taxonomy. The value is not in the kilogram figure — it is in the auditability. A CSRD auditor can query ae_greenops.job_metrics and verify every savings claim to the job level, which is genuinely harder to produce than a top-down estimate.
Evidence: BigQuery ae_greenops.job_metrics (per-job audit trail) · CSRD Scope 3 export format · ADR-GO01 (model freshness impact)
CFO · S-03
Does deferring ML training jobs affect model freshness or prediction quality?
"If GreenOps defers the weekly RevRec AI retraining by up to 6 hours, and that model is used for ASC 606 classification the next morning, is there any risk a stale model produces classifications the Finance team later disputes?"
Architect Response
RevRec AI is retrained weekly, not hourly. A 6-hour deferral on a weekly job changes the retraining interval from 168 hours to 174 hours — a 3.6% increase, producing no statistically measurable change in model quality at weekly evaluation frequency. The model the Finance Controller sees on Monday morning is functionally identical whether the retraining ran at 02:00 or 08:00 Sunday. The hard-deadline bypass rule additionally ensures any job with a genuine operational dependency — the daily RUL batch, the FinRisk model refresh — is never deferred. To guard against compounding deferrals during a sustained high-carbon-intensity period, Vertex AI Model Monitoring runs a weekly drift-detection check against the holdout set; if skew exceeds the threshold, the next retraining job is marked hard_deadline regardless of carbon intensity.
Evidence: ADR-GO01 (0.4% retraining interval increase) · Job eligibility table (daily RUL and FinRisk = hard deadline) · Vertex AI Model Monitoring (weekly drift check)
CCO · S-02
Does GreenOps produce audit-quality CSRD Scope 3 data?
"CSRD requires third-party assurance of sustainability disclosures from 2025 onwards for large companies. Will the data GreenOps produces satisfy an external auditor, or is it an internal estimate needing separate verification?"
Architect Response
The BigQuery ae_greenops.job_metrics table is designed for external audit from the start. Every row contains the GCP job ID (traceable to the Cloud Logging execution record), the Carbon Footprint API response at dispatch time, the actual kWh consumed captured in metered_kwh (sourced from GKE resource utilisation via Cloud Monitoring — not estimated), the emission factor applied, and the calculated emissions figure. An auditor can verify each savings claim by checking the source API data, the actual compute utilisation, and the arithmetic independently. The CSRD export format aligns with the EU taxonomy technical screening criteria for Scope 3 Category 11. The remaining assurance gap is the carbon intensity data itself — Google publishes its own methodology statement for the Carbon Footprint API, which ClaraVis would reference in its CSRD disclosure, standard practice for Scope 2 location-based calculations.
Evidence: CSRD Scope 3 export format (§6) · BigQuery job_metrics schema (GCP job ID + API reference + actual kWh) · ADR-GO02 (GCP Carbon API aligned with billing reporting)
Enterprise Architect · S-08
What if the low-carbon window never arrives within the ±6 hour window?
"If europe-west3 has an extended period of high carbon intensity — a heat wave reducing renewable generation for 12+ hours — every deferred job hits its window expiry and dispatches at high intensity. Does GreenOps handle this gracefully or burst-overload GKE?"
Architect Response
Window expiry dispatches are handled with two protections against burst dispatch. First, the Firestore deferred queue tracks each job's window_expiry independently — jobs with staggered submission times dispatch sequentially as their individual windows expire, not simultaneously; the weekly retraining jobs for RevRec AI, Asset IQ, and ContractGuard submit at 02:00, 03:00, and 04:00 UTC with maximum expiries at 08:00, 09:00, and 10:00, so even in a worst-case scenario the three forced dispatches are spaced an hour apart. Second, GKE Autopilot's per-pod scheduling absorbs burst workloads gracefully — each job runs on its own node pool, provisioned independently. The window-expiry scenario is a degraded mode, not a failure mode — jobs run at higher carbon intensity than optimal, saving_pct = 0%, and the CSRD export reflects actual emissions accurately.
Evidence: Job eligibility table (staggered submission times) · State machine (window-expiry = forced dispatch, not failure) · GKE Autopilot (per-pod scheduling) · BigQuery ESG record (saving_pct = 0% in worst case, still auditable)

§9 Demo Pathway

Three minutes. One deferred job. One dispatch. One ESG record. The pathway shows the complete GreenOps lifecycle: job submitted, carbon intensity checked, job deferred, intensity drops, job dispatched, ESG record written.

00
Setup · 30s before
Open GreenOps monitoring and the Carbon API dashboard
Open the GreenOps monitoring panel. Show the current carbon intensity for europe-west3 (set to 138 gCO₂eq/kWh for the demo). Show the Firestore deferred queue — currently empty — and the BigQuery ae_greenops.job_metrics table with recent dispatch records from across all active process pillars.
GreenOps monitoringCarbon API dashboardFirestore deferred queue
01
Submit Job · 0:00
Trigger the weekly ContractGuard Vector Store reindex via Cloud Scheduler
Manually trigger the Cloud Scheduler job with flexibility_window: flexible, deadline: +12h. The GreenOps Cloud Run logs show: "Job received · pillar: qtc_pillar · flexible · calling Carbon Footprint API…", "Current intensity: 138 gCO₂eq/kWh · min forecast (next 6h): 72 at +3.8h · threshold: 80 · decision: DEFER".
"The job arrives from the Quote-to-Cash pillar. GreenOps doesn't care which pillar sent it — it checks the carbon intensity: 138 right now, above the 80 threshold. But the forecast shows 72 in about 3.8 hours. The job can wait."
Cloud Scheduler triggerCarbon Footprint APIGreenOps decision engine
02
Deferred · 0:20
The Firestore deferred queue entry — job waiting
In Firestore, the deferred_jobs document for contractguard_vectorstore_reindex shows: job_id, suite_id, submitted_at, window_expiry (submitted_at + 12h), current_intensity: 138, forecast_min_intensity: 72, forecast_dispatch_time: +3.8h.
"The job is in Firestore — every 30 minutes, GreenOps re-evaluates it. If carbon intensity drops below 80 before the window expires, it dispatches. If the window expires, it dispatches at whatever the current intensity is. Either way, the ESG record captures the actual carbon cost."
Firestore deferred_jobs30-min re-eval loop
03
Dispatch · 0:45 (simulated +3.8h)
Simulate carbon intensity dropping — watch GreenOps dispatch
Update the simulated carbon intensity to 71 gCO₂eq/kWh (below threshold). The re-evaluation cycle fires: "Re-evaluation: current intensity 71 < 80 threshold · DISPATCH." Cloud Run submits the job to GKE Autopilot.
"Intensity just dropped below 80. GreenOps catches it on the next 30-minute re-evaluation and dispatches immediately. The job runs now, at 71 gCO₂eq/kWh instead of 138 — a 49% carbon reduction, with no human intervention whatsoever."
GreenOps re-evaluationGKE Autopilot dispatchCloud Run logs
04
ESG Record · 1:30
The BigQuery ESG metrics record
In BigQuery ae_greenops.job_metrics, the new row: actual_intensity 71, metered_kwh 1.8 (source: GKE Cloud Monitoring, not estimated), actual_emissions_kgco2: 0.128, baseline_emissions_kgco2: 0.248 (at 138), carbon_saved_kgco2: 0.120, saving_pct: 48%, csrd_eligible: true, dispatch_delay_h: 3.8.
"One row in BigQuery. The metered_kwh field is sourced from GKE resource utilisation via Cloud Monitoring — not an estimate. An auditor can verify the 71 gCO₂eq/kWh figure directly from the Carbon Footprint API at that timestamp. No estimates in this audit trail — none."
BigQuery ae_greenops.job_metricsCSRD eligible flag
05
CSRD Export · 2:00
The monthly CSRD Scope 3 export query — platform-wide
The monthly CSRD export query aggregates SUM(carbon_saved_kgco2) and SUM(actual_emissions_kgco2) from ae_greenops.job_metrics WHERE csrd_eligible = true, grouped by reporting month. One query covers jobs from every process pillar.
"Monthly CSRD export. One SQL query. Covers every job across every process pillar in the platform. The CFO and sustainability team can run this themselves — they don't need a data engineer. GreenOps makes the numbers, BigQuery makes them reportable."
BigQuery CSRD export queryScope 3 Category 11EU taxonomy aligned

§10 ESG Monitoring Dashboard — Live View

This is the GreenOps monitoring view as it appears to the CTO and sustainability team — a read-only consumer of ae_greenops.job_metrics. No decisions are made here. Every figure shown is derived from the same BigQuery table that feeds the CSRD Scope 3 export. The live queue panel reflects the current state of the Firestore deferred_jobs collection.

GreenOps ESG Dashboard · ae_greenops.job_metrics · europe-west3
● Live Last sync: 30s ago
MTD Carbon Saved
18.4
kgCO₂eq · all pillars · 14 jobs
Current Intensity
92
gCO₂eq/kWh · above 80 threshold · forecast min 64 in +2.4h
Jobs In Queue
3
deferred · 1 expiring soon · 2 waiting
API Status
OK
circuit breaker: closed · 0 fallback dispatches MTD
Carbon Intensity Forecast — europe-west3 · next 12h
160 110 80 50 80 NOW min 64 (+2.4h) Now +2h +4h +6h +9h +12h
Firestore deferred_jobs · 3 active
revrec_ai_weekly_retrainExpiring
pillar: qtc_pillar · M-03
submitted: 02:00 · expiry: 08:00 · 41m remaining
asset_iq_rul_weekly_retrainDeferred
pillar: qtc_pillar · M-05
submitted: 03:00 · expiry: 09:00 · 1h41m remaining
contractguard_weekly_retrainDeferred
pillar: qtc_pillar · M-02
submitted: 04:00 · expiry: 10:00 · 2h41m remaining
Next re-eval in 8m 22s · forecast shows a clean window at +2.4h · expected dispatch: all 3 jobs
Recent Dispatches — ae_greenops.job_metrics · last 7 days
Job IDPillarIntensitymetered_kwhCO₂ SavedSaving %CSRD
contractguard_vectorstore_reindexqtc_pillar711.80.120 kg49%
revrec_ai_weekly_retrainqtc_pillar684.20.318 kg52%
asset_iq_rul_weekly_retrainqtc_pillar746.10.391 kg43%
feature_pipeline_backfillae_platform860.90.000 kg0%
daily_rul_batch_predictionqtc_pillar1042.3Hard
Source: ae_greenops.job_metrics · BigQuery · europe-west3 metered_kwh: GKE Cloud Monitoring · carbon_intensity: GCP Carbon Footprint API · all figures audit-traceable

§11 Adjacent Modules

Three platform services — GreenOps is the second. Data Governance (M-08) is the H1 foundation, deployed first, before any process pillar. GreenOps (M-06) activates in H3 once workload volumes justify carbon scheduling. The Strategy Dashboard (M-07) closes the platform layer — reading GreenOps ESG metrics alongside signals from every process pillar and presenting the unified executive view.