Divisão de jantar em grupo
Uma pizza para dois, um bife para um e uma salada para três, com 18% de gorjeta e 8,5% de imposto, somam 110,06, e quem pediu o bife paga 59,45. Cada prato é dividido só entre quem comeu. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Jantares em grupo complicam-se na conta quando alguns dividem uma pizza, um convidado pede um filé sozinho e todos querem uma gorjeta justa. Dividir em partes iguais por cabeça força quem pediu salada a subsidiar torres de frutos do mar; atribuir linhas inteiras a um único nome falha quando dois amigos de fato compartilharam um aperitivo. Esta calculadora de divisão de jantar em grupo recebe cada prato com o preço e a lista exata de convidados que o provaram, divide esse prato apenas entre esses compartilhadores, soma a parte de comida de cada um e aplica percentuais opcionais de gorjeta e imposto sobre essa parte.
Como funciona a divisão igual por prato só entre quem compartilhou
Comece pelo cardápio como lista de pratos, e não como um total único da mesa. A calculadora divide o preço desse prato em partes iguais apenas entre os convidados listados, nunca entre quem sentou à mesa mas não tocou naquele prato. Um convidado que aparece em três pratos compartilhados acumula três frações; quem pediu só um prato principal paga esse prato integral e nada dos pratos que não experimentou.
Depois de alocar cada prato, cada convidado tem uma parte de comida igual à soma de seus pedaços por prato. É o padrão justo que as pessoas já esboçam em guardanapos quando metade da mesa compartilhou o pão e a outra não, mas sem erros de arredondamento manual que deixem centavos sem fechar. A divisão igual de toda a conta entre N lugares é outra intenção de produto; a atribuição de linhas a uma única pessoa com imposto e serviço absolutos proporcionais também.
Aqui o foco SEO é a divisão de jantar em grupo quando os grupos de compartilhamento mudam por prato. Quando todos os preços são zero e ambos os percentuais são zero, cada total de convidado é zero e a chamada ainda tem sucesso por completude. Nomes duplicados em um mesmo prato são colapsados para não cobrar duas vezes a mesma pessoa pelo mesmo prato.
Onde uma calculadora de divisão de jantar em grupo se justifica
Reuniões familiares, jantares de equipe em coworking e menus de degustação compartilhados precisam de um detalhamento neutro que todos possam auditar prato a prato em vez de discutir metades iguais que ignoram quem pediu o voo de vinhos. Demos de hospitalidade e ferramentas de treinamento em ponto de venda podem mostrar como uma pizza compartilhada e um filé individual produzem valores justos diferentes sem forçar a equipe a partir linhas à mão.
Mantenha listas de pratos em tamanhos de mesa comuns, fixe nos testes os totais arredondados dos convidados e obtenha acertos reproduzíveis para chats em grupo, exemplos LMS e edge workers sem montar planilha nem inventar matemática de gorjeta ad hoc para cada idioma que publicar. Combine esta capacidade com uma ferramenta de divisão igual só de gorjeta quando a mesa quiser de fato equidade por cabeça; use esta quando os grupos de compartilhamento diferirem por prato.
Casos de uso
Jantares em família ou com amigos e pratos compartilhados
Liste cada prato com quem de fato o compartilhou, acrescente percentuais de gorjeta e imposto do recibo e veja o que cada convidado deve sem dividir a conta inteira em partes iguais.
Almoços de equipe e menus de degustação
Mapeie entradas compartilhadas e pratos principais individuais a colegas e distribua gorjeta e imposto sobre a parte de comida de cada um para um reembolso transparente.
Perguntas frequentes
Como funciona a calculadora de divisão de jantar em grupo?
O preço de cada prato é dividido igualmente só entre os convidados listados nesse prato; gorjeta e imposto multiplicam a parte de comida de cada convidado.
E se apenas alguns convidados compartilharam um prato?
Quem não compartilhou esse prato não paga nenhuma parte do preço.
Gorjeta e imposto são percentuais ou valores absolutos?
Percentuais da parte de comida de cada convidado (0–100).
A gorjeta é calculada sobre a conta toda ou sobre a parte de cada um?
Sobre a parte de comida de cada convidado. Quem comeu mais paga mais gorjeta e imposto, e ninguém paga uma taxa igual por pratos que nem provou.
E se eu colocar o mesmo convidado duas vezes num prato?
O nome repetido é ignorado e a pessoa paga o prato uma única vez. Cada prato é dividido entre os nomes diferentes que aparecem nele.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/life/dinner-split-by-share \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dishes":[{"name":"Margherita pizza","price":24,"shared_by":["Alice","Bob"]},{"name":"Ribeye steak","price":36,"shared_by":["Carol"]},{"name":"Caesar salad","price":15,"shared_by":["Alice","Bob","Carol"]},{"name":"Tiramisu","price":12,"shared_by":["Alice","Carol"]}]}'const res = await fetch("https://api.kit.forhosting.com/life/dinner-split-by-share", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dishes": [
{
"name": "Margherita pizza",
"price": 24,
"shared_by": [
"Alice",
"Bob"
]
},
{
"name": "Ribeye steak",
"price": 36,
"shared_by": [
"Carol"
]
},
{
"name": "Caesar salad",
"price": 15,
"shared_by": [
"Alice",
"Bob",
"Carol"
]
},
{
"name": "Tiramisu",
"price": 12,
"shared_by": [
"Alice",
"Carol"
]
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/dinner-split-by-share",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dishes": [
{
"name": "Margherita pizza",
"price": 24,
"shared_by": [
"Alice",
"Bob"
]
},
{
"name": "Ribeye steak",
"price": 36,
"shared_by": [
"Carol"
]
},
{
"name": "Caesar salad",
"price": 15,
"shared_by": [
"Alice",
"Bob",
"Carol"
]
},
{
"name": "Tiramisu",
"price": 12,
"shared_by": [
"Alice",
"Carol"
]
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/dinner-split-by-share", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dishes":[{"name":"Margherita pizza","price":24,"shared_by":["Alice","Bob"]},{"name":"Ribeye steak","price":36,"shared_by":["Carol"]},{"name":"Caesar salad","price":15,"shared_by":["Alice","Bob","Carol"]},{"name":"Tiramisu","price":12,"shared_by":["Alice","Carol"]}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dishes":[{"name":"Margherita pizza","price":24,"shared_by":["Alice","Bob"]},{"name":"Ribeye steak","price":36,"shared_by":["Carol"]},{"name":"Caesar salad","price":15,"shared_by":["Alice","Bob","Carol"]},{"name":"Tiramisu","price":12,"shared_by":["Alice","Carol"]}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/dinner-split-by-share", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"dishes": [
{
"name": "Margherita pizza",
"price": 24,
"shared_by": [
"Alice",
"Bob"
]
},
{
"name": "Ribeye steak",
"price": 36,
"shared_by": [
"Carol"
]
},
{
"name": "Caesar salad",
"price": 15,
"shared_by": [
"Alice",
"Bob",
"Carol"
]
},
{
"name": "Tiramisu",
"price": 12,
"shared_by": [
"Alice",
"Carol"
]
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.dinner_split_by_share",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Listas vazias de pratos, preços negativos, nomes em branco, listas shared_by vazias e percentuais fora da faixa falham com um erro invalid_input claro e não são cobrados.
Como funciona a divisão igual por prato só entre quem compartilhou
Cada prato carrega um preço em uma única moeda e uma lista shared_by de nomes ou ids curtos de quem de fato comeu ou pediu aquele prato juntos. Os opcionais tip_percent e tax_percent multiplicam então essa parte de comida para que quem comeu mais carregue mais gorjeta e imposto sem inventar um rateio igual por cabeça.
Contrato de entrada, campos de resposta e regras de validação
Ambos os percentuais devem ficar entre zero e cem inclusive. Envie por POST um corpo JSON com um array dishes obrigatório de um a duzentos objetos. Cada objeto precisa de price como número finito não negativo e shared_by como array não vazio de strings com nomes de convidados; o name opcional rotula o prato no detalhamento ecoado. Os aliases items, lines, courses e plates são aceitos para o array quando seu cliente já usa essas chaves. shared_by também aceita sharers, guests, people e who, e pode chegar como string separada por vírgulas em formulários simples. O tip_percent opcional tem padrão zero e aceita tip_pct, gratuity_percent e tip; o tax_percent opcional tem padrão zero e aceita tax_pct, vat_percent e tax. Pratos ausentes, arrays vazios, preços negativos, nomes em branco, shared_by vazios, percentuais fora da faixa e números não finitos falham com invalid_input nomeando o problema; essas falhas nunca consomem saldo pré-pago. Em sucesso o corpo devolve dish_count, guest_count, a lista normalizada de dishes com index, name opcional, price, shared_by e per_person_share, food_total, tip_percent, tip_total, tax_percent, tax_total, grand_total e um array guests ordenado pela primeira aparição de cada convidado nos pratos. Cada linha de guests inclui guest, food_share, tip_share, tax_share, total e dish_count. Campos monetários usam arredondamento half-up a duas casas decimais com ajuste residual no último convidado com food_share positivo para que as partes de gorjeta arredondadas somem tip_total, as de imposto somem tax_total e os totais de convidados somem grand_total. method é per_dish_equal_share e formula reescreve a regra de alocação para exibir ao lado do resultado.
Onde uma calculadora de divisão de jantar em grupo se justifica
Bots de despesas e reembolso podem aceitar o mesmo payload estruturado que um formulário móvel coleta e devolver totais por convidado prontos para mensagem de acerto ou lançamento contábil. Como a implementação é aritmética analítica de tier A sem tokens de modelo e sem rede de saída, cada chamada bem-sucedida custa o preço base publicado US$ 0,002, e falhas de validação são gratuitas.
Casos de integração
Bots de despesas e apps de acerto
Chame um endpoint pré-pago estável que devolve totais por convidado prontos para chats, livros contábeis ou UIs de pedido de divisão quando os pratos têm compartilhadores mistos.
Perguntas técnicas
Quais erros a calculadora devolve?
invalid_input para dishes vazios, preços negativos, nomes em branco, shared_by vazios ou percentuais de gorjeta/imposto fora de 0–100. Essas falhas não são cobradas.
Quanto custa a calculadora de divisão de jantar em grupo?
A ferramenta no navegador é gratuita. Pedidos API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.