AFFO
Vea el efectivo que genera de verdad una cartera inmobiliaria: un beneficio neto de 180.000 más 95.000 de depreciación, menos 12.000 de ganancias por ventas, da un FFO de 263.000; al restar 30.000 de inversión de mantenimiento queda un AFFO de 233.000. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Ingreso neto
- 180 000
- Depreciación y amortización
- 95 000
- Ganancias por ventas
- 12 000
- CAPEX de mantenimiento
- 30 000
- AFFO
- 233 000
- Ffo
- 263 000
Los fondos ajustados de operaciones son la cifra en la que los analistas de REIT realmente confían, porque el beneficio neto nunca se diseñó para negocios inmobiliarios. La depreciación reduce los resultados declarados de activos que a menudo se revalorizan, y las ganancias puntuales por ventas los inflan.
Por qué el beneficio neto no basta en el sector inmobiliario
Según las normas contables habituales, las propiedades de inversión se deprecian a lo largo de su vida útil estimada, lo que reduce de forma constante el beneficio neto declarado incluso cuando el edificio mantiene o aumenta su valor de mercado. Esto hace que las comparaciones de beneficio por acción entre REIT y empresas ordinarias resulten engañosas, y es la razón por la que el sector adoptó los fondos de operaciones como métrica de referencia.
La calculadora de fondos ajustados de operaciones parte del beneficio neto y revierte las dos distorsiones: vuelve a sumar la depreciación y la amortización, que es un cargo no monetario, y resta las ganancias por ventas de propiedades, porque vender un edificio es un evento de financiación, no un resultado operativo en el que se pueda confiar el próximo trimestre.
Lo que queda es una visión más limpia del efectivo que una cartera genera realmente al alquilar y operar sus activos, periodo tras periodo, sin el ruido de convenciones contables pensadas para fábricas y no para bienes inmuebles productores de rentas.
Del FFO al AFFO: el paso del capex de mantenimiento
El FFO corrige el beneficio neto, pero todavía favorece al negocio, porque los edificios se desgastan. Los tejados, los ascensores, las fachadas, los sistemas de climatización y las mejoras para inquilinos requieren un gasto recurrente solo para mantener los ingresos por alquiler donde están, y ese gasto nunca aparece en el FFO.
Los fondos ajustados de operaciones van un paso más allá y restan los gastos de capital de mantenimiento: la parte recurrente del capex que mantiene la actividad en marcha, a diferencia del capex de crecimiento dedicado a adquisiciones o promociones. El resultado, el AFFO, es la aproximación más utilizada al flujo de caja distribuible de una cartera inmobiliaria, y es la cifra sobre la que suelen construirse los ratios de cobertura de dividendos y los múltiplos de AFFO.
Qué puede hacer con ella
Cribar REIT por múltiplos de AFFO
Introduzca las cifras trimestrales de los informes en un trabajo por lotes y ordene un universo de REIT por precio sobre AFFO sin mantener la fórmula en cada script.
Comprobar la cobertura del dividendo
Compare el AFFO por acción con el dividendo declarado cada trimestre para señalar pagos que el flujo de caja recurrente no respalda realmente.
Normalizar resultados en una cartera
Reexprese el beneficio neto de las inmobiliarias en términos de AFFO para que los trimestres con ventas de activos sigan siendo comparables con los que no las tienen.
Preguntas frecuentes
¿Cuánto cuesta?
También es gratis ejecutarlo en su navegador en esta página.
¿Cuál es la fórmula?
AFFO = beneficio neto + depreciación y amortización - ganancias por ventas de propiedades - gastos de capital de mantenimiento. También se devuelve el FFO intermedio.
¿Puede ser negativo el beneficio neto?
Sí. Una pérdida neta es una entrada válida y simplemente produce un AFFO más bajo. Los otros tres campos deben ser cero o positivos.
¿Se almacena algún dato?
No. Los cuatro números se procesan en memoria y se descartan; solo se devuelve el resultado calculado.
¿Admite distintas monedas o conversión por acción?
No. Todas las entradas deben estar en las mismas unidades monetarias, y la división por el número de acciones queda a cargo del llamante. La aritmética en sí es independiente de la moneda.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/fin/affo \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"net_income":180000,"depreciation_amortization":95000,"gains_on_sales":12000,"maintenance_capex":30000}'const res = await fetch("https://api.kit.forhosting.com/fin/affo", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"net_income": 180000,
"depreciation_amortization": 95000,
"gains_on_sales": 12000,
"maintenance_capex": 30000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/affo",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"net_income": 180000,
"depreciation_amortization": 95000,
"gains_on_sales": 12000,
"maintenance_capex": 30000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/affo", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"net_income":180000,"depreciation_amortization":95000,"gains_on_sales":12000,"maintenance_capex":30000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"net_income":180000,"depreciation_amortization":95000,"gains_on_sales":12000,"maintenance_capex":30000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/affo", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"net_income": 180000,
"depreciation_amortization": 95000,
"gains_on_sales": 12000,
"maintenance_capex": 30000
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.affo",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Esta API toma cuatro cifras — beneficio neto, depreciación y amortización, ganancias por ventas y gastos de capital de mantenimiento — y devuelve el AFFO en una sola llamada determinista, junto con los fondos de operaciones intermedios (FFO), de modo que usted pueda incorporarlo directamente a un modelo de valoración, un script de cribado o un proceso de resultados sin reconstruir la fórmula a mano cada trimestre.
Del FFO al AFFO: el paso del capex de mantenimiento
Este endpoint devuelve ambos números: el FFO intermedio y el AFFO final, cada uno redondeado a céntimos, para que usted vea exactamente qué parte de la diferencia entre ambos explica el gasto de capital recurrente del periodo que analiza.
Entradas, validación y cómo integrarlo
La llamada acepta cuatro campos numéricos obligatorios: net_income, que puede ser negativo cuando el periodo cerró en pérdidas; depreciation_amortization, gains_on_sales y maintenance_capex, que deben ser cero o positivos y estar expresados en las mismas unidades monetarias. Cualquier valor ausente, que no sea un número o que no sea finito se rechaza con un error invalid_input, y las solicitudes que no superan la validación no se facturan. El cálculo es aritmética pura, sin acceso a la red ni estado almacenado, de modo que las mismas entradas devuelven siempre los mismos resultados, lo que hace seguro llamar al endpoint dentro de cribadores por lotes, trabajos programados de resultados o comprobaciones previas a operaciones. Se ejecuta en nuestra red global de borde, y el mismo código funciona gratis en su navegador en esta página: pegue cuatro números para comprobar una cifra a mano, y pague solo el $0.002 por solicitud cuando lo conecte a sus propios sistemas y automatice el flujo de trabajo.
Preguntas técnicas
¿Qué ocurre si falta una entrada o no es un número?
La solicitud se rechaza con un error invalid_input que indica el campo en cuestión, y las solicitudes fallidas no se facturan.