# Exposure × job requirements: follow-up of 8 September 2026

This add-on uses the original national occupation export, downloaded for the project on 2 September 2026. It introduces no later wage observations and does not change the original full-sample estimates.

Sources: Destatis Verdiensterhebung table 62361-0030 (April median gross hourly earnings, excluding special payments); the German April consumer price index; the ILO–NASK 2025 task-exposure index; the official BA KldB–ISCO crosswalk. See the article's source ledger for primary-source links and original mapping rules. The underlying sources retain their respective terms; this follow-up redistributes only the derived tables already used by the article.

## Sample and transformations

The input is `downloads/fig-08_exposure-distributions.csv`, containing 573 quality-filtered, balanced five-digit occupation codes. Restricting to `mapping_usable_main` retains 530 high-confidence codes in 36 two-digit KldB families. Job requirements are Helfer (33), Fachkraft (205), Spezialist (148), and Experte (144). Each occupation has equal weight. The observations are occupation medians, not workers followed over time.

Upper exposure is a score of at least 0.38, the strict sample's 70th percentile; ties give 161 upper-exposure codes (30.4%). It is an analytical split, not an ILO adoption category. Scores reach only 0.65, so a 0.70 cutoff would create an empty group. Higher requirements combine Spezialist and Experte. Requirement level describes the job, not formal education or experience. No Helfer occupation reaches the upper-exposure cutoff.

April CPI is 108.8 (2022), 116.6 (2023), 119.2 (2024), and 121.7 (2025), on a common base. Exact real growth is `100 * ((wage_end / wage_start) / (CPI_end / CPI_start) - 1)`. The four displayed cells are medians of this percentage change, not pooled worker wage growth. National CPI adjusts purchasing power; no regional deflator is used.

## Models and uncertainty

The dependent variable is `100 * log((wage_end / wage_start) / (CPI_end / CPI_start))`. Coefficients are log points. The displayed descriptive medians therefore cannot be subtracted to reproduce the mean-log regression contrast.

- Raw: `g ~ upper_exposure * higher_requirements`.
- Adjusted: `g ~ upper_exposure + upper_exposure:higher_requirements + C(requirement_level) + log(wage_2022)`. The main higher-requirement indicator is absorbed by the four requirement categories; adding it again would create a rank-deficient model.
- Family sensitivity: the adjusted model plus two-digit KldB family indicators.

The interaction is the upper-minus-lower exposure gap within specialist/expert jobs minus the corresponding gap within Helfer/Fachkraft jobs. A negative estimate indicates an additional disadvantage associated with exposure in complex jobs. It does not identify an AI effect. Reported intervals use CR1 covariance clustered by the 36 occupational families, finite-sample correction, and two-sided t(35) inference. A confidence interval crossing zero leaves both signs plausible; it is not proof of no effect.

Annual models keep the same 2022 starting-pay control and requirement categories. Holm adjustment covers the three annual within-specialist/expert exposure tests. For 2024–25 the unadjusted p-value is 0.0276 and the adjusted p-value 0.0829. The direct annual interaction remains inconclusive (p = 0.1159). The annual pattern is exploratory; the cutoffs and follow-up question were motivated by the observed chart, not preregistered.

Sensitivity models with thresholds 0.40, 0.45 and 0.50, and the family-control model, do not establish the full-period additional penalty. None of these models observes AI adoption, task change, labour demand or wage bargaining. They cannot establish causality or education-specific and regional effects.

## Exhibit 06 correction

Previously, cell medians and counts came from the extended 573-code export while panel counts and slope estimates used the strict 530-code sample. All cells, counts, downloads and tooltips now use the same 530 codes as the slopes. For comparability, the global exposure-decile boundaries are calculated on the original 573-code export before filtering; identical scores stay together. Bins are not recalculated within each job level, and the strict bins need not contain equal counts.

Circle area is proportional to the number of occupations without an additive radius. Cells with fewer than eight codes remain hollow. Triangles and exact labels mark values outside the displayed −6% to +8% range; these values are retained in the data and table. The cell axis is exact percent growth; the regression slopes are correctly labelled log points per 0.10 exposure. The original slope estimates are unchanged.

## Reproduction

In a checkout of the website repository, install `scripts/ai-wage-gradient-germany/requirements-follow-up.txt`, then run:

```sh
python scripts/ai-wage-gradient-germany/analyze-follow-up.py
node scripts/ai-wage-gradient-germany/generate-follow-up.mjs
```

The analyzer verifies the source digest, unique occupation codes, balanced quality sample, requirement counts, inflation transformations and full-rank model designs before writing any output. The generator embeds the compact chart data, installs this section, writes paired SVG fallbacks and exact HTML tables, and refreshes publication checksums. Run both commands again to confirm byte-for-byte reproducibility.

Machine-readable definitions, full-period estimates, annual tests, cutoff sensitivities and the source digest are in `../data/exposure-skill-follow-up.json`. No private repository identifiers or worker data are included.
