# Car: ACRISS

:bulb: **High‑Level Description**

* **ACRISS** (Association of Car Rental Industry Systems Standards) is known for its rental car coding standards and, increasingly, for methodologies addressing environmental impacts in automotive travel.
* The **ACRISS car methodology** differentiates emissions by **vehicle class**, **fuel/energy type**, and **usage patterns** (e.g., distance, trip context), acknowledging that a compact city car differs markedly from a large SUV.
* It incorporates **vehicle specifications**, **driving behavior assumptions**, and **maintenance practices** to estimate carbon emissions.
* The approach reflects the market shift toward **EVs, HEVs, and PHEVs**, and is **updated periodically** to remain aligned with industry standards and technology advances.

***

## Sample API Requests

### A. Route-based request without audit mode (origin/destination or explicit distance)

```json
{
  "expand": ["items"],
  "items": [
    {
      "audit": false,
      "type": "car",
      "methodology": "ACRISS",
      "external_reference": "string",
      "origin": "Frankfurt am Main, Germany",
      "destination": "Berlin, Germany",
      "fuel_type": "diesel",
      "acriss_car_type": "C"
    }
  ]
}
```

### B. Route-based request with audit mode (for finalized/post-booking calculations)

```json
{
  "expand": ["items"],
  "audit_for": "<Auditable Entity ID>",
  "items": [
    {
      "audit": true,
      "type": "car",
      "methodology": "ACRISS",
      "external_reference": "string",
      "origin": "Frankfurt am Main, Germany",
      "destination": "Berlin, Germany",
      "fuel_type": "diesel",
      "acriss_car_type": "C"
    }
  ]
}
```

> **Note:** `audit_for` is optional. Provide when calculating on behalf of a specific Auditable entity; otherwise omit.

### C. Duration-based request (fallback when distance is unknown)

> When the trip distance is unknown, you may pass `number_of_days`. The API will estimate the distance as\
> `estimated_distance_in_km = number_of_days * 60`.

```json
{
  "expand": ["items"],
  "items": [
    {
      "audit": false,
      "type": "car",
      "methodology": "ACRISS",
      "external_reference": "string",
      "fuel_type": "diesel",
      "acriss_car_type": "C",
      "number_of_days": 5
    }
  ]
}
```

> **Precedence rule:** If `distance_in_km` is provided, it will be used and **takes priority** over both `origin`/`destination` and `number_of_days`.

***

## Sample API Response

```json
{
  "carbon_quantity": 65636,
  "carbon_unit": "gram",
  "items": [
    {
      "carbon_quantity": 65636,
      "carbon_unit": "gram",
      "external_reference": "string",
      "type": "car",
      "methodology": "ACRISS",
      "distance": 538.0,
      "distance_unit": "kilometer"
    }
  ]
}
```

***

## API Request Items

* `"type"`: `"car"` (**required**).
* `"methodology"`: `"ACRISS"` (**required**).
* `"external_reference"`: A unique identifier (max 128 chars) to link the result to your item (useful for multi-item requests where order is not guaranteed).
* `"origin"`: SQUAKE will try to resolve `origin`/`destination` regardless of format. Prefer:
  * **Addresses**: postal standard.
  * **Airports**: IATA/ICAO `^[A-Z]{3,4}$` (e.g., `"MUC"`).
  * **Trade/transport locations**: UN/LOCODE `^[A-Z]{2}\W?[A-Z2-9]{3}$` (e.g., `"DEHAM"`).
  * **Coordinates**: `^[-+]?\\d{1,3}\\.\\d{1,10}\\s?,\\s?[-+]?\\d{1,3}\\.\\d{1,10}$` (e.g., `"+40.712,-74.006"`).
* `"destination"`: Same formats and rules as `"origin"`.
* `"distance_in_km"`: If present, **takes priority** over `origin`/`destination` and `number_of_days`. If both `distance_in_km` and `origin`/`destination` are provided, `distance_in_km` is used.
* `"number_of_days"`: **integer** (display name: **Number‑Of‑Days**), **>= 1**.
  * Use when trip distance is **unknown**.
  * The API estimates distance as: `estimated_distance_in_km = number_of_days * 60`.
  * **Precedence:** `distance_in_km` > `origin/destination` > `number_of_days` (fallback).
* `"fuel_type"`: One of `petrol`, `diesel`, `hev`, `phev`, `electricity`. Default for ACRISS is `petrol`.
* `"acriss_car_type"`: Car classes:\
  `C` (Compact), `D` (Compact Elite), `E` (Economy), `F` (Fullsize), `G` (Fullsize Elite), `H` (Economy Elite), `I` (Intermediate), `J` (Intermediate Elite), `L` (Luxury), `M` (Mini), `N` (Mini Elite), `P` (Premium), `R` (Standard Elite), `S` (Standard), `U` (Premium Elite), `W` (Luxury Elite), `X` (Special), `O` (Oversize). Default: `E`.
* `"sipp_car_type"`: If `acriss_car_type` is not passed, SQUAKE will auto‑resolve using the **SIPP code**. **Mutually exclusive** with `pseudo_car_type` (provide only one).
* `"pseudo_car_type"`: If neither `acriss_car_type` nor `sipp_car_type` are passed, SQUAKE will auto‑resolve using **Pseudo code**. **Mutually exclusive** with `sipp_car_type`. Allowed values:\
  `ACAR`, `ACGO`, `ACNV`, `ACPG`, `ACPR`, `ACRS`, `ADSL`, `AEIG`, `AELC`, `AELT`, `AETH`, `AFWD`, `AGRN`, `AHYB`, `AHYD`, `ALLB`, `ALLC`, `ALLD`, `ALMO`, `AMAN`, `AMCY`, `AMFP`, `AMNO`, `AMTO`, `ANIN`, `AOFR`, `APET`, `APUP`, `AREC`, `ASEV`, `ASIX`, `ASPC`, `ASPT`, `ASUV`, `ATRV`, `AUTO`, `AVAN`, `AWGN`.
* `"audit"`: boolean (optional). Set to `true` to create immutable audit records for finalized calculations. Must be enabled for your account.

***

## Default Values

* `"fuel_type": "petrol"`
* `"acriss_car_type": "E"`

***

## Notes

* **Data quality tip:** whenever possible, pass the actual `distance_in_km`—it yields the most accurate result. `number_of_days` is a convenience fallback and a coarse approximation.
* If neither `distance_in_km` nor `origin`/`destination` are supplied, the API will use `number_of_days` (if provided) to estimate distance; otherwise the request may be insufficient to compute trip emissions.

***

## Bibliography

* Environmental Responsibility & CO2 Emissions Guidelines (n.d.). **ACRISS**. Retrieved from <https://acriss.org/car-codes/environmental/>
