# Skills and current occupation pay

489 Census occupations, each with 35 O*NET skill-importance ratings.
Files are prepared from already-downloaded ACS 2024 and O*NET 30.3 data.

- `current_skills.csv`: occupation_code, occupation, skill, importance.
  One row per occupation/skill pair; importance ranges from 1 to 5.
- `current_wages.csv`: occupation_code, pay, sample_n, workers.
  One row per occupation; pay is median annual wage/salary income in
  thousands of 2024 dollars. sample_n is the unweighted respondent count;
  workers is the sum of person survey weights.

ACS sample: employed civilian wage/salary employees aged 25–64, at least
35 usual weekly hours and 50 weeks worked, positive wage income and weight.
COW 1–5 excludes self-employed workers. WAGP is multiplied by ADJINC/1e6;
medians use PWGTP. Each retained occupation has at least 50 eligible records.
All skills use the same 489 occupations, covering 95.7% of eligible employees
by survey weight. ACS earnings refer to the preceding 12 months.

O*NET 30.3 (May 2026), Essential Skills and Transferable Skills tables:
retain Importance ratings and omit ratings flagged Recommend Suppress=Y.
Average rated specialties within six-digit SOC codes, then average SOC
scores matched to the ACS public-use SOC pattern for each occupation.
These aggregation means are unweighted because specialty employment counts
are unavailable. Keep occupations with all 35 scores. The skill ratings
describe occupational requirements, not individual workers' skill levels.

ACS public-use Census codes are different from Q1/Q2's SOC codes. These
two Q3 files join to each other using occupation_code. Do not join them
directly to ai_exposure.csv or bls_growth.csv.

Sources:

- https://www.census.gov/programs-surveys/acs/microdata/documentation/2024.html
- https://www.onetcenter.org/db_releases.html
- https://www.onetcenter.org/license_db.html (CC BY 4.0; fields aggregated and renamed)

Preparation, from f26:

```
uv run --project course_design/skill_returns/acs course_design/skill_returns/acs/prepare-current.py /path/to/onet.zip
Rscript course_design/skill_returns/acs/check-current.R
```

The preparation verifies the original O*NET archive's SHA256 against the
frozen course manifest. Selected original ratings are preserved in
`course_design/skill_returns/acs/source/onet_30_3_all_skills.csv`.

Results: Judgment and Decision Making r=.62598, Critical Thinking r=.62527,
Complex Problem Solving r=.62523. Treat these as effectively tied, not a
reliable ordering of the three. Their associations overlap because the
skills are related. Mathematics is 11th and Programming is 18th under this
particular descriptive measure.

For Critical Thinking, `lm(pay ~ importance)` gives intercept -106.4265,
slope 50.90497 (thousands of dollars per importance point), R-squared .39096.
Surgeons are an extreme high-pay observation. The regression describes
occupational pay associations; it does not estimate the return to learning
a skill or establish which skill is most valuable for a particular student.
It also does not establish growth in skill value over time.

The Q4 sensitivity exercise excludes only the unique highest-pay occupation,
Surgeons. The remaining 488 occupations give slope 47.44670 and R-squared
.486379, using separate objects so the original fit stays available.

The two-predictor exercise retains all 489 occupations. Critical Thinking and
Complex Problem Solving importance correlate at .898244. After reshaping the
two skill scores into columns, `lm(pay ~ thinking + problem_solving)` gives
intercept -99.42942, slopes 26.83205 and 24.24053, and R-squared .411891.
The simple problem-solving fit has slope 46.04048 and R-squared .390910.
Each skill's single-predictor fit uses much of the variation shared by both.
