Model Architecture

Following modern software design, STINMOD+ strongly separates model, parameters and data, more so than previous attempts at modelling the tax and transfer system. An overview of the model architecture is presented below.


STINMOD+ offers a number of connectors, which can be used on Stata, R, Excel. The model itself uses Symberra as the backend simulation processor given its technical efficiencies in a private cloud computing environment and its concise syntax.

Policy parameterisation

Contrary to the traditional way of parameterising the policies, STINMOD+ uses "reference" tables to reflect the policies. It serves as a lookup table for policy parameters. An example of the current income tax implementation is presented in Table 1 in which p_ainc_taxable is the variable name for the individual annual taxable income in STINMOD+.

Table 1: Income Tax Parameterisation

p_ainc_taxable p_ainc_taxable value
<= 18200 0
> 18200 <= 37000 0.19 * (p_ainc_taxable - 18200)
> 37000 <= 87000 0.325 * (p_ainc_taxable - 37000) + 3572
> 87000 <= 180000 0.37 * (p_ainc_taxable - 87000) + 19822
> 180000 0.45 * (p_ainc_taxable - 180000) + 54232

The model contains many such reference tables which characterise the tax and transfer system in Australia. The core simulation script, therefore, becomes a processor that reads and evaluates the policy parameters in combination with the data. This standardises the way policy is presented, and the flexible structure of a lookup table has no limits on the number of rows or columns, making it easier to adapt to any changes in the system. End users of the model, therefore do not need any programming skills to make changes to the tax and benefit system. In some way, this is similar to the EUROMOD structure (Sutherland 2001; 2013), where policy parameters are presented separately from the core simulation logic. It lays the foundation for a standardised tax and transfer simulation tool where changes in policies can be more easily introduced.

Simulation and the built-in behavioural component of the model

While the model is designed to be a static tax model, an essential behavioural component is included to allow a more realistic simulation of the benefit take-up behaviour. We assume the household will always look for the benefits with the highest income. This is particularly relevant in Australia, where individuals may be eligible for multiple benefits with different payment rates and subsidies. Mathematically, this can be expressed as

$$ Pr(T_i=t|X) = f(\alpha_t y_t,\gamma_t,\epsilon_t) =\frac{\alpha_t y_t+\gamma_t+\epsilon_t}{\sum_{t\in{T}}(\alpha_t y_t+\gamma_t+\epsilon_t)}$$

where $\gamma_t$ represents the preference parameter of an individual for a particular benefit benefit. $\epsilon_t$ indicates the noise, When $\gamma_t =0$, $\epsilon_t=0$ for all $t\in{T}$, and $\alpha_t = 1$ if $y_t=max(y_t)$ and 0 otherwise, the model becomes deterministic, assuming the households are maximising their welfare income.


STINMOD+'s base dataset can be linked with ABS Survey of Income (SIH) and Housing and Houshold Labour Dynamics in Australia. The dataset used for the budget analysis is primarily based on SIH. However it has been adjusted to incorporate the changes in the demographic and income trend. Additionally, it also incorporates the published statistics from the Department of Social Services to better assess the Centrelink payment classifications.