Tax-Benefit Microsimulation for Finland
Configure simulations, compare policy reforms, and analyze distributional impacts.
Ready

SISU Studio Guide

Quick Start

Run a Baseline

  • Go to the Simulation tab, select a year and input dataset, and click Run Simulation.
  • The Latest Results panel shows key indicators immediately.

Set Up and Assess Reforms

  • In the Parameters tab, load a module's policy parameters, edit values, and save as a preset.
  • Alternatively, use the saved illustrative reform presets or work off of another year's rules.
  • In the Simulation tab, select your preset(s) and run simulation(s). Compare in Analysis.

Evaluate Household Impacts

  • Use the Household tab to see how the tax-benefit system applies to a specific household you define.
  • Select a reform preset to see how the household fares under it, or navigate to the Multiyear tab to track how the household's position evolves across years.

Simulation

Run Configuration

The Simulation tab controls are:

  • Year — Legislation year. Determines which parameter values and tax schedules apply.
  • Parameter Timing — Controls which parameter values apply. "Annual (12-month average)" computes the mean across all months (matches the original SAS-based SISU). "Annual (year-end)" uses December values. Monthly options (January, June, December) use month-specific legislation.
  • Input Dataset — Select which synthetic dataset to run on. Pre-generated locked datasets for 2021–2025 are included.
  • Sample Size — Controls what fraction of the dataset to simulate. Smaller samples run faster. Weights are adjusted to maintain representativeness, so aggregate statistics remain valid even at 5% or 10%.
  • Unemployment Model — Choose between Annual (TTURVA), Monthly (TTURVA_KK), or Snapshot. Annual projects a full year (260 benefit days) and divides by 12. Monthly models day-level accrual. Snapshot computes the monthly rate at the person’s current unemployment duration, matching SAS behavior. Snapshot is not relevant for aggregate simulations (it changes nothing for register data). For 2026, monthly parameter timing is recommended with TTURVA_KK to accurately model the May yleistuki transition month-by-month. With annual timing, both TTURVA and TTURVA_KK use prorating (4/12 + 8/12). See the Multiyear tab guide for a detailed explanation of the three modes with worked examples.
  • Dividend Tax (OSINKO) — Off by default (SAS model default). When turned on, the simulation also runs the OSINKO module to calculate dividend income taxation.
  • Simulation Mode — Controls whether the simulation uses calibrated extensions or strict SAS-equivalent logic:
    • SAS Parity (strict law-only) — Every eligible person receives 100% of their calculated benefit, matching the behavior of the original SAS-based SISU model exactly. Pure legislative-rules-only calculations with no empirical adjustments.
    • Extended (calibrated) — default. Applies benefit take-up modeling on top of the standard law-based calculations. Social assistance (TOIMTUKI) and pensioner housing allowance (ELASUMTUKI) are reduced by empirically calibrated non-take-up rates, reflecting the fact that not all eligible persons claim these benefits. This produces more realistic aggregate totals.
  • Parameter Preset — Use "Baseline (no overrides)" or select a named preset created in the Parameters tab.

Every simulation runs modules in the correct dependency order with policy rules from a given year.

Parameter Timing Options

Choose when to sample parameter values for your simulation:

  • Annual (12-month average)Default, matches the original SAS-based SISU. Computes arithmetic mean of parameters across all 12 months. This replicates the behavior of SAS *VS (VuosiSumma) macros used in the original SISU model.
  • Annual (year-end) — Uses December/latest available parameters. Represents the final legislative state for the year.
  • January — Start-of-year parameters. Most Finnish legislation changes take effect on January 1st.
  • June — Mid-year checkpoint. Some programs (e.g., student aid, indexed benefits) update in summer.
  • December — Year-end parameters explicitly. Same as "Annual (year-end)" for most modules.

Parameter resolution: Each benefit module has different months available in its parameter tables (e.g., housing allowance: Jan/Apr/Sep; student aid: Jan/May/Jul/Aug/Nov; national pension: all 12 months). When you select a month, the system uses backward-looking resolution — it finds the most recent parameter values at or before your requested date. For example, requesting June when only January and August exist returns January's values.

Note: Modules without monthly parameter variations (VERO, VVERO, KIVERO, TAMAKSU) return the same values regardless of timing selection.

Presets and Parameter Timing Interaction

Important: Parameter presets store only your edits (deltas from baseline), not full snapshots of all parameter values.

When you run a simulation with a preset:

  1. Base parameters are loaded using the simulation's Year/Timing settings
  2. Your preset's edits are applied on top of those base values

Example: You create a preset in January 2024 editing only child benefits (LLISA), not touching VAT (VVERO). The preset stores: {LLISA: {first_child: 150}} — VVERO is not included.

  • Running with Annual (12-month average) → VAT uses average of all 12 months (8 months @ 24% + 4 months @ 25.5% = 24.5%)
  • Running with Annual (year-end) → VAT uses year-end value (25.5% for 2024)
  • Running with January (monthly params) → VAT base = 24.0%

Tip: If you want to lock in specific parameter values (e.g., January 2024 VAT at 24%), explicitly include those parameters in your preset by editing them in the Parameters tab.

Latest Results

After running a simulation, the Latest Results panel shows key summary metrics in a single column: Inequality, Poverty, Disposable Income, and Fiscal Totals. All results are annual amounts. Income statistics use equivalized disposable income across all individuals. The Disposable Income Concept toggles (Church Tax, Daycare Fees, Include VAT) recalculate all indicators using the adjusted income definition for any selected run.

Gini Coefficient

Market Gini (before taxes/benefits), Disposable Gini (after redistribution), and the redistribution effect (percentage point reduction). Measured on equivalized income; displayed as 0–100.

Poverty Rate

Market poverty rate, Disposable poverty rate, and redistribution effect. Defined as percentage below 60% of median equivalized disposable income (EU at-risk-of-poverty standard).

Disposable Income

Mean and median equivalized disposable income (market income + benefits − taxes − fees, adjusted for household size using the OECD modified scale).

Fiscal Totals

Total taxes collected and total benefits paid, weighted to represent the full Finnish population.

Note on poverty and income concepts: When any toggle is active, the poverty line (60% of median equivalized income) is recalculated from the adjusted income concept — the same definition is used for both the poverty threshold and the income being measured. This can produce counterintuitive results: toggling on Church Tax, Daycare Fees, or VAT can reduce the reported poverty rate, because these costs fall disproportionately on middle- and higher-income households. Subtracting them lowers the median — and hence the poverty line — more than it lowers incomes near the bottom of the distribution. This is a standard property of relative poverty measures and is consistent across the Simulation, Analysis, and Household tabs.

Simulations

The Simulations panel (right column) shows the simulation queue and history. Each run appears immediately when launched — first as pending (queued), then running (orange animated progress bar), and finally done (teal bar) or failed (red bar). Completed entries are clickable — click to load results into the Latest Results panel. Using Run All Parameter Presets queues all presets at once; they run sequentially and each transitions through the states in turn. The income concept toggles persist across run selections, so you can compare adjusted indicators across runs.

Saved Configurations

Logged-in users can save and load simulation run configurations (year, parameter timing, dataset, sample fraction, TTURVA mode, osinko toggle, baseline mode, parameter preset). The saved config dropdown appears above the Run button — select a saved config to restore its settings, or choose “Custom Configuration” to reset to defaults. “Save Over” overwrites an existing config; “Del” deletes with an inline confirmation prompt. Configs are stored server-side and persist across sessions and devices. The app works fully without login — saved configs are an optional convenience.

Import from File

The “Import from File” button in the Simulations panel accepts .parquet, .csv, or .zip files. Imported data appears as a simulation run in the queue, available for analysis and export just like any other run. ZIP files containing multiple runs import all of them. This lets you re-load previously exported person-level datasets for further analysis without re-running the simulation.

Parameters

Module & Timing

Use the Module, Year, and Parameter Timing selectors to choose which legislation parameters to view. The Parameter Editor auto-loads when any selector changes. Each module contains the parameter values that govern that part of the tax-benefit calculation.

Parameter Editor

The editor displays all parameters for the loaded module. Edit any value to create a reform scenario — changed values are highlighted in orange. Parameters are organized in collapsible groups. Click "Restore Baseline Values for this Module" to reset edits in the current module, or "Restore All" to clear all changes across all modules.

Note: OSINKO (Dividend Tax) and VERO (Income Tax) share the same underlying parameter file. Three parameters — capital income tax rate, higher rate, and threshold — appear in both modules. Editing them in either module automatically applies to both.

Cross-Year Parameter Import

The Import from controls in the Parameter Editor let you load an entire year's legislation as overrides on top of the currently selected year. This enables cross-year policy comparison — for example, applying 2021 rules to a 2026 population to measure the cumulative effect of legislative changes.

  1. Select the target year in Module & Timing (e.g. 2026) — this is the baseline you're comparing against
  2. In Import from, choose a source year and timing (e.g. 2021 / Annual avg) and click Import
  3. All parameters that differ between the two years are loaded as overrides (shown in orange). A preset name and description are auto-filled.
  4. Save as a preset, then run simulations with and without it to compare the two policy regimes

Note: KUNTAVERO (municipal tax rates) is excluded from cross-year import since municipality-level rates are managed separately.

Illustrative Reform Presets

Five pre-built policy reform scenarios are included as saved presets by default — they appear under Saved Presets and in all preset dropdowns (Simulation tab, Household tab) without any setup. Each models a hypothetical reform with parameter changes large enough to produce clearly visible distributional impacts:

  1. Yleistuki + Work Allowance — Major unemployment reform: large earnings disregard (500 €/month) and halved means-test taper, plus doubled social assistance earned income exemption. Improves work incentives for benefit recipients.
  2. Make Work Pay — Earned income tax credit +50%, basic deduction +25%, financed by higher top brackets. Shifts burden from low/mid earners to high earners.
  3. Housing Allowance Reform — Deductible coefficient halved, rent caps raised +15% across all municipality groups, coverage rate increased. Biggest impact for renters in Helsinki area.
  4. Family Affordability Package — Child benefits +30% (1st–2nd child) / +15% (3rd+), single parent & under-3 supplements +50%, daycare fees halved. Financed by higher top tax brackets.
  5. Raise the Pension Floor — Guarantee pension +25%, national pension +15%, stronger pension income deduction. Targets lowest-income pensioners.

Quick start: Go to the Simulation tab, select any reform from the Parameter Preset dropdown, and click Run Simulation. Compare against baseline using the Analysis tab’s Compare Runs mode. In the Household tab, select a reform in the Reform Preset dropdown to see baseline vs reform budget constraints side by side.

Customizing: To modify a reform, click Edit next to the preset name in Saved Presets, change parameter values in the editor, then Save Preset. To re-import the original version, use Import from → Illustrative Reforms → select the reform → Import, then Save As New.

Note: Reform parameter values are calibrated against 2025 baseline legislation, but they work as overrides for any legislation year — the override values are absolute, not relative. For example, importing the pension reform into 2023 still sets TakuuEl to 1232.88 €/month regardless of the 2023 baseline value.

Parameter Presets

Presets save your parameter modifications for reuse across simulation runs. The workflow:

  1. Go to Parameters tab, select a module (e.g., VERO for income tax), choose year — parameters auto-load
  2. Edit the values you want to change for your reform (changed values highlight in orange)
  3. Name and save as a preset (e.g., "Higher basic deduction") - you can load multiple modules and add changes to the same preset
  4. In Simulation tab, select your preset from the dropdown
  5. Run the simulation - your preset's parameter overrides will be applied
  6. Compare with baseline using the Analysis tab

You can edit or delete saved presets using the buttons next to each preset name. When editing, "Save Preset" overwrites the original, "Save As New" creates a copy under a new name (enter the new name in the name field), and "Discard Changes" reverts without saving.

Cloud saving: When logged in, saved presets are automatically synced to the server (indicated by a ☁️ icon). Cloud-saved presets persist across sessions and devices. Without login, presets are stored in browser memory only and are lost on page refresh.

Analysis

Analysis Modes

The Analysis tab operates in two modes:

  • Single Run — Load one simulation run to view its full distributional results.
  • Compare Runs — Select a baseline and reform run to see side-by-side differences.

