MetricOra
← Back to blog

From Field to Finance: The Complete Emissions Data Journey

7 min readBy CarbonSite
Data PipelineLineageQualityEnd-to-End
From Field to Finance: The Complete Emissions Data Journey

The Data Pipeline: 4 Critical Stages

Emissions data flows through 4 stages before reaching your CFO's report:

STAGE 1: CAPTURE         STAGE 2: REVIEW          STAGE 3: CALCULATION     STAGE 4: REPORTING
┌─────────────────┐   ┌─────────────────┐   ┌──────────────────┐   ┌─────────────────┐
│ Field worker    │   │ Sustainability  │   │ Calculation      │   │ Published       │
│ photographs or  │──>│ team reviews    │──>│ engine processes │──>│ snapshot for    │
│ office enters   │   │ and approves    │   │ & calculates     │   │ auditor + exec  │
│ data            │   │ or rejects      │   │ CO₂e totals      │   │ reporting       │
└─────────────────┘   └─────────────────┘   └──────────────────┘   └─────────────────┘

Problem: Each stage is a failure point. Data quality issues at stage 1 propagate to stage 4, where auditors discover them too late.

Stage 1: Data Capture (Field → Staging)

Risks:

  • Field worker enters wrong unit (kg vs tonnes)
  • OCR misreads handwritten number
  • Spreadsheet uploaded with typos
  • Invoice data missing required fields

CarbonSite mitigation:

  • Automatic data reading with confidence scoring
  • Automatic unit normalization (all converted to canonical units)
  • Validation rules (check ranges, required fields)
  • Audit log records extraction confidence + timestamp

Output: StagedActivityRecord (not yet committed to calculation)

Stage 1 Lineage Tracking

Original: "367" (from delivery ticket, handwritten)
├── Extracted by: Mobile app
├── Confidence: 89%
├── Unit detected: kg
├── Normalized: 367 kg → 0.367 tonnes
├── Timestamp: 2024-10-01 14:32:15
├── Location: facility_id = fac_456
└── Audit record: immutable hash recorded

Stage 2: Review (Staging → Committed)

Risks:

  • Sustainability lead approves without reviewing
  • Reviewer misses OCR errors (e.g., 367 tonnes passes as "reasonable")
  • Data stuck in review queue too long (stale when calculated)

CarbonSite mitigation:

  • Anomaly detection flags suspicious records before review
  • Review UI highlights high-risk records (red) vs. low-risk (green)
  • Reviewer audit trail: who approved, when, any notes
  • SLA notifications: flag records stuck in review >7 days
  • Batch operations: approve/reject multiple records at once

Output: ActivityRecord (now committed, immutable)

Stage 2 Lineage Tracking

StagedActivityRecord #4521
├── Status: pending_review
├── Anomaly flags: Z-score=31.7 (weight 8x baseline)
├── Review assigned: alice@company.com
├── Review: Approved with note "Confirmed with field worker, legitimate spike due to facility maintenance"
├── Approved by: alice@company.com
├── Approved at: 2024-10-02 09:15:22
├── Audit entry: hash_def456ghi
└── Now becomes: ActivityRecord #4521

Stage 3: Calculation (Records → Emissions)

Risks:

  • Wrong emission factor applied (old DEFRA vs. new DEFRA)
  • Calculation formula error (forgot GWP for CH4)
  • Calculation run crashes, leaves incomplete results
  • Different records calculated with different methodologies

CarbonSite mitigation:

  • Factor version locked at calculation start (all records use same DEFRA 2024)
  • Calculation formula stored with each record (provenance)
  • Atomic calculation: all-or-nothing (no partial results)
  • Calculation run logs every step (factor selection, formula applied, result)
  • Immutable EmissionCalculation records (never updated)

Output: PublishedSnapshot (locked, read-only)

Stage 3 Lineage Tracking

CalculationRun #42 (2024-10-02 14:00:00 UTC)
├── Organization: Acme Corp
├── Period: Q3 2024
├── Records processed: 10,442
├── Methodology: ghg-protocol-v2024-01
├── Factor library: DEFRA 2024.1 (revision 3)
├── Status: complete (took 12m 34s)
├── Records with scope1: 8,234
│   ├── Factor applied: natural_gas_combustion_2024
│   ├── Formula: activity_mmbtu × factor_value × (1 + ch4_gwp + n2o_gwp)
│   ├── Total: 15,234 tonnes CO₂e
│   └── Audit entry: hash_ghi789jkl
├── Records with scope2: 1,208
│   ├── Factor applied: uk_grid_electricity_2024
│   ├── Formula: activity_kwh × factor_value
│   ├── Total: 28,945 tonnes CO₂e
│   └── Audit entry: hash_jkl012mno
└── Total result: 50,234 tonnes CO₂e
    └── Hash chain: mno345pqr (proof of data integrity)

Stage 4: Reporting (Snapshot → Report)

Risks:

  • Dashboard totals ≠ report totals (different aggregations)
  • Export format loses data (decimal places, categories)
  • Report generated before calculation finishes (stale snapshot)
  • Auditor can't trace report numbers back to source data

CarbonSite mitigation:

  • Dashboard reads from same PublishedSnapshot as report (single source of truth)
  • Export format includes full lineage (source records + calculation details)
  • Report generation waits for calculation completion + validation
  • Audit evidence package exported with report (links back to stage 1)

Output: Published Report + Audit Evidence Package

Stage 4 Lineage Tracking

Report #R-2024-Q3-001
├── Title: "Q3 2024 Emissions Report: Acme Corp"
├── Created by: bob@company.com
├── Created at: 2024-10-05 16:30:00 UTC
├── Based on: CalculationRun #42
├── Based on: PublishedSnapshot v2.0 (Q3 2024)
├── Totals (verified match dashboard):
│   ├── Scope 1: 15,234 tonnes CO₂e ✓
│   ├── Scope 2: 28,945 tonnes CO₂e ✓
│   └── Scope 3: 6,055 tonnes CO₂e ✓
│   └── TOTAL: 50,234 tonnes CO₂e ✓
├── Format: PDF + Excel
├── Export includes:
│   ├── Full audit trail (10k+ log entries)
│   ├── Factor library snapshot (DEFRA 2024.1)
│   ├── Calculation formulas
│   ├── Sample record lineage (10 examples)
│   └── Hash chain verification (proof of data integrity)
└── Digital signature: signed_by_acme_org_key

Tracing a Single Record End-to-End

Want to verify report accuracy? Pick any record:

Q3 Report shows: Facility A, Waste, 367 tonnes
├── Trace back to: CalculationRun #42
│   ├── Factor applied: waste_landfill_biodegradable_2024
│   ├── Factor value: 0.234 kg CO₂e / kg waste
│   ├── Formula: 367 tonnes × 0.234 × (1 + 0) = 86 tonnes CO₂e
│   └── Matches report: ✓
├── Trace back to: ActivityRecord #4521
│   ├── Original value: "367" (extracted by OCR)
│   ├── Confidence: 89%
│   ├── Normalized to: 0.367 tonnes
│   ├── Approved by: alice@company.com (2024-10-02)
│   └── Anomaly flagged: yes (8x baseline, but confirmed valid)
└── Verify: All hashes match, no tampering detected ✓

The Big Picture: Data Lineage UI

CarbonSite provides an interactive visualization:

┌─────────────────────────────────────────────────────────┐
│ Trace Report Data                                       │
├─────────────────────────────────────────────────────────┤
│ Report #R-2024-Q3-001 → 50,234 tonnes CO₂e             │
│   ↓                                                     │
│ CalculationRun #42 → DEFRA 2024.1 factors              │
│   ├─ Scope 1: 15,234 tonnes (8,234 records)            │
│   ├─ Scope 2: 28,945 tonnes (1,208 records)            │
│   └─ Scope 3: 6,055 tonnes (1,000 records)             │
│   ↓                                                     │
│ Click on Scope 1 → see all 8,234 records               │
│   ├─ Facility A: 1,234 records → 860 tonnes            │
│   ├─ Facility B: 3,456 records → 2,890 tonnes          │
│   └─ Facility C: 3,744 records → 11,484 tonnes         │
│   ↓                                                     │
│ Click on Facility A → see individual records           │
│   ├─ Waste delivery 2024-09-01: 367 tonnes → 86 CO₂e  │
│   │  └─ Original OCR: "367" (confidence 89%)           │
│   │     └─ Extracted from: delivery_ticket_photo.jpg  │
│   │        └─ Captured by: field_worker_123           │
│   │           └─ Timestamp: 2024-09-01 14:32:15       │
│   └─ [View all 1,234 records in Facility A]            │
└─────────────────────────────────────────────────────────┘

Benefits of Complete Lineage

Auditors: Verify data integrity mathematically (hash chains) ✅ Reviewers: Understand which records trigger which emissions ✅ Finance: Reconcile emissions reports to source invoices ✅ Operations: Trace anomalies back to source (field worker, entry date, supplier) ✅ Compliance: Demonstrate CSRD / SBTi alignment at every stage


Next Steps

  1. Import data → CarbonSite automatically tracks lineage
  2. Review the audit trail → Click any record, trace back to source
  3. Export for auditors → Generate lineage package in seconds

See Data Lineage in Action

Import sample data and explore complete record traceability.

Try Data Lineage

Related reading:

More from the blog

Read all posts →