Hoja gratis del operador · Se queda en tu navegador

P&G por canal de
terceros.

Corre las cuentas honestas de DoorDash, Uber Eats o Grubhub. Ventas brutas menos comisión, tarifas de marketing, reembolsos, empaques y la mano de obra que cuestan esos pedidos. Cierra la discusión.

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

Llénala

P&G por canal de terceros

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

Ejemplo trabajado Operador de un solo local corriendo DoorDash + Uber Eats Ve cómo se ve un llenado de un martes en la mañana
Ventas brutas de terceros (últimas 4 semanas)$24,000
Comisión + marketing (promedio 28%)−$6,720
Reembolsos + ajustes−$480
Costo de empaque−$960
Estimación de mano de obra incremental−$1,800
Contribución neta después de costos de canal$14,040
Margen de contribución del canal58.5% · verde
Por cada dólar bruto de tercero$0.585 se queda

El canal sale rentable — pero solo porque su estimación de mano de obra incremental es honesta. Si trataran los pedidos de entrega como tiempo 'gratis' en cocina, el margen marcaría cerca de 70% y estarían subsidiando a la plataforma calladamente. El siguiente paso es la tarjeta de costo de receta en los tres SKUs que mueven el 60% del volumen de entrega — esos deciden si el canal sigue siendo acrecentivo.

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

Channel & period
Channel statement (paste from their dashboard)
Your costs (the platform does not show these)
Net payout from platform $0.00
Total channel cost (food + packaging + labor) $0.00
Contribution margin (dollars) $0.00
Effective margin on gross 0.0%

Type your numbers. A positive contribution margin means the channel earns its keep; negative means each order loses money before fixed costs.

Try a scenario — what if commission, marketing, or your labor estimate shifts?

Slide one or more, the contribution margin re-runs on top of your typed numbers. The labor multiplier is the honest one — if you typed $1,800 but the real number is closer to $3,600, slide it to 2x and watch what happens.

Read the long version The headline lie, the five lines you need to count, the contribution-margin bands, and a four-lever renegotiation playbook for when the channel doesn't pencil. The honest channel P&L — Why most operators discover delivery is a subsidy →

+ (Math.round(abs * 100) / 100).toFixed(2); } function fmtPct(v) { var sign = v < 0 ? '-' : ''; return sign + (Math.round(Math.abs(v) * 10) / 10).toFixed(1) + '%'; } // D8 · Read what-if slider state. Commission/marketing are // additive points-of-gross; labor is a multiplier on the typed // incremental_labor line. function whatif() { var f = document.getElementById('sheet-fields'); if (!f || !f.whatif_comm) return { comm: 0, mkt: 0, laborMult: 1 }; var lm = n(f.whatif_labor.value); if (!isFinite(lm) || lm <= 0) lm = 1; return { comm: n(f.whatif_comm.value), mkt: n(f.whatif_mkt.value), laborMult: lm, }; } function recalc() { var f = document.getElementById('sheet-fields'); if (!f) return; var w = whatif(); var gross = n(f.gross_sales.value); // D8 — apply commission/marketing point deltas as a fraction // of gross; labor multiplier scales the typed incremental. var commission = n(f.commission.value) + (w.comm / 100) * gross; var marketing = n(f.marketing_fees.value) + (w.mkt / 100) * gross; var labor = n(f.incremental_labor.value) * w.laborMult; var deducts = commission + marketing + n(f.refunds.value); var costs = n(f.food_cost.value) + n(f.packaging.value) + labor; var payout = gross - deducts; var contrib = payout - costs; var pct = gross > 0 ? (contrib / gross) * 100 : 0; // Update what-if output labels. if (f.whatif_comm_out) f.whatif_comm_out.value = (w.comm >= 0 ? '+' : '') + w.comm.toFixed(1) + 'pt'; if (f.whatif_mkt_out) f.whatif_mkt_out.value = (w.mkt >= 0 ? '+' : '') + w.mkt.toFixed(1) + 'pt'; if (f.whatif_labor_out) f.whatif_labor_out.value = w.laborMult.toFixed(1) + 'x'; document.querySelector('[data-output="net_payout"]').textContent = fmt$(payout); document.querySelector('[data-output="total_costs"]').textContent = fmt$(costs); var dEl = document.querySelector('[data-output="contrib_dollars"]'); dEl.textContent = fmt$(contrib); dEl.dataset.band = contrib > 0 ? 'good' : (contrib < 0 ? 'bad' : 'idle'); var pEl = document.querySelector('[data-output="contrib_pct"]'); pEl.textContent = fmtPct(pct); // D9 — band routes through Bench.evaluate when available, so // updating data/benchmarks.json's channel_contribution_pct // thresholds cascades to this sheet automatically. Inline // ladder is the graceful fallback. if (window.Bench && window.Bench.evaluate) { var bench = window.Bench.evaluate('channel_contribution_pct', pct); if (bench && bench.band) pEl.dataset.band = bench.band; } else { pEl.dataset.band = pct > 5 ? 'good' : (pct >= 0 ? 'warn' : 'bad'); } var verdict = document.querySelector('[data-output="verdict"]'); if (verdict) { if (gross <= 0) { verdict.textContent = 'Type your numbers. A positive contribution margin means the channel earns its keep; negative means each order loses money before fixed costs.'; } else if (contrib < 0) { verdict.textContent = 'This channel is losing you money on each order before fixed costs are even applied. Either renegotiate fees, raise menu prices on this channel, or turn it off.'; } else if (window.Bench && window.Bench.evaluate) { // Centralized message for non-edge bands (>= 0 contrib). var b2 = window.Bench.evaluate('channel_contribution_pct', pct); if (b2 && b2.msg) verdict.textContent = b2.msg; } else if (pct < 5) { verdict.textContent = 'Thin contribution. The channel is not paying for itself once fixed costs (rent, utilities, salaried management) are included. Action: raise menu prices on this channel, or shrink the menu offered through it to higher-margin items only.'; } else if (pct < 12) { verdict.textContent = 'In the typical band for third-party delivery — earning some contribution, but not as much as a dine-in dollar. Watch the trend month-over-month.'; } else { verdict.textContent = 'Healthy contribution for a third-party channel. Keep an eye on packaging and incremental labor — these are the line items that drift quietly.'; } } } function collect() { var f = document.getElementById('sheet-fields'); if (!f) return [['Field', 'Value']]; return [ ['Field', 'Value'], ['Channel', f.channel.value], ['Period', f.period.value || ''], [], ['Gross sales', f.gross_sales.value || '0'], ['Commission & service', f.commission.value || '0'], ['Marketing fees', f.marketing_fees.value || '0'], ['Refunds & adjustments',f.refunds.value || '0'], ['Net payout', document.querySelector('[data-output="net_payout"]').textContent], [], ['Food cost', f.food_cost.value || '0'], ['Packaging', f.packaging.value || '0'], ['Incremental labor', f.incremental_labor.value|| '0'], ['Total channel cost', document.querySelector('[data-output="total_costs"]').textContent], [], ['Contribution margin ($)', document.querySelector('[data-output="contrib_dollars"]').textContent], ['Effective margin (%)', document.querySelector('[data-output="contrib_pct"]').textContent], ]; } // D8 · Reset scenario sliders. document.addEventListener('click', function (ev) { if (ev.target && ev.target.matches && ev.target.matches('[data-whatif-reset]')) { ev.preventDefault(); var f = document.getElementById('sheet-fields'); if (!f) return; if (f.whatif_comm) f.whatif_comm.value = 0; if (f.whatif_mkt) f.whatif_mkt.value = 0; if (f.whatif_labor) f.whatif_labor.value = 1; f.dispatchEvent(new Event('input', { bubbles: true })); } }); if (window.SheetPage) { window.SheetPage.register({ slug: 'third-party-channel-pnl', collect: collect, recalc: recalc, }); } })();

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

Cuándo usarla

Saca esta hoja cuando —

  • Fin de mes, cuando las plataformas ya cerraron y tienes la foto real de tarifas.
  • Cuando llama el ejecutivo de la plataforma y ofrece "una promo gratis" — mira si realmente da equilibrio.
  • Antes de decidir si dejas alguna de las tres plataformas activa.
Errores comunes

Lo que los operadores hacen mal

  • Tratar los subsidios de promo como ingreso. El subsidio se acaba; el hábito de descuento, no.
  • Ignorar costo de empaque. Un envase, una tapa, un sticker, una bolsa — fácil 90 centavos por ticket.
  • Olvidar mano de obra incremental. Los pedidos de delivery comen tiempo de expo y empaque que no facturarías directo.
Va con

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

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