{"id":21449,"date":"2026-10-05T17:09:07","date_gmt":"2026-10-05T15:09:07","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?page_id=21449"},"modified":"2026-10-05T17:09:07","modified_gmt":"2026-10-05T15:09:07","slug":"ai-usage-budget-calculator","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/","title":{"rendered":"KI-Verbrauchsbudget-Rechner"},"content":{"rendered":"<style>\n.lw-saas{color:var(--text-primary);min-width:0}\n.lw-saas *{box-sizing:border-box}\n.lw-saas h2,.lw-saas h3,.profile-panel:has(.lw-saas) .profile-name{overflow-wrap:anywhere;hyphens:auto}\n.lw-saas .saas-note{padding:16px;border-left:3px solid var(--accent);background:var(--bg-panel);color:var(--text-secondary)}\n.lw-saas fieldset{border:1px solid var(--border);border-radius:10px;padding:18px;margin:20px 0;min-width:0;background:var(--bg-panel)}\n.lw-saas legend{padding:0 8px;font-weight:700;color:var(--text-primary)}\n.lw-saas .saas-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}\n.lw-saas label{display:block;font-size:.9rem;color:var(--text-secondary)}\n.lw-saas input{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid var(--border);border-radius:6px;background:var(--bg-body);color:var(--text-primary);font:inherit}\n.lw-saas input:focus-visible,.lw-saas button:focus-visible,.lw-saas a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}\n.lw-saas input[aria-invalid=true]{border:2px solid var(--accent)}\n.lw-saas .saas-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}\n.lw-saas button:disabled{opacity:.45;cursor:default;transform:none}\n.lw-saas [data-status]{color:var(--text-primary);font-weight:600}\n.lw-saas .saas-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}\n.lw-saas .saas-metrics div{padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel)}\n.lw-saas dt{color:var(--text-secondary);font-size:.85rem}\n.lw-saas dd{margin:8px 0 0;font-size:1.35rem;font-weight:700;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}\n.lw-saas .saas-table-wrap{max-width:100%;overflow-x:auto;margin:20px 0;border:1px solid var(--border);border-radius:8px}\n.lw-saas table{border-collapse:collapse;width:100%;font-size:.86rem}\n.lw-saas table th,.lw-saas table td{width:auto!important;padding:12px;min-width:120px;word-break:normal;overflow-wrap:normal;text-align:right;border-bottom:1px solid var(--border);color:var(--text-primary);white-space:normal}\n.lw-saas table th{background:var(--bg-panel)}\n.lw-saas table th[scope=row],.lw-saas table thead th:first-child{position:sticky;left:0;z-index:1;border-right:1px solid var(--border)}\n.lw-saas caption{text-align:left;padding:12px;font-weight:700;color:var(--text-primary)}\n.lw-saas .saas-chart{margin:20px 0;color:var(--accent)}\n.lw-saas .saas-chart svg{display:block;width:100%;height:auto}\n.lw-saas figcaption{color:var(--text-secondary);font-size:.85rem}\n.lw-saas .saas-related{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0}\n.lw-saas .saas-related li{list-style:none;margin:0}\n.lw-saas .saas-related a{display:block;border:1px solid var(--border);border-radius:6px;padding:8px 12px}\n.site-container main:has(.lw-saas) .profile-panel{flex:1 1 0;max-width:none;min-width:0}\n.site-container main:has(.lw-saas) .info-panel{flex:0 0 220px;max-width:220px}\n@media(max-width:900px){.site-container main:has(.lw-saas) .profile-panel,.site-container main:has(.lw-saas) .info-panel{flex:auto;width:100%;max-width:100%}}\n@media(max-width:540px){.lw-saas .saas-fields,.lw-saas .saas-metrics{grid-template-columns:1fr}.lw-saas fieldset{padding:12px}}\n<\/style>\n<p><script>(function(scope){'use strict';\nconst number=raw=>{const s=String(raw??'').trim().replace(\/\\s\/g,'').replace(',','.');return \/^(?:\\d+(?:\\.\\d*)?|\\.\\d+)$\/.test(s)&&Number.isFinite(Number(s))?Number(s):NaN;};\nfunction acquisition(v){const leads=v.visits*v.signup\/100,activated=leads*v.activation\/100,payers=activated*v.paid\/100,cost=v.spend+v.hours*v.hour,margin=v.price-v.variable,rate=v.signup\/100*v.activation\/100*v.paid\/100,cac=payers>0?cost\/payers:null;\nreturn {summary:{leads,activated,payers,acquisitionCost:cost,cac,payback:cac!==null&&margin>0?cac\/margin:null,requiredVisits:v.target===0?0:rate>0?Math.ceil(v.target\/rate):null},columns:['paidRate','payers','cac','payback','contribution'],rows:[0.5,1,1.5].map(x=>{const pct=Math.min(100,v.paid*x),n=activated*pct\/100,c=n>0?cost\/n:null;return [pct,n,c,c!==null&&margin>0?c\/margin:null,n*margin];})};}\nfunction cashflow(v){let monthly=v.customers,cash=v.cash,first=null;const cohorts=[],rows=[],annualPrice=v.price*12*(1-v.discount\/100);let minimum=v.cash;\nfor(let month=1;month<=v.months;month++){monthly=monthly*(1-v.churn\/100)+v.newCustomers*(1-v.annualShare\/100);let renewed=0;\nfor(const cohort of cohorts){if((month-cohort.start)%12===0){cohort.n*=v.renewal\/100;renewed+=cohort.n;}}\nconst fresh=v.newCustomers*v.annualShare\/100;cohorts.push({start:month,n:fresh});const annual=cohorts.reduce((sum,c)=>sum+c.n,0),annualBills=renewed+fresh;\nconst receipts=monthly*v.price+annualBills*annualPrice,refunds=receipts*v.refunds\/100,fees=receipts*v.fee\/100+(monthly+annualBills)*v.flat;\nconst outflow=fees+(monthly+annual)*v.variable+v.fixed+(month===1?v.setup:0),net=receipts-refunds-outflow;cash+=net;minimum=Math.min(minimum,cash);if(cash<0&#038;&#038;first===null)first=month;\nrows.push([month,monthly,annual,receipts,refunds,outflow,net,cash,monthly*v.price+annual*annualPrice\/12]);}\nreturn {summary:{finalCash:cash,minimumCash:Math.min(...rows.map(r=>r[7])),firstShortfall:first===null?'none':first,finalMRR:rows.at(-1)[8]},columns:['month','monthlyCustomers','annualCustomers','receipts','refunds','outflow','netCash','closingCash','mrr'],rows};}\nfunction aibudget(v){const attempt=(v.inputTokens*((1-v.cached\/100)*v.inputRate+v.cached\/100*v.cacheRate)+v.outputTokens*v.outputRate)\/1e6+v.overhead,request=attempt*(1+v.retries\/100),usable=v.budget*(1-v.reserve\/100);\nreturn {summary:{attemptCost:attempt,requestCost:request,usableBudget:usable,safeRequests:request>0?Math.floor(usable\/request):'unbounded'},columns:['scenario','requests','attemptsTotal','perCustomer','totalCost','remaining'],rows:[1,2,v.spike].map(x=>{const n=v.requests*x,cost=n*request;return [x+'\u00d7',n,n*v.customers*(1+v.retries\/100),cost,cost*v.customers,usable-cost];})};}\nfunction support(v){const perPerson=v.hours*v.utilization\/100;\nconst calc=rate=>{const tickets=v.customers*v.tickets*(1-rate\/100),hours=tickets*v.minutes\/60*(1+v.reopen\/100),staff=Math.ceil(hours\/perPerson);return {tickets,hours,staff};};const main=calc(v.selfserve),capacity=v.staff*perPerson,cost=v.staff*v.hours*v.hour+v.fixed;\nreturn {summary:{tickets:main.tickets,requiredHours:main.hours,capacity,neededStaff:main.staff,spareHours:capacity-main.hours,teamCost:cost,perCustomerSupport:v.customers>0?cost\/v.customers:null},columns:['avoidRate','tickets','requiredHours','neededStaff','requiredStaffCost'],rows:[0,v.selfserve,Math.min(100,v.selfserve+20)].map(rate=>{const r=calc(rate);return [rate,r.tickets,r.hours,r.staff,r.staff*v.hours*v.hour+v.fixed];})};}\nconst api={number,acquisition,cashflow,aibudget,support};if(typeof module!=='undefined'&&module.exports)module.exports=api;else scope.LWSaasMath=api;\n})(typeof window!=='undefined'?window:globalThis);<\/script><\/p>\n<div class=\"lw-saas\" id=\"saas-aibudget\">\n<p>Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.<\/p>\n<p class=\"saas-note\">Alle Geldbetr\u00e4ge in derselben W\u00e4hrung, ohne Umsatzsteuer. Beispielwerte sind Annahmen, keine Anbieterpreise. Eingaben und Berechnungen bleiben im Browser.<\/p>\n<p><a href=\"\/blog\/de\/werkzeuge\/#saas\">Alle SaaS-Werkzeuge<\/a><\/p>\n<form novalidate>\n<fieldset>\n<legend>Grundannahmen<\/legend>\n<div class=\"saas-fields\">\n<label for=\"saas-aibudget-customers\">Aktive Kunden<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-customers\" name=\"customers\" value=\"100\"><\/label><br \/>\n<label for=\"saas-aibudget-requests\">Urspr\u00fcngliche Anfragen pro Kunde \/ Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-requests\" name=\"requests\" value=\"500\"><\/label><br \/>\n<label for=\"saas-aibudget-inputTokens\">Eingabetokens pro Versuch<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-inputTokens\" name=\"inputTokens\" value=\"2000\"><\/label><br \/>\n<label for=\"saas-aibudget-outputTokens\">Ausgabetokens pro Versuch<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-outputTokens\" name=\"outputTokens\" value=\"500\"><\/label><br \/>\n<label for=\"saas-aibudget-cached\">Tats\u00e4chlicher Cache-Leseanteil der Eingabetokens (%)<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-cached\" name=\"cached\" value=\"25\"><\/label><br \/>\n<label for=\"saas-aibudget-inputRate\">Preis pro Million normaler Eingabetokens<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-inputRate\" name=\"inputRate\" value=\"3\"><\/label><br \/>\n<label for=\"saas-aibudget-cacheRate\">Preis pro Million Cache-Lesetokens<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-cacheRate\" name=\"cacheRate\" value=\"0.3\"><\/label><br \/>\n<label for=\"saas-aibudget-outputRate\">Preis pro Million Ausgabetokens<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-outputRate\" name=\"outputRate\" value=\"15\"><\/label><br \/>\n<label for=\"saas-aibudget-overhead\">Zus\u00e4tzliche Kosten pro Versuch<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-overhead\" name=\"overhead\" value=\"0.001\"><\/label><br \/>\n<label for=\"saas-aibudget-retries\">Zus\u00e4tzliche Wiederholungsversuche (%)<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-retries\" name=\"retries\" value=\"10\"><\/label><br \/>\n<label for=\"saas-aibudget-budget\">Monatliches KI-Kostenbudget pro Kunde<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-budget\" name=\"budget\" value=\"15\"><\/label><br \/>\n<label for=\"saas-aibudget-reserve\">Sicherheitsreserve vom Budget (%)<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-reserve\" name=\"reserve\" value=\"20\"><\/label><br \/>\n<label for=\"saas-aibudget-spike\">Nutzungsmultiplikator im Spitzenszenario<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-aibudget-spike\" name=\"spike\" value=\"3\"><\/label>\n<\/div>\n<\/fieldset>\n<div class=\"saas-actions\"><button type=\"submit\">Berechnen<\/button><button type=\"button\" data-reset>Beispielwerte<\/button><\/div>\n<\/form>\n<p role=\"alert\" data-status id=\"saas-aibudget-status\">\n<div data-result data-rc-private data-mp-mask aria-live=\"polite\" aria-atomic=\"false\"><\/div>\n<p><button type=\"button\" data-csv disabled>CSV herunterladen<\/button><\/p>\n<h2>Rechenmodell und Annahmen<\/h2>\n<p>Kosten je Versuch = Eingabetokens \/ 1 Million \u00d7 gewichteter Eingabepreis + Ausgabetokens \/ 1 Million \u00d7 Ausgabepreis + Zusatzkosten. Der gewichtete Eingabepreis ber\u00fccksichtigt nur tats\u00e4chliche Cache-Lesezugriffe. Kosten je urspr\u00fcnglicher Anfrage = Versuchskosten \u00d7 (1 + zus\u00e4tzliche Wiederholungsquote). Nutzbares Budget = Budget \u00d7 (1 \u2212 Reserve). Das Limit ist die abgerundete Anzahl urspr\u00fcnglicher Anfragen innerhalb dieses Budgets. Die Tabelle zeigt normale Nutzung, doppelte Nutzung und das Spitzenszenario. Preise sind frei gew\u00e4hlte Rechenbeispiele, keine aktuellen Anbietertarife. Cache-Schreibaufschl\u00e4ge, multimodale Einheiten und externe Werkzeuge geh\u00f6ren in Zusatzkosten oder eine separate Kalkulation.<\/p>\n<h2>Weitere SaaS-Werkzeuge<\/h2>\n<ul class=\"saas-related\">\n<li><a href=\"\/blog\/de\/werkzeuge\/saas-profitability-calculator\/\">SaaS-Rentabilit\u00e4tsrechner<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/saas-pricing-model-simulator\/\">SaaS-Preismodell-Simulator<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/automation-cost-comparator\/\">Automatisierungskosten-Vergleich<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/mrr-churn-simulator\/\">MRR- und Churn-Rechner<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/digital-product-profit-calculator\/\">Digitale-Produkte-Rechner<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/saas-customer-acquisition-calculator\/\">SaaS-Kundengewinnungs-Rechner<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/saas-cashflow-runway-simulator\/\">SaaS-Liquidit\u00e4ts- und Runway-Simulator<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/saas-support-capacity-planner\/\">SaaS-Support-Kapazit\u00e4tsplaner<\/a><\/li>\n<\/ul>\n<h2>Quellen und Definitionen<\/h2>\n<ul>\n<li><a href=\"https:\/\/platform.claude.com\/docs\/en\/api\/rate-limits\" rel=\"noopener\">Anthropic: rate limits<\/a><\/li>\n<li><a href=\"https:\/\/platform.claude.com\/docs\/en\/build-with-claude\/prompt-caching\" rel=\"noopener\">Anthropic: prompt caching<\/a><\/li>\n<\/ul>\n<div class=\"lw-faq\">\n<h2>FAQ<\/h2>\n<h3>Werden Eingaben \u00fcbertragen?<\/h3>\n<p>Die Rechenfunktion verarbeitet Eingaben lokal im Browser. CSV-Dateien entstehen ebenfalls lokal. Die Seite speichert keine Szenarioeingaben auf dem Server.<\/p>\n<h3>Welche Grenzen hat das Modell?<\/h3>\n<p>Der Rechner setzt keine technischen Limits durch. Tokens und Wiederholungen sind Durchschnittswerte. Ein kostenfreies Szenario besitzt kein endliches Kostenlimit; echte Rate Limits, Parallelit\u00e4t und Missbrauchsschutz m\u00fcssen zus\u00e4tzlich umgesetzt werden.<\/p>\n<\/div>\n<p><script type=\"application\/json\" data-config>{\"kind\": \"aibudget\", \"slug\": \"ai-usage-budget-calculator\", \"title\": \"KI-Verbrauchsbudget-Rechner\", \"locale\": \"de-DE\", \"fields\": [{\"key\": \"customers\", \"value\": 100, \"label\": \"Aktive Kunden\", \"min\": 0, \"max\": 1000000000.0, \"integer\": true, \"group\": \"common\"}, {\"key\": \"requests\", \"value\": 500, \"label\": \"Urspr\u00fcngliche Anfragen pro Kunde \/ Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": true, \"group\": \"common\"}, {\"key\": \"inputTokens\", \"value\": 2000, \"label\": \"Eingabetokens pro Versuch\", \"min\": 0, \"max\": 1000000000.0, \"integer\": true, \"group\": \"common\"}, {\"key\": \"outputTokens\", \"value\": 500, \"label\": \"Ausgabetokens pro Versuch\", \"min\": 0, \"max\": 1000000000.0, \"integer\": true, \"group\": \"common\"}, {\"key\": \"cached\", \"value\": 25, \"label\": \"Tats\u00e4chlicher Cache-Leseanteil der Eingabetokens (%)\", \"min\": 0, \"max\": 100, \"integer\": false, \"group\": \"common\"}, {\"key\": \"inputRate\", \"value\": 3, \"label\": \"Preis pro Million normaler Eingabetokens\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"cacheRate\", \"value\": 0.3, \"label\": \"Preis pro Million Cache-Lesetokens\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"outputRate\", \"value\": 15, \"label\": \"Preis pro Million Ausgabetokens\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"overhead\", \"value\": 0.001, \"label\": \"Zus\u00e4tzliche Kosten pro Versuch\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"retries\", \"value\": 10, \"label\": \"Zus\u00e4tzliche Wiederholungsversuche (%)\", \"min\": 0, \"max\": 1000, \"integer\": false, \"group\": \"common\"}, {\"key\": \"budget\", \"value\": 15, \"label\": \"Monatliches KI-Kostenbudget pro Kunde\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"reserve\", \"value\": 20, \"label\": \"Sicherheitsreserve vom Budget (%)\", \"min\": 0, \"max\": 100, \"integer\": false, \"group\": \"common\"}, {\"key\": \"spike\", \"value\": 3, \"label\": \"Nutzungsmultiplikator im Spitzenszenario\", \"min\": 1, \"max\": 100, \"integer\": false, \"group\": \"common\"}], \"labels\": {\"revenue\": \"Monatsumsatz\", \"cost\": \"Monatskosten\", \"profit\": \"Monatsgewinn\", \"margin\": \"Deckungsbeitrag je Kunde \/ Verkauf\", \"breakEven\": \"Gewinnschwelle: Kunden \/ Verk\u00e4ufe\", \"minimumPrice\": \"Kostendeckender Nettopreis\", \"scenario\": \"Volumen\", \"customers\": \"Kunden\", \"sales\": \"Verk\u00e4ufe\", \"attempts\": \"Versuche pro Monat\", \"outcomes\": \"Erwartete erfolgreiche Ergebnisse\", \"packs\": \"Credit-Pakete pro Monat\", \"model\": \"Preismodell\", \"fees\": \"Zahlungsgeb\u00fchren\", \"operatingCost\": \"Versuchs- und Fixkosten\", \"subscription\": \"Abo\", \"credits\": \"Credit-Pakete\", \"outcome\": \"Ergebnisabrechnung\", \"platform\": \"Plattform\", \"billableUnits\": \"Abrechnungseinheiten\", \"fixedPlanHosting\": \"Plan und Hosting\", \"overage\": \"Mehrverbrauchskosten\", \"maintenance\": \"Wartungskosten\", \"setupMonthly\": \"Einrichtung je Monat\", \"apiCost\": \"Externe API-Kosten\", \"total\": \"Gesamtkosten pro Monat\", \"perRun\": \"Kosten je urspr\u00fcnglichem Lauf\", \"n8n\": \"n8n\", \"make\": \"Make\", \"code\": \"Eigener Code\", \"initialMRR\": \"Anfangs-MRR\", \"finalMRR\": \"MRR am Ende\", \"annualRunRate\": \"ARR am Ende (MRR \u00d7 12)\", \"finalCustomers\": \"Erwartete Kunden am Ende\", \"month\": \"Monat\", \"openingMRR\": \"MRR zu Monatsbeginn\", \"lostMRR\": \"Gek\u00fcndigter MRR\", \"newMRR\": \"Neuer MRR\", \"expansionMRR\": \"MRR-Erweiterung\", \"contractionMRR\": \"MRR-Reduktion\", \"closingMRR\": \"MRR zum Monatsende\", \"customersExpected\": \"Erwartete Kunden\", \"nrr\": \"NRR ohne Neukunden\", \"grossRevenue\": \"Umsatz vor R\u00fcckerstattung\", \"refundValue\": \"R\u00fcckerstattungen\", \"retainedRevenue\": \"Einbehaltener Umsatz\", \"leads\": \"Anmeldungen \/ Demo-Anfragen\", \"activated\": \"Aktivierte Kontakte\", \"payers\": \"Erwartete neue Zahler\", \"acquisitionCost\": \"Akquisitionsaufwand\", \"cac\": \"Kosten pro Neukunde (CAC)\", \"payback\": \"Amortisation in Monaten\", \"requiredVisits\": \"Erforderliche Besuche f\u00fcr das Ziel\", \"paidRate\": \"Zahlungsquote (%)\", \"contribution\": \"Monatlicher Deckungsbeitrag der Neukunden\", \"finalCash\": \"Kontostand am Ende\", \"minimumCash\": \"Niedrigster Monatsendstand\", \"firstShortfall\": \"Erster Monat mit negativem Endstand\", \"none\": \"Kein negativer Monatsendstand\", \"monthlyCustomers\": \"Monatskunden\", \"annualCustomers\": \"Jahreskunden\", \"receipts\": \"Zahlungseing\u00e4nge\", \"refunds\": \"R\u00fcckerstattungen\", \"outflow\": \"Geb\u00fchren und Betriebsausgaben\", \"netCash\": \"Netto-Geldfluss\", \"closingCash\": \"Kontostand zum Monatsende\", \"mrr\": \"Aktiver Vertrags-MRR\", \"attemptCost\": \"Kosten je Versuch\", \"requestCost\": \"Kosten je urspr\u00fcnglicher Anfrage\", \"usableBudget\": \"Nutzbares Budget pro Kunde\", \"safeRequests\": \"Kostenlimit: urspr\u00fcngliche Anfragen \/ Kunde\", \"unbounded\": \"Kein endliches Kostenlimit\", \"requests\": \"Anfragen pro Kunde\", \"attemptsTotal\": \"Versuche insgesamt\", \"perCustomer\": \"KI-Kosten pro Kunde\", \"totalCost\": \"Gesamte KI-Kosten\", \"remaining\": \"Rest zum nutzbaren Budget pro Kunde\", \"tickets\": \"Verbleibende Tickets\", \"requiredHours\": \"Ben\u00f6tigte Bearbeitungsstunden\", \"capacity\": \"Verf\u00fcgbare Bearbeitungsstunden\", \"neededStaff\": \"Erforderliche Personen\", \"spareHours\": \"Freie Stunden \/ negativer Fehlbedarf\", \"teamCost\": \"Monatliche Kosten des eingeplanten Teams\", \"perCustomerSupport\": \"Teamkosten pro Kunde\", \"avoidRate\": \"Self-Service-Anteil (%)\", \"requiredStaffCost\": \"Kosten des erforderlichen Teams\"}, \"ui\": {\"calculate\": \"Berechnen\", \"reset\": \"Beispielwerte\", \"csv\": \"CSV herunterladen\", \"results\": \"Ergebnis\", \"table\": \"Szenarien und Berechnung\", \"unavailable\": \"Nicht berechenbar\", \"invalid\": \"Ung\u00fcltiger Wert. Zul\u00e4ssiger Bereich f\u00fcr\", \"integer\": \"(ganze Zahl)\", \"shares\": \"Die drei Kundenanteile m\u00fcssen zusammen 100 % ergeben.\", \"overflow\": \"Die Eingaben ergeben zu gro\u00dfe Werte.\", \"changed\": \"Eingaben ge\u00e4ndert. Eine neue Berechnung aktualisiert das Ergebnis.\", \"undefinedHelp\": \"Der Rechner setzt keine technischen Limits durch. Tokens und Wiederholungen sind Durchschnittswerte. Ein kostenfreies Szenario besitzt kein endliches Kostenlimit; echte Rate Limits, Parallelit\u00e4t und Missbrauchsschutz m\u00fcssen zus\u00e4tzlich umgesetzt werden.\", \"title\": \"Werkzeug\", \"assumptions\": \"Annahmen\", \"chart\": \"Entwicklung des MRR; genaue Werte in der Tabelle\", \"pricingChart\": \"Monatsgewinn je Preismodell; genaue Werte in der Tabelle\", \"method\": \"Rechenmodell und Annahmen\", \"sources\": \"Quellen und Definitionen\", \"faq1\": \"Werden Eingaben \u00fcbertragen?\", \"faq1a\": \"Die Rechenfunktion verarbeitet Eingaben lokal im Browser. CSV-Dateien entstehen ebenfalls lokal. Die Seite speichert keine Szenarioeingaben auf dem Server.\", \"faq2\": \"Welche Grenzen hat das Modell?\", \"related\": \"Weitere SaaS-Werkzeuge\", \"all\": \"Alle SaaS-Werkzeuge\"}}<\/script><\/div>\n<p><script>(function(){\n'use strict';\nconst root=document.currentScript.previousElementSibling;\nconst c=JSON.parse(root.querySelector('[data-config]').textContent);\nif(root.dataset.ready)return;root.dataset.ready='1';\nconst form=root.querySelector('form'), result=root.querySelector('[data-result]'), status=root.querySelector('[data-status]'), download=root.querySelector('[data-csv]');\nlet exportRows=null;\nconst fmt=new Intl.NumberFormat(c.locale,{maximumFractionDigits:2});\nconst countFmt=new Intl.NumberFormat(c.locale,{maximumFractionDigits:2});\nconst preciseFmt=new Intl.NumberFormat(c.locale,{maximumFractionDigits:6});\nconst safeMinimum=value=>Math.ceil(value*100)\/100;\nconst e=(tag,text)=>{const n=document.createElement(tag);if(text!==undefined)n.textContent=text;return n;};\nconst label=k=>c.labels[k]||k;\nfunction display(value,key){\n if(value===null)return c.ui.unavailable;\n if(typeof value==='string')return label(value);\n if(key==='minimumPrice')value=safeMinimum(value);\n if(['attemptCost','requestCost','perRun','margin'].includes(key))return preciseFmt.format(value);\n return (['customers','sales','attempts','outcomes','packs','breakEven','finalCustomers','customersExpected','billableUnits','month'].includes(key)?countFmt:fmt).format(value)+(key==='nrr'?' %':'');\n}\nfunction calculate(){\n status.textContent='';result.replaceChildren();download.disabled=true;exportRows=null;\n root.querySelectorAll('[aria-invalid]').forEach(n=>{n.removeAttribute('aria-invalid');n.removeAttribute('aria-describedby');});\n const v={};let bad=null;\n for(const f of c.fields){\n  const input=form.elements.namedItem(f.key), n=LWSaasMath.number(input.value);\n  if(!Number.isFinite(n)||n<f.min||n>f.max||(f.integer&&!Number.isInteger(n))){\n   input.setAttribute('aria-invalid','true');input.setAttribute('aria-describedby',status.id);\n   if(!bad)bad={input,field:f};\n  }v[f.key]=n;\n }\n if(bad){\n  status.textContent=c.ui.invalid+' '+bad.field.label+': '+bad.field.min+'\u2013'+bad.field.max+(bad.field.integer?' '+c.ui.integer:'');\n  bad.input.focus();return;\n }\n let data;\n try{data=LWSaasMath[c.kind](v);}catch(error){status.textContent=c.ui.shares;return;}\n const values=[...Object.values(data.summary),...data.rows.flat()];\n if(values.some(n=>typeof n==='number'&&!Number.isFinite(n))){status.textContent=c.ui.overflow;return;}\n const h=e('h2',c.ui.results);result.append(h);\n const cards=e('dl');cards.className='saas-metrics';\n for(const [key,value]of Object.entries(data.summary)){\n  const box=e('div');box.append(e('dt',label(key)),e('dd',display(value,key)));cards.append(box);\n }result.append(cards);\n if(c.kind==='mrr'||c.kind==='pricing'){\n  const index=c.kind==='mrr'?6:4;\n  const points=data.rows.map(row=>row[index]);\n  const chart=e('figure');chart.className='saas-chart';\n  const svg=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','svg');\n  svg.setAttribute('viewBox','0 0 600 160');svg.setAttribute('role','img');svg.setAttribute('aria-label',c.ui.chart);\n  const max=Math.max(1,...points.map(Math.abs));\n  if(c.kind==='mrr'){\n   const path=document.createElementNS(svg.namespaceURI,'polyline');\n   path.setAttribute('points',points.map((n,i)=>(20+i*560\/Math.max(1,points.length-1))+','+(140-n\/max*120)).join(' '));\n   path.setAttribute('fill','none');path.setAttribute('stroke','currentColor');path.setAttribute('stroke-width','3');svg.append(path);\n  }else{\n   for(let i=0;i<points.length;i++){\n    const rect=document.createElementNS(svg.namespaceURI,'rect');\n    rect.setAttribute('x',30+i*195);rect.setAttribute('width','140');\n    rect.setAttribute('y',points[i]>=0?80-points[i]\/max*60:80);\n    rect.setAttribute('height',Math.abs(points[i])\/max*60);rect.setAttribute('fill','currentColor');\n    const title=document.createElementNS(svg.namespaceURI,'title');title.textContent=label(data.rows[i][0])+': '+display(points[i],'profit');rect.append(title);svg.append(rect);\n   }\n   const axis=document.createElementNS(svg.namespaceURI,'path');axis.setAttribute('d','M20 80H580');axis.setAttribute('stroke','currentColor');svg.append(axis);\n  }\n  chart.append(svg,e('figcaption',c.ui.chart));result.append(chart);\n }\n const scroll=e('div');scroll.className='saas-table-wrap';scroll.tabIndex=0;\n scroll.setAttribute('role','region');scroll.setAttribute('aria-label',c.ui.table);\n const table=e('table');table.append(e('caption',c.ui.table));\n const head=e('thead'), hr=e('tr');\n data.columns.forEach(k=>{const th=e('th',label(k));th.scope='col';hr.append(th);});head.append(hr);table.append(head);\n const body=e('tbody');\n data.rows.forEach(row=>{const tr=e('tr');row.forEach((value,i)=>{const cell=e(i===0?'th':'td',display(value,data.columns[i]));if(i===0)cell.scope='row';tr.append(cell);});body.append(tr);});\n table.append(body);scroll.append(table);result.append(scroll);\n if(Object.values(data.summary).includes(null)||data.rows.flat().includes(null))result.append(e('p',c.ui.undefinedHelp));\n exportRows=[[c.ui.title,c.title],[c.ui.assumptions]];\n for(const f of c.fields)exportRows.push([f.label,v[f.key]]);\n exportRows.push([],['',c.ui.results]);\n for(const [key,value]of Object.entries(data.summary))exportRows.push([label(key),value===null?c.ui.unavailable:key==='minimumPrice'?safeMinimum(value):value]);\n exportRows.push([],data.columns.map(label),...data.rows.map(row=>row.map(x=>typeof x==='string'?label(x):x===null?c.ui.unavailable:x)));\n download.disabled=false;\n root.dispatchEvent(new CustomEvent('saas-calculated',{detail:data}));\n}\nform.addEventListener('submit',event=>{event.preventDefault();calculate();});\nform.addEventListener('input',()=>{exportRows=null;download.disabled=true;status.textContent=c.ui.changed;result.replaceChildren();});\nroot.querySelector('[data-reset]').addEventListener('click',()=>{form.reset();calculate();});\ndownload.addEventListener('click',()=>{\n if(!exportRows)return;\n const csv='\\uFEFF'+exportRows.map(row=>row.map(x=>'\"'+String(x).replace(\/\"\/g,'\"\"')+'\"').join(';')).join('\\r\\n');\n const url=URL.createObjectURL(new Blob([csv],{type:'text\/csv;charset=utf-8'}));\n const a=e('a');a.href=url;a.download=c.slug+'.csv';root.append(a);a.click();a.remove();setTimeout(()=>URL.revokeObjectURL(url),1000);\n});\nroot._saasCalculate=calculate;\ncalculate();\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[93053],"class_list":["post-21449","page","type-page","status-publish","hentry","tag-saas-tools-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>KI-Verbrauchsbudget-Rechner | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KI-Verbrauchsbudget-Rechner | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/ai-usage-budget-calculator\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/ai-usage-budget-calculator\\\/\",\"name\":\"KI-Verbrauchsbudget-Rechner | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-05T15:09:07+00:00\",\"description\":\"Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/ai-usage-budget-calculator\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/ai-usage-budget-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/ai-usage-budget-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-2\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"KI-Verbrauchsbudget-Rechner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"KI-Verbrauchsbudget-Rechner | Lukas Wojcik","description":"Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/","og_locale":"en_US","og_type":"article","og_title":"KI-Verbrauchsbudget-Rechner | Lukas Wojcik","og_description":"Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/","og_site_name":"Lukas Wojcik - Blog","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/","name":"KI-Verbrauchsbudget-Rechner | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-10-05T15:09:07+00:00","description":"Tokenkosten, Wiederholungsversuche und Spitzenlast gegen ein monatliches Kostenbudget pro Kunde pr\u00fcfen.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-2\/"},{"@type":"ListItem","position":3,"name":"KI-Verbrauchsbudget-Rechner"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/21449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=21449"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/21449\/revisions"}],"predecessor-version":[{"id":21461,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/21449\/revisions\/21461"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9283"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=21449"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=21449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}