Anteiliges Guthaben und Kosten beim Abo-Tarifwechsel
Dieser Rechner zeigt die finanziellen Folgen, wenn Sie einen Kunden vor dem Ende des laufenden Abrechnungszyklus in einen anderen Abotarif wechseln lassen.
Im Browser ausführen – kostenlos
Geben Sie die Preise des bisherigen und des neuen Tarifs für einen vollständigen Zyklus, die ungenutzten Tage und die gesamte Zyklusdauer ein. Das Ergebnis weist das Guthaben für die ungenutzte Zeit und die Kosten des neuen Tarifs für denselben Zeitraum getrennt aus. Anschließend erhalten Sie den Nettobetrag sowie die Angabe, ob eine Belastung, eine Gutschrift oder keine Anpassung entsteht.
Geben Sie vergleichbare Tarifpreise und Zyklusdaten ein
Verwenden Sie für jeden Tarif den Preis eines vollständigen Abrechnungszyklus. Beide Preise müssen dieselbe Währung und denselben Abrechnungszeitraum verwenden; vergleichen Sie also monatlich mit monatlich oder jährlich mit jährlich. Tragen Sie zunächst die Gesamtzahl der vollen Tage im aktiven Zyklus und anschließend die vollen verbleibenden Tage zum Wirksamwerden des Wechsels ein. Erfolgt der Wechsel am Zyklusende, dürfen null Tage verbleiben; sämtliche Anpassungen sind dann ebenfalls null. Der Rechner lehnt mehr verbleibende Tage als Gesamttage ab, da diese Zeitangaben widersprüchlich sind. Negative Preise, angebrochene Tage, nicht endliche Werte und eine Zyklusdauer unter einem Tag sind ebenfalls unzulässig. Steuern, Rabatte, Kontoguthaben, nutzungsabhängige Entgelte und Zahlungsabwicklung gehören bewusst nicht zu dieser Berechnung. Falls solche Posten gelten, berechnen Sie zuerst die reine Tarifanpassung und wenden Sie Ihre Abrechnungsregeln anschließend in einem getrennten, prüfbaren Schritt an. So lässt sich das Ergebnis leichter gegenüber dem Kunden erläutern und mit der Rechnung abstimmen.
Verstehen Sie Guthaben, Kosten und Nettobetrag
Der ungenutzte Anteil ergibt sich aus den verbleibenden Tagen geteilt durch die Gesamttage des Abrechnungszyklus. Für das anteilige Guthaben wird der Preis des bisherigen Tarifs mit diesem Anteil multipliziert; es bildet den Wert der bezahlten, aber nicht genutzten Leistung ab. Die anteiligen Kosten entstehen aus dem Preis des neuen Tarifs mal demselben Anteil und entsprechen der Ersatzleistung für genau diese Tage. Beide Geldbeträge werden zunächst auf zwei Dezimalstellen gerundet, bevor der Nettobetrag berechnet wird. Dieses Vorgehen entspricht getrennten Rechnungspositionen. Der Nettobetrag ist die Differenz aus anteiligen Kosten und anteiligem Guthaben. Ein positiver Wert bedeutet Belastung: Bei einem Upgrade muss der Kunde die Differenz zahlen. Ein negativer Wert bedeutet Gutschrift: Bei einem Downgrade wird der absolute Betrag dem Konto gutgeschrieben. Bei null ist keine Anpassung erforderlich. Guthaben und Kosten bleiben nicht negative Einzelposten; der Nettobetrag trägt dagegen ein Vorzeichen und zeigt den endgültigen Saldo eindeutig an.
Übernehmen Sie das Ergebnis einheitlich in die Abrechnung
Nutzen Sie die Ausgabe als nachvollziehbaren Berechnungsnachweis, statt lediglich einen Nettobetrag ohne Zusammenhang zu speichern. Bewahren Sie die vier ursprünglichen Eingaben zusammen mit dem ungenutzten Anteil, dem anteiligen Guthaben, den anteiligen Kosten, dem Nettobetrag und der Richtung auf. Finanz- und Supportteams können die Rechnung dadurch später ohne Rekonstruktion der Datumswerte wiederholen. Klären Sie vor dem Buchen der Rechnungspositionen, ob Ihr Unternehmen den Wirksamkeitstag als genutzt oder ungenutzt zählt, denn davon hängt die Zahl der verbleibenden Tage ab. Prüfen Sie außerdem, ob Ihr Abrechnungssystem sekundengenau statt nach vollen Tagen rechnet. Diese Fähigkeit verwendet ausdrücklich ganze Tage und sollte nicht mit einer sekundengenauen Regel kombiniert werden. Bei Preisen einschließlich Steuern ist zu prüfen, ob örtliche Vorschriften eine getrennte Steuerkorrektur verlangen. Bei rabattierten Abos geben Sie die tatsächlich maßgeblichen Preise für den vollständigen Zyklus ein, sofern der Rabatt berücksichtigt werden soll. Die API kostet $0.002 je Berechnung und nutzt weder Netzwerk noch aktuelles Datum oder gespeicherten Zustand; identische gültige Eingaben liefern daher stets dasselbe Ergebnis.
Anwendungsfälle
Ein Upgrade während des Zyklus anbieten
Zeigen Sie vor der Bestätigung das Guthaben des ungenutzten Tarifs, die Kosten des neuen Tarifs und den zusätzlich fälligen Betrag.
Ein Abo-Downgrade bearbeiten
Berechnen Sie die Kontogutschrift, wenn für die verbleibenden Tage ein günstigerer Tarif den bisherigen ersetzt.
Abrechnungsanpassungen abstimmen
Reproduzieren Sie eine anteilige Rechnungsposition anhand gespeicherter Preise und Zyklustage bei Finanz- oder Supportprüfungen.
Häufige Fragen
Was kostet die Berechnung?
Jede Berechnung per API kostet $0.002. Die Browserversion lässt sich lokal auf dieser Seite ausführen.
Wie wird das anteilige Guthaben berechnet?
Der Preis des bisherigen Tarifs für einen vollständigen Zyklus wird mit den verbleibenden Tagen geteilt durch die Gesamttage multipliziert und auf zwei Dezimalstellen gerundet.
Wie werden die anteiligen Kosten berechnet?
Der Preis des neuen Tarifs für einen vollständigen Zyklus wird mit demselben ungenutzten Anteil multipliziert und auf zwei Dezimalstellen gerundet.
Was bedeutet ein negativer Nettobetrag?
Das anteilige Guthaben übersteigt die Kosten. Die Richtung lautet Gutschrift; der absolute Nettobetrag ist der gutzuschreibende Wert.
Dürfen die verbleibenden Tage länger als der Zyklus sein?
Nein. Diese widersprüchliche Eingabe führt zu einem Eingabefehler. Steuern und Rabatte werden nicht automatisch ergänzt; verwenden Sie die maßgeblichen Preise und Ihre eigenen Steuerregeln.
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/ecom/subscription-proration-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_plan_price":30,"new_plan_price":60,"days_remaining":10,"billing_cycle_days":30}'const res = await fetch("https://api.kit.forhosting.com/ecom/subscription-proration-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_plan_price": 30,
"new_plan_price": 60,
"days_remaining": 10,
"billing_cycle_days": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ecom/subscription-proration-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_plan_price": 30,
"new_plan_price": 60,
"days_remaining": 10,
"billing_cycle_days": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ecom/subscription-proration-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_plan_price":30,"new_plan_price":60,"days_remaining":10,"billing_cycle_days":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_plan_price":30,"new_plan_price":60,"days_remaining":10,"billing_cycle_days":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ecom/subscription-proration-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"current_plan_price": 30,
"new_plan_price": 60,
"days_remaining": 10,
"billing_cycle_days": 30
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ecom.subscription_proration_calc",
"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. |