Ley 21.643 · Vigente desde agosto 2024

Calculadora Ley Karin (21.643)

Si denunciaste acoso laboral, sexual o violencia en el trabajo y tu empleador no investigó en 30 días, arriesga multas y recargos significativos.

Necesario para estimar la tutela laboral (recargo de 6 a 11 sueldos del Art. 489 CT).

Cálculo instantáneo. No pedimos email para ver el resultado.

¿Quieres que un abogado revise tu caso?

Te conectamos gratis con un abogado especialista en tu materia y región. Tu cálculo llega con contexto completo, así no repites todo desde cero.

Listo. Un abogado revisará tu caso y te contactará pronto. También enviamos un copia del cálculo a tu email.

Preguntas frecuentes sobre la Ley Karin

¿Qué es la Ley Karin?

Ley 21.643 vigente desde agosto 2024 que sanciona el acoso laboral, acoso sexual y violencia en el trabajo. Modifica el Código del Trabajo (Art. 2, 211-A a 211-E, 506-bis) obligando al empleador a tener un protocolo de prevención y a investigar denuncias en 30 días.

¿Cuánto puede ganar el trabajador en juicio?

Si gana tutela laboral (Art. 489 CT): indemnización por años + recargo de 6 a 11 sueldos según la gravedad. Las multas administrativas (hasta 60 UTM) las cobra la Dirección del Trabajo, no el trabajador.

¿Qué obligaciones tiene mi empleador?

Tener protocolo escrito de prevención, recibir denuncias por canal formal, tomar medidas de resguardo inmediatas (3 días hábiles), iniciar investigación interna en 3 días, concluir en 30 días, comunicar resultado a la DT.

¿Cuál es el plazo para denunciar?

Lo antes posible. La denuncia interna no tiene plazo legal pero los hechos deben haber ocurrido en los últimos 60 días hábiles para procedimiento expedito en la Inspección del Trabajo.

Estimación referencial basada en el Código del Trabajo de Chile (valores 2026). No constituye asesoría legal y no reemplaza la opinión de un abogado habilitado. Tus datos sólo se usan para conectarte con el profesional que aceptaste, no se publican.

+ Number(n||0).toLocaleString('es-CL'); } catch(e) { return n; } } function esc(s) { return String(s == null ? '' : s).replace(/[&<>"']/g, function(c){ return ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]); }); } function readInputs(formEl) { var data = {}; var els = formEl.querySelectorAll('input,select'); for (var i = 0; i < els.length; i++) { var el = els[i]; if (!el.name) continue; if (el.type === 'checkbox') data[el.name] = el.checked; else if (el.type === 'number') data[el.name] = el.value === '' ? null : Number(el.value); else data[el.name] = el.value; } return data; } function showErr(msg) { var box = document.getElementById('err-message'); box.textContent = msg; box.style.display = 'block'; } function hideErr() { document.getElementById('err-message').style.display = 'none'; } function fila(label, monto, norma, nota) { return '
' + esc(label) + (norma ? ' · ' + esc(norma) + '' : '') + '
' + (nota ? '
' + esc(nota) + '
' : '') + '' + fmt(monto) + ''; } function renderResult(tipo, payload) { var r = payload.result || {}; var total = payload.total || r.total || (r.totalRango && r.totalRango.max) || 0; var resumen = r.resumen || ''; var rows = []; if (tipo === 'finiquito') { (r.desglose || []).forEach(function(d){ rows.push(fila(d.concepto, d.monto, d.norma, d.nota)); }); } else if (tipo === 'indemnizacion-despido') { (r.escenarios || []).forEach(function(e){ rows.push('
' + esc(e.nombre) + '
' + esc(e.descripcion) + '
' + fmt(e.total) + ''); }); } else { // multa-ley-karin (r.desglose || []).forEach(function(d){ var rango = (d.monto && d.monto.min !== d.monto.max) ? fmt(d.monto.min) + ' – ' + fmt(d.monto.max) : fmt(d.monto && d.monto.max); rows.push('
' + esc(d.concepto) + ' · ' + esc(d.norma) + '
' + (d.nota ? '
' + esc(d.nota) + '
' : '') + '' + rango + ''); }); } var html = '

Tu estimación

' + '
' + fmt(total) + '
' + '

' + esc(resumen) + '

' + '' + rows.join('') + '
ConceptoMonto
' + (r.recomendacion ? '

💡 ' + esc(r.recomendacion) + '

' : '') + '
' + esc(r.disclaimer || 'Estimación referencial.') + '
'; var el = document.getElementById('result'); el.innerHTML = html; el.style.display = 'block'; document.getElementById('lead-capture').style.display = 'block'; el.scrollIntoView({behavior:'smooth', block:'start'}); } var TIPO = window.JB_CALC_TIPO; // Slug de la variante long-tail (null para páginas padre). Permite // analizar conversión por slug (qué causal/escenario convierte mejor). var VARIANT = window.JB_CALC_VARIANT || null; // Bucket A/B del callout extraIntroHtml. Server-assigned via cookie. // 'A' = vio el callout, 'B' = no lo vio, 'na' = la página no participa. var AB_INTRO = window.JB_AB_INTRO || 'na'; var lastInputs = null; // Pre-rellena campos del formulario con window.JB_CALC_PREFILL (si la // variante long-tail lo definió). Keys = name del input/select. No falla // si una key no existe — útil para variantes que sólo cambian copy. (function applyPrefill(){ var pf = window.JB_CALC_PREFILL || null; if (!pf) return; Object.keys(pf).forEach(function(k){ var el = document.querySelector('[name="' + k + '"]'); if (!el) return; var v = pf[k]; if (el.type === 'checkbox') el.checked = !!v; else el.value = String(v); }); })(); // Page-view event con tipo + slug + bucket A/B. Habilita funnel // view → result → lead segmentado por slug y bucket en GA / GTM. try { window.gtag && window.gtag('event', 'calculadora_view', { tipo: TIPO, variant: VARIANT, ab_intro: AB_INTRO, }); } catch(e) {} document.getElementById('calc-form').addEventListener('submit', async function(ev){ ev.preventDefault(); hideErr(); var btn = document.getElementById('calc-submit'); btn.disabled = true; var inputs = readInputs(ev.target); // Metadata embebida en el JSON de inputs. El backend serializa inputs // como JSON en LeadCalculation.inputs, así que estos campos quedan // persistidos sin requerir cambio de schema. Prefijo __ para // diferenciarlos de los campos reales del formulario. if (VARIANT) inputs.__variant = VARIANT; if (AB_INTRO !== 'na') inputs.__abIntro = AB_INTRO; lastInputs = inputs; try { var res = await fetch('/api/calculadora/' + TIPO, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ sessionId: sid(), inputs: inputs }) }); var data = await res.json(); if (!res.ok) { showErr(data.error || 'Error en el cálculo. Revisa los datos.'); btn.disabled = false; return; } renderResult(TIPO, data); try { window.gtag && window.gtag('event','calculadora_result',{tipo:TIPO,variant:VARIANT,ab_intro:AB_INTRO,total:data.total||0}); } catch(e){} } catch (e) { showErr('No pudimos calcular ahora. Intenta de nuevo.'); } finally { btn.disabled = false; } }); document.getElementById('send-lead').addEventListener('click', async function(){ hideErr(); var email = document.getElementById('email').value.trim(); var telefono = document.getElementById('telefono').value.trim(); var region = document.getElementById('region').value; var consent = document.getElementById('consent').checked; if (!email) { showErr('Necesitamos tu email para conectarte con un abogado.'); return; } if (!consent) { showErr('Marca el consentimiento (Ley 19.628) para continuar.'); return; } var btn = this; btn.disabled = true; try { var res = await fetch('/api/calculadora/' + TIPO, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ sessionId: sid(), inputs: lastInputs, email: email, telefono: telefono, region: region, consent: true }) }); var data = await res.json(); if (!res.ok) { showErr(data.error || 'No pudimos guardar tu solicitud.'); btn.disabled = false; return; } document.getElementById('lead-capture').style.display = 'none'; document.getElementById('ok-message').style.display = 'block'; try { window.gtag && window.gtag('event','calculadora_lead',{tipo:TIPO,variant:VARIANT,ab_intro:AB_INTRO,matched:!!(data.lead && data.lead.matchedLawyer)}); } catch(e){} } catch (e) { showErr('Error de red. Vuelve a intentar.'); btn.disabled = false; } }); document.getElementById('skip-lead').addEventListener('click', function(){ document.getElementById('lead-capture').style.display = 'none'; }); })();