Rapu Ture - Exploring the Rules

Eligible for Accommodation Supplement

Social Security Boolean MONTH Person Formula Included used 0 times

Value type Boolean . Default value false Entity person

How is this calculated?

To calculate this variable, the following input is used


This is the formula used to calculate the value of social_security__eligible_for_accommodation_supplement


This formula is used for scenarios from the date 0001-01-01 onwards. More info on formulas

def formula(persons, period, parameters):
    # Based on MSD's web page
    # https://www.workandincome.govt.nz/products/a-z-benefits/accommodation-supplement.html
    age_threshold = parameters(
    # NOTE: using the age at the start of the month
    # Age changes on a DAY, but this calculation only has a granularity of MONTH
    age_requirement = persons('age', period.start) >= age_threshold

    Notwithstanding anything to the contrary in this Act or Part 6 of the Veterans’
    Support Act 2014 or the New Zealand Superannuation and Retirement Income Act 2001,
    the chief executive may, in the chief executive’s discretion, refuse to grant any
    benefit or may terminate or reduce any benefit already granted or may grant a
    benefit at a reduced rate in any case where the chief executive is satisfied
    (a) that the applicant, or the spouse or partner of the applicant or any person
    in respect of whom the benefit or any part of the benefit is or would be payable,
    is not ordinarily resident in New Zealand; """
    in_nz = persons(
        'social_security__is_ordinarily_resident_in_new_zealand', period)
    resident_or_citizen = persons('is_resident', period) + persons(
        'is_permanent_resident', period) + persons('is_nz_citizen', period)
    social_security__has_accomodation_costs = persons(
        'social_security__has_accomodation_costs', period)
    not_social_housing = (
        persons('eligible_for_social_housing', period) == 0)

    income = persons(
        'accommodation_supplement__below_income_threshold', period)
    cash = persons(
        'accommodation_supplement__below_cash_threshold', period)

    return age_requirement * resident_or_citizen * in_nz * social_security__has_accomodation_costs * not_social_housing * income * cash