Hoja gratis del operador · Se queda en tu navegador

Registro de reservas y
no-shows.

Fuente de reserva, tamaño del grupo, depósito sí o no, llegó o no-show o cancelación tardía, ingreso perdido. Nombra lo que cada silla vacía costó.

Paquete: Conversiones y Reservas Cadencia: Diaria Privado — corre en tu navegador

Llénala

Registro de reservas y no-shows

Mete tus números — la matemática corre en tu navegador. Imprime, exporta a CSV o guárdala en el Taller.

Ejemplo trabajado Lugar de menú de degustación de 32 asientos, solo vie+sáb Ve cómo se ve un llenado de un martes en la mañana
Reservas registradas (período de dos semanas)48
Cancelaciones tardías (≤24h)3
No-shows5
Cuenta promedio$145
De los 5 no-shows, con depósito0
Tasa de no-show10.4% · rojo
Ingreso perdido estimado$725
Tasa de no-show entre quienes pusieron depósito0%

Cada uno de los no-shows vino de una reserva sin depósito. El patrón decide el siguiente paso: una prueba de dos semanas con depósito requerido para mesas de 4+ los vie/sáb. La mesa de la ventana a las 8pm es la que duele — es la que nadie pide al último momento.

Números compuestos típicos — no un local real. Usa el ritmo, no las cifras.

Period
Reservations this period
Date Source Party size Deposit? Outcome Lost $ Notes
Lost $ = party size × average per-cover spend, automatically computed for no-shows and late-cancels.
No-show rate 0%
Late-cancel rate 0%
Lost revenue this period $0
Highest-no-show source

Log every reservation. The fix is by SOURCE — if one platform's no-show rate runs 3× another's, the deposit policy goes there first.

+ Math.round(v).toLocaleString('en-US'); } function fmtPct(v) { return Math.round(v * 10) / 10 + '%'; } function recalc() { var f = document.getElementById('sheet-fields'); if (!f) return; var avg = n(f.avg_check.value); var total = 0, ns = 0, lc = 0; var lost = 0; var sourceNs = {}; for (var i = 1; i <= 8; i++) { var out = f['r' + i + '_out'].value; var party = n(f['r' + i + '_party'].value); if (!out || out === '—' || !party) { f['r' + i + '_lost'].value = '—'; continue; } total++; var src = f['r' + i + '_src'].value; var lostThisRow = 0; if (out === 'No-show') { ns++; lostThisRow = party * avg; sourceNs[src] = (sourceNs[src] || 0) + 1; } else if (out.indexOf('Late') === 0) { lc++; lostThisRow = party * avg * 0.5; } f['r' + i + '_lost'].value = lostThisRow > 0 ? fmt$(lostThisRow) : '—'; lost += lostThisRow; } var nsRate = total > 0 ? (ns / total) * 100 : 0; var lcRate = total > 0 ? (lc / total) * 100 : 0; var nsEl = document.querySelector('[data-output="ns_rate"]'); nsEl.textContent = fmtPct(nsRate); // D9 — band via centralized benchmarks. if (window.Bench && window.Bench.evaluate) { var bn = window.Bench.evaluate('noshow_rate_pct', nsRate); if (bn && bn.band) nsEl.dataset.band = bn.band; } else { nsEl.dataset.band = nsRate < 5 ? 'good' : (nsRate < 10 ? 'warn' : 'bad'); } var lcEl = document.querySelector('[data-output="lc_rate"]'); lcEl.textContent = fmtPct(lcRate); lcEl.dataset.band = lcRate < 8 ? 'good' : (lcRate < 15 ? 'warn' : 'bad'); var ltEl = document.querySelector('[data-output="lost_total"]'); ltEl.textContent = fmt$(lost); ltEl.dataset.band = lost === 0 ? 'good' : (lost < 200 ? 'warn' : 'bad'); var topSrc = null, topCount = 0; for (var k in sourceNs) if (sourceNs[k] > topCount) { topSrc = k; topCount = sourceNs[k]; } document.querySelector('[data-output="top_source"]').textContent = topSrc ? (topSrc + ' (' + topCount + ' no-shows)') : '—'; var c = document.querySelector('[data-output="callout"]'); if (!c) return; if (total === 0) { c.textContent = 'Log every reservation. The fix is by SOURCE — if one platform’s no-show rate runs 3× another’s, the deposit policy goes there first.'; } else if (lost === 0) { c.textContent = total + ' reservation(s) logged, all showed. Clean period.'; } else if (topSrc && topCount >= 3) { c.textContent = topSrc + ' is the recurring no-show source — ' + topCount + ' this period. Deposit / hold policy goes here first.'; } else { c.textContent = fmt$(lost) + ' lost across ' + (ns + lc) + ' missed reservation(s). Tally by source over a month before changing policy.'; } } function collect() { var f = document.getElementById('sheet-fields'); if (!f) return [['Field', 'Value']]; var rows = [ ['Field', 'Value'], ['Date', f.date.value || ''], ['Avg per-cover', f.avg_check.value || ''], [], ['Date', 'Source', 'Party', 'Deposit', 'Outcome', 'Lost

Teclado: ⌘P imprimir · ⌘S bajar CSV · ⌘↵ guardar en el Taller

Cuándo usarla

Saca esta hoja cuando —

  • Diario — registra cada reserva confirmada conforme cancela, no llega o se sienta.
  • Fin de semana, cuando le pones precio a las sillas vacías. El número aterriza distinto que la sensación.
  • Antes de decidir si pides depósito o tarjeta de crédito por fuente de reserva.
Errores comunes

Lo que los operadores hacen mal

  • Tratar cancelaciones tardías y no-shows como la misma fila. La cancelación tardía tuvo chance de re-llenar; el no-show no.
  • No costear la silla vacía. "Dos no-shows hoy" suena chico; "$140 de ingreso perdido" no.
  • Registrar solo reservas directas. La fuente es la palanca — si Resy tiene 3× los no-shows de OpenTable, la política va por fuente, no global.
Va con

Las herramientas, términos y artículos al lado de esta hoja.

Herramientas

  • Aún ninguno.

Glosario

Gratis, sin registro. Tus números nunca dejan esta página.

, 'Notes'], ]; for (var i = 1; i <= 8; i++) { if (!f['r' + i + '_date'].value && !f['r' + i + '_party'].value) continue; rows.push([ f['r' + i + '_date'].value || '', f['r' + i + '_src'].value || '', f['r' + i + '_party'].value || '', f['r' + i + '_dep'].checked ? 'yes' : 'no', f['r' + i + '_out'].value || '', (f['r' + i + '_lost'].value || '').replace(/^—$/, ''), f['r' + i + '_notes'].value || '', ]); } rows.push([]); rows.push(['No-show rate', document.querySelector('[data-output="ns_rate"]').textContent]); rows.push(['Late-cancel rate', document.querySelector('[data-output="lc_rate"]').textContent]); rows.push(['Lost revenue', document.querySelector('[data-output="lost_total"]').textContent]); rows.push(['Top no-show src', document.querySelector('[data-output="top_source"]').textContent]); return rows; } if (window.SheetPage) window.SheetPage.register({ slug: 'reservation-no-show-log', collect: collect, recalc: recalc }); })();

Teclado: ⌘P imprimir · ⌘S bajar CSV · ⌘↵ guardar en el Taller

Cuándo usarla

Saca esta hoja cuando —

Errores comunes

Lo que los operadores hacen mal

Va con

Las herramientas, términos y artículos al lado de esta hoja.

Herramientas

  • Aún ninguno.

Glosario

Gratis, sin registro. Tus números nunca dejan esta página.