In [1]:
    
import pandas as pd
# Importa la librería financiera.
# Solo es necesario ejecutar la importación una sola vez.
import cashflows as cf
    
La depreciación permite la deducción de los costos de las inversiones (pérdida de valor de ellas) con el fin de reducir el impuesto de renta.
La depreciación en todos los años es igual.
$P$ -- valor de compra en libros.
$N$ -- número de años en que ocurre la depreciación (vida útil del activo).
$D_n$ -- depreciación en el año $n$.
$F$ -- valor de salvamento al final de la vida útil.
Ejemplo.-- Un activo cuesta  $ 200. Si la depreciación ocurre durante 5 años, ¿cuál es su depreciación anual?.
In [2]:
    
costs = cf.cashflow(const_value=0,  # valor 0 por defecto
                    periods=6,      # compra + vida útil
                    start=2000,
                    freq='A')
costs[0] = 200
costs
    
    Out[2]:
In [3]:
    
life  = cf.cashflow(const_value=0, # vida util = 0
                    periods=6,     # compra + vida útil
                    start=2000,
                    freq='A')
life[0]=5 # vida útil del activo
life
    
    Out[3]:
In [4]:
    
cf.depreciation_sl(costs=costs,    # costos de las inversiones 
                   life=life)      # vida útil de cada inversión
    
    Out[4]:
Ejemplo.-- En el año 2001 se compra un activo por valor de $ 200 y en el año 2006 otro activo por valor de $ 300. Los activos tienen vidas útiles de 5 y 10 años respectivamente. Calcule la depreciación total anual para cada año. Haga sus cálculos iniciando en el año 2000.
In [5]:
    
costs = cf.cashflow(const_value=0,   # valor por defecto 
                    periods=20,      # cantidad de períodos
                    start=2000,
                    freq='A')
costs['2001'] = 200
costs['2006'] = 300
costs
    
    Out[5]:
In [6]:
    
life = cf.cashflow(const_value=0,    # valor por defecto 
                   periods=20,       # cantidad de períodos
                   start=2000,
                   freq='A')
life['2001'] = 5
life['2006'] = 10
life
    
    Out[6]:
In [7]:
    
cf.depreciation_sl(costs=costs,    # inversiones
                   life=life)      # vida útil
    
    Out[7]:
En este método de depreciación se hace mayor al principio y más pequeña al final. Se basa en la progresión desde $N$ hasta 1.
$$S = \sum_{i=1}^N i = \frac{1}{2} N(N + 1)$$$$D_n = (P - F) * \frac{(N - n + 1)}{S} = 2 * (P - F) * \frac{N-n+1}{N(N+1)}$$Ejemplo.-- Un activo cuesta  $ 200. Si la depreciación ocurre durante 5 años, ¿cuál es su depreciación anual?.
In [8]:
    
costs = cf.cashflow(const_value=[200]+[0]*5,
                    start=2000,
                    freq='A')
life  = cf.cashflow(const_value=[5]+[0]*5,
                    start='2000',
                    freq='A')
    
In [9]:
    
cf.depreciation_soyd(costs=costs, life=life)
    
    Out[9]:
In [10]:
    
def compute_cf(ingreso_operativo,
               tax_rate,
               depreciacion):
    utilidad_AI = ingreso_operativo - depreciacion
    impuestos   = cf.after_tax_cashflow(utilidad_AI, tax_rate=tax_rate)
    utilidad_DI = utilidad_AI - impuestos
    cashf       = utilidad_DI + depreciacion
    
    return impuestos, cashf
    
In [11]:
    
## impuesto de renta del 35%
tax_rate = cf.interest_rate(const_value=[35]*6, start=2018, freq='A')
## crea el flujo de caja
ingreso_operativo = cf.cashflow(const_value=[0]+[500]*5, start=2018, freq='A') 
## activo depreciable
costs = cf.cashflow(const_value=[200]+[0]*5, start=2018, freq='A')
life  = cf.cashflow(const_value=[5]+[0]*5,   start=2018, freq='A')
    
Caso 1: sin depreciación.
In [12]:
    
depreciacion_1 = cf.cashflow(const_value=[0]*6, start=2018, freq='A') 
impuesto_1, cf_1 = compute_cf(ingreso_operativo, tax_rate, depreciacion_1)
impuesto_1
    
    Out[12]:
In [13]:
    
cf_1
    
    Out[13]:
Caso 2: depreciación en linea recta.
In [14]:
    
## considere un activo depreciable
depreciacion_2 = cf.depreciation_sl(costs=costs, life=life)['Depr']
depreciacion_2
    
    Out[14]:
In [15]:
    
impuesto_2, cf_2 = compute_cf(ingreso_operativo, tax_rate, depreciacion_2)
impuesto_2
    
    Out[15]:
In [16]:
    
cf_2
    
    Out[16]:
Note que en el resultado anterior el ingreso después de impuestos es mayor que en el caso 1.
Caso 3: depreciación acelerada.
In [17]:
    
depreciacion_3 = cf.depreciation_soyd(costs=costs, life=life)['Depr']
depreciacion_3
    
    Out[17]:
In [18]:
    
impuesto_3, cf_3 = compute_cf(ingreso_operativo, tax_rate, depreciacion_3)
impuesto_3
    
    Out[18]:
In [19]:
    
cf_3
    
    Out[19]:
Comparación
In [20]:
    
pd.DataFrame({'impuesto_1':impuesto_1, 'impuesto_2':impuesto_2, 'impuesto_3':impuesto_3}).round(2)
    
    Out[20]:
In [21]:
    
pd.DataFrame({'cf_1':cf_1, 'cf_2':cf_2, 'cf_3':cf_3}).round(2)
    
    Out[21]:
Ejercicio.-- Una empresa de energía eléctrica realiza las siguientes inversiones:
$ 1000 (depreciación en línea recta a 20 años) que entra en funcionamiento en 2018-01.$ 300 (depreciación usando el método de la suma de los dígitos de los años, a 10 años) que entra en operación en 2018-04.$ 250 (depreciación usando el método de la suma de los dígitos de los años, a 10 años) que entra en operación en 2018-08.$ 240 (depreciación usando el método de la suma de los dígitos de los años, a 10 años) que entra en operación en 2019-03.Compute la depreciación total para cada año.
Bibliografía
- [1] SAS/ETS 14.1 User's Guide, 2015.
 - [2] hp 12c platinum financial calculator. User's guide.
 - [3] HP Business Consultant II Owner's manual.
 - [4] C.S. Park and G.P. Sharp-Bette. Advanced Engineering Economics. John Wiley & Sons, Inc., 1990.