Source: https://guthlabs.ai/docs/instruments/koppen-climate-classifier-rough/mechanism/

instrument mechanism / verified-clean

# Köppen Climate Classifier (rough) mechanism

The inspectable method record for Köppen Climate Classifier (rough), kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The declared honest label is appropriate but should additionally name the selected Köppen-Geiger variant, temperature and precipitation units, climatological baseline period, and hemisphere/season convention. With those choices made explicit and inputs validated, the tested decision logic is standard.

- The specification names the Köppen-Geiger decision rules but does not state the actual thresholds or rule variant. These vectors use the widely tabulated Köppen-Geiger convention summarized by Peel et al. (2007).

- The cold-climate boundary is ambiguous: some Köppen variants use 0 °C for the C/D boundary, while others use -3 °C. The vectors use 0 °C.

- The B-climate precipitation threshold requires a stated convention for which six months constitute the summer half-year; hemisphere is not included among the declared inputs.

- The specification does not state whether precipitation is monthly millimetres, monthly centimetres, or another unit. The vectors assume monthly precipitation in mm.

- The specification does not state how missing months, negative precipitation, leap-year normals, or mixed climatological baseline periods are handled.

## Units and conventions

- Temperatures are monthly mean temperatures in degrees Celsius.

- Precipitation values are monthly totals in millimetres.

- The annual precipitation total is the sum of the 12 monthly precipitation values.

- The annual mean temperature is the arithmetic mean of the 12 monthly mean temperatures.

- The tested rule convention uses: A climate if every month is at least 18 °C; Af if every month has at least 60 mm precipitation; E climate if warmest month is below 10 °C, with ET when the warmest month is at least 0 °C and EF when it is below 0 °C; C/D boundary at 0 °C; C/D summer subtype b when warmest month is below 22 °C and at least four months are at least 10 °C.

- For the B-climate vector, the six April-September months are treated as the Northern Hemisphere summer half-year.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "monthly_mean_temperature_C": [
      27,
      27,
      27,
      27,
      27,
      27,
      27,
      27,
      27,
      27,
      27,
      27
    ],
    "monthly_precipitation_mm": [
      60,
      60,
      60,
      60,
      60,
      60,
      60,
      60,
      60,
      60,
      60,
      60
    ]
  },
  "expected_outputs": {
    "classification_code": "Af",
    "description": "Tropical rainforest climate"
  },
  "reference_data": {
    "A_month_temperature_threshold_C": 18,
    "A_forest_month_precipitation_threshold_mm": 60,
    "source_convention": "Widely tabulated Köppen-Geiger standard rule value; Peel et al. (2007) convention"
  },
  "working": "1. Every monthly temperature = 27 °C, and 27 >= 18 °C, so the location satisfies the tropical A-climate temperature condition. 2. Annual precipitation = 12 x 60 = 720 mm. 3. Driest-month precipitation = 60 mm. 4. Af requires driest-month precipitation >= 60 mm. 5. 60 >= 60, exactly on the Af boundary. Therefore the code is Af."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

Extreme finite-looking inputs overflow annual accumulations unless range checks are enforced, and an omitted temperature-unit convention changes the classification from ET to EF. The branch test also exposes the exact -3 °C C/D switch.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/koppen-climate-classifier-rough/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/koppen-climate-classifier-rough/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/koppen-climate-classifier-rough/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche7/tranche7-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
