calculadora

 

 

.iar-app { --iar-bg: #ffffff; --iar-surface: #f6f8f7; --iar-border: #dfe5e2; --iar-text: #16211d; --iar-muted: #667873; --iar-brand: #0b6b4f; --iar-brand-soft: #e6f2ee; --iar-accent: #c8a020; --iar-good: #0b6b4f; --iar-radius: 12px; font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: var(--iar-text); background: var(--iar-bg); line-height: 1.45; max-width: 1080px; margin: 0 auto; padding: 20px 16px 40px; font-size: 15px; }

.iar-app h1, .iar-app h2, .iar-app h3 { margin: 0; font-weight: 700; letter-spacing: -0.01em; color: var(--iar-text); } .iar-app h1 { font-size: 24px; } .iar-app h2 { font-size: 16px; text-transform: uppercase; letter-spacing: .06em; color: var(--iar-brand); } .iar-app p { margin: 0; }

.iar-head { border-bottom: 3px solid var(--iar-brand); padding-bottom: 14px; margin-bottom: 22px; } .iar-head p { color: var(--iar-muted); font-size: 14px; margin-top: 6px; max-width: 70ch; }

.iar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; } @media (max-width: 820px) { .iar-grid { grid-template-columns: 1fr; } }

.iar-card { background: var(--iar-surface); border: 1px solid var(--iar-border); border-radius: var(--iar-radius); padding: 16px; } .iar-card + .iar-card { margin-top: 18px; } .iar-card h2 { margin-bottom: 12px; }

/* ---- Parámetros ---- */ .iar-param { display: grid; grid-template-columns: 1fr 130px; gap: 8px 10px; align-items: center; padding: 5px 0; } .iar-param label { font-size: 14px; color: var(--iar-text); } .iar-param .iar-hint { display: block; font-size: 12px; color: var(--iar-muted); }

.iar-app input[type="number"], .iar-app input[type="text"] { width: 100%; padding: 7px 9px; border: 1px solid var(--iar-border); border-radius: 8px; background: #fff; color: var(--iar-text); font-family: inherit; font-size: 14px; text-align: right; -moz-appearance: textfield; } .iar-app input[type="number"]:focus, .iar-app input[type="text"]:focus { outline: 2px solid var(--iar-brand); outline-offset: 1px; border-color: var(--iar-brand); } .iar-app input::-webkit-outer-spin-button, .iar-app input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* ---- Tabla de categorías ---- */ .iar-tablewrap { overflow-x: auto; } .iar-table { width: 100%; border-collapse: collapse; min-width: 560px; } .iar-table th, .iar-table td { padding: 10px 8px; border-bottom: 1px solid var(--iar-border); text-align: right; font-size: 14px; vertical-align: middle; } .iar-table th { font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--iar-muted); font-weight: 600; border-bottom: 2px solid var(--iar-border); } .iar-table th:first-child, .iar-table td:first-child { text-align: left; } .iar-table td.iar-cat { font-weight: 600; } .iar-table td.iar-cat small { display: block; font-weight: 400; font-size: 12px; color: var(--iar-muted); } .iar-pct { width: 96px; margin-left: auto; position: relative; } .iar-pct input { padding-right: 24px; } .iar-pct span { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); color: var(--iar-muted); font-size: 13px; pointer-events: none; } .iar-sub { font-variant-numeric: tabular-nums; white-space: nowrap; } .iar-table tfoot td { border-bottom: none; border-top: 2px solid var(--iar-brand); font-weight: 700; font-size: 16px; padding-top: 14px; }

/* ---- Resultados ---- */ .iar-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 18px; } @media (max-width: 700px) { .iar-results { grid-template-columns: 1fr; } } .iar-kpi { background: var(--iar-brand-soft); border: 1px solid #cbe3da; border-radius: var(--iar-radius); padding: 14px 16px; } .iar-kpi .iar-k { font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--iar-brand); font-weight: 600; } .iar-kpi .iar-v { font-size: 26px; font-weight: 700; margin-top: 4px; font-variant-numeric: tabular-nums; } .iar-kpi .iar-s { font-size: 12px; color: var(--iar-muted); margin-top: 2px; } .iar-kpi.iar-main { background: var(--iar-brand); border-color: var(--iar-brand); } .iar-kpi.iar-main .iar-k { color: #b9e2d3; } .iar-kpi.iar-main .iar-v, .iar-kpi.iar-main .iar-s { color: #fff; } .iar-kpi.iar-main .iar-s { opacity: .85; }

/* ---- Barras de aporte ---- */ .iar-bars { margin-top: 18px; } .iar-bar { display: grid; grid-template-columns: 170px 1fr 120px; gap: 10px; align-items: center; padding: 4px 0; font-size: 13px; } @media (max-width: 560px) { .iar-bar { grid-template-columns: 110px 1fr 100px; font-size: 12px; } } .iar-bar .iar-track { background: #e4eae7; border-radius: 6px; height: 10px; overflow: hidden; } .iar-bar .iar-fill { height: 100%; background: var(--iar-brand); border-radius: 6px; transition: width .25s ease; } .iar-bar .iar-val { text-align: right; font-variant-numeric: tabular-nums; color: var(--iar-muted); }

.iar-actions { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; } .iar-btn { font-family: inherit; font-size: 14px; font-weight: 600; padding: 9px 16px; border-radius: 8px; cursor: pointer; border: 1px solid var(--iar-brand); background: var(--iar-brand); color: #fff; } .iar-btn.iar-ghost { background: #fff; color: var(--iar-brand); } .iar-btn:hover { filter: brightness(1.08); }

.iar-note { font-size: 12px; color: var(--iar-muted); margin-top: 18px; border-top: 1px solid var(--iar-border); padding-top: 12px; } .iar-note strong { color: var(--iar-text); }

@media print { .iar-actions { display: none; } .iar-app { max-width: none; } }

Calculadora de retorno de inversión

Estime el ahorro anual y el tiempo de retorno de su inversión en tecnología de medición, alimentación e identificación para el hato lechero. Ajuste los parámetros de su finca y asigne, según su propio criterio, el porcentaje del beneficio que considera alcanzable en cada categoría.

Parámetros del hato

Inversión

—

Beneficios anuales

Categoría Valor base anual % aplicado Beneficio
Días abiertosValor día abierto × días × vacas —
%
—
AlimentaciónCosto anual de concentrado del hato —
%
—
MastitisValor anual de la leche producida · referencia 5% a 10% —
%
—
Mano de obraSalario × prestaciones × 12 meses —
%
—
Incremento de producciónLitros adicionales × precio × vacas × días —
%
—
Ahorro / beneficio total anual —
Días abiertos

0%

Alimentación

0%

Mastitis

0%

Mano de obra

0%

Incremento producción

0%

Retorno de inversión
—
meses
Beneficio anual
—
COP por año
Beneficio mensual
—
COP por mes

Cómo leer el porcentaje: el «valor base anual» es el monto total que está en juego en esa categoría. El porcentaje que usted escribe indica qué parte de ese valor considera recuperable con la tecnología, según su criterio y las condiciones de su finca. Los valores sugeridos son de referencia; los resultados son una estimación y no constituyen una garantía de rendimiento.

var defaults = { p_prod: 17, p_precio: 2200, p_vacas: 50, p_dias: 47, p_salario: 2000000, p_prest: 1.53, p_conc: 2000, p_consumo: 3, p_incr: 1, p_periodo: 365, p_inv: 236270000, pct_dias: 100, pct_alim: 10, pct_mast: 5.3, pct_mano: 100, pct_incr: 100 };

function calc() { var prod = num('p_prod'); var precio = num('p_precio'); var vacas = num('p_vacas'); var dias = num('p_dias'); var salario = num('p_salario'); var prest = num('p_prest'); var conc = num('p_conc'); var consumo = num('p_consumo'); var incr = num('p_incr'); var periodo = num('p_periodo'); var inv = num('p_inv');

// Valor del día abierto = litros/día × precio del litro var valorDiaAbierto = prod * precio;

// Bases anuales var baseDias = valorDiaAbierto * dias * vacas; // días abiertos var baseAlim = conc * consumo * periodo * vacas; // costo anual de concentrado var baseMast = vacas * precio * prod * periodo; // valor anual de la leche var baseMano = salario * prest * 12; // costo anual del colaborador var baseIncr = incr * precio * periodo * vacas; // litros adicionales valorizados

var subDias = baseDias * num('pct_dias') / 100; var subAlim = baseAlim * num('pct_alim') / 100; var subMast = baseMast * num('pct_mast') / 100; var subMano = baseMano * num('pct_mano') / 100; var subIncr = baseIncr * num('pct_incr') / 100;

var total = subDias + subAlim + subMast + subMano + subIncr; var meses = total > 0 ? (inv / total) * 12 : Infinity;

$('out_diaabierto').textContent = money(valorDiaAbierto);

$('base_dias').textContent = money(baseDias); $('base_alim').textContent = money(baseAlim); $('base_mast').textContent = money(baseMast); $('base_mano').textContent = money(baseMano); $('base_incr').textContent = money(baseIncr);

$('sub_dias').textContent = money(subDias); $('sub_alim').textContent = money(subAlim); $('sub_mast').textContent = money(subMast); $('sub_mano').textContent = money(subMano); $('sub_incr').textContent = money(subIncr);

$('out_total').textContent = money(total); $('out_total2').textContent = money(total); $('out_mensual').textContent = money(total / 12);

if (isFinite(meses) && meses > 0) { $('out_meses').textContent = meses.toLocaleString('es-CO', { minimumFractionDigits: 1, maximumFractionDigits: 1 }); var anios = meses / 12; $('out_meses_sub').textContent = 'meses · ' + (Math.round(anios * 10) / 10).toLocaleString('es-CO', { minimumFractionDigits: 1, maximumFractionDigits: 1 }) + ' años'; } else { $('out_meses').textContent = '—'; $('out_meses_sub').textContent = 'defina al menos un beneficio'; }

var parts = [['dias', subDias], ['alim', subAlim], ['mast', subMast], ['mano', subMano], ['incr', subIncr]]; parts.forEach(function (p) { var share = total > 0 ? (p[1] / total) * 100 : 0; $('bar_' + p[0]).style.width = share.toFixed(1) + '%'; $('shr_' + p[0]).textContent = share.toFixed(1).replace('.', ',') + '%'; });

notifyHeight(); }

Object.keys(defaults).forEach(function (id) { var el = $(id); if (el) { el.addEventListener('input', calc); el.addEventListener('change', calc); } });

$('iarReset').addEventListener('click', function () { Object.keys(defaults).forEach(function (id) { var el = $(id); if (el) el.value = defaults[id]; }); calc(); });

// Permite que el iframe de WordPress se ajuste a la altura del contenido var lastH = 0; function notifyHeight() { if (window.parent === window) return; var h = document.documentElement.scrollHeight; if (Math.abs(h - lastH) > 4) { lastH = h; window.parent.postMessage({ iarCalcHeight: h }, '*'); } } window.addEventListener('resize', notifyHeight);

calc(); })();