Divida un gasto compartido en partes desiguales
Dividir por igual es sencillo, pero no siempre resulta justo. Los compañeros de vivienda pueden ocupar habitaciones de distinto tamaño, los viajeros permanecer diferente número de noches y los miembros de un hogar acordar aportaciones según sus ingresos.
Ejecutar — gratis
Esta calculadora reparte un gasto común mediante un peso para cada persona. Introduzca el total, los nombres y los pesos relativos para obtener cada importe adeudado con un redondeo coherente. Los pesos pueden representar cualquier criterio acordado y las asignaciones finales siempre vuelven a sumar el total redondeado.
Elija pesos que expresen el acuerdo
Un peso es una participación relativa, no necesariamente un porcentaje ni un importe monetario. Si tres personas usan los pesos 1, 2 y 3, deben una sexta parte, dos sextas partes y tres sextas partes del total. Multiplicar todos los pesos por el mismo número no altera el resultado, por lo que 10, 20 y 30 describen exactamente el mismo reparto. Así, la calculadora sirve para distribuir el alquiler según el tamaño de la habitación, los suministros por ocupación, una reserva de grupo por noches de estancia o los gastos domésticos según los ingresos. Acuerden qué significan los pesos antes de calcular y apliquen el mismo criterio a todo el grupo. Una persona puede tener peso cero si queda exenta deliberadamente de ese gasto. Sin embargo, al menos un peso debe ser positivo. Si todos son cero, no existe una base matemática para el reparto y la calculadora devuelve un error de entrada en vez de inventar una división equitativa. Los nombres también deben ser únicos para que el resultado siga siendo claro al copiarlo a un mensaje o libro contable.
Comprenda el redondeo y los totales exactos
La división proporcional suele producir fracciones inferiores a la unidad monetaria que realmente puede pagarse. Por ejemplo, repartir una factura pequeña entre tres participaciones ponderadas puede generar decimales periódicos. La calculadora convierte primero el total a la precisión decimal elegida, calcula cada participación proporcional exacta y asigna las unidades mínimas restantes mediante el método del resto mayor. Las personas cuyos importes sin redondear tengan los restos fraccionarios más altos reciben primero esas unidades. Si dos restos coinciden, el orden original de entrada resuelve el empate y hace que las ejecuciones repetidas sean deterministas. El resultado práctico importante es que los importes mostrados siempre suman el total mostrado: no desaparece ni aparece ningún céntimo. Use dos decimales para monedas como dólares o euros, cero para cuentas en unidades enteras o mayor precisión cuando la cantidad compartida lo permita. El valor `share` indica la proporción matemática de cada persona, mientras que `owed` es el importe pagadero tras el redondeo. Como el propio total se redondea a la precisión solicitada, introdúzcalo con la precisión reconocida por su proceso de liquidación.
Revise y comunique el resultado
Considere el cálculo una aplicación transparente del acuerdo del grupo, no el acuerdo en sí. Antes de cobrar, revise el total, la suma de pesos y el peso de cada persona. Un error como escribir 20 en lugar de 2 es matemáticamente válido, pero puede cambiar radicalmente el reparto. La respuesta muestra junto a cada nombre la participación normalizada y el importe adeudado, lo que permite explicar fácilmente cómo se obtuvo el resultado. Conserve las entradas originales junto con la salida cuando el reparto sea importante para la contabilidad, pues los pesos aportan un contexto que los importes por sí solos no muestran. En gastos recurrentes, mantenga estable la regla de ponderación y actualícela abiertamente cuando cambien las circunstancias. La versión del navegador resulta práctica para un alquiler, una cena, un viaje o un suministro ocasional; la API aplica la misma regla determinista en sistemas de gestión, organización de viajes, hojas de cálculo o finanzas internas por $0.002 por solicitud. No se consultan tipos de cambio ni se transfieren pagos: todos los importes deben usar una sola unidad y la calculadora únicamente devuelve la asignación.
Qué puede hacer con ella
Dividir el alquiler por tamaño de habitación
Use la superficie relativa o una puntuación acordada para repartir un alquiler entre compañeros de vivienda.
Compartir un viaje por noches de estancia
Pondere a los viajeros por las noches que participó cada uno para que las estancias cortas paguen menos.
Asignar gastos domésticos según ingresos
Use pesos basados en ingresos acordados para distribuir una factura común con cálculos transparentes.
Preguntas frecuentes
¿Los pesos deben sumar 100?
No. Son relativos y pueden sumar cualquier número positivo.
¿Qué ocurre si todos los pesos son cero?
La solicitud devuelve un error de entrada porque no puede calcularse un reparto proporcional con una suma de pesos igual a cero.
¿Puede una persona tener peso cero?
Sí. Esa persona deberá cero siempre que al menos otra tenga un peso positivo.
¿Los importes adeudados sumarán exactamente el total?
Sí. El método del resto mayor distribuye las unidades de redondeo para que las asignaciones sumen el total con la precisión elegida.
¿Cuánto cuesta la API?
Cada solicitud a la API cuesta $0.002. La calculadora de esta página puede ejecutarse localmente gratis.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/calc3/split-expenses-unequal-shares \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total":120,"people":[{"name":"Alex","weight":1},{"name":"Blair","weight":2},{"name":"Casey","weight":3}]}'const res = await fetch("https://api.kit.forhosting.com/calc3/split-expenses-unequal-shares", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total": 120,
"people": [
{
"name": "Alex",
"weight": 1
},
{
"name": "Blair",
"weight": 2
},
{
"name": "Casey",
"weight": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc3/split-expenses-unequal-shares",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total": 120,
"people": [
{
"name": "Alex",
"weight": 1
},
{
"name": "Blair",
"weight": 2
},
{
"name": "Casey",
"weight": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc3/split-expenses-unequal-shares", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total":120,"people":[{"name":"Alex","weight":1},{"name":"Blair","weight":2},{"name":"Casey","weight":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total":120,"people":[{"name":"Alex","weight":1},{"name":"Blair","weight":2},{"name":"Casey","weight":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc3/split-expenses-unequal-shares", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"total": 120,
"people": [
{
"name": "Alex",
"weight": 1
},
{
"name": "Blair",
"weight": 2
},
{
"name": "Casey",
"weight": 3
}
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc3.split_expenses_unequal_shares",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |