Anomaly Detection in Carbon Data: Catching the Outliers
The Data Entry Error That Cost a Company a Week
A waste contractor submitted delivery tickets for Q3. One ticket showed:
367 tonnes of waste captured in a single day
The facility's historical average: 40 tonnes per day.
Nobody caught it until the auditor asked: "Why did this facility's emissions jump 8x in week 2 of September?"
Investigation revealed: Field worker entered "367" (meant to be 36.7 tonnes, decimal point missed).
Impact:
- Q3 report published with wrong Scope 1 emissions (18% overestimated)
- Auditor flagged data quality issue
- Report delayed 3 weeks for resubmission + re-audit
- Team spent 40 hours investigating, re-collecting, re-calculating
This error was completely avoidable.
Why Manual Review Fails
The Problem: A human reviewer looking at 10,000 emissions records can't detect statistical outliers. They see:
- Facility A: 4,500 tonnes
- Facility B: 500 tonnes
- Facility C: 18,000 tonnes (red flag? or larger facility?)
Is 18,000 tonnes an error or legitimate? Without context, it's impossible to tell.
This is why anomaly detection requires statistics + machine learning, not just human eyeballs.
How Anomaly Detection Works
CarbonSite uses 8 concurrent detection rules:
Rule 1: Z-Score Anomaly Detection
Flags values >3 standard deviations from facility average.
Example:
- Facility historical average: 50 tonnes/day
- Standard deviation: 10 tonnes/day
- New record: 367 tonnes
- Z-score: (367 - 50) / 10 = 31.7 (extreme outlier)
- Action: Flag for manual review
Rule 2: Isolation Forest
ML algorithm that identifies isolated points in multi-dimensional space (weight, date, supplier, category).
Rule 3: Time-Series Anomaly Detection
Detects unusual patterns in temporal data:
- Sudden spikes
- Gradual drift (emissions increasing every day)
- Cyclical breaks (should have weekly pattern, but doesn't)
Rule 4: Duplicate Detection (7-day window)
Flags invoices with same vendor + amount within 7 days.
- Common fraud signal
- Or genuine recurring suppliers
Rule 5: Unit Inconsistency
Flags records where extracted unit doesn't match category.
- Energy data should be kWh/MWh, not tonnes
- Waste should be kg/tonnes, not litres
Rule 6: Out-of-Range Detection
Flags physically impossible values:
- Negative emissions
- Weight 0 (but energy > 0)
- Date in future
Rule 7: Missing Context
Flags records that lack required fields:
- No facility specified
- No emission category
- No timestamp
Rule 8: Supplier Performance Drift
Flags suppliers whose data quality is declining:
- Used to provide complete data, now partial
- Historical accuracy 95%, now 70%
Results
After each import, CarbonSite flags:
- Critical anomalies (likely errors): 2ā5% of records
- Warnings (possible errors): 5ā10% of records
- Info (FYI): 10ā15% of records
Example output:
šØ Critical: Record #4521 (Facility A, waste)
- Weight: 367 tonnes (Z-score: 31.7, 8x baseline)
- Reason: Extreme outlier for this facility
- Action: Review for data entry error
ā ļø Warning: Record #4522 (Supplier B, spend)
- Amount: $2.5M (Z-score: 2.1, unusual but plausible)
- Reason: 20% above historical spend
- Action: Confirm with procurement
ā¹ļø Info: Record #4523 (Facility A, energy)
- Completeness: 85% (good)
- Note: No supplier specified
Real-world accuracy: In production, anomaly detection catches 92% of data quality issues before they reach calculation engine. Manual review catches 78% (some outliers are legitimate).
Explainability Matters
When anomaly detection flags a record, it also explains why:
"This facility normally reports 40ā60 tonnes/day. You submitted 367 tonnes today. That's 6Ć your baseline. Here's what could explain it:
- Data entry error (most likely, given that 36.7 was probably intended)
- Measurement error (scale malfunction?)
- Legitimate spike (special event, facility redesign?)
Action: Approve the correction, or confirm it's real."
This transparency builds trust. Teams understand why the system flagged something.
Machine Learning Improvement
As more data flows through CarbonSite, the ML models improve:
- Z-score thresholds adapt to your facility baselines
- Isolation Forest learns your data patterns
- Time-series models improve with more historical data
After 6 months of data, false positive rate drops from 8% to 2%.
Next Steps
- Import Q3 data ā CarbonSite anomaly detection runs automatically
- Review critical flags ā Confirm or correct data entry errors
- Calculate clean ā Use validated data for final emissions report
Detect Anomalies in Your Data
Upload your emissions data and see automatic data quality scoring.
Try Data Quality CheckRelated reading: