Criterio del valor presente.
$$PV(r) = \sum_{t=0}^N \frac{F_t}{(1+r)^t}$$Criterio del valor futuro.
$$FV(r) = \sum_{t=0}^N \frac{F_t}{(1+r)^{N-t}}$$Criterio del equivalente uniforme períodico.
$$UPE(r) = PV(r) * \frac{r * (1+r)^N}{(1+r)^N-1}$$Nota 1. $r$ es la MARR y puede variar de período a período.
Nota 2. El $PV(r)$ representa el excedente que se gana sobre la alternativa de invertir a una tasa de $r$.
timevalue(cflo, marr, base_date=0)
donde:
cflo
-- flujo neto de efectivo.marr
-- tasa mínima atractiva de retorno.base_date
-- período base para calcular el valor equivalente.La función retorna el valor único equivalente. Para base_date=0
corresponde al valor presente neto; para base_date = nper
corresponde al valor futuro neto.
Ejemplo.-- Calcule los indicadores para el siguiente flujo de efectivo, si la tasa de descuento es del 10%.
In [1]:
import cashflows as cf
cflo = cf.cashflow(const_value=[-1000, 400, 360, 320, 280, 240], start=2000)
cflo
Out[1]:
In [2]:
## valor presente neto
cf.timevalue(cflo = cflo,
prate = cf.interest_rate([10]*6, start=2000))
Out[2]:
In [3]:
## valor futuro neto
cf.timevalue(cflo = cflo,
prate = cf.interest_rate([10]*6, start=2000),
base_date = 5 )
Out[3]:
In [4]:
## la función puede recibir simultaneamente varios flujos de efectivo
cf.timevalue(cflo = [cflo, cflo, cflo],
prate = cf.interest_rate([10]*6, start=2000))
Out[4]:
Ejemplo.-- Calcule la irr para el ejemplo anterior.
In [6]:
import cashflows as cf
cflo = cf.cashflow(const_value=[-1000, 400, 360, 320, 280, 240], start=2000)
cf.irr(cflo)
Out[6]:
In [7]:
cf.irr([cflo, cflo, cflo])
Out[7]:
In [8]:
cf.mirr(cflo=cflo, finance_rate=0, reinvest_rate=0)
Out[8]:
Se realiza variando una de las variables del problema para determinar el efecto en el indicador utilizado.
Ejemplo.-- Se tiene un proyecto con la siguiente información:
$
10 por unidad$
220 por año$
2000 depreciables a 10 años.Construya la gráfica de sensibilidad del npv a la producción, el precio de venta y la inversión.
In [10]:
## se construye una función que recibe la información
## relevante y retorn el npv
def project(marr,
produccion,
precio,
costo,
inversion):
# ingresos operativos
ingre = cf.cashflow(const_value=[0] + [precio*produccion]*10, start=2018)
# costos operativos
opera = cf.cashflow(const_value=[0] + [costo]*10, start=2018)
# inversión
inver = cf.cashflow(const_value=[inversion] + [0]*10, start=2018)
# vida útil de la inversión
life = cf.cashflow(const_value=[10] + [0]*10, start = 2018)
# depreciación
dep = cf.depreciation_sl(costs=inver, life=life)['Depr']
# utilidad antes de impuestos
antes = ingre - opera - inver - dep
tax_rate = cf.interest_rate(const_value=[30]*11, start=2018)
impue = cf.after_tax_cashflow(antes, tax_rate=tax_rate)
neto = antes + impue
npv = cf.timevalue(cflo=neto, prate=cf.interest_rate([marr]*11, start=2018))
return npv
In [11]:
project(marr=10, produccion=100, precio=10, costo=220, inversion=2000)
Out[11]:
In [12]:
## resultados para diferentes valores de la MARR
x=[]
for i in [8, 10, 12]:
x.append(project( i, 100, 10, 220, 2000))
x
Out[12]:
In [13]:
## resultados para diferentes valores de la inversión
[project(10, 100, 10, 220, x) for x in [1600, 1800, 2000, 2200, 2400]]
Out[13]:
In [14]:
## resultados para diferentes valores del precio
[project(10, 100, x, 220, 2000) for x in [8, 9, 10, 11, 12]]
Out[14]:
In [15]:
import matplotlib.pyplot as plt
%matplotlib inline
In [16]:
precio = [8, 9, 10, 11, 12]
y = [project(0.10, 100, x, 220, 2000) for x in precio]
In [17]:
plt.plot(precio, y)
Out[17]:
Ejercicio.-- Grafique las sensibilidades al costo y a la producción.