Source: https://guthlabs.ai/docs/instruments/salary-raise-purchasing-power-check/mechanism/

instrument mechanism / verified-clean

# Salary/Raise Purchasing-Power Check mechanism

The inspectable method record for Salary/Raise Purchasing-Power Check, kept separate from implementation and qualification.

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

## Model scope

The mathematical algorithm passes conditional on consistent CPI data. Overall status is NEEDS_REVIEW because the specification does not identify the CPI series and does not define the plain-language verdict rule or required input validation. The test vectors use U.S. CPI-U, U.S. city average, all items, not seasonally adjusted, 1982-84=100.

- The real_change formula is standard and correct when old_salary and new_salary are nominal salaries expressed in the same currency and CPI_new and CPI_old belong to the same CPI series and index convention.

- The specification does not define the CPI series, geography, population, seasonal-adjustment status, frequency, or index base. These choices can materially change the result.

- The plain-language verdict needs an explicit rule, such as real_change >= 0 meaning the raise kept pace or exceeded inflation, and real_change < 0 meaning it fell short.

- A constraint is required that old_salary > 0, CPI_old > 0, and CPI_new > 0. Division by zero or nonpositive CPI values must be rejected.

- The CPI base/target inputs are ambiguous: they should identify dates or periods whose CPI values are retrieved from the table, rather than permit unspecified CPI values or mismatched series.

## Units and conventions

- old_salary and new_salary are nominal amounts in the same currency and salary period basis, such as annual salary.

- CPI_old and CPI_new are dimensionless index values from the same CPI series, geography, population, seasonal-adjustment convention, and base period.

- The test data uses U.S. CPI-U, U.S. city average, all items, not seasonally adjusted, annual-average values where applicable, with 1982-84=100.

- real_change is dimensionless; multiply by 100 to report real % change.

- No taxes, benefits, changes in work hours, salary timing within a year, or other compensation are included.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "old_salary": 20000,
    "new_salary": 100000,
    "old_period": "CPI-U base period 1982-84",
    "new_period": "2023 annual average"
  },
  "expected_outputs": {
    "real_change": 0.640948,
    "real_percent_change": 64.0948,
    "plain_language_verdict": "The raise exceeded inflation; purchasing power increased."
  },
  "reference_data": {
    "cpi_old": {
      "period": "1982-84",
      "cpi_u_index": 100,
      "source_convention": "widely tabulated standard value; BLS CPI-U index base convention, U.S. city average, all items, not seasonally adjusted"
    },
    "cpi_new": {
      "period": "2023 annual average",
      "cpi_u_index": 304.702,
      "source_convention": "widely tabulated standard value; BLS CPI-U annual average, U.S. city average, all items, not seasonally adjusted, 1982-84=100"
    }
  },
  "working": "Salary ratio = 100000 / 20000 = 5. CPI ratio = 304.702 / 100.000 = 3.04702. Real change = 5 / 3.04702 - 1 = 1.6409475 - 1 = 0.6409475, which rounds to 0.640948. Real percent change = 0.6409475 x 100 = 64.09475%, or 64.0948%. The old CPI is exactly the famous 1982-84 CPI index-base entry of 100."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

A zero old_salary produces an undefined division, so the instrument requires explicit input validation and rejection. The specification does not state such validation behavior.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/salary-raise-purchasing-power-check/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/salary-raise-purchasing-power-check/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/salary-raise-purchasing-power-check/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`
