Page actions
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.
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
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche7/tranche7-results.jsonBOUNDARY_HAZARD_CATALOG.json