32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
"""Bulgaria regime — 10% flat tax on worldwide income.
|
|
|
|
Article 48 of the Personal Income Tax Act sets a flat 10% on
|
|
worldwide income for residents. Capital gains on EU/EEA-listed
|
|
securities held over the relevant holding period are exempt
|
|
(Art 13(1)(3)) — most of our portfolio qualifies. We approximate
|
|
all capital gains as 10% to be conservative (CGT on US-listed
|
|
ETFs from a Bulgarian resident is contested terrain; many funds
|
|
the planner holds are Irish UCITS so the EU exemption likely
|
|
applies, but we don't optimise for that here).
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from decimal import Decimal
|
|
|
|
from fire_planner.tax.base import TaxBreakdown, TaxInputs, TaxRegime
|
|
|
|
FLAT_RATE = Decimal("0.10")
|
|
|
|
|
|
class BulgariaTaxRegime(TaxRegime):
|
|
name = "bulgaria"
|
|
|
|
def compute_tax(self, inputs: TaxInputs) -> TaxBreakdown:
|
|
chargeable = (inputs.earned_income + inputs.pension_withdrawal + inputs.capital_gains +
|
|
inputs.dividends + inputs.interest)
|
|
return TaxBreakdown(
|
|
income_tax=(inputs.earned_income + inputs.pension_withdrawal) * FLAT_RATE,
|
|
capital_gains_tax=inputs.capital_gains * FLAT_RATE,
|
|
dividend_tax=(inputs.dividends + inputs.interest) * FLAT_RATE,
|
|
notes=("bulgaria-flat", f"chargeable={chargeable}"),
|
|
)
|