← 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