Rechnung positionsweise teilen
Bei 35 für Speisen, 2,8 Steuer und 6,3 Trinkgeld schuldet Alice, die für 20,5 bestellt hat, 25,83 und Bob 18,27. Ordnen Sie jedes Gericht und Getränk einer Person zu, dann folgen Steuer und Trinkgeld dem, was jeder wirklich bestellt hat. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Tax
- 2,8
- Service
- 6,3
- Anzahl der Elemente
- 4
- Personenanzahl
- 2
- Gesamtkosten Essen
- 35
- Gesamtsumme
- 44,1
Restaurantrechnungen und Gruppenbestellungen sind selten fair, wenn alle denselben Anteil eines gemeinsamen Totals zahlen. Dieser Rechner für positionsweise Rechnungsteilung erlaubt Ihnen, jedes Gericht, Getränk oder jede Position einer benannten Person zuzuweisen, den Essens-Zwischensumme dieser Person zu summieren und die absolute Steuer sowie die Servicegebühr des Belegs proportional zu diesen Zwischensummen zu verteilen, sodass größere Bestellungen einen größeren Anteil an Steuer und Trinkgeld tragen.
So funktionieren Positionszuweisung sowie anteilige Steuer und Service
Beginnen Sie mit dem gedruckten oder App-Beleg als Liste von Positionen statt als einem einzigen Pauschalbetrag. Jede Position trägt einen Betrag in einer Währung und eine person-Zeichenkette, die angibt, wer das Gericht bestellt oder zu zahlen zugesagt hat. Positionen mit derselben person-Zeichenkette fließen in eine Essens-Zwischensumme für diesen Gast.
Der Rechner nimmt den absoluten Steuerbetrag und die Servicegebühr oder das Trinkgeld vom Beleg und verteilt beide Lasten nach der klassischen Proportionalregel: der Steueranteil jeder Person entspricht Steuer mal Zwischensumme dieser Person geteilt durch die Essenssumme des Tisches, und dasselbe Verhältnis multipliziert den Servicebetrag. Die Summe der drei Teile ergibt, was diese Person schuldet: Essens-Zwischensumme plus Steueranteil plus Serviceanteil. Das ist das faire Muster, das man auf Servietten nutzt, wenn ein Gast Steak und ein anderer nur Salat bestellt hat, jedoch ohne manuelle Rundungsfehler, die Centbeträge offen lassen.
Die gleichmäßige Teilung der gesamten Rechnung inklusive Steuer und Trinkgeld unter N Köpfen ist eine andere Produktabsicht und wird woanders abgedeckt; hier zielt die SEO-Absicht ausdrücklich auf positionsweise Zuweisung mit proportionalen Nebenkosten. Wenn die Essenssumme null ist und Steuer oder Service positiv bleiben, würde das Verhältnis durch null teilen, daher lehnt die Engine diese Kombination ab statt willkürliche Anteile zu erfinden. Wenn jede Position kostenlos ist und Steuer sowie Service null sind, ist jeder Personentotal null und der Aufruf gelingt dennoch der Vollständigkeit wegen.
Wann sich das Teilen nach Gerichten lohnt
Abendessen in der Gruppe, Coworking-Mittagessen und geteilte Lieferungen brauchen eine neutrale Aufschlüsselung, die alle zeilenweise prüfen können, statt über gleiche Hälften zu streiten. Ausgaben- und Erstattungsbots können dieselbe strukturierte Nutzlast annehmen, die ein mobiles Formular erfasst, und Personentotale liefern, die für eine Ausgleichsnachricht oder einen Buchungseintrag bereit sind. Hospitality-Demos und Schulungswerkzeuge für den Point of Sale können zeigen, wie Steuer und Service an den anknüpfen, der wirklich bestellt hat, statt feste Gebühren gleichmäßig auf Sitze ohne Bestellung zu verteilen.
Halten Sie Listen in gewöhnlichen Tischgrößen, pinnen Sie gerundete Personentotale in Tests, und Sie erhalten reproduzierbare Abrechnungen für Gruppenchats, LMS-Beispiele und Edge-Worker, ohne eine Tabellenkalkulation oder eine eigene Trinkgeld-Engine für jede Sprache aufzubauen, die Sie ausliefern.
Anwendungsfälle
Restauranttische mit unterschiedlichen Bestellungen
Weisen Sie jedes Gericht und Getränk einem Gast zu, fügen Sie Steuer- und Trinkgeldzeilen vom Beleg ein und sehen Sie genau, was jede Person schuldet — ohne Gleichteilung.
Lieferung und Gruppen-Takeaway
Ordnen Sie Warenkorbzeilen Mitbewohnern oder Kollegen zu und verteilen Sie Liefersteuer und Servicegebühren proportional zur Essens-Zwischensumme jeder Person.
Ausgaben-Bots und Abrechnungs-Apps
Rufen Sie einen stabilen vorausbezahlten Endpunkt auf, der Personentotale für Erstattungsnachrichten, Hauptbücher oder Split-Anfrage-Oberflächen liefert.
Häufige Fragen
Sind Steuer und Service Prozentsätze oder Geldbeträge?
Absolute Geldbeträge in derselben Währung wie die Positionen. Kopieren Sie Steuer und Trinkgeld bzw. Servicegebühr vom Beleg; sie werden nach Essens-Zwischensummen-Verhältnis verteilt, nicht nach gleichen Köpfen.
Was, wenn zwei Personen ein Gericht teilen?
Teilen Sie das Gericht in zwei Zeilen (je halber Betrag) für jede Person, oder weisen Sie die ganze Zeile einer Person zu und gleichen Sie die Hälfte privat aus.
Wie werden Steuer und Trinkgeld auf die Personen verteilt?
Im Verhältnis zu dem, was jeder an Speisen bestellt hat: Sein Steueranteil ist die Steuer mal sein Zwischenbetrag geteilt durch die Speisensumme, beim Trinkgeld genauso. Mit 20,5 von 35 trägt Alice 1,64 Steuer und 3,69 Trinkgeld.
Warum nicht einfach gleichmäßig teilen?
Weil wer nur einen Salat hatte, sonst so viel zahlt wie jemand mit Steak, Steuer und Trinkgeld inklusive. Hier zahlt jede Person ihre Gerichte plus den passenden Anteil der Zuschläge; für eine gleiche Aufteilung nutzen Sie einen Rechner zum gleichmäßigen Teilen.
Wie trage ich mehrere Gerichte einer Person ein?
Schreiben Sie auf jede Zeile dieser Person genau denselben Namen. Zeilen mit gleichem Namen werden zu einem Zwischenbetrag addiert, Burger und Pommes von Alice ergeben also 20,5, bevor Steuer und Trinkgeld verteilt werden.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/life/itemized-bill-split \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"description":"Burger","amount":14.5,"person":"Alice"},{"description":"Salad","amount":11,"person":"Bob"},{"description":"Fries","amount":6,"person":"Alice"},{"description":"Soda","amount":3.5,"person":"Bob"}]}'const res = await fetch("https://api.kit.forhosting.com/life/itemized-bill-split", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
{
"description": "Burger",
"amount": 14.5,
"person": "Alice"
},
{
"description": "Salad",
"amount": 11,
"person": "Bob"
},
{
"description": "Fries",
"amount": 6,
"person": "Alice"
},
{
"description": "Soda",
"amount": 3.5,
"person": "Bob"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/itemized-bill-split",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
{
"description": "Burger",
"amount": 14.5,
"person": "Alice"
},
{
"description": "Salad",
"amount": 11,
"person": "Bob"
},
{
"description": "Fries",
"amount": 6,
"person": "Alice"
},
{
"description": "Soda",
"amount": 3.5,
"person": "Bob"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/itemized-bill-split", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":[{"description":"Burger","amount":14.5,"person":"Alice"},{"description":"Salad","amount":11,"person":"Bob"},{"description":"Fries","amount":6,"person":"Alice"},{"description":"Soda","amount":3.5,"person":"Bob"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":[{"description":"Burger","amount":14.5,"person":"Alice"},{"description":"Salad","amount":11,"person":"Bob"},{"description":"Fries","amount":6,"person":"Alice"},{"description":"Soda","amount":3.5,"person":"Bob"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/itemized-bill-split", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": [
{
"description": "Burger",
"amount": 14.5,
"person": "Alice"
},
{
"description": "Salad",
"amount": 11,
"person": "Bob"
},
{
"description": "Fries",
"amount": 6,
"person": "Alice"
},
{
"description": "Soda",
"amount": 3.5,
"person": "Bob"
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.itemized_bill_split",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Leere Positionslisten, negative Beträge, leere Personennamen sowie positive Steuer oder Service bei einer Essens-Zwischensumme von null scheitern mit einem klaren invalid_input-Fehler und werden nicht berechnet.
Eingabevertrag, Antwortfelder und Validierungsregeln
Jedes Objekt braucht amount als endliche nichtnegative Zahl und person als nicht leeren Namen oder kurze ID; optionale description kennzeichnet das Gericht in der zurückgegebenen Aufschlüsselung. Beide Nebenkosten sind absolute Geldbeträge in derselben Währung wie die Positionen, keine Prozentpunkte, sodass Sie Steuer- und Trinkgeldzeilen direkt vom Beleg kopieren. Senden Sie per POST einen JSON-Body mit einem erforderlichen items-Array von einem bis zweihundert Objekten. Aliase lines, line_items, dishes und orders werden für das Array akzeptiert, wenn Ihr Client diese Schlüssel bereits nutzt. Optionale tax ist standardmäßig null und akzeptiert Aliase tax_amount, sales_tax und vat; optionale service ist standardmäßig null und akzeptiert service_amount, service_charge, tip und gratuity. Fehlende items, leere Arrays, negative Positionsbeträge, leere person-Zeichenketten, negative tax oder service und nicht-endliche Zahlen scheitern mit invalid_input unter Nennung des Problems; diese Fehler verbrauchen nie vorausbezahltes Guthaben. Bei Erfolg liefert der Body item_count, person_count, die normalisierte items-Liste mit index, description, amount und person, food_total, tax, service, grand_total sowie ein people-Array in Reihenfolge des ersten Auftretens jeder person-Zeichenkette. Jede people-Zeile enthält person, subtotal, share_ratio, tax_share, service_share, total und item_count. Geldfelder nutzen Half-up-Rundung auf zwei Dezimalstellen mit Restausgleich bei der letzten Person mit positiver Zwischensumme, sodass gerundete Steueranteile weiterhin tax, Serviceanteile service und Personentotale grand_total ergeben. method ist itemized_proportional_tax_service und formula wiederholt die Proportionalregel zur Anzeige neben dem Ergebnis.
Wo eine API zur positionsweisen Rechnungsteilung Nutzen stiftet
Weil die Implementierung analytische Arithmetik der Stufe A ohne Modell-Token und ohne ausgehendes Netz ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002, und Validierungsfehler sind kostenlos.
Technische Fragen
Wie funktioniert der Rechner für positionsweise Rechnungsteilung?
Senden Sie items als Zeilen {amount, person} sowie optionale absolute tax und service. Das Total jeder Person ist die Essens-Zwischensumme plus anteilige Steuer und Service gemäß subtotal über food_total.
Welche Fehler liefert der Rechner?
invalid_input bei leeren items, negativen Beträgen, leeren Personennamen, negativer tax oder service bzw. positiver tax/service bei food_total null. Diese Fehler werden nicht berechnet.
Was kostet der Rechner für positionsweise Rechnungsteilung?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.