Version 0.7.0: Kantonstarife 2026 (taxCH_AI/AR/SG/GR)
This commit is contained in:
@@ -61,3 +61,34 @@ li_rates.each do |limit, rate|
|
||||
prev = [limit, rate]
|
||||
end
|
||||
write_table('taxLI2026', pts)
|
||||
|
||||
# --- Swiss cantons: the "einfache Staatssteuer" for single persons, before the Steuerfuss and
|
||||
# without municipal and church tax. Source: ESTV Kantonsblätter (Steuerinformationen 2026).
|
||||
# Each tariff is a list of [width, rate] pieces; above the last piece one flat rate applies to
|
||||
# the whole income (the cantons call this "für das ganze Einkommen").
|
||||
def staircase(pieces, flat_rate, expect_limit)
|
||||
acc = 0.0
|
||||
start = 0
|
||||
pts = []
|
||||
pieces.each do |width, rate|
|
||||
pts << [start, acc, rate]
|
||||
acc += width * rate / 100.0
|
||||
start += width
|
||||
end
|
||||
raise "limit #{start} != #{expect_limit}" unless start == expect_limit
|
||||
|
||||
pts << [start, start * flat_rate / 100.0, flat_rate]
|
||||
end
|
||||
|
||||
# AI: Art. 38 StG
|
||||
write_table('taxCH_AI2026', staircase([[3_000, 0], [3_000, 1], [3_000, 2], [3_000, 3], [3_000, 4], [3_000, 5], [4_000, 6],
|
||||
[4_000, 7], [4_000, 7.5], [10_000, 8], [34_000, 8.5], [66_000, 9], [60_000, 8.5]], 8, 200_000))
|
||||
# AR: Art. 39 Abs. 1 lit. b StG (Alleinstehendentarif, Beträge ab Steuerperiode 2024); multiplied by the Steuereinheiten
|
||||
write_table('taxCH_AR2026', staircase([[8_300, 0], [1_600, 0.6], [1_600, 1.0], [4_200, 1.5], [11_500, 1.8], [14_600, 2.2],
|
||||
[12_500, 2.4], [19_800, 2.6], [14_600, 2.7], [36_500, 2.8], [135_600, 2.9]], 2.6, 260_800))
|
||||
# SG: Art. 50 StG (Beträge ab Steuerperiode 2026)
|
||||
write_table('taxCH_SG2026', staircase([[11_600, 0], [4_200, 4], [18_000, 6], [26_500, 8], [38_100, 9.2], [166_100, 9.4]], 8.5, 264_500))
|
||||
# GR: Art. 39 Abs. 1 StG (indexierte Beträge ab Steuerperiode 2025)
|
||||
write_table('taxCH_GR2026', staircase([[16_895, 0], [1_090, 2.5], [1_090, 4], [1_090, 5], [1_090, 6], [1_090, 6.5], [2_180, 7],
|
||||
[6_540, 8], [4_360, 8.5], [4_360, 9], [4_360, 9.5], [21_800, 10.3], [21_800, 10.6],
|
||||
[21_800, 10.7], [109_000, 11.2], [109_000, 11.3], [109_000, 11.4], [343_895, 11.6]], 11.0, 780_440))
|
||||
|
||||
Reference in New Issue
Block a user