Module output
SQL::[IDI_Community].[cm_read_income_t1_stu_allowance].income_t1_stu_allowance_YYYYMM
SAS: libname cmti ODBC dsn=idi_community_srvprd schema=cm_read_income_t1_stu_allowance; proc print data = cmti.income_t1_stu_allowance_YYYYMM
How to access a code module in the Data Lab : Read here
Purpose of Student allowance module
The purpose of this module is calculate the amount and when people received income from student allowances (STU).
Key concepts
Student allowance income
Student allowance is a weekly benefit to cover living expenses for low-income people undertaking tertiary study in New Zealand. To be eligible a person must be:
- Aged between 18 to 65
- Studying full time
- Have residency in New Zealand
- Studying at an approved education provider
- Need to meet passing requirements (more than half of the pervious EFTS)
There are some exceptions for 16 to 17 olds and people studying part time. People cannot receive Student Allowance when:
- On a study break for more than three weeks
- On a main benefit, NZ Super or Veteran’s Pension (income support payments)
- In prison
- Over the age of 65.
The amount of Student Allowance is based on parental income or family income. For people under 24 and have no children then eligibility is based on parent’s income. For people with children or over 24, then eligibility is based on personal and partner income.
People can receive Student Allowance for a limited period, depending on age and whether the study is at school or tertiary level.
Student allowance payments are made by Studylink, a service of the Ministry of Social Development.
Accommodation benefit
Included in the Student Allowance is the Accommodation benefit to help with accommodation costs. People can receive the Accommodation benefit when:
- don’t live with parents or a place owned by parent’s with subsidised rent (except if the person has a child)
- living with a parent in a hostel or boarding house
- sole parents who pay rent or home ownership costs (need to have cash assets below a set threshold)
For more information on the current Student Allowance settings see www.studylink.govt.nz
Total income spell
A total income spell is the minimum period per income type. While Student Allowances are paid weekly, the data in this code module is available monthly.
Source frequency
Source frequency is the minimum payment period that each income type is stored in the data. Source frequency for Student Allowances is monthly.
Gross income amount
Gross income amount is the taxable income before tax that a person receives.
Observed tax
Tax recorded as paid to IRD in the IDI. Tax on PPL is available in the IR EMS table as PAYE. This is the amount of tax that has been has been deducted from source (eg PAYE and tax filing).
Note: observed tax deduction is not the same as actual tax liability since this can only be calculated once all income sources have been identified over a tax period. This information has not been included in the initial version of the module.
Granularity
The modules are setup to be event format: One row per event, events have a person, start and end dates, and descriptive information. The variables below will uniquely identify each event in the above table:
Entity id: snz uid
Period: start end, end date
Event information: income source, taxable income indicator
Data sources:
Employer monthly schedule: ir_clean.ird_ems
Employer monthly schedule (EMS) table contains employee level data from the tax returns (also called Employment Information on IR website) filed by employers. The EMS form is also used by government agencies to report government transfer payments to individuals that are taxed at source. They include income-tested benefits, New Zealand superannuation, student allowances, paid parental leave, and accident compensation payments. EMS table is built using EIE data provided by IR.
EMS is available in the LBD/IDI. This is a monthly tax return filed by all businesses with paid employees, which summarises the monthly wage and salary payments made to each of their employees, and the ‘pay-as-you-earn’ (PAYE) income tax deductions made. EMS is a mandatory reporting requirement for all employing firms.
Since April 2019, Inland Revenue has shifted from monthly filings under the EMS to compulsory payday filing under the Employment Information - Employee (EI-E) system. This follows a transition period since April 2018 in which firms could select whether to file monthly or through the payday filing system. For consistency, Stats NZ has made a processed version of the EI-E data available, allocating payday information to calendar months and including these records as part of the EMS tables.
Note:
- Employers are able to file late returns and/or amend EMS returns relating to prior periods.
- The return period associated with an EMS is not always the same as the month in which a person was employed because it records the month in which they were paid.
- Regular earnings of some self-employed persons can be reported in the EMS as wages or salaries. The earnings of independent contractors in the EMS are known as withholding or schedular payments. (These are excluded from this module)
- Each record in the EMS corresponds to a job (an employer-employee relationship) and includes the employee’s tax code and employment start or end dates if they are in the month in which they were paid.
- No ‘cleaning’ is done before the data leaves IR in the EIE file. The data is as it is submitted by employers and/or drawn directly from IRs admin system. If errors in the information provided by employers is identified (either by IR or the employer), then the underlying record will be updated, The next file will show this change. All data points in the files supplied by IR are either drawn directly from a return/other ‘file’ a customer has submitted, or it is system generated. From the EIE file for example, information about the type of return, processing date, return version, customer type/subtype etc is system generated. Information about pay periods, employment periods, earnings, deductions, and contributions come directly from the return.
- All data points in the files supplied by IR are either drawn directly from a return/other ‘file’ a customer has submitted, or it is system generated. From the EIE file for example, information about the type of return, processing date, return version, customer type/subtype etc is system generated. Information about pay periods, employment periods, earnings, deductions, and contributions come directly from the return.
Practical notes
Period
The Student Allowance information is from 1999 onwards.
Negative amounts
No exclusions made from EMS for negative amounts.
Staged approach to include tax within the total income module
Stage 1 of module creation will only include gross income amounts. Stage 2 (pending) will include observed tax deducted at source since they are available in EMS and MSD tables. This can be used to calculate the tax at a tax year level which includes tax deducted at source and from tax filings. Stage 3 (pending) aims to derive tax at a monthly level. This is complex and will require support from SME to apply rules to derive tax. This can be used to calculate tax for any time period.
Sources of validation
The module output matches well with the validation dataset → student-allowance-ytd-12-outcome.xls
References
- Document : experimental-income-estimates-from-linked-admin-data-methods-and-results-revised.pdf Experimental estimates of income from linked administrative data | Stats NZ
- Benefits, New Zealand superannuation and Student Allowance Benefits, New Zealand superannuation and Student Allowance
- Student Allowance - StudyLink Student Allowance - StudyLink
Key Contacts
Role | Organisation | Person |
---|---|---|
Dev lead | MBIE | Eric Krassoi Peach |
Module Coder | Nicholson Consulting | Linda Martis |
Code Supply | Stats NZ MSD |
Ivan Welsh Marc de Boer |
Peer review (code) | MSD | Marc de Boer |
Peer review (documentation) | MSD IRD IRD |
Marc de Boer Joanne Butterfield Scott Anderson |
Module Steward | MSD | Marc de Boer |
SME data | MSD | Dave Finegan |
Module business rules
Defining spell start and end dates
Start and end dates are based on EMS dates. The return period column in EMS is considered to be the end date and the start of that month will be the start date.
Person identifier snz_uid
A global unique identifier created by Statistics NZ. There is a snz_uid for each distinct identity in the IDI. This identifier is changed and reassigned each refresh.
Minimum income threshold
Currently no minimum threshold applied.
Interoperability with other modules
This module is in the business landscape so could be that it is most closely associated with business profile modules and employment spells. It is also in the socioeconomic landscape where income is a determinant of positive social outcomes, so associated with social housing, education modules, health modules, driving modules, employment assistance modules etc.
Taxable income indicator
Taxable income indicator to be hard coded in modules. Within student allowance income module, all income is taxable.
Code logic
The code is based on the rules used for APC and derived data tables in the IDI.
- We use ir_ems table to obtain student allowance. We do this by extracting all monthly data from ir_ems that have ir_ems_income_source_code ‘SLU’, which stands for student allowance.
- Aggregate the ir_ems data by year, snz_uid and income source code and sum up the monthly amounts. These monthly amounts will be the student allowance.
Parameters
The following parameters should be supplied to this module to run it in the database:
- {targetdb}: The SQL database on which the spell datasets are to be created.
- {idicleanversion}: The IDI Clean version that the spell datasets need to be based on.
- {targetschema}: The project schema under the target database into which the spell datasets are to be created.
- {projprefix}: A (short) prefix that enables you to identify the spell dataset easily in the schema, and prevent overwriting any existing datasets that have the same name.
Dependencies:
[IDI_Clean_YYYYMM].[ir_clean].[ird_ems]
Outputs
{targetdb}.{targetschema}.{projprefix}_stu_allowance_{refresh}
Variable Descriptions
Aspect | Variables | Description |
---|---|---|
Entity | snz_uid | Current refresh snz_uid |
Period | period_start_date | Payment start date |
period_end_date | Payment end date | |
Event | source_frequency | Frequency of income recorded in source data Note that student allowance is recorded in EMS as monthly income |
Information | income_source | Type of income being derived in this module Note that STU-EMS means student allowance from EMS table |
taxable_income_indicator | Indicator for whether income is taxable Note that: 1:income is taxable 0:income is not taxable Student allowance is taxable |
|
gross_income | Income before tax |
Module Version & Change History
Date | Version | Comments |
---|---|---|
2023-07 | Original code sourced from APC code created by Stats NZ (Ivan Welsh) in the IDI | |
2024-06 | Initial | streamlining and preparation for code module by Linda Martis, Nicholson Consulting |
Code
:setvar targetdb "{targetdb}"
:setvar targetschema "{targetschema}"
:setvar projprefix "{projprefix}"
:setvar idicleanversion "{idicleanversion}"
/* Assign the target database to which all the components need to be created in. */
use $(targetdb);
/* Drop the final output table if it exists */
IF OBJECT_ID('$(targetschema).$(projprefix)_stu_allowance','V') IS NOT NULL
DROP VIEW $(targetschema).$(projprefix)_stu_allowance;
GO
CREATE VIEW $(targetschema).$(projprefix)_stu_allowance AS
SELECT [snz_uid]
,DATEFROMPARTS(YEAR(ir_ems_return_period_date), MONTH(ir_ems_return_period_date), 01) AS [period_start_date]
,EOMONTH(DATEFROMPARTS(YEAR(ir_ems_return_period_date), MONTH(ir_ems_return_period_date), 01)) AS [period_end_date]
,'monthly' AS source_frequency
,'STU-EMS' AS income_source
,1 AS taxable_income_indicator
,SUM(ir_ems_gross_earnings_amt) AS gross_income
FROM $(idicleanversion).ir_clean.ird_ems
WHERE YEAR(ir_ems_return_period_date) BETWEEN 2000 - 1 AND YEAR(GETDATE())
AND snz_uid > 0
AND ir_ems_income_source_code = 'STU'
GROUP BY snz_uid, DATEFROMPARTS(YEAR(ir_ems_return_period_date), MONTH(ir_ems_return_period_date), 01);
/