Spaces:
Runtime error
Runtime error
File size: 1,846 Bytes
b60b332 ba1a530 b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f b60b332 7ac420f ba1a530 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
import pandas as pd
import plotly.express as px
# Valores de Junio 2022
TRAMOS = {
777000: 0,
1727000: 0.04,
2878000: 0.08,
4029000: 0.135,
5180000: 0.23,
6906000: 0.304,
17842000: 0.35,
99999999: 0.4,
}
TRAMOS_REFORMA = {
777000: 0,
1727000: 0.04,
2878000: 0.08,
4030000: 0.135,
5242320: 0.26,
6331000: 0.35,
8057000: 0.40,
99999999: 0.43,
}
def descomponer_en_tramos(sueldo_bruto, tramos=TRAMOS):
"""
Descompone un sueldo bruto en tramos de impuesto
"""
descomp = []
impuestos = []
tramo_anterior = 0
for tramo, descuento in tramos.items():
delta = min(sueldo_bruto, tramo) - tramo_anterior
if delta > 0:
descomp.append(delta)
impuestos.append(int(delta * descuento))
tramo_anterior = tramo
return descomp, impuestos
def get_table(sueldo_bruto, tramos=TRAMOS):
"""
Tabla de Impuestos por tramo
"""
_tramos = [0] + list(tramos.keys())
tasas = tramos.values()
data = list(
zip(
_tramos[:-1],
_tramos[1:],
tasas,
*descomponer_en_tramos(sueldo_bruto, tramos)
)
)
df = pd.DataFrame(
data=data,
columns=["Desde", "Hasta", "Tasa", "Monto sujeto a impuesto", "Impuesto"],
)
return df
salarios = [450_000, 1000_000, 1_500_000, 2_000_000, 3_000_000, 5_000_000, 8_000_000, 10_000_000, 15_000_000]
def get_curve(descuentos):
def beneficios(s):
return max(s - descuentos, 0)
DF_CURVA = pd.DataFrame(columns=["actual", "reforma"], index=salarios)
DF_CURVA["actual"] = [sum(descomponer_en_tramos(s, TRAMOS)[1]) for s in salarios]
DF_CURVA["reforma"] = [sum(descomponer_en_tramos(beneficios(s) , TRAMOS_REFORMA)[1]) for s in salarios]
return px.line(DF_CURVA) |