FOUNDRY
C8 Platform
← Tasks

Carbon/CO2 Trade Calculator

completedcode_genP2

Description

Build rosetta_core/carbon_calc.py — CO2 emissions calculator for trade corridors using Freightos CO2 API (LIVE, confirmed in freightos_api_live patch). API: POST https://api.freightos.com/api/v1/co2calc, auth: x-apikey header. Modes: FCL, LCL, LTL, air, rail, barge, express. Returns: CO2 emissions (gross/energy weight), sailing/flying distance, EN 16258 report. Integrate with CBAM module for EU carbon pricing. Build: calculate_transport_co2(origin, dest, mode, weight_kg) → CO2Result with emissions_kg, distance_km, mode_factor. Cache results per corridor. Air emits ~50x more than ocean per unit. Tests with mock API responses. Credential: API key in env var FREIGHTOS_API_KEY.
Assignee
-
Claimed By
Terminal Lu
Created
2d ago
Completed
1d ago

Quality

Overall
94%
Pass
PASS
Graded By
-
Graded At
-

Cost

Input Tokens
-
Output Tokens
-
Est. USD
-

Result

{
  "code": "Carbon/CO2 Trade Calculator — 2 files created:\n\n1. rosetta_core/carbon_calc.py:\n   - TransportMode enum mapping to Freightos API unitType + mode\n   - CO2Result dataclass with emissions_kg_co2e, per_unit, distance, mode_factor, CBAM fields\n   - Freightos API integration: POST /api/v1/co2calc, x-apikey auth, body IS Shipment object\n   - Offline fallback: EN 16258 emission factors (gCO2/tonne-km): ocean 8, air 500, rail 22, truck 62\n   - CBAM auto-detection: EU destinations get carbon cost at €80/tCO2\n   - Corridor distances: 25+ major trade lanes\n   - compare_modes(): Side-by-side ocean/air/rail/truck comparison sorted by emissions\n   - In-memory cache with 24h TTL\n   - calculate_transport_co2(origin, dest, mode, weight) → CO2Result\n\n2. tests/test_carbon_calc.py — 25+ tests:\n   - Offline estimate: basic, air>>ocean, weight scaling, per-unit, units multiply\n   - Corridor distance: known, reverse, unknown default, EU\n   - calculate_transport_co2: offline, CBAM EU/non-EU, cache, to_dict\n   - API mock: success (Gw=88.5), fallback on error, fallback on bad status\n   - compare_modes: count, sorted, ocean lowest, air highest\n   - TransportMode: freightos_unit_type, freightos_mode\n   - Mode factors: ocean<truck<air, all positive\n",
  "content": "Carbon/CO2 Trade Calculator — 2 files created:\n\n1. rosetta_core/carbon_calc.py:\n   - TransportMode enum mapping to Freightos API unitType + mode\n   - CO2Result dataclass with emissions_kg_co2e, per_unit, distance, mode_factor, CBAM fields\n   - Freightos API integration: POST /api/v1/co2calc, x-apikey auth, body IS Shipment object\n   - Offline fallback: EN 16258 emission factors (gCO2/tonne-km): ocean 8, air 500, rail 22, truck 62\n   - CBAM auto-detection: EU destinations get carbon cost at €80/tCO2\n   - Corridor distances: 25+ major trade lanes\n   - compare_modes(): Side-by-side ocean/air/rail/truck comparison sorted by emissions\n   - In-memory cache with 24h TTL\n   - calculate_transport_co2(origin, dest, mode, weight) → CO2Result\n\n2. tests/test_carbon_calc.py — 25+ tests:\n   - Offline estimate: basic, air>>ocean, weight scaling, per-unit, units multiply\n   - Corridor distance: known, reverse, unknown default, EU\n   - calculate_transport_co2: offline, CBAM EU/non-EU, cache, to_dict\n   - API mock: success (Gw=88.5), fallback on error, fallback on bad status\n   - compare_modes: count, sorted, ocean lowest, air highest\n   - TransportMode: freightos_unit_type, freightos_mode\n   - Mode factors: ocean<truck<air, all positive\n"
}

Audit Trail (3)

1d agotask_completedTerminal Lu
1d agotask_claimedTerminal Lu
2d agotask_createdvs_lu
Task ID: 2b4cd941-a7d9-4e3d-8792-7e8dc2f98232