crosswalk_multiclass -- Crosswalk tables for the Multilevel Socio-Economic Classes class schemes

Description

crosswalk_multiclass provides crosswalk tables translating
ISCO-88com and ISCO-08 occupational codes into the Multilevel
Socio-Economic Classes (MSEC) schemes. MSEC comprises of three social class
schemas that are hierarchically nested in the well known ESeC schema (Harrison & Rose 2006).
The most disaggregated micro-level scheme (Micro-SEC) differentiates 30 occupational classes
based on tasks respecting ESeC employment relations. These occupational classes are nested in
a meso-level scheme (Meso-SEC) differentiating 18 classes according to four work logics.
These are again nested within the macro-level scheme (Macro-SEC) constituting a variant
of 11 ESeC classes including disaggregating the upper and lower salariat into managerial
& professional fractions.

scheme classes description

micro 30 Micro-SEC

meso 18 Meso-SEC

macro 11 Macro-SEC - ESEC + separating professionals from managers in ESEC classes I and II

This package also contains a crosswalk for microclass, a 77 microclass scheme (ISCO-08 only, not MSEC).
The microclass scheme is an ISCO-08 implementation of Jonsson et al. (2009) ISCO-88 crosswalk.
The microclass scheme is not nested into ESEC or part of the MSEC. It is included here to facilitate replication of
Hertel, Barone and Smallenbroek (2025).

This package does not define any commands: all
recoding is carried out by crosswalk. Install it with

. ssc install crosswalk, replace
. ssc install moremata, replace

Tables

Tables using 4-digit ISCO codes (e.g. 2130 for "Life science professionals"):

mc.isco88com_to_micro() ISCO-88com to Micro-SEC

mc.isco88com_to_meso() ISCO-88com to Meso-SEC

mc.isco88com_to_macro() ISCO-88com to Macro-SEC

mc.isco08_to_micro() ISCO-08 to Micro-SEC

mc.isco08_to_meso() ISCO-08 to Meso-SEC

mc.isco08_to_macro() ISCO-08 to Macro-SEC

mc.isco08_to_microclass() ISCO-08 to microclass (no case)

Tables using 3-digit ISCO codes known as minor ISCO groups (e.g. 213 for "Life science professionals"):

mc.isco88_3_to_micro() and _to_meso(), _to_macro()

mc.isco08_3_to_micro() and _to_meso(), _to_macro()

Type the tables with the mc. prefix. The prefix is what makes
crosswalk pick up this package's class labels.

Micro-SEC, Meso-SEC and Macro-SEC are defined jointly over occupation
and employment relation, so those tables take a
case argument; see
Employment status below. The 77-category
microclass scheme is purely occupational and takes no case.

Case function:

case.mcempstat() case from sempl and supvis

Employment status

The case follows the same convention as the ESeC tables that ship with
crosswalk:

1 = employment status unknown
2 = employed, without supervisory status
3 = employed, with supervisory status
4 = self-employed, no employees
5 = self-employed, 1-9 employees
6 = self-employed, 10 or more employees

Build it with case.mcempstat() from a
self-employment indicator and a supervisory or employee-count variable.
Note that crosswalk's case.esec88()
treats missing values of self-employement and number of employees/superivsees differently.

Column 1 is missing . in every table. Multilevel Socio-Economic Classes has no simplified
variant for unknown employment status, so observations whose employment
status is unknown come back uncoded rather than silently picking up
another class.

Examples

From a self-employment indicator and a supervisory variable:

. crosswalk micro = mc.isco08_to_micro(isco08 case.mcempstat(selfemp nsuperv))

ISCO-88com to Macro-SEC:

. crosswalk macro = mc.isco88com_to_macro(isco88 case.mcempstat(selfemp nsuperv))

All three employment-relation schemes at once:

. foreach s in micro meso macro {

. crosswalk `s' = mc.isco08_to_`s'(isco08 case.mcempstat(selfemp nsuperv))

. }

3-digit minor groups:

. crosswalk meso = mc.isco08_3_to_meso(isco3 case.mcempstat(selfemp nsuperv))

The microclass scheme, which takes no case:

. crosswalk microclass = mc.isco08_to_microclass(isco08)

Where is ESeC?

There is no mc.origin_to_esec() table. crosswalk
already ships isco88_to_esec() and
isco08_to_esec() for the 9-class ESeC.

They take a different case function: isco88_to_esec() takes
case.esec88() (6 columns, with an "unknown" case,
the same numbering used here), while isco08_to_esec() takes
case.esec() (5 columns, no "unknown" case).
Note these treat missing values differently from case.mcempstat(),
which treats any missing data as unknown employment status.

Sources

Smallenbroek, Hertel and Barone (2022) introduced Macro-SEC. Hertel, Barone
and Smallenbroek (2025) assessed Macro-SEC alongside other class schemes.

Note that the Micro-SEC assessed in Hertel et al. (2025) is an earlier
prototype, whose development is documented at
https://osf.io/preprints/socarxiv/962q3_v1. It is not the
version of Micro-SEC shipped here. The paper documenting Micro-SEC and Meso-SEC
implemented in this package is under review.

The microclass scheme is a separate 77-category schema built from ISCO-08
occupational titles and descriptions, following the microclass approach of
Grusky, Weeden and Sorensen (2000) and Weeden and Grusky (2005) and
emulating the categories of Jonsson et al. (2009). It is documented in
Smallenbroek, Hertel and Barone (2026).

References

Smallenbroek, O., F. R. Hertel, C. Barone. 2022. Measuring Class
Hierarchies in Postindustrial Societies: A Criterion and Construct
Validation of EGP and ESEC Across 31 Countries. Sociological Methods &
Research 53(3):1412-52. doi:10.1177/00491241221134522.

Hertel, F. R., C. Barone, O. Smallenbroek. 2025. The Multiverse of Social
Class. A Large-Scale Assessment of Macro-Level, Meso-Level and Micro-Level
Approaches to Class Analysis. European Societies 1-65.
doi:10.1162/euso_a_00044.

Smallenbroek, O., F. R. Hertel, C. Barone. 2026. Adapting the Microclass
Schema for Cross-national Research. Retrieved
osf.io/preprints/socarxiv/xaqju_v1.

Jonsson, J. O., D. B. Grusky, M. Di Carlo, R. Pollak, M. C. Brinton. 2009.
Microclass Mobility: Social Reproduction in Four Countries. American
Journal of Sociology 114(4):977-1036. doi:10.1086/596566.

Weeden, K. A., D. B. Grusky. 2005. The Case for a New Class Map. American
Journal of Sociology 111(1):141-212. doi:10.1086/428815.

Grusky, D. B., K. A. Weeden, J. B. Sorensen. 2000. The Case for Realism in
Class Analysis. Political Power and Social Theory 14:291-305.

Harrison, E., D. Rose. 2006. The European Socio-economic Classification
(ESeC) User Guide. Institute for Social and Economic Research, University
of Essex.

Jann, B. 2025. crosswalk: Stata module to recode variables based on
crosswalk tables. Statistical Software Components S459534, Boston College
Department of Economics.

Author

Oscar Smallenbroek.

Source and issue tracker:
https://github.com/OscarSmallenbroek/crosswalk_multiclass.

Also see

crosswalk -- the command that executes these tables