Both modes offer three income concept toggles that adjust what counts as disposable income: Church Tax, Daycare Fees, and VAT. By default, church tax and daycare fees are excluded from disposable income (and from the tax total); checking them includes them as deductions. The VAT toggle (off by default) switches all metrics to extended disposable income (disposable minus estimated VAT burden). YLE tax, housing allowance, and social assistance are always included in disposable income, matching the SAS KÄYTRAHATULO_SIMUL definition.

Analysis Cards

Both modes show most of the same cards. Single Run shows one run's results; Compare Runs overlays baseline vs reform and adds comparison-specific panels. Reform series are typically orange and dashed; baseline colors vary by chart (blue for Lorenz/PTR, violet for EMTR density). Decile-based comparisons use fixed baseline thresholds so the same people are in each decile across scenarios.

Card Single Run Compare Runs
Fiscal
Taxes Tax revenue by module with HH/IND counts & averages Baseline totals with reform deltas
Benefits Benefit spending by module with HH/IND counts & averages Baseline totals with reform deltas
Taxes by Ventile Stacked bar: mean taxes per person by income ventile, all non-zero modules + % of income line Same
Benefits by Ventile Stacked bar: mean benefits per person by income ventile, largest types + “Other” aggregation + % of income line Same
Tax Change by Ventile Change in mean taxes per person by ventile, baseline vs reform
Benefit Change by Ventile Change in mean benefits per person by ventile, baseline vs reform
Decile Summary Table: population, income, taxes, benefits, effective tax rate, and poverty by equivalized income decile Same, with baseline vs reform
Winners & Losers % gaining/losing by >3%, 0.5–3%, or unchanged per ventile
Inequality & Distribution
Distributional Indicators Gini (market/disposable/extended), poverty rates, mean/median, S80/S20, P90/P10, Reynolds-Smolensky, Kakwani Same, with baseline vs reform differences
Income Distribution Histogram of equivalized disposable income Overlaid histograms
Age Distribution Population count by 5-year age group with income share overlay (% of equivalized disposable income held by each group, right-hand axis) Population bars only (no income share line)
Income & Tax Concentration Share of individuals, gross income, and taxes by income bracket (working-age earners) Same
Lorenz Curve Cumulative market & disposable income share vs cumulative population Overlaid baseline vs reform curves
Redistribution Profile Net transfer (benefits − taxes) in EUR per person by market-income ventile. Change in net transfer (reform − baseline) in EUR bars + % of baseline disposable income line
EMTR & PTR
EMTR Components Mean EMTR decomposed into tax increase and benefit withdrawal by annual wage income bracket (18–64). Each person’s wage is perturbed by €100/month one at a time (other household members held fixed); EMTR = 1 − ΔDisposable/ΔGross. Baseline (solid) vs Reform (dashed)
EMTR Spread by Income Distribution of individual EMTR (P5/mean/median/P95) within each annual wage income bracket (18–64, per-person €100/month perturbation, others held fixed). Shows how much EMTR varies across individuals at each income level. P5/median/P95 only (mean omitted for clarity). Baseline (solid) vs Reform (dashed).
EMTR Distribution Kernel density of individual EMTR (18–64) with median line Overlaid densities with median lines
Participation Tax Rate (PTR) Distribution Kernel density of entry PTR for unemployed benefit recipients (Heckman selection-corrected wage predictions) with median line Overlaid densities with median lines
PTR by Predicted Wage Quintile & Benefit Group Median entry PTR by Heckman-predicted wage quintile (full working-age distribution) & benefit group Same
Average Income Tax Rate by Gross Earnings Scatter: Verohallinto-style weighted average income tax rate (tuloveroprosentti) by €500 earnings bin (wage earners ≥€500). Smoothed 95% spread (P2.5–P97.5) shown as shaded band. Numerator = income taxes only (state, municipal, church, Yle, health insurance, capital income tax); excludes employee SIC, property tax, VAT, fees. Income concept toggles do not affect this chart. Baseline (gray) vs Reform (blue). Smoothed 95% spread (P2.5–P97.5) shown as shaded bands (gray = baseline, blue = reform).
Marginal Tax Rate for Wage Earners Statutory MTR for a standard under-65 wage earner (age 40, church member, no other income) in €500 bins. For each earnings level y, MTR = (Taxes(y+500) − Taxes(y)) / 500 × 100. Taxes include: state progressive tax, municipal tax, church tax, Yle tax, health insurance, employee pension contribution (~7.15%), employee unemployment contribution (~0.79%). Excludes employer contributions, VAT, property tax, fees. Lines show the selected year and up to two prior years, computed analytically from VERO parameter tables. Note: the Verohallinto tax card rate (ennakonpidätysprosentti) does not include employee pension (~7.15%) and unemployment (~0.79%) contributions, so the effective marginal rate is higher than the tax card rate. A spike near ~16,500 EUR is the sickness daily allowance notch (sv_pr_maksu_raja) — below that threshold the contribution is zero; above it, ~1% is levied on the entire wage retroactively, creating a lump-sum hit that pushes the effective MTR well above 70%. The y-axis is capped at 70% for readability; hover for actual values. Same + reform line (dashed) if VERO parameter overrides active
Demographics & Poverty
Poverty & Median Income At-risk-of-poverty rates and median income by demographics, labor status, education Same, with change column

Methodology

SISU follows EU-SILC (European Union Statistics on Income and Living Conditions) methodology for international comparability.

Income Concepts

Concept Finnish Formula
Market Income Markkinatulot Wages + Employment Pensions + Capital + Self-Employment
Disposable Income Käytettävissä olevat rahatulot Market Income + Benefits − Direct Taxes − Fees
Extended Disposable Laajennettu käytettävissä oleva tulo Disposable - VAT

Note: Employment-related pensions (työeläke) are market income. Kela pensions (national pension, guarantee pension) are modelled by the KANSEL module and counted as benefits/transfers.

Equivalization — To compare welfare across households of different sizes, income is adjusted using the OECD modified scale:

Household Member Weight
First adult 1.0
Additional adults (14+) 0.5
Children (<14) 0.3

Examples:

  • Single adult: Scale = 1.0
  • Two adults: Scale = 1.5
  • Two adults + 1 child (<14): Scale = 1.8
  • Two adults + 2 children: Scale = 2.1
Why equivalize?

Raw household income is misleading for welfare comparisons. A single person with €2,000/month is better off than a family of four with €2,000/month. Equivalization accounts for economies of scale (shared housing, utilities) while recognizing that children cost less than adults.

Household-level assignment: For distributional analysis (Gini, poverty, deciles), all household members' disposable incomes are first summed into a household total, then divided by the equivalence scale factor. This single equivalized value is assigned to every person in the household — for example, a two-adult household with €60,000 total disposable income has an equivalized income of €40,000 (÷1.5) for each member. The unit of analysis is the person, not the household: a four-person household counts as four observations at the same equivalized income. This matches the original SAS-based SISU model and EU-SILC/Eurostat methodology.

Fixed deciles in comparisons: In reform comparisons, deciles are fixed based on baseline income. People stay in their original decile, allowing you to see how a reform affects each income group — not how it changes their ranking. Deciles use equivalized household income (modoecd) with person weights.

Poverty threshold: Set at 60% of median equivalized disposable income, following the EU-SILC "at-risk-of-poverty" standard.

Gini coefficient: Measures inequality on a 0–1 scale using equivalized disposable income. Finland’s Gini is typically ~0.27. The UI displays this as a percentage (0–100) for readability.

Reynolds-Smolensky index: Measures the redistributive effect of the tax-benefit system. Equals market Gini minus disposable Gini. Higher values indicate more redistribution.

Kakwani index: Measures tax progressivity independent of the tax level. Compares the Lorenz curve of pre-tax income with the concentration curve of taxes. Positive values indicate progressive taxation (higher incomes pay a larger share of taxes).

Deciles and ventiles: Income groups are created by sorting persons by equivalized income and dividing into equal-population segments. Deciles = 10 groups (D1 = lowest 10%); ventiles = 20 groups (V1 = lowest 5%). Summary tables use deciles; stacked bar charts use ventiles for higher resolution.

Heckman Two-Step Selection Model (PTR Wage Imputation)

To compute the Participation Tax Rate for non-employed persons, we must predict what wage they would earn if they entered work. A naive OLS regression trained only on employed workers overpredicts wages because of sample selection bias: people who choose to work tend to have unobservable traits (motivation, health, connections) that also raise their wages. The Heckman correction addresses this.

Step 1 — Probit selection equation: We estimate who is employed using a probit model on all working-age persons (18–64). The selection variables include age, age², sex, education, region (maakunta group), plus exclusion restrictions: number of children, children under 3, spouse income, capital income indicator, and student status. These affect participation but not the wage offer.

Step 2 — OLS wage equation with IMR: From the probit, we compute the Inverse Mills Ratio (λ = φ(Zγ)/Φ(Zγ)) and add it as an extra regressor in the log-wage OLS. The wage equation uses: intercept, age, age², sex, education dummies, region group, and the IMR. The coefficient on the IMR (δ) captures the selection bias.

Diagnostic: If the IMR coefficient (λ) is statistically insignificant (p > 0.10), selection bias is negligible and the model automatically falls back to standard OLS. The subtitle of each PTR chart dynamically shows which method was used and the lambda coefficient value.

Expected effect: The Heckman correction typically lowers predicted wages for non-employed persons by 3–10%, producing lower and more realistic PTR estimates compared to uncorrected OLS.

PNG Export

Every chart and table card has a download button (top-right corner) to save as a high-resolution PNG file. The exported PNG includes the chart title, data provenance, simulation settings, and SISU Studio attribution. Fiscal summary cards offer both compact and detailed (with sub-components) export options.

Household

Purpose

The Household tab is a single-household calculator. It runs the same full SISU simulation pipeline (modules in dependency order, with the Unemployment Model controlling which TTURVA variant is included) but on a one-household dataset constructed from the form inputs, rather than across an entire synthetic population. This lets you see exactly how the tax-benefit system applies to a specific household you define.

Household Members

Define up to 4 adults and 6 children. Each adult has:

  • Age — 18–100
  • Sex — Male or Female (affects some benefit calculations)
  • Status — Employed (Private / Municipal / State), Self-employed, Unemployed, Retired, or Student. The employer sector affects employer-side pension contributions (TAMAKSU): Private = TyEL, Municipal = KuEL, State = VaEL. These are employer costs and do not directly affect the household’s disposable income in the Household tab (employee-side social contributions are the same regardless of sector). The sector distinction matters for population-level fiscal analysis. When set to Self-employed, the earnings field label changes to “SE Income €/mo” and a Capital split % field appears (default 30%). Self-employment income is split into earned and capital portions using this percentage — the capital share is taxed as capital income (flat 30%/34% rate) while the earned share is taxed as earned income (progressive scale). YEL pension contributions apply instead of TyEL/KuEL/VaEL. When set to Unemployed, additional fields appear:
    • Benefit Type: Unemployment benefit options (adapt based on simulation year):
      • Earnings-related (ansiosidonnainen) — Requires unemployment fund membership and sufficient work history (26 weeks in 2021–2023; 52 weeks from Sep 2024). Benefit is based on prior wage with a two-tier formula (45%/20% split at income threshold). From 2024, subject to graduated reduction: full rate for the first 40 days (PorrasPv1), 80% for the next 130 days, 75% thereafter. For persons with carry-over benefit days from the previous year, the tier boundaries shift forward accordingly.
      • Basic allowance (peruspäiväraha, years ≤ 2025) — Flat-rate benefit for persons with work history but no unemployment fund membership.
      • Labor market support (työmarkkinatuki, years ≤ 2025) — Means-tested benefit for first-time job seekers or those who have exhausted other benefits.
      • Yleistuki (from May 2026; default for years 2027+) — Universal support that replaces both peruspäiväraha and työmarkkinatuki. No child supplement; single-person means-testing only. For 2026 the simulation blends 4/12 old + 8/12 Yleistuki; from 2027 onwards Yleistuki fully replaces the old benefits.
    • Months Unemployed (1–24) — How long the person has been unemployed. This drives the graduated reduction tier (from 2024: full rate for 40 days, then 80%, then 75%). The displayed monthly benefit reflects the current monthly rate at that duration — not a partial-year average. Internally, benefits are annualized over a full year (the person is unemployed) while the unemployment duration shifts graduated reduction boundaries via carry-over days.
    • Prior Wage (Earnings-related/Basic only) — Monthly gross wage before unemployment. Determines the earnings-related benefit amount. Defaults to the Gross Earnings field value.
  • Gross Earnings / Pension — Monthly gross income in EUR. What to enter depends on the person’s status:
    • Employed: Monthly gross wage. Used as wage income in the simulation.
    • Self-employed: Monthly gross self-employment income (€/mo). Split into earned and capital portions using the Capital split % field. The capital share is taxed at the flat capital income tax rate; the earned share enters the progressive earned income tax schedule.
    • Unemployed: Defaults to €0. Unemployment benefits are calculated from the Prior Wage field (shown when Unemployed is selected), not from this field. Leave at 0 unless the person has concurrent part-time earnings.
    • Retired: Monthly gross pension (€/mo). In Finland the average total pension (2024) is roughly €1,900/mo. Enter the person’s total pension income from all non-Kela sources: earnings-related pension (työeläke), accident & traffic insurance pensions, foreign pensions, and any voluntary supplementary pensions. The KANSEL module simulates Kela pensions (national pension, guarantee pension, survivor pension) automatically — do not include those here.
    • Student: Defaults to €0. Student aid (OPINTUKI) is computed automatically. Enter part-time earnings here if any.
  • Extra Options — Click the Extra › button to reveal additional fields:
    • Disability — No (default), Basic, Enhanced, or Special. For working-age persons (16–64), KANSEL pays a disability allowance (vammaistuki) at three levels. For disabled pensioners, a care allowance (hoitotuki) applies instead. Children under 16 receive a child disability allowance. Disability does not trigger a national pension (kansaneläke) — that requires retirement status.
    • Church Member — Yes/No. Church members pay church tax (approx. 1–2% of taxable income, varies by municipality). Municipality-specific Evangelical Lutheran church tax rates are used when available (from official statute collection PDFs, ranging ~1.0–2.2%). Falls back to the national average (kirk_vero_pros) if per-municipality data is not loaded.
    • Spouse — Select which other adult is this person’s spouse. The pairing is bidirectional: selecting Adult 2 as Adult 1’s spouse automatically sets Adult 1 as Adult 2’s spouse, and clearing one side clears both. Adding a second adult auto-pairs them. Spouse pairing affects has_spouse, spouse_income, and is_single_parent in the simulation.
    • Widow — Yes/No. When set to Yes, a Dec. Pension €/yr input appears for entering the deceased spouse’s annual pension. This activates the KANSEL widow pension (leskeneläke) simulation, which includes a base amount and an income-tested supplement.
    • Sick Leave Days — Number of days on sick leave (0–365). When > 0, SAIRVAK computes sickness benefits prorated by days. Default: 0 (not on sick leave).
    • Parental Leave Days — Number of days on parental leave (0–365). When > 0, SAIRVAK computes parental benefits prorated by days. Default: 0.
    • Lives w/ parents — Combined dropdown, only shown for adults aged 18–24 when there is at least one non-spouse adult 15+ years older. Options: “No” (default), then qualifying adults as pairs (e.g., “A1 & A2”) and individuals. Selecting a parent option enables TTURVA partial support (osittainen tuki) means-testing: parent income is automatically computed from the selected parents’ gross earnings.

Children are defined by age (0–17), daycare status, and disability. Daycare options: No, Yes (full-time), or Part-time. Part-time daycare applies a 0.6× multiplier to the full-time fee (PHOITO). Daycare fees depend on household income and family size — they are zero below the income threshold (e.g., €3,874/mo for a 2-person family in 2025).

Household Tab Simplifications

  • Partial support for young adults (osittainen työmarkkinatuki) — Supported via the “Lives w/ parents” dropdown in Extra options (visible for adults aged 18–24 when a non-spouse adult 15+ years older is present). Select the parent(s) to enable TTURVA partial support means-testing; their gross earnings are automatically used as parent income. Adults selected as spouse are excluded from parent options. The work condition (work_condition_met) is automatically set to False for labor market / Yleistuki benefit types.
  • Children are passive dependents — Children (0–17) cannot have labor market status. They affect household benefit calculations (child supplements, daycare fees, family size) but do not themselves receive unemployment or sickness benefits.
  • No concurrent benefit-day splits — In register data, a person may receive different benefit types for different portions of the year (e.g., 100 days earnings-related + 60 days basic after benefit exhaustion). The Household tab assigns one benefit type per person for the entire period.

Housing

  • Tenure — Five options:
    • Renter: Enter monthly rent in the Housing Cost field. No property tax. Housing allowance (ASUMTUKI) uses rent norms.
    • Owner-occupied: Detached or semi-detached house (pientalo/paritalo). Enter monthly loan interest + maintenance in the Housing Cost field. Property tax (KIVERO) computed from building characteristics.
    • Housing assoc. — Apartment / Row house / Semi-det.: AS-OY share. The building type (kerrostalo, rivitalo, paritalo) determines the HOITOSUUS ratio for property tax estimation. Enter your monthly vastike in the Vastike field — this serves as the housing cost for benefit calculations (ASUMTUKI, TOIMTUKI) and is also used to estimate your AS-OY property tax share (KIVERO). Matches the SAS hoitvast variable.
  • Housing Cost (Renter / Owner-occupied) — Monthly housing expense (EUR). For renters: monthly rent. For owners: monthly loan interest + maintenance costs. Used by housing allowance (ASUMTUKI), social assistance (TOIMTUKI), and pensioner housing allowance (ELASUMTUKI). Hidden for Housing assoc. tenures (vastike is used instead).
  • Vastike (Housing assoc. only) — Monthly charge to the housing company (EUR), including both hoitovastike and rahoitusvastike. Used as the housing cost for benefit calculations and for estimating your AS-OY property tax share via HOITOSUUS ratios.
  • Municipality — Select from 336 Finnish municipalities. Determines municipal income tax rate, church tax rate (VERO), property tax rates (KIVERO), and housing allowance group (1-4).

Note: Housing allowance (ASUMTUKI) is available for all tenure types, including owner-occupied housing. ASUMTUKI only excludes students (who receive OPINTUKI housing supplement) and pensioners (who receive ELASUMTUKI).

How is AS-OY property tax estimated? The simulation uses HOITOSUUS ratios from the upstream SAS model (KIVEROsimul.sas): the ratio of property tax to total maintenance fees, by building type and construction decade. Tax = vastike × HOITOSUUS × 12. No building area or land value inputs are needed — vastike alone determines the estimate.

Owner-occupied property tax assumptions: Since hypothetical households do not have real property register data, the simulation uses reasonable defaults: pientalo (small house), wood construction, built year 2000, full amenities (water, central heating, electricity). Building area is 80 m² + 20 m² per household member. Property value is area × per-m² rate by municipality group: €2,500 (Helsinki), €1,800 (Greater Helsinki), €1,200 (large cities), €800 (other). Land value = 30% of property value. Tax rates are per-municipality from the KUNTAVERO parameter table (typically 0.4–1.0% for permanent residences, ≥1.3% for land from 2024). The tax is assigned to the household head only (not duplicated across members).

Automatic Benefits

Social assistance (toimeentulotuki, TOIMTUKI) is computed automatically as a last-resort benefit. It covers the gap between the household's assessed need (basic amount + housing costs) and total income. Virtually all income reduces it nearly 1:1, so it acts as a guaranteed minimum floor. No additional inputs are needed — TOIMTUKI uses the household's benefit, tax, and housing information from other modules.

In the composition charts, TOIMTUKI appears as a flat floor at low income levels and phases out nearly 1:1 as other income rises.

Settings

Configure simulation parameters and earnings sweep.

  • Year — Legislation year for parameter values.
  • Reform Preset — Optionally apply a parameter preset (created in the Parameters tab) to compare reform vs baseline.
  • Unemployment Model — Controls how unemployment benefits are calculated. The choice matters most for earnings-related benefits (ansiosidonnainen), which have graduated reduction (porrastus) that lowers the rate over time:
    • Annual (TTURVA) — Projects a full year of 260 benefit days and divides by 12. Graduated reduction accumulates across all 260 days, producing a lower weighted-average coefficient. This is the default and produces the lowest monthly amount for earnings-related benefits.
    • Monthly (TTURVA_KK) — Day-level benefit accrual. Tracks earnings-related, basic allowance, and labor market support as separate day counters. Recommended for 2026 to model the May yleistuki transition month-by-month.
    • Snapshot (SAS parity) — Computes the monthly rate at the person’s current unemployment duration (“Months Unemployed”), matching the original SAS SISU’s snapshot approach. This produces the highest monthly amount for short-duration earnings-related benefits because graduated reduction only covers the consumed days, not a full year.
    Example: 3 months unemployed (65 benefit days), prior wage €2,000/mo — Snapshot: coeff 0.92, ~€1,205/mo; Annual: coeff 0.78, ~€1,022/mo. Basic allowance and labor market support are unaffected by mode choice. See the Multiyear tab guide for full detail.
  • Min/Max Earnings & Steps — Define the earnings range and number of steps for the graph calculations.
  • Disposable Income Concept — Five checkboxes that adjust which components are counted in disposable income:
    • Church Tax — When checked, church tax is included in direct taxes (reduces disposable income). Only applies to adults marked as church members. Unchecked: church tax is excluded from the income concept.
    • Daycare Fees — When checked, municipal daycare fees (PHOITO) are included as fees reducing disposable income. Unchecked: excluded.
    • Include VAT — When checked, estimated VAT (value-added tax on consumption) is subtracted from disposable income and shown as “Indirect Taxes” in the breakdown table. VAT is estimated from household consumption patterns using the VVERO module. In the Household tab, VAT and interest costs produce an “extended disposable” line below the main disposable figure; in the Multiyear tab, VAT is folded into the Taxes row.
    • Interest — When checked, annual mortgage interest is subtracted from the displayed disposable income. Shown as a separate line (“Disposable after Interest” or “Disposable after VAT & Interest”) in the Household tab, and as a separate table row and chart bar in the Multiyear tab. Interest decreases over time as the mortgage amortizes.
    • Property Tax — Property tax (kivero) is included in direct taxes by default (checked). Uncheck to exclude property tax from the disposable income concept. Only relevant for owner-occupied / housing association housing.
  • Vary Adult — When more than one adult is defined, select which adult’s earnings to sweep. Defaults to Adult 1.

The Household tab always uses January monthly parameters for the selected year (to ensure correct month-specific values such as unemployment eligibility weeks). Dividend Tax (OSINKO) is not included in household simulations.

Hypothetical mode semantics: The Household tab models a person’s current financial situation. For unemployed persons, “Months Unemployed” sets the graduated reduction tier (longer unemployment → lower rate), but benefits are annualized over a full year because the person is unemployed and continues to receive benefits. This means the displayed monthly amount equals the actual monthly payment rate at that unemployment duration. For sick/parental leave, days are annualized proportionally (a person with 120 sick days receives 120 days’ worth of benefits). This matches the SAS register-data approach where unemployment_days and prior_year_benefit_days are separate fields.

The earnings sweep varies the selected adult's gross earnings from Min to Max in the specified number of Steps, while all other household characteristics remain fixed. This traces out how net disposable income changes with earnings.

Note: EMTR is undefined at €0 earnings (no marginal change to measure), so the EMTR chart starts at the first non-zero earnings step.

Simulate Household (button)

Runs a single-point simulation at the current earnings level. Results appear as two stacked tables:

  • Income Breakdown — Shows Market Income → + Benefits → − Direct Taxes → − Fees → = Disposable Income. Values are monthly by default; tick “Show Annual Values” to display annualised figures. If a reform preset is selected, shows baseline and reform columns side by side with the difference. When “Include VAT” is checked, an “Indirect Taxes” section appears below Disposable showing the VAT breakdown, followed by “Disposable after VAT”. When “Interest” is checked, interest costs appear as a separate deduction. Both produce an “extended disposable” line at the bottom.
  • Tax/Benefit Breakdown — Lists each module's annual EUR contribution, sorted by magnitude. Taxes appear in red, benefits in teal.

Compute Graphs (button)

Runs the simulation at each earnings step and produces the following charts:

  • Budget Constraint — Gross vs net disposable income with a 45° “no government” reference line. Above the 45° line = net beneficiary; below = net taxpayer.
  • Income Decomposition — Line chart showing monthly benefits, taxes, fees, and net disposable income as Adult 1's earnings vary. When a reform preset is selected, baseline (solid) and reform (dashed) lines are interleaved by category.
  • Income & Benefit Composition — Stacked area chart showing net wages after tax (hatched fill) plus each benefit type (solid fill) across the earnings range. For multi-adult households, each adult’s net salary is shown as a separate hatched area; the non-varied adult’s salary appears as a flat band. With a reform preset, baseline and reform charts appear side by side; the reform chart includes a dashed baseline disposable income overlay. Benefit colours are stable across baseline and reform charts (same column = same colour).
  • Net Transfer — Benefits minus taxes (€/month) at each earnings level. The zero-crossing is the breakeven point where the household transitions from net beneficiary to net taxpayer.
  • EMTR Curve — Effective Marginal Tax Rate across the earnings range. High EMTR (>80%) indicates poverty traps where earning more barely increases take-home pay.
  • Tax & Benefit Decomposition — Stacked area chart showing individual benefit types (positive, above zero) and tax types (negative, below zero) across the earnings range. Benefits use cool tones; taxes use warm tones. Colours are stable across baseline and reform charts (same column = same colour). With a reform preset, baseline and reform decompositions appear as separate charts; the reform chart includes dashed baseline benefit and tax totals as reference lines.
  • EMTR Decomposition — Stacked area breaking EMTR into tax increase (red) and benefit withdrawal (teal). The solid yellow line shows total EMTR (sum of components). EMTR can exceed 100% when benefit cliffs cause net income to drop. With a reform preset, baseline and reform decompositions appear separately.
  • Net Impact — Only shown when a reform preset is selected. Shows the difference in monthly disposable income (reform minus baseline) at each earnings level.
  • Effective Tax Rate (ETR) — Net effective tax rate = (Gross − Net) / Gross. Shows the combined effect of taxes minus benefits at each income level. Negative values mean benefits exceed taxes (net subsidy).
  • Participation Tax Rate (PTR) — For the hypothetical household: tax rate on entering employment = 1 − (Net@X − Net@0) / Gross@X. For population analysis: wages are predicted using a Heckman two-step selection model that corrects for sample selection bias (non-employed persons may have systematically lower potential wages than employed persons with identical observable characteristics). If the selection correction is statistically insignificant, the model falls back to simple OLS. PTR = share of predicted wage lost to taxes and benefit withdrawal when entering work. High PTR indicates weak incentives to start working.
  • Replacement Rate — Total household benefits at zero earnings as a share of gross earnings at each level. Values above 100% are normal for multi-person households where out-of-work benefits exceed the earnings level being shown.

Reform Comparison

To compare a reform against baseline: create a parameter preset in the Parameters tab, then select it in the Household tab's "Reform Preset" dropdown. Both Simulate Household and Compute Graphs will show baseline and reform results side by side.

PNG Export

Every chart and table card has a download button (top-right corner) to save as a high-resolution PNG file. The exported PNG includes the chart title, data provenance, simulation settings, and SISU Studio attribution.

Multiyear

Purpose

The Multiyear tab tracks how a household’s tax-benefit position evolves across legislation years (2021–2026). It runs the same full SISU pipeline as the Household tab, but repeats the simulation for each year with indexed incomes, rents, and pensions — showing how legislative changes, bracket creep, and indexation interact over time.

Household Configuration

You can define the household in two ways:

  • Import from Household Tab — reads the current household configuration directly from the Household tab’s form (adults, children, housing, municipality). Set up your household there first, then click Import.
  • Presets — eight built-in household types (single employed, couple with children, retired, student, etc.) using national weighted-average rates (Koko maa). Select from the dropdown — no Household tab setup needed.

The household’s demographic composition (ages, number of children, employment status, benefit type, municipality, tenure) is held fixed across all years. Only incomes and costs are indexed. This isolates the effect of legislative and indexation changes on the same household.

Base Year

The Base Year setting (default 2025) specifies the year to which stated incomes and ages pertain. Incomes are indexed forward from the base year for later years, and backward (downrated) for earlier years. Ages and household composition are held fixed at their base-year values for all simulated years. This lets you define a household as it is today and see how it would have fared under historical legislation, or how future policy changes will affect it.

Parameter Timing

Controls which point-in-time parameter values are used for each year:

  • Annual (12-month avg) — averages parameter values across all months of the year (default).
  • Year-end — uses December parameter values.
  • January / June / December — uses that specific month’s parameter values.

Indexation

Incomes and costs are adjusted year-over-year using Finnish index tables from pindeksi_vuosi.parquet:

Dimension Index Applies to
Wage growthansiotasoindeksi (ansio64)Non-retired adults’ gross earnings
Rent growthVuokraIndHousing cost and AS-OY vastike
Pension growthIndKel (KELA index)Retired adults’ gross earnings
CPI deflationIndKuphi2000Real disposable income (when CPI mode = Standard)

Growth rates are computed as chained year-over-year ratios from the index tables. You can override any growth rate with a fixed annual percentage — leave blank to use the index tables. The Index Reference table at the bottom shows the actual index-derived rates used for each year regardless of overrides.

Mortgage

The Mortgage € and Term fields in the Household Configuration card specify the remaining mortgage balance and remaining term at the base year. The balance is amortized using linear amortization (tasalyhennys / equal principal repayment), where the principal decreases by a fixed amount each year.

annual_repayment = mortgage_amount / term
balance(year) = mortgage_amount − annual_repayment × (year − base_year)
annual_interest(year) = balance(year) × interest_rate(year) / 100

Example: €150,000 mortgage, 25yr term, base year 2025, rate 3%
  2023: balance = €150,000 + 2 × €6,000 = €162,000 → interest €4,860
  2025: balance = €150,000 (base year) → interest €4,500
  2026: balance = €150,000 − €6,000 = €144,000 → interest €4,320

For years before the base year, the balance is proportionally higher (the household had not yet made those repayments). The balance reaches zero after term years past the base year.

The interest rate for each year can be edited in the Index Tables card (default 3.0%). When importing from the Household tab, the mortgage amount is copied; the term defaults to 25 years (a multiyear-only parameter, since the Household tab simulates a single year).

The mortgage interest deduction (alijäämähyvitys / deficit compensation) in VERO was phased out: 10% deductible in 2021, 5% in 2022, 0% from 2023 onwards. When “Interest” is checked in the income concept toggles, annual interest is subtracted from the displayed disposable income.

CPI Mode

Controls whether results are shown in nominal or real terms:

  • None — all amounts in nominal euros. Real = nominal.
  • Standard CPI — deflates disposable income using IndKuphi2000 (consumer price index, base year 2000). The start year is the reference point: Real = Nominal × CPI(start) / CPI(year). Shows how purchasing power changes even if nominal income rises.

Income Concept Toggles

Five toggles adjust what counts as disposable income. All require re-running the simulation to take effect:

  • Church Tax — includes church tax in direct taxes (only affects church members).
  • Daycare Fees — includes municipal daycare fees (PHOITO) as a deduction.
  • Include VAT — subtracts estimated VAT (consumption tax) from disposable income. VAT is folded into the Taxes row in the Income Summary table and into tax bars/deltas in all charts. The Tax Burden chart label updates to “Taxes incl. VAT”.
  • Interest — subtracts annual mortgage interest from disposable income. A separate “− Interest” row appears in the Income Summary table, and interest bars appear in the Components and Decomposition charts. Interest decreases year-over-year as the mortgage amortizes.
  • Property Tax — includes property tax (kivero) in direct taxes (checked by default). Uncheck to exclude from the income concept.

Output

The Show Annual Values checkbox toggles between monthly (default) and annual display for all tables and charts.

The simulation produces two tables and up to six charts:

  • Income Summary — Market Income, Benefits, Taxes, Fees (each with Δ abs and Δ % change sub-rows showing year-over-year changes), Disposable Income (also with Δ abs and Δ % change sub-rows), and Real Disposable (also with change sub-rows). When “Include VAT” is checked, the Taxes row includes VAT (labelled “Taxes incl. VAT”). When “Interest” is checked, a separate “− Interest” row appears.
  • Purchasing Power & Tax Rates — year-over-year summary with three sections: Disposable Income (level and €/% changes), Relative Changes (income change vs CPI inflation → purchasing power), and Tax Rates (four metrics, see below). When “Include VAT” is checked, the Taxes+Fees/Market metric becomes Taxes+VAT+Fees/Market. Inspired by Labore’s “Esimerkkiperheet” tables.

Tax Rate Metrics

Metric Formula Location Notes
Net Tax Rate1 − disposable / grossPurchasing Power & Tax RatesBroadest measure: includes all deductions, benefits, and fees in the disposable concept. Negative values indicate the household is a net transfer recipient (benefits exceed taxes).
Taxes+Fees / Market(taxes + fees) / market incomePurchasing Power & Tax Rates, Tax Burden chart (dashed)Share of market income absorbed by taxes and fees. When “Include VAT” is checked, VAT is added to taxes (label becomes “Taxes+VAT+Fees / Market”)
Tax Rate (% of gross)(income tax + social contributions) / grossPurchasing Power & Tax RatesMatches Labore “Verot ja maksut”; excludes property tax (kivero)
Tax Rate incl. Kivero(income tax + social contributions + kivero) / grossPurchasing Power & Tax RatesSame as Tax Rate but includes property tax (kiinteistövero)
  • Disposable Income Over Time — line chart with nominal (solid teal) and CPI-adjusted real (dashed blue) disposable income. The gap between lines represents cumulative inflation erosion.
  • Tax Burden Over Time — dual-axis chart: total taxes as bars (left axis, €), with a Taxes+Fees/Market line overlay on the secondary axis (right, %). The Net Tax Rate (ETR) is shown in the Purchasing Power & Tax Rates table; it is omitted from this chart because it can be deeply negative for net transfer recipients, which distorts the y-axis.
  • Income Components — stacked bar: market income (teal) and benefits (blue) as positive bars, taxes (red), fees (yellow), and interest (purple, when toggled) as negative bars. Solid white line: nominal disposable. Dashed blue line: real (CPI-adjusted) disposable income. When “Include VAT” is checked, the tax bar includes VAT.
  • EMTR Over Time — Effective Marginal Tax Rate at the household’s actual income level for each year. Uses adaptive perturbation: €10/mo for earners above €500/mo, or €500/mo for low/zero-income households (showing the average marginal rate over the first €500/mo of earnings). EMTR = 1 − Δdisposable/Δgross. Hover each data point to see the perturbation size used. Shows how the marginal incentive to earn more evolves as legislation and bracket creep change over time.
  • Nominal Disposable Income Decomposition — year-over-year change in nominal disposable income decomposed by source. Each group of bars represents a transition between adjacent years. Benefits are broken out by type (e.g., unemployment, housing allowance, child benefit). When “Include VAT” is checked, VAT is folded into the Taxes bar; when “Interest” is checked, interest changes appear as a separate bar. The white line shows the net change in disposable income (= sum of all bars). Useful for understanding what drove the change: was it indexation of wages, a benefit reform, or bracket creep in taxes?
  • Real Disposable Income Decomposition — same as the nominal decomposition but CPI-deflated: each component is multiplied by the CPI deflator before computing year-over-year changes. Market income bars shrink when wage growth ≈ CPI, making policy-driven changes (tax reform, benefit adjustments) more visible. Only shown when CPI deflation mode is enabled.

Index Table Editing

The collapsible “Index Tables” panel in the settings card lets you view and edit per-year growth rates for wages, rents, pensions, CPI, and mortgage interest rates. Growth rate columns are editable — editing a value stores a per-year override that is sent to the simulation. Uniform override fields (Wage Growth %/yr etc.) take precedence over per-year edits when filled. Click “Reset to defaults” to clear all per-year edits.

Indexation & Labore Compatibility

Our indexation uses the same Finnish index tables as the Labour Institute (Labore): ansio64 for wages, VuokraInd for rents, IndKel for pensions. The key difference is CPI deflation: we use a single consumer price index (IndKuphi2000) rather than household-specific CPI deflators from consumption surveys. The “Use Labore indices” button overrides all index dimensions with values from Labore LIITETAULUKKO 1 (2022–2027): wage, rent, and pension growth rates, CPI growth, and average mortgage interest rates. It also enables CPI deflation mode automatically. This gives the closest match to Labore’s published “Esimerkkiperheet 2025–2027” tables.

Presets are inspired by but not identical to Labore’s “Esimerkkiperheet” definitions. Labore states that wage earners represent median income for their gender, occupation, and education. Users should adjust income levels to match specific Labore scenarios.

Income Classification: SISU vs Labore

Labore’s “bruttotulot” includes all taxable income: wages, pensions, and taxable benefits (e.g. unemployment, sickness allowance). SISU separates market income (gross_income = wages + pensions + capital + self-employment) from benefits (total_benefits = all transfers, taxable and tax-free).

  • Employed households: Identical — no benefits in gross, so gross_income = Labore bruttotulot.
  • Unemployed: SISU shows gross_income = 0 with income reported as benefits; Labore counts the taxable benefit as bruttotulot. This is a presentation difference, not a calculation error.
  • Retired: SISU treats gross_earnings as the work pension and simulates kansan­eläke on top as a benefit. Labore reports the combined total pension as bruttotulot. Fixtures use the work pension amount so that gross_income + kansel_benefit ≈ Labore bruttotulot.
  • Tax rate alignment: The Tax Rate (% of gross) metric matches Labore’s “Verot ja maksut / bruttotulot” for employed households. For unemployed households (where gross = 0), the metric is undefined and should not be compared.

Differences from Household Tab

  • Tax rate metrics — Purchasing Power & Tax Rates shows four tax rate metrics: Net Tax Rate (broadest), Taxes+Fees/Market, Tax Rate % of gross (matches Labore “Verot ja maksut”), and Tax Rate incl. Kivero. The Household tab shows only ETR.
  • Index source — Multiyear uses StatFin index tables by default (ansio64, VuokraInd, IndKel) but can be overridden with Labore assumptions via the “Use Labore indices” button. The Household tab simulates a single year with no indexation.

Unemployment Benefit Calculation Modes

The Unemployment Model dropdown controls how unemployment benefits (TTURVA) are computed. The choice primarily affects earnings-related benefits (ansiosidonnainen päiväraha), which have graduated reduction (porrastus) that lowers the daily rate over time. Basic allowance and labor market support do not have graduated reduction and produce the same result regardless of mode.

Background — graduated reduction (porrastus): Finnish law reduces earnings-related unemployment benefits in tiers based on how many benefit days have been consumed:

  • Days 1–40: 100% of the calculated daily rate
  • Days 41–170: 80% of the calculated daily rate
  • Days 171+: 75% of the calculated daily rate (from 2024)

The effective rate for any given duration is the weighted average across all accumulated days. A person who has consumed more days has a lower weighted coefficient, and therefore a lower average daily benefit. This is what makes the mode choice significant.

The three modes:

  • Annual (TTURVA) — The default. Projects a full year of 260 benefit days, computes the total annual benefit (with graduated reduction accumulating across all 260 days), then divides by 12 to produce a monthly figure. Because the graduated coefficient degrades over the full year, this produces the lowest monthly amount for earnings-related benefits. This mode answers the question: “If this person stays unemployed the entire year, what is their average monthly benefit?”
  • Monthly (TTURVA_KK) — Day-level benefit accrual that tracks earnings-related, basic allowance, and labor market support as separate day counters. Uses the same 260-day projection as Annual, so the graduated coefficient is the same, but the module provides finer breakdown of benefit components. Recommended for 2026 to model the May yleistuki transition (basic allowance + labor market support merge into yleistuki), since TTURVA_KK can apply different rules per-month.
  • Snapshot (SAS parity) — Computes the monthly benefit rate at the person’s current unemployment duration (set by “Months Unemployed”), rather than projecting a full year. The graduated coefficient only covers the consumed benefit days, producing a higher coefficient and therefore a higher monthly rate for anyone who has been unemployed less than ~12 months. This matches the original SAS-based SISU model’s behavior. This mode answers the question: “What is this person’s monthly benefit payment right now, at their current point in the unemployment spell?”

Worked example — earnings-related, 3 months unemployed (65 benefit days):

Assume prior monthly wage of €2,000, which yields a calculated daily rate of approximately €60 before graduated reduction.

Snapshot (65 days):
  Weighted coeff = (40 × 1.00 + 25 × 0.80) / 65 = 0.923
  Daily benefit ≈ €60 × 0.923 = €55.4
  Monthly ≈ €55.4 × 21.5 ≈ €1,191/mo

Annual / Monthly (260 days):
  Weighted coeff = (40 × 1.00 + 130 × 0.80 + 90 × 0.75) / 260 = 0.813
  Daily benefit ≈ €60 × 0.813 = €48.8
  Annual total ≈ €48.8 × 260 = €12,688
  Monthly ≈ €12,688 / 12 ≈ €1,057/mo

Difference: Snapshot is ~13% higher (€134/mo)

Worked example — 12 months unemployed (260 benefit days):

At 12 months, all modes converge because the snapshot duration equals the annual projection:

All modes (260 days): coeff = 0.813 → same monthly amount

When does the mode choice NOT matter?

  • Basic allowance (peruspäiväraha) — flat daily rate, no graduated reduction. All modes give the same result.
  • Labor market support (työmarkkinatuki) — flat daily rate, no graduated reduction. All modes give the same result.
  • Child supplements (lapsikorotus) — fixed amounts per child, unaffected by mode.
  • Sickness and parental benefits (SAIRVAK) — computed by a separate module, not affected by the unemployment model dropdown.
  • Aggregate simulations (Simulation tab) — register data has actual unemployment_days per person, so Snapshot is not meaningful. Only Annual and Monthly are relevant there.

Which mode should I use?

  • Annual — Best for answering “what is the total annual benefit if this person remains unemployed all year?” Used for annual income comparisons and budget constraint analysis.
  • Monthly (TTURVA_KK) — Best for 2026 analysis (yleistuki transition) or when you need component-level breakdown of benefit types by day.
  • Snapshot — Best for comparing with the original SAS SISU model, or when you want to show the “current monthly payment” at a specific point in an unemployment spell. Matches what Kela/TE-palvelut would quote as the person’s monthly benefit. Use this if a colleague asks “why does the Python SISU give lower unemployment benefits than SAS?” — the answer is the mode difference.

Typical Use Cases

  • Tracking how bracket creep erodes real purchasing power for a fixed-income household
  • Comparing the effect of legislative changes (e.g. the 2026 yleistuki transition) across years
  • Examining how pension indexation (IndKel) compares to wage growth (ansiotasoindeksi) for retired households
  • Modeling mortgage amortization and the phase-out of the interest deduction
  • Replicating Labore-style “Esimerkkiperheet” analysis with editable per-year growth assumptions

PNG Export

Every chart and table card has a download button (top-right corner) to save as a high-resolution PNG file. The exported PNG includes the chart title, data provenance, simulation settings, and SISU Studio attribution.

Data

Overview

SISU Studio includes pre-generated synthetic population datasets for 2021–2025, each representing a 15% sample (~840k persons, ~440k households) calibrated to match Finnish aggregate statistics. Two pipeline versions are available:

  • v3 (Tax Admin) — incomes sampled from Finnish Tax Administration per-municipality percentile distributions; validated against ~92 per-group tax/benefit checks plus 17 transfer totals. Best for income distribution fidelity and inequality metrics (Gini ±1pp).
  • v2 (StatFin) — incomes calibrated from Statistics Finland age×sex means with two-pass disposable income adjustment; validated against 17 transfer totals + Gini + poverty + 10 income deciles. Best for disposable income decile accuracy (ratios 0.86–0.97).

v2 Pipeline — StatFin Income Calibration

Data Sources (v2)

The v2 pipeline draws on 24 StatFin PX-Web tables covering demographics, employment, income, housing, education, and social transfers:

Domain StatFin Tables Variables Informed
Population vaerak_11re, vaerak_11ry, vaerak_11rx Age, sex, municipality, marital status, religion
Employment tyokay_115c, tyokay_115w, tyti_13aj Labor status by age/sex/region, LFS (2025 fallback)
Families perh_12c3, perh_12c4, perh_12c5, perh_12c6 Family type, size, children count, spouse age pairing
Income tjt_128c, tjt_11wh, tjt_11py, tjt_14k5, tjt_15at, tjt_118w HH income by decile, personal income by age/sex, income class×education
Housing asas_115y, asas_116a, asas_116e, asvu_11x5 Tenure, building type, HH size×tenure, regional rents
Education vkour_12bq Education level by age/sex/municipality
Validation tjt_122s, tjt_11x3, tjt_128j Transfer receipts (17 PT/MT codes), Gini, poverty rate

Register-based tables cover 2021–2024. For 2025, register data from 2024 is combined with Labour Force Survey (tyti_13aj) rates as scaling factors.

Method (v2)

Synthetic populations are constructed in five sequential phases:

Phase Description
1. Population Create persons matching StatFin age×sex marginals exactly. Assign municipality, family status, education, employment status, religion, and marital status proportionally from their respective StatFin distributions. Construct households using family structure targets (couple/single-parent/single-person shares, children counts, spouse age pairing).
2. Income Assign personal incomes (wage, pension, capital, entrepreneurial) using age×sex means from tjt_11py with education-gradient multipliers from tjt_14k5. Self-employment income is split into earned (70%) and capital (30%) portions to match the VERO module’s separate tax treatment. Calibrate household income decile distribution against tjt_128c (39 income components by equivalized decile).
3. Attributes Assign housing (tenure, dwelling type, housing cost, property values), leave status (sick leave, parental leave from Kela statistics), unemployment duration with prior-year carry-over days and benefit routing (LFS-calibrated), student status, consumption (6 VAT categories), VERO input fields (region code, birth month, mortgage interest, first-home interest, capital deductions), and edge cases.
4. Calibration Household-level Iterative Proportional Fitting (HIPF) across 43 constraint groups: 20 age×sex, 7 labor status, 16 tenure×HH size. Scales weights to national population totals (5.5–5.7M persons depending on year). Weight CV ≈ 0.04.
5. Validation Run the full SISU simulation (all 17 tax-benefit modules) on the synthetic population. Compare simulated aggregate outputs against StatFin external targets: Gini coefficient (tjt_11x3), poverty rate (tjt_128j), 17 social transfer totals (tjt_122s), and 10 income decile means (tjt_128c).

Total pipeline time: ~45 seconds for 840k persons. Each dataset uses seed 42 for reproducibility. Equivalization follows the OECD modified scale (1.0 / 0.5 / 0.3) for all distributional comparisons.

Validation Results (v2)

Each v2 dataset is validated against StatFin aggregate targets. Results by year:

Year Persons Households Gini (sim / target) Poverty (sim / target) Transfers OK Overall
2021 832,070 430,080 33.1 / 26.7 13.8% / 13.2% 14 / 17 PARTIAL
2022 834,431 433,650 32.8 / 26.7 15.2% / 13.4% 14 / 17 PARTIAL
2023 840,398 438,241 32.4 / 26.2 16.6% / 13.4% 16 / 17 PARTIAL
2024 845,225 441,788 32.8 / 28.4 17.3% / 14.2% 16 / 17 PARTIAL
2025 845,225 441,788 32.7 / 28.4 16.8% / 14.2% 16 / 17 PARTIAL

Transfer validation compares 17 StatFin PT/MT transfer codes (child benefit, housing allowance, pensions, unemployment benefits, etc.) against SISU-simulated weighted totals. A transfer passes if the simulated-to-target ratio is within 0.3–3.0 (standard) or 0.39–2.5 (critical transfers: disability, survivor, social assistance, pensioner housing). Near-perfect transfers include child benefit (ratio ~0.98), home care subsidies (~0.99), and student aid (~1.14). Gini tolerance is ±3.5 percentage points; poverty tolerance is ±3 percentage points. Income decile tolerance is ±20%. Two-pass income calibration closes the per-decile disposable income gap (ratios 0.86–0.97).

v2 Known Limitations

  • Gini overestimation — Simulated Gini exceeds StatFin targets by 4–6 pp across all years. Two-pass income calibration improved decile ratios to 0.81–0.97 but the structural Gini gap persists
  • Transfer accuracy varies by year — 2023–2025 achieve 16/17 transfers within tolerance; earlier years (2021–2022) have 14/17 due to parameter and population differences
  • Poverty overestimation — Years 2022–2024 show simulated poverty 1.8–3.2 pp above StatFin targets, driven by VERO deductions (mortgage interest, capital deductions) reducing taxes disproportionately for higher-income groups

v3 Pipeline — Tax Administration Income Distributions

Data Sources (v3)

The v3 pipeline replaces the v2 income assignment with Finnish Tax Administration (Verohallinto) income register data, providing per-municipality, per-beneficiary-group income distributions:

Source PxWeb Table Content
Tax Admin alue_101 430+ income/tax/benefit variables × 12 beneficiary groups × 333 municipalities × 16 statistics (incl. percentiles P10–P90)
Tax Admin alue_103 Income by age group (age gradients for income assignment)
Tax Admin alue_104 Income by sex (sex gradients for income assignment)
StatFin 24 tables (shared with v2) Demographics, employment, housing, education (population synthesis & attributes)

Tax Admin data covers 2021–2024. For 2025, the 2024 distributions are used with 2025 population demographics and SISU parameters.

Method (v3)

The v3 pipeline shares population synthesis (Phase 1), attributes (Phase 3), and IPF calibration (Phase 4) with v2. The key difference is income assignment (Phase 2):

Phase Description
1. Population Identical to v2 — StatFin-calibrated age×sex×municipality distributions.
2. Income (v3) For each person, draw a random quantile and interpolate income amounts from Tax Admin percentile distributions (alue_101: P10–P90 by municipality × beneficiary group). Each income type (wages, pensions, capital, entrepreneurial) uses the group-specific distribution. Self-employment income is split into earned (70%) and capital (30%) portions. Participation rates control which fraction of a group receives each income type (e.g., ~45% of wage earners have capital income).
3. Attributes Shared with v2 — housing, leave, unemployment, consumption — plus VERO input fields: region code (maakunta, for Åland tax reduction), birth month (for contribution prorating), mortgage interest, first-home interest, and capital deductions (for deficit compensation).
4. Calibration Identical to v2 — IPF with 43 constraint groups, household-level weights.
5. Dual Validation Run full SISU simulation, then validate against (a) Tax Admin aggregates (~92 per-group checks on taxes, benefits, and income totals) and (b) StatFin transfer totals (17 PT/MT codes, Gini, poverty, deciles — same as v2).

v3 omits v2's two-pass income adjustment because incomes already match the real per-municipality distribution by construction. Total pipeline time: ~70 seconds for 840k persons.

Validation Results (v3)

v3 datasets have dual validation: Tax Admin checks (per-group accuracy) and StatFin transfer validation (aggregate accuracy):

Year Persons Tax Admin Checks Gini (sim / target) Transfers OK
2021 832,070 49 / 92 (53%) 28.6 / 26.7 13 / 17
2022 834,431 51 / 91 (56%) 28.3 / 26.7 15 / 17
2023 840,398 49 / 91 (54%) 26.3 / 26.2 16 / 17
2024 845,225 48 / 92 (52%) 27.1 / 28.4 16 / 17
2025 845,225 46 / 92 (50%) 26.9 / 28.4 15 / 17

Tax Admin validation compares weighted SISU outputs against per-group national totals from the Tax Administration income register. Tolerances: taxes 60–150%, benefits 40–200%, income 70–140%. The ~50% pass rate reveals genuine SISU module discrepancies rather than data quality issues — the income inputs match reality by construction.

v3 Known Limitations

  • No self-employed population — v2 population synthesis does not generate self-employed persons; Tax Admin group “4” validation checks always fail
  • Church tax +50% — Municipal taxable income is inflated due to missing deductions (union fees, commuting expenses); structural limitation
  • Social assistance 2.5× — TOIMTUKI take-up rate over-simulated due to income-tested benefit threshold effects
  • Cross-group benefits — Employed persons with unemployment spells receive benefits in reality but not in the static synthetic population
  • Decile ratios lower than v2 — v3 omits the two-pass disposable income adjustment, trading decile accuracy for income distribution fidelity

General Information

Shared Limitations

  • Not register data — Synthetic populations match aggregate statistics but do not reproduce individual-level joint distributions
  • No wealth data — Property and financial wealth are proxied from income; no public wealth microdata is available
  • Static annual snapshot — Employment status, income, and household composition are fixed for the year; no within-year transitions
  • 2025 uses 2024 register base — Both v2 and v3 use 2024 register data with 2025 SISU parameters for 2025 datasets

Dataset Statistics

Selecting a dataset in the Data tab shows detailed statistics across five tabs:

  • Summary — Sample size, pipeline version, weight statistics, IPF convergence, overall pass/fail
  • Demographics — Age-sex distribution, household size, employment status
  • Income — Gini/poverty comparison, income decile means, fiscal aggregates
  • Validation Benchmarks — For v3: Tax Admin per-group tax/benefit checks + 17 transfer totals + inequality + deciles. For v2: 17 transfer totals + inequality + deciles
  • Validation Report — For v3: pipeline architecture, v3-vs-v2 comparison, category pass rates, known limitations. For v2: IPF calibration detail, 43 constraint groups, weight distribution

References

  • Statistics Finland PX-Web API: pxdata.stat.fi/PxWeb/api/v1/fi/StatFin/
  • Finnish Tax Administration PX-Web API: vero2.stat.fi/PxWeb/api/v1/fi/Vero/
  • StatFin income distribution statistics: tjt (Tulonjakotilasto)
  • StatFin population structure: vaerak (Väestörakenne)
  • StatFin employment: tyokay (Työssäkäynti), tyti (Työvoimatutkimus)
  • Tax Admin income tables: alue_101 (Tulonsaajat), alue_103 (Ikä), alue_104 (Sukupuoli)
  • OECD modified equivalence scale: first adult = 1.0, additional adults = 0.5, children <14 = 0.3
  • Poverty threshold: 60% of median equivalized disposable income (EU-SILC / Eurostat standard)

Export

Export Modes

The Export tab supports three modes:

  • Single Run — Export data from one simulation run. Select the run ID, dataset type, and format.
  • Compare Runs — Export a comparison of two runs (baseline vs reform). Select both run IDs, dataset type, and format. For Summary and Indicators datasets, the exported file contains baseline, reform, delta, and pct_change columns. For Persons and Households datasets, both runs are stacked vertically with an added run_type column ("baseline" or "reform") and run_id column.
  • Multiple Export — Select multiple completed runs and export each as a separate file in a ZIP archive. Useful for batch-exporting results from “Run All Parameter Presets” or comparing several reform scenarios offline.

Tip: Exported Parquet and CSV person-level files can be re-imported via “Import from File” in the Simulation tab, allowing you to reload and re-analyze previous results without re-running the simulation.

Dataset Types

  • Persons — Individual-level microdata with all input variables and simulated output columns (taxes, benefits, disposable income, etc.). One row per person.
  • Households — Household-level microdata enriched with aggregated person-level totals (hh_disposable_income, hh_wage_income, hh_vero_tax, etc.) and household size. One row per household.
  • Summary — Structured table of key results in category | metric | value format. Includes Module Totals (per-module tax/benefit sums), Key Indicators (Gini, poverty rate, median income, percentile ratios), Household Indicators (equivalized metrics), Fiscal Aggregates (total taxes and benefits by module), Redistribution indices (Reynolds-Smolensky, Kakwani, S80/S20, S90/S10), Decile Summary (10 deciles with income shares, tax rates, poverty rates), Poverty by Group (age, employment, family type), and Multi-Threshold Poverty (60/50/40%).
  • Full Indicators — Comprehensive export of ALL analysis data in category | metric | value format. Includes everything in Summary plus Lorenz curves, histograms, income decomposition, effective/marginal tax rate distributions, benefit phase-out curves, EMTR/PTR densities, age distribution, demographic breakdowns, and redistribution profiles. This captures all data visible in the Analysis tab charts and tables.

Formats

  • CSV — Universal text format for spreadsheets (Excel, Google Sheets) and any programming language.
  • Parquet — Efficient columnar binary format. Recommended for large datasets and use in Python (pandas/polars), R (arrow), or Stata.

All Simulation Runs

Lists all completed simulation runs in the current session with their run IDs, configuration, and timestamps. Use the Refresh button to update the list.

Audit Log

Chronological record of all session operations — simulation runs, data generation, parameter changes, and exports. Useful for tracking what was done and in what order.

Modeling Details

The 17 Modules

Taxes

VERO State income tax
KIVERO Property tax
TAMAKSU Employer contributions
OSINKO Dividend tax
VVERO VAT / indirect tax

Fees

PHOITO Daycare fees

Benefits

TTURVA Annual unemployment benefit type selection and amount calculation
TTURVA_KK Monthly unemployment benefit calculation (alternative to TTURVA, mutually exclusive)
SAIRVAK Sickness, maternity, parental, rehabilitation, special care, employer-paid
KANSEL National pension
OPINTUKI Student aid
LLISA Child benefit
KOTIHTUKI Home care
ASUMTUKI Housing allowance
ELASUMTUKI Pensioner housing
TOIMTUKI Social assistance
EPIDEM Epidemic compensation

2026 Reforms (SISU 26.00)

The following 2026 legislative reforms have been ported from SISU 26.00:

Module Reform
TTURVA / TTURVA_KK Yleistuki (general support) replaces peruspäiväraha (basic unemployment allowance) and työmarkkinatuki (labor market support) from May 2026. In 2026 annual mode, computed as 4/12 old scheme + 8/12 new scheme.
TOIMTUKI Earned income deduction age guard: from March 2026, the 20% earned income deduction only applies to persons aged 55+ (previously all ages).
SAIRVAK Age-based parameterization: daily allowance rates now use age-specific parameters. Partial sickness benefits added from 2026 (40-60% of full daily allowance for partial return-to-work).

SAS Bug Corrections

The original SISU model is written in SAS, a language where IF statements don't chain into else-if by default — each IF is evaluated independently. This caused two employer contribution variables (TAMAKSU module) to silently produce wrong values for municipal-sector workers. The Python port corrects these by using proper conditional logic.

Two bugs in the original SAS TAMAKSU module are corrected in this Python port:

Variable SAS Problem Python Correction
SAVA
Sickness insurance rate
Non-chained IF statements cause sector 3 to be overwritten by the ELSE branch, giving it SavaYks (private) instead of SavaKun (municipal) Proper else-if chain: sector 3 → sava_kun, sector 8 → sava_val, else → sava_yks
RYHE
Group life insurance rate
NE 3 OR NE 8 is always true (logical tautology), so ALL sectors incorrectly get RyHeYks Sector 3 → ry_he_kun (municipal), else → ry_he_yks (private/other)

Note: With default parameters where municipal and private rates are equal, these corrections have no numerical impact. They produce correct results only if sector-specific rates ever diverge.

Module Execution Order

SISU runs 17 modules in a fixed order matching the original SAS-based KOKO simulation. The order matters because later modules may depend on outputs from earlier ones. Each module is tagged Household or Individual to indicate its unit of analysis. Simulated benefits and taxes are listed as sub-bullets; italicised items are non-monetary outputs such as day counts, rates, thresholds, or intermediate calculations.

  1. SAIRVAK — Sickness & Parental Insurance (Individual)
    • Sickness daily allowance (sairauspäiväraha)
    • Parental daily allowance (vanhempainpäiväraha)
    • Enhanced maternity allowance (korotettu äitiysraha)
    • Enhanced parental allowance (korotettu vanhempainraha)
    • Partial sickness benefit (osittainen sairauspäiväraha)
    • Rehabilitation benefit (kuntoutusraha)
    • Special care allowance
    • Employer-paid sickness period
    • From 2026: age-based eligibility (16–67) applies to sickness benefits only; parental/maternity have no age limit
    • Prior wage for synthetic persons: derived from wage_income ÷ (1 − leave_days/260), i.e. the full annual wage had the person not been on leave
  2. TTURVA — Unemployment Benefits, annual (Individual)
    • Earnings-related daily allowance (ansiosidonnainen päiväraha)
    • Basic daily allowance (peruspäiväraha — discontinued May 2026)
    • Labor market support (työmarkkinatuki — discontinued May 2026)
    • Universal support / Yleistuki (from May 2026, replaces basic + labor market)
    • Adjusted benefit for part-time work (soviteltu päiväraha)
    • Graduated benefit reduction (porrastus, from 2024) — earnings-related benefits are reduced over time using a weighted-average coefficient across three tiers: full rate for PorrasPv1 days (~40), PorrasKerroin1 (80%) for the next PorrasPv2−PorrasPv1 days (~130), and PorrasKerroin2 (75%) thereafter. Prior-year Q4 benefit days (prior_year_benefit_days) shift the tier boundaries forward, so long-term unemployed who carried over days from the previous year enter reduced tiers sooner
    • Child supplements (lapsikorotus)
  3. TTURVA_KK — Unemployment Benefits, monthly variant (Individual)
    • Alternative to TTURVA (mutually exclusive) — selected via the Unemployment Model dropdown on Simulation and Household tabs
    • Converts monthly benefit days × daily rate → annual euro amounts (×12 annualization)
    • Uses per-type day inputs: benefit_days_earnings, benefit_days_basic, benefit_days_labor_market
    • Uses same parameter table (ptturva) and same benefit logic as TTURVA
    • More granular than TTURVA — provides separate output columns for each benefit type, useful for per-type analysis
  4. TTURVA vs TTURVA_KK — When to Use Which

    Both modules are mutually exclusive — select one via the Unemployment Model dropdown. Both use the same parameter table (ptturva) and the same benefit logic. Both output annual EUR values.

    • TTURVA (Annual, default) — Computes a single annual total: unemployment_days × daily_rate, capped at 260 days. Uses unemployment_days as input.
    • TTURVA_KK (Monthly) — Computes per-type monthly amounts annualized ×12: benefit_days × daily_rate × 12, capped at 21.5 days/month. Uses benefit_days_earnings, benefit_days_basic, benefit_days_labor_market as inputs.

    For 1–11 months unemployment, both produce identical results. At full-year (12 months), there is a tiny 2-day cap difference (260 vs 258 effective days, ~€160/year) inherent to monthly vs annual capping.

    Example: An unemployed person with 3 months earnings-related benefit, prior wage €3,000/month, receives ~€4,860 annual benefit with either module.

    2026 transition: Both modules handle the May yleistuki transition — TTURVA uses 4/12 old + 8/12 new prorating, while TTURVA_KK applies it month-by-month.

    SAS parity: Both modules match the original SAS implementation. The 2-day full-year difference is an inherent monthly-vs-annual cap distinction, not a bug.

  5. KANSEL — National Pension (Individual)
    • National pension (kansaneläke)
    • Guarantee pension (takuueläke)
    • Care allowance for pensioners (hoitotuki)
    • Disability allowance (vammaistuki)
    • Child pension (lapseneläke)
    • Widow/widower pension with income-tested supplement (leskeneläke) — supplement reduced by 50% of income above €787/year; income = wage×0.6 + capital + pension
    • Guarantee pension (takuueläke) — tops up total pension to €976.59/month; only for persons whose combined pension is very low
  6. KOTIHTUKI — Home Care Allowance (Household)
    • Care allowance for under-3s (hoitoraha)
    • Income-tested supplement (hoitolisä)
    • Partial care allowance (osittainen hoitoraha)
    • Flexible care allowance (joustava hoitoraha)
    • Eligibility: household has a child under 3 not in municipal daycare
    • Income-tested supplement (hoitolisä): reduced at 7.9–11.5% of income above family-size thresholds (€1,160–€1,700/month); max supplement €202/month
  7. OPINTUKI — Student Aid (Individual)
    • Study grant (opintoraha)
    • Housing supplement (asumislisä) — reinstated from August 2025 with municipality-group rent ceilings
    • Guardian supplement (huoltajakorotus)
    • Parent income adjustments
    • Student loan guarantee (valtiontakaus)
    • Earnings clawback (takaisinperintä) — parameterized but currently inactive (rate = 0%)
    • Guardian supplement (huoltajakorotus) — ~€100/month for student parents; populated in synthetic data (7% of female students 20+, 3% of male students 25+)
  8. VERO — Income Tax (Individual)
    • State income tax (valtion tulovero)
    • Municipal income tax (kunnallisvero) — uses per-municipality rates from the KUNTAVERO parameter table. The original SAS model uses per-person rates from register data (ayri columns). The Python implementation has a fallback to the KeskKunnPros average rate if KUNTAVERO is not loaded or municipality_code is missing, but this does not occur with the current synthetic datasets.
    • Church tax (kirkollisvero)
    • Capital income tax (pääomatulon vero) — two-rate structure: 30% up to PORaja (~€30,000 for 2021–2026), 34% above. Capital income includes investment returns, rental income, and the capital portion of self-employment income (YRITYSTP)
    • Self-employment income split — SE income is divided into earned and capital portions. Each receives a separate 5% entrepreneurial deduction (YRVAHA for earned SE, YRVAHP for capital SE). Earned SE enters the earned income tax base; capital SE enters the capital income tax base
    • Deficit compensation (alijäämähyvitys — mortgage interest deducted from earned income tax)
    • Åland / Ahvenanmaa state tax reduction (maakunta 21)
    • Pension income surcharge (eläketulon lisävero)
    • YLE broadcasting tax
    • Sickness insurance contribution
    • Employee pension & unemployment contributions (birthday-prorated)
    • Municipal tax rates vary by municipality (loaded from pkuntavero.parquet); editable per-municipality in the Parameters tab under KUNTAVERO
    • Dividend income (OSINKO module) is optional and off by default; when enabled, dividend capital/earned splits flow into VERO’s tax bases automatically
  9. KIVERO — Property Tax (Household)
    • Primary residence building tax (pientalo)
    • Land tax (maapohja)
    • Vacation home tax (vapaa-ajan asunto)
    • AS-OY housing association property tax — estimated from maintenance fees (vastike) using HOITOSUUS ratios by building type and construction decade (e.g. kerrostalo 2010+: 10.04%, rivitalo 1980s: 6.87%)
  10. OSINKO — Dividend Tax (Individual)
    • Listed dividends: 85% taxable as capital income, 15% tax-free
    • Unlisted dividends: yield threshold = 8% × net equity. Below threshold: 25% capital income (below €150k cap) or 85% (above cap). Above threshold: 75% earned income + 25% tax-free
    • Capital income taxed at 30% up to €30,000 (PORaja), 34% above
    • Earned income component passes to VERO (integrated into earned tax base)
    • Off by default — enable via “Dividend Tax (OSINKO)” toggle in Simulation tab. When enabled, OSINKO runs before VERO and its outputs flow into VERO’s global capital/earned income tax bases
  11. TAMAKSU — Employer Social Insurance Contributions (Individual)
    • Employer sickness insurance
    • Employer unemployment insurance
    • Employer pension contribution
    • Accident insurance
    • Group life insurance
    • TAMAKSU is an employer cost — it does not reduce employee disposable income directly, but is included in the labour cost wedge and total tax burden analysis
  12. LLISA — Child Benefit & Family Supplements (Household)
    • Child benefit by birth order (lapsilisä)
    • Under-3 supplement
    • Single parent supplement (yksinhuoltajakorotus)
    • Maternity grant (äitiysavustus)
    • Maintenance support (elatustuki)
    • Birth order: children ranked within household by age (oldest = 1st). Higher-order children receive progressively higher per-child amounts; single-parent supplement is a flat addition per child
  13. ELASUMTUKI — Pensioner Housing Allowance (Individual)
    • Pensioner housing allowance (eläkkeensaajan asumistuki)
    • Eligibility: retired persons (mutually exclusive with general housing allowance ASUMTUKI)
    • Income test: own responsibility = €681/year + 41.3% × max(0, income − threshold); thresholds vary by household type (€10,280 single, €14,746–€16,783 couple)
    • Coverage: 85% of (eligible housing costs − own responsibility), capped by municipality group (€7,493–€9,287/year across 4 groups)
    • Minimum payment: €7.46/month (below this = €0)
  14. ASUMTUKI — General Housing Allowance (Household)
    • Housing allowance (yleinen asumistuki)
    • Formula: 70% × (min(actual cost, max cost by municipality) − basic deductible); min €15/month
    • Basic deductible: 50% × max(0, income − threshold), where threshold = €667 + €94/adult + €296/child
    • Earned income deduction abolished for non-students from April 2024
    • Three tenure types: renter (rent cap), AS-OY housing association (maintenance/financing split), and owner-occupied (heating norms)
  15. PHOITO — Daycare Fees (Individual, per child)
    • Income-based daycare fee (päivähoidon maksu)
    • Sibling discounts (2nd child 40%, 3rd+ 20% of 1st child’s fee)
    • Fee formula: 10.7% × max(0, income − threshold); threshold varies by family size (values from parameter table; vary by year)
    • Maximum: €295/month per 1st child; minimum: €28 (below this = €0; values from parameter table; vary by year)
  16. TOIMTUKI — Social Assistance (Household)
    • Social assistance / last-resort income support (toimeentulotuki)
    • Need norm by household composition
    • Housing cost coverage
    • Earned income disregard (etuoikeutettu tulo) — €150/month cap; from March 2026 restricted to under-18s only (adults: €0)
    • Last-resort: TOIMTUKI depends on all other benefit modules and runs last in the pipeline, deducting all prior benefits from the need calculation
  17. VVERO — Value Added Tax (Household)
    • VAT by product category (standard, food, culture, zero-rated)
    • Effective VAT rate on consumption

    VAT rate categories and coverage

    The VVERO module maps 135 COICOP-based product categories to 7 VAT rate classes. Each household’s consumption is split across these categories and VAT is computed per product as: netto = gross / (1 + rate/100), ALV = netto × rate/100.

    Code Name 2021–24.8 2024.9+ 2025 2026 Coverage
    S1 Standard 24% 25.5% 25.5% 25.5% Clothing, alcohol, tobacco, furniture, fuel, vehicles, electronics, cosmetics, personal care
    R1 Reduced 1 14% 14% 14% 13.5% Food & non-alcoholic drinks, restaurants, pet food. From 2025: also medicines, books, domestic transport, accommodation, sports/culture/cinema/museums, diapers, sanitary products (moved from R2/S1)
    R2 Reduced 2 10% 10% 10% 10% Newspapers & magazines only (from 2025; previously also books, culture, transport, medicines, accommodation)
    M1 Mixed 1 13.9% 14.2% 14.2% 14.2% Domestic package travel (margin scheme)
    M2 Mixed 2 5.6% 4.6% 4.6% 4.6% Foreign package travel (margin scheme)
    S0 Zero-rated 0% 0% 0% 0% Housing rents, healthcare, education, insurance & finance, social security, postal services, foreign transport, gambling, exports
    R3 Special 0% 0% 0% 0% Newspapers pre-2013; no products assigned since 2013

    Mixed rates (M1, M2) — margin scheme

    Package travel sold as a travel agent service (matkatoimistopalvelu) is taxed under the VAT margin scheme: VAT is charged on the organiser’s margin, not the full package price. The margin M = customer price − bought-in travel-service costs (VAT-inclusive), and VAT = M × rate / (100 + rate). The M1 and M2 rates in the parameter table are effective rates on the full price — derived from average observed margins. For foreign packages (M2), any portion of the trip where services are supplied outside the EU is VAT-exempt in Finland, so only the taxable portion of the margin contributes to Finnish VAT, making the effective rate substantially lower than for domestic packages (M1).

    2025 reform: 20 product categories were reclassified — domestic transport, books, medicines, accommodation, sports/culture, and hygiene products moved from R2 or S1 to R1, leaving only newspapers & magazines in R2.

  18. EPIDEM — Epidemic Benefits (Individual)
    • Epidemic compensation (epidemiakorvaus — COVID-era, currently €0)
    • Epidemic support (epidemiatuki — COVID-era, currently €0)
TOIMTUKI must always run last among benefit modules

Social assistance (TOIMTUKI, #15) acts as the residual safety-net income. It depends on most other modules' outputs — benefits received, taxes paid, and housing costs — to calculate the remaining gap to the guaranteed minimum income level. Modules 16–17 (VVERO, EPIDEM) are independent and run after TOIMTUKI.

Household-level benefit assignment

For Household-tagged modules, the model aggregates income at the household level, assigns the full benefit to the household head, and records €0 for other members. In the original SAS model, the reference person is pre-assigned in the register data (asko = 1). The Python implementation approximates this by ranking adults by income (highest first), breaking ties by age (oldest first).

Differences from SAS SISU

Benefit-day annualization. This port matches the SAS formula: benefit_days × monthly_rate / TTPaivia where TTPaivia = 21.5. For a full year (260 days), this gives 260/21.5 ≈ 12.093 months’ worth of benefits.

Duration limits. The SAS model supports optional earnings-related benefit duration caps (300/400/500 days depending on work history and age), but these are off by default (APKESTOSIMUL = 0). This port matches the default SAS behavior — no duration caps are applied.

Partial support (osittainen työmarkkinatuki / Yleistuki). In the SAS model, unemployed young adults who have not met the work condition (työssäoloehto) and live with their parents receive reduced benefits based on their parents’ income. The register data provides explicit day counts (dtospv) and parent income (dtopalkk). In our synthetic data, lives_with_parents=True is generated for all child_in_family persons (students, unemployed, employed, inactive), and parent_income is derived from adult income in the same household. The Yleistuki partial support formula is fully implemented (matching SAS OsRaja/OsTarvPros/OsPros). In the Household tab, use the “Lives w/ parents” dropdown (Extra options, ages 18–24) to select parent(s) from non-spouse adults who are 15+ years older; their gross earnings are used as parent income for means-testing.

Reference

About This Tool

SISU Studio is an unofficial Python port of the Finnish SISU microsimulation model, featuring a web-based user interface and pre-generated synthetic data. The original SISU model, maintained by Statistics Finland (Tilastokeskus), uses real administrative register data for official policy analysis.

ℹ️
Educational Use Only

This tool is for example calculations and educational purposes. The simulation code is based on SAS macros from github.com/StatisticsFinland/mikrosimulointi (errors possible in porting).

This project is not endorsed by, affiliated with, or supported by Statistics Finland. For official analysis with real data, see the Tilastokeskus SISU page.

Attribution & Licensing:

See NOTICENOTICE

SISU Studio

SISU Studio is an unofficial Python port of the SISU microsimulation model.

Original Work
The original SISU microsimulation model is developed and maintained by Statistics Finland (Tilastokeskus). The SAS source code is available at: github.com/StatisticsFinland/mikrosimulointi
Licensed under the BSD 3-Clause License. See LICENSE for the full license text.

Derivative Work
This derivative work (SISU Studio) was created by Jesse Lastunen and includes: a Python re-implementation of the SAS simulation modules, a web-based user interface (SISU Studio), a synthetic data generator for educational use, and a REST API layer.

No Endorsement
This project is not endorsed by, affiliated with, or supported by Statistics Finland. The name “SISU” is used solely to identify the microsimulation model being ported. Any errors in the Python implementation are the sole responsibility of the derivative work author.

Porting Caveat
The simulation logic has been translated from SAS to Python. While best efforts have been made to maintain accuracy, porting errors may exist. This tool is intended for educational and example calculations only.
and LICENSEBSD 3-Clause License

Copyright © 2025, Statistics Finland
Copyright © 2025–2026, Jesse Lastunen (derivative work)

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
for full attribution, authorship, and licensing details.

References:

Statistics Finland (2026) SISU microsimulation model (version 26.00) [software]. Helsinki: Tilastokeskus. Available from: github.com/StatisticsFinland/mikrosimulointi

Statistics Finland (2025) SISU-malli: Käyttöopas tulonsiirtojen ja verotuksen mikrosimulointiin [technical manual]. Helsinki: Tilastokeskus. Available from: stat.fi/media/uploads/sisu_kasikirja.pdf

Creator:

Jesse Lastunen, lastunenj(at)gmail.com, policy.fi

Run Configuration ?Configure and launch a simulation. Select legislation year, timing, dataset, and options, then click Run Simulation.

Latest Results ?Key indicators after a simulation: Gini, poverty rate, mean/median income, fiscal totals. All annual amounts using equivalized disposable income.

Run a simulation to see configuration.
Run a simulation to see results.

Simulations ?Simulation queue and history. Runs show progress inline; click completed entries to load results.

No simulations yet.

Module & Timing ?Select which module’s legislation parameters to view. Parameters auto-load when any selector changes.

Parameter Presets ?Save parameter modifications as named presets for reuse. Presets store only edits (deltas from baseline), not full snapshots.

Name and save parameter combinations for reuse.

Saved Presets

No presets saved yet.

Parameter Editor ?Edit parameter values to create reform scenarios. Changed values highlight in orange. Organized in collapsible groups.

Edit parameter values below or import values from illustrative reforms or other years. Click "Create New Preset" to save.

Import from ?Import another year’s legislation or an illustrative reform as overrides.
Select module and click Load Parameters.

Analysis Mode ?Load simulation results for distributional analysis. Single Run examines one simulation; Compare Runs shows baseline vs reform side-by-side.

Fiscal Aggregates: Taxes ?Tax revenue by module with household/individual counts and per-person averages.

Tax revenue and contribution collection by module (annual, weighted), all non-zero modules. Counts for Total Tax, Contribution & Fee Collections only include households and individuals paying any taxes, contributions, or fees.

Load analysis to see tax aggregates.

Fiscal Aggregates: Benefits ?Benefit spending by module with household/individual counts and per-person averages.

Benefit spending by module (annual, weighted), all non-zero modules. Counts for Total Benefit Spending only include households and individuals receiving any benefits.

Load analysis to see benefit aggregates.

Taxes by Ventile ?Mean taxes per person by income ventile (20 groups), stacked by module. Line shows taxes as % of income.

Mean annual taxes per person by equivalized income ventile, all non-zero modules

Benefits by Ventile ?Mean benefits per person by income ventile, stacked by type. Line shows benefits as % of income.

Mean annual benefits per person by equivalized income ventile, all non-zero modules

Income & Tax Concentration ?Share of individuals, gross income, and taxes by income bracket (working-age earners).

Share of individuals, gross income, and taxes paid by income bracket (working-age earners)

Redistribution Profile ?Net transfer (benefits minus taxes) per person by market-income ventile.

Mean annual net transfer (benefits − taxes) per person by market-income ventile.

Decile Summary ?Population, income, taxes, benefits, effective tax rate, and poverty by equivalized income decile.

Per-person weighted means by equivalized disposable income decile. Effective Tax Rate = taxes / market income. Disp. Income column shows % change from market income in brackets.

Load analysis to see decile summary.

Distributional Indicators ?Gini (market/disposable), poverty rates, mean/median income, S80/S20, P90/P10, Reynolds-Smolensky, Kakwani.

Distributional and progressivity indicators

Load analysis to see indicators.

Poverty & Median Income by Demographics ?At-risk-of-poverty rates and median income by age group, sex, household type.

At-risk-of-poverty rates and median equivalized income by demographic group

Load analysis to see poverty and income indicators.

Poverty & Median Income by Labor Status, Education ?At-risk-of-poverty rates and median income by employment status and education.

At-risk-of-poverty rates and median equivalized income by economic activity

Load analysis to see poverty and income indicators.

Poverty Thresholds & Income ?Poverty lines and income of the poor at multiple thresholds.

Poverty lines and income of the poor at 60/50/40% thresholds

Load analysis to see poverty and income indicators.

Poverty Rate & Gap ?Poverty rates and gap measures at multiple thresholds.

Poverty rates and gap measures at 60/50/40% thresholds

Load analysis to see poverty and income indicators.

Income Distribution ?Histogram of equivalized disposable income across the population.

Distribution of annual equivalized disposable income across the population (person-weighted)

Age Distribution ?Population count by 5-year age group with income share overlay.

Population count by 5-year age group (person-weighted). Line shows each group’s share of total equivalized disposable income.

EMTR Components ?Mean EMTR decomposed into tax increase and benefit withdrawal by wage bracket. Each person’s wage perturbed by €100/month.

Mean EMTR decomposed into tax increase and benefit withdrawal by wage bracket (working-age earners, 18–64). EMTR = 1 − ΔDisposable/ΔGross, using €100/month per-person wage perturbation.

EMTR Spread by Income ?Distribution of individual EMTR (P5/mean/median/P95) within each wage bracket.

Distribution of individual EMTR (P5, mean, median, P95) within each wage bracket (working-age earners, 18–64). Wide spreads indicate household circumstances cause different marginal rates at similar earnings.

EMTR Distribution ?Kernel density of individual EMTR for working-age population with median line.

Kernel density of individual EMTR across working-age wage earners (18–64). Vertical dashed line marks the median.

Participation Tax Rate (PTR) Distribution ?Kernel density of entry PTR for unemployed using Heckman-corrected wage predictions.

Kernel density of entry PTR for unemployed benefit recipients. Wages predicted via Heckman two-step selection model; PTR = 1 − (Disposable, employed − Disposable, unemployed) / Predicted Wage.

Lorenz Curve ?Cumulative income share vs cumulative population. Gap from diagonal = inequality.

Cumulative market income and disposable income share vs cumulative population. Dashed = perfect equality.

PTR by Predicted Wage Quintile & Benefit Group ?Median entry PTR by predicted wage quintile and benefit group.

Median entry PTR by predicted-wage quintile and benefit group for unemployed recipients. ER = earnings-related, Basic/LMS = basic / labor market / yleistuki.

Average Income Tax Rate by Gross Earnings ?Weighted average income tax rate by €500 earnings bin. Shaded band shows P2.5–P97.5 spread.

Weighted average income tax rate by €500 gross earnings bin (wage earners ≥€500). Shaded band = smoothed P2.5–P97.5 spread. ATR = income taxes / market income (excludes social contributions, property tax, VAT, and fees).

Marginal Tax Rate for Wage Earners ?Statutory MTR for a standard wage earner in €500 bins. Shows selected year plus prior years.

Statutory MTR for a standard wage earner (age 40, church member) in €500 bins. Includes income taxes and employee social contributions; excludes employer costs, VAT, property tax. Lines show selected year and prior years.

Household & Members ?Define up to 4 adults and 6 children. Each adult has employment status, earnings, and optional extra fields (disability, church membership, sick leave, etc.).

Adult 1

Settings ?Configure simulation year, parameter timing, reform preset, unemployment model, and the earnings range for budget constraint graphs.

Vary the selected adult's earnings to compute income composition and labor incentive curves.

Income Breakdown ?Monthly or annual tax-benefit breakdown for the household at the specified earnings level.

Run a household simulation to see tax-benefit breakdown.

Household Configuration ?Define the household or import from the Household tab. Import copies all members, housing, municipality, mortgage, and sets Base Year to the HH tab’s Simulation Year.

Select a preset or import from the Household tab.

Multiyear Settings ?Configure year range, timing, toggles, and indexation. Use ‘Import Settings from HH Tab’ to copy timing, unemployment model, toggles, and mortgage rate from the Household tab.

Index Tables ?Editable growth rates and mortgage interest rates. Cumulative index values recompute from 2020 base when you edit a cell.

Loading index data...

About Datasets ?Overview of available dataset pipeline versions and their validation approach.

Pre-generated synthetic population datasets are available in two pipeline versions:

  • v3 Tax Admin — incomes from Finnish Tax Administration percentile distributions, validated against ~92 per-group tax/benefit checks
  • v2 StatFin — incomes from StatFin age×sex means with two-pass calibration, validated against 17 transfer totals + inequality metrics

Select a dataset from the browser to view its statistics and validation results.

Datasets ?Browse and select pre-generated synthetic population datasets.

No datasets generated yet.

Export Data ?Download simulation microdata or summary statistics from any completed run, or compare two runs side-by-side.

Export microdata or summary statistics from completed simulation runs. Single Run exports one run; Compare Runs includes baseline/reform/delta/pct_change columns; Multiple Export bundles selected runs into a ZIP. Exported Parquet/CSV files can be re-imported via “Import from File” in the Simulation tab. See the Guide tab for descriptions of each dataset type.

All Simulation Runs ?List of all simulation runs with configuration details and timestamps.

No runs yet.

Audit Log ?Chronological log of all API actions during this session.