Divisor de despesas compartilhadas
Notas de 45,5, 30 e 24,5 divididas entre três pessoas, uma delas com peso dobrado, ficam em 25, 25 e 50. Anote cada despesa e dê um peso a cada pessoa para ver quanto cada uma deve. 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 compartilhados, aluguéis em grupo, contas de república e viagens de fim de semana terminam do mesmo jeito: alguém tem uma lista de recibos e um chat cheio de pessoas que não consumiram a mesma quantia. Um divisor de despesas compartilhadas pega cada valor itemizado, multiplica o total geral pelo peso de cada pessoa sobre a soma dos pesos e devolve um valor claro do que cada participante deve. Colegas de quarto iguais usam peso um para todos; casais que recebem amigos podem dar peso dois ao casal e peso um a solteiros; pais que dividem conta com filhos podem zerar o peso de uma criança para que só adultos paguem. Quando todos os pesos são zero a requisição falha com erro de validação porque divisão por soma de pesos zero é indefinida.
Como funciona o rateio ponderado de despesas compartilhadas
Comece com a lista do dinheiro já gasto em nome do grupo. Cada entrada é um valor de linha em uma moeda combinada, como compras, conta de restaurante, corrida ou conta de utilidades. Você pode enviar números soltos ou objetos pequenos com amount e description opcional; só os valores entram na conta.
Some esses valores para obter o total de despesa a recuperar. Em seguida liste um peso de participação por pessoa. Um peso é um número finito não negativo que codifica responsabilidade relativa, não uma unidade de moeda.
Rateio igual entre três pessoas é pesos um, um e um. Um casal mais um convidado que deve pagar metade pode usar dois, dois e um. Quem não paga nesta rodada pode manter peso zero enquanto outros têm pesos positivos.
Quando essa soma é exatamente zero, ou numericamente indistinguível de zero, a requisição falha com entrada inválida: a parte de cada pessoa é total vezes peso dividido pela soma dos pesos, e esse quociente é indefinido quando ninguém tem participação positiva. Quando a soma é positiva, a pessoa i deve o total de despesa multiplicado pelo peso i dividido pela soma dos pesos. As razões de participação vêm junto dos valores em moeda para auditar a proporção independentemente da escala.
Valores de despesa negativos e pesos negativos são rejeitados porque este modelo descreve dinheiro gasto e participações relativas não negativas, não reembolsos nem responsabilidades invertidas. Listas vazias de despesas e de pesos falham cedo. Símbolos de moeda são omitidos para o mesmo motor funcionar com USD, EUR ou qualquer unidade que o grupo já escolheu offline.
Casos de uso
Acerto mensal de república
Itemize aluguel, utilidades e compras, atribua pesos por noites presentes e publique o valor que cada pessoa deve sem planilha compartilhada.
Conta desigual de restaurante ou bar
Divida uma conta de vários pratos por peso para bebedores pesados ou casais pagarem a parte justa enquanto o grupo vê razões claras.
Bots de despesas de viagem e eventos
Alimente totais de recibos e pesos de participantes em um bot de backend para pedidos de pagamento baterem com a mesma matemática da ferramenta grátis do navegador.
Perguntas frequentes
Como a parte de cada pessoa é calculada?
Some todos os valores de despesa itemizados para obter o total. Cada pessoa deve total × (seu peso ÷ soma de todos os pesos). Pesos iguais significam rateio igual.
O que acontece se todos os pesos forem zero?
Uma soma de pesos zero dividiria por zero, então a calculadora se recusa a inventar partes.
Algumas pessoas podem ter peso zero?
Sim, desde que pelo menos um peso seja positivo. Pessoas com peso zero devem zero neste acerto enquanto outras cobrem o total.
Quanto custa?
A ferramenta do navegador é grátis e roda localmente.
Que peso eu dou a um casal em relação a uma pessoa sozinha?
Dê peso 2 ao casal e peso 1 a cada pessoa sozinha. Com um total de 100 e pesos 1, 1 e 2, as partes ficam em 25, 25 e 50.
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/expense-split \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"expenses":[45.5,30,24.5],"weights":[1,1,2]}'const res = await fetch("https://api.kit.forhosting.com/life/expense-split", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"expenses": [
45.5,
30,
24.5
],
"weights": [
1,
1,
2
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/expense-split",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"expenses": [
45.5,
30,
24.5
],
"weights": [
1,
1,
2
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/expense-split", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"expenses":[45.5,30,24.5],"weights":[1,1,2]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"expenses":[45.5,30,24.5],"weights":[1,1,2]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/expense-split", 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
{
"expenses": [
45.5,
30,
24.5
],
"weights": [
1,
1,
2
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.expense_split",
"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
Como funciona o rateio ponderado de despesas compartilhadas
A calculadora forma weight_sum como a soma de todos os pesos. Tudo é aritmética de ponto flutuante determinística sem chamadas de rede, sem sementes aleatórias e sem carimbos de relógio, de modo que entradas idênticas sempre produzem o mesmo JSON.
O que você envia e o que recebe de volta
Envie dois campos obrigatórios e um opcional. Checagens clássicas incluem total cem com pesos um e um para cinquenta cada, ou noventa com pesos um, um e dois para a terceira pessoa pagar quarenta e cinco. Conecte o formulário grátis do navegador para chats de república e mesas de jantar, depois chame o contrato idêntico de scripts quando um bot ou backend precisar dos mesmos números. O campo expenses é um array não vazio de valores finitos não negativos, ou objetos com campo amount finito não negativo, ou uma string JSON desse array. O campo weights é um array não vazio de números finitos não negativos, uma entrada por pessoa, ou uma string JSON desse array. O campo opcional names é um array de strings de exibição com o mesmo comprimento de weights; quando omitido, as pessoas são rotuladas Pessoa 1, Pessoa 2, e assim por diante. Campos obrigatórios ausentes, strings não numéricas, NaN, Infinity, arrays vazios, valores negativos, pesos negativos, comprimento de names que não bate com weights, e soma de pesos zero falham com invalid_input e não são cobrados. Em sucesso a resposta devolve expense_count, a lista limpa de expenses com index, amount e description opcional, expense_total, person_count, os weights limpos e weight_sum, os names resolvidos, um array people de objetos com name, weight, share_ratio e owes, mais um array paralelo owes para scripts. A string method weighted_expense_split e a string formula que reafirma owes equals total times weight over sum of weights documentam o contrato. O preço de chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Onde divisores de despesas compartilhadas aparecem no trabalho real
Colegas de quarto liquidando aluguel mensal, utilidades e compras precisam de uma resposta confiável de quanto cada um deve depois de itemizar cada recibo, sobretudo quando um colega ficou fora metade do mês e deve carregar peso menor. Grupos de amigos dividindo conta longa de restaurante com partes desiguais por vinho ou pratos infantis usam pesos em vez de calculadoras manuais para ninguém rederivar a aritmética no chat. Casais que recebem convidados podem atribuir peso duplo a um assento compartilhado e peso simples a cada convidado, e publicar o array people direto num pedido de pagamento. O slug SEO mira quem busca divisor de despesas compartilhadas com custos itemizados e pesos customizados, intenção diferente de calculadoras iguais de combustível e pedágio de viagem, divisores de gorjeta ou ferramentas LLM que só categorizam transações. Pipelines de automação de despesas guardam expense_total, weight_sum, razões de participação e owes por pessoa para auditoria após cada evento compartilhado. Como esta capacidade é um motor parse puro, o preço API é a base publicada de US$ 0,002 por item bem-sucedido e validação falha não consome saldo. Mantenha o landing focado na recuperação ponderada de um total itemizado para a página ranquear por essa frase e o contrato JSON permanecer pequeno o bastante para widgets e bots SMS.
Perguntas técnicas
Como formatar expenses e weights?
Envie expenses como array de números (ex. [45.5, 30, 24.5]) ou objetos com amount, e weights como array numérico no mesmo estilo (ex. [1, 1, 2]). Names opcionais rotulam cada pessoa.