generate_pit_itr() writes synthetic Income Tax Return (PIT_ITR)
product tables. The covered population contains people who lodged an
individual income tax return. Each record represents one person in one
financial year. The data does not include non-lodgers.
Usage
generate_pit_itr(
spine = NULL,
seed = 42L,
years = 2010:2024,
output_dir = NULL,
format = c("parquet", "csv"),
return_data = FALSE
)Arguments
- spine
A data frame from
generate_spine(), orNULL. If the value isNULL, the function reads the spine from the run directory.- seed
An integer random seed.
- years
A vector of financial-year end years.
- output_dir
The base output directory, or
NULL.- format
The output format. This function supports
"parquet"only.- return_data
This argument has no effect. The function always writes the data to disk.
Details
The function reads PIT_PS files where that source covers the requested
year. For other years covered by PIT_ITR, it uses the shared employment
panel and wage ledger without writing additional payment-summary products.
The Rust pipeline writes four product-table types per financial year.
Dataset and variable information
The ABS administrative income sources
website gives information about this dataset. Use dataset_info("PIT_ITR")
for dataset information. Use variable_info("PIT_ITR") for variables,
sources, value support, and topic tags.
Occupation codes are not ANZSCO
IDV_OCPTN_CD and the other occupation fields hold ATO salary and wage
occupation codes, not ANZSCO. Taxpayers choose a six-digit code from the
ATO's own
published list
at question 1 of the individual return, and that list does not map
one-to-one onto ANZSCO: of the 1,167 ATO codes for 2025-26, 951 are also
valid ANZSCO 2019 codes and 216 are not.
Each person carries an ANZSCO occupation on the shared spine. The ATO
products map it onto a real ATO code through a bundled crosswalk, resolving
up the code hierarchy when there is no exact counterpart. The person's
occupation therefore stays consistent across products while the code system
matches the source. Regenerate the crosswalk with
data-raw/update_ato_occupation_codes.R.