EV battery field reference
Full field reference for batteryCategory: "EV_BATTERY" responses from GET /api/dpp/{slug}. EV batteries have the most comprehensive disclosure requirements of all five categories.
For fields shared across all categories, see DPP overview. This page documents what is specific to, or guaranteed non-null for, EV batteries.
Nullability by field
| Field path | Type | Nullable for EV? | Notes |
|---|---|---|---|
carbonFootprint | object | Never null | Required for EV batteries |
carbonFootprint.totalKgCO2ePerKwh | number | Never null | Full lifecycle value in kg CO₂e per kWh |
carbonFootprint.lifecycle.rawMaterialExtraction | number | Never null | |
carbonFootprint.lifecycle.manufacturing | number | Never null | |
carbonFootprint.lifecycle.distribution | number | Never null | |
carbonFootprint.lifecycle.usePhase | number | Never null | |
carbonFootprint.lifecycle.endOfLife | number | Never null | |
carbonFootprint.calculationMethodology | string | Never null | E.g. "ISO 14067:2018" |
carbonFootprint.verifiedBy | string | null | Nullable | Third-party verifier name; null if self-declared |
carbonFootprint.verifiedAt | string | null | Nullable | ISO 8601; null if not yet verified |
carbonFootprint.declarationRef | string | null | Nullable | Reference number of the carbon footprint declaration |
recycledContent.cobaltPercent | number | Never null | 0–100; minimum thresholds apply from 2031 |
recycledContent.lithiumPercent | number | Never null | 0–100; minimum thresholds apply from 2031 |
recycledContent.nickelPercent | number | Never null | 0–100; minimum thresholds apply from 2031 |
recycledContent.leadPercent | number | Never null | Typically 0 for EV batteries |
performance.nominalCapacityKwh | number | Never null | |
performance.ratedVoltageV | number | Never null | |
performance.cycleLifeAtEightyPercent | number | Never null | Charge cycles to 80% of original capacity |
performance.roundTripEfficiencyPercent | number | Never null | |
performance.operatingTempMinC | number | Never null | |
performance.operatingTempMaxC | number | Never null | |
performance.initialSelfDischargeRatePercent | number | null | Nullable | |
hazardousSubstances | array | Never null, may be empty | Substances above 0.1% by weight |
supplyChain.dueDiligencePolicyUrl | string | null | Nullable | |
supplyChain.responsibleSourcingCertification | string | null | Nullable | |
compliance.euBatteryRegulation | boolean | Never null | true for all published EV DPPs |
compliance.reachCompliant | boolean | Never null | |
compliance.rohsCompliant | boolean | Never null | |
compliance.certifications | string[] | Never null, may be empty | |
compliance.declarationOfConformityRef | string | null | Nullable |
Handling the carbon footprint
carbonFootprint is guaranteed non-null for EV batteries. Always access it directly:
const dpp = await fetchDpp('swiftvolt-48v-100ah-ev-pack');
// Safe — carbonFootprint is never null for EV_BATTERY
const cf = dpp.carbonFootprint!;
console.log(`Total: ${cf.totalKgCO2ePerKwh} kgCO₂e/kWh`);
console.log(`Methodology: ${cf.calculationMethodology}`);
// Verified status may or may not be present
if (cf.verifiedBy) {
console.log(`Verified by ${cf.verifiedBy} on ${cf.verifiedAt}`);
} else {
console.log('Carbon footprint is self-declared (not third-party verified)');
}
// All five lifecycle stages are always present
const stages = cf.lifecycle;
const total = stages.rawMaterialExtraction + stages.manufacturing
+ stages.distribution + stages.usePhase + stages.endOfLife;
console.log(`Lifecycle total (check): ${total.toFixed(2)} kgCO₂e/kWh`);
Regulatory thresholds (for display and validation)
| Metric | Threshold | Applies from |
|---|---|---|
| Minimum recycled cobalt content | 16% | 1 Jan 2031 |
| Minimum recycled cobalt content | 26% | 1 Jan 2036 |
| Minimum recycled lithium content | 6% | 1 Jan 2031 |
| Minimum recycled lithium content | 12% | 1 Jan 2036 |
| Minimum recycled nickel content | 6% | 1 Jan 2031 |
| Minimum recycled nickel content | 15% | 1 Jan 2036 |
| Carbon footprint declaration mandatory | — | 18 Feb 2025 |
| Carbon footprint performance class mandatory | — | 18 Feb 2026 |
These thresholds are published for display purposes. The Traceable platform does not enforce minimum recycled content values at publish time — it is the operator's responsibility to ensure their declared data is accurate.
Restricted fields (PoLI access only)
The following supply chain fields are present in the DPP model but are omitted from the public API response. They are accessible only to entities with approved PoLI access:
- Detailed raw material sourcing by mine/country
- Internal audit report references
- Full supplier identity data (beyond the public due diligence policy URL)
See PoLI endpoints and the PoLI access flow integration example.
Minimal TypeScript type for EV battery
interface EvBatteryDpp {
id: string;
slug: string;
productName: string;
batteryCategory: 'EV_BATTERY';
status: 'published';
version: number;
manufacturer: {
name: string;
country: string;
registrationNumber: string;
contactEmail: string;
address: string;
};
// carbonFootprint is always present for EV batteries
carbonFootprint: {
totalKgCO2ePerKwh: number;
lifecycle: {
rawMaterialExtraction: number;
manufacturing: number;
distribution: number;
usePhase: number;
endOfLife: number;
};
calculationMethodology: string;
verifiedBy: string | null;
verifiedAt: string | null;
declarationRef: string | null;
};
recycledContent: {
cobaltPercent: number;
lithiumPercent: number;
nickelPercent: number;
leadPercent: number;
};
performance: {
nominalCapacityKwh: number;
ratedVoltageV: number;
cycleLifeAtEightyPercent: number;
roundTripEfficiencyPercent: number;
operatingTempMinC: number;
operatingTempMaxC: number;
initialSelfDischargeRatePercent: number | null;
};
hazardousSubstances: Array<{
name: string;
casNumber: string;
concentrationPercent: number;
threshold: string;
}>;
supplyChain: {
dueDiligencePolicyUrl: string | null;
responsibleSourcingCertification: string | null;
};
compliance: {
euBatteryRegulation: boolean;
reachCompliant: boolean;
rohsCompliant: boolean;
certifications: string[];
declarationOfConformityRef: string | null;
};
publishedAt: string;
updatedAt: string;
createdAt: string;
}