{"id":21443,"date":"2026-10-05T17:08:58","date_gmt":"2026-10-05T15:08:58","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?page_id=21443"},"modified":"2026-10-05T17:08:58","modified_gmt":"2026-10-05T15:08:58","slug":"saas-customer-acquisition-calculator","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-calculator\/","title":{"rendered":"SaaS-Kundengewinnungs-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-acquisition\">\n<p>Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.<\/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-acquisition-visits\">Qualifizierte Besuche pro Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-visits\" name=\"visits\" value=\"2000\"><\/label><br \/>\n<label for=\"saas-acquisition-signup\">Anmeldung \/ Demo-Anfrage (%)<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-signup\" name=\"signup\" value=\"5\"><\/label><br \/>\n<label for=\"saas-acquisition-activation\">Aktivierung \/ durchgef\u00fchrte Demo (%)<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-activation\" name=\"activation\" value=\"50\"><\/label><br \/>\n<label for=\"saas-acquisition-paid\">Zahlungsquote unter Aktivierten (%)<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-paid\" name=\"paid\" value=\"20\"><\/label><br \/>\n<label for=\"saas-acquisition-spend\">Marketingausgaben pro Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-spend\" name=\"spend\" value=\"400\"><\/label><br \/>\n<label for=\"saas-acquisition-hours\">Vertriebsstunden pro Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-hours\" name=\"hours\" value=\"10\"><\/label><br \/>\n<label for=\"saas-acquisition-hour\">Kosten pro Vertriebsstunde<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-hour\" name=\"hour\" value=\"40\"><\/label><br \/>\n<label for=\"saas-acquisition-price\">Nettopreis pro Kunde \/ Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-price\" name=\"price\" value=\"29\"><\/label><br \/>\n<label for=\"saas-acquisition-variable\">Variable Kosten pro Kunde \/ Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-variable\" name=\"variable\" value=\"9\"><\/label><br \/>\n<label for=\"saas-acquisition-target\">Ziel: neue zahlende Kunden \/ Monat<input type=\"text\" inputmode=\"decimal\" autocomplete=\"off\" data-rc-private data-mp-mask id=\"saas-acquisition-target\" name=\"target\" value=\"10\"><\/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-acquisition-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>Erwartete Zahler = Besuche \u00d7 Anmeldequote \u00d7 Aktivierungsquote \u00d7 Zahlungsquote. Gesamter Akquisitionsaufwand = Marketingausgaben + Vertriebsstunden \u00d7 Stundensatz. CAC = Aufwand \/ erwartete Zahler. Amortisation = CAC \/ (Nettopreis \u2212 variable Monatskosten). Erforderliche Besuche f\u00fcr das Ziel werden aufgerundet. Die Tabelle ver\u00e4ndert nur die Zahlungsquote, nicht das Budget. Erwartungswerte sind keine garantierten Abschl\u00fcsse; Churn, Zahlungsgeb\u00fchren, Umsatzsteuer und Kapitalbindung sind ausgeschlossen.<\/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-cashflow-runway-simulator\/\">SaaS-Liquidit\u00e4ts- und Runway-Simulator<\/a><\/li>\n<li><a href=\"\/blog\/de\/werkzeuge\/ai-usage-budget-calculator\/\">KI-Verbrauchsbudget-Rechner<\/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:\/\/www.ycombinator.com\/library\/96-do-things-that-don-t-scale\" rel=\"noopener\">Y Combinator: Do things that do not scale<\/a><\/li>\n<li><a href=\"https:\/\/docs.stripe.com\/billing\/subscriptions\/trials\" rel=\"noopener\">Stripe: subscription trials<\/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>Das Modell vergleicht einen einheitlichen Monatsfunnel. Kosten kostenloser Kan\u00e4le geh\u00f6ren \u00fcber Arbeitsstunden in den Aufwand. Nullabschl\u00fcsse und fehlender positiver Deckungsbeitrag ergeben keine berechenbare Amortisation.<\/p>\n<\/div>\n<p><script type=\"application\/json\" data-config>{\"kind\": \"acquisition\", \"slug\": \"saas-customer-acquisition-calculator\", \"title\": \"SaaS-Kundengewinnungs-Rechner\", \"locale\": \"de-DE\", \"fields\": [{\"key\": \"visits\", \"value\": 2000, \"label\": \"Qualifizierte Besuche pro Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": true, \"group\": \"common\"}, {\"key\": \"signup\", \"value\": 5, \"label\": \"Anmeldung \/ Demo-Anfrage (%)\", \"min\": 0, \"max\": 100, \"integer\": false, \"group\": \"common\"}, {\"key\": \"activation\", \"value\": 50, \"label\": \"Aktivierung \/ durchgef\u00fchrte Demo (%)\", \"min\": 0, \"max\": 100, \"integer\": false, \"group\": \"common\"}, {\"key\": \"paid\", \"value\": 20, \"label\": \"Zahlungsquote unter Aktivierten (%)\", \"min\": 0, \"max\": 100, \"integer\": false, \"group\": \"common\"}, {\"key\": \"spend\", \"value\": 400, \"label\": \"Marketingausgaben pro Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"hours\", \"value\": 10, \"label\": \"Vertriebsstunden pro Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"hour\", \"value\": 40, \"label\": \"Kosten pro Vertriebsstunde\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"price\", \"value\": 29, \"label\": \"Nettopreis pro Kunde \/ Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"variable\", \"value\": 9, \"label\": \"Variable Kosten pro Kunde \/ Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": false, \"group\": \"common\"}, {\"key\": \"target\", \"value\": 10, \"label\": \"Ziel: neue zahlende Kunden \/ Monat\", \"min\": 0, \"max\": 1000000000.0, \"integer\": true, \"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\": \"Das Modell vergleicht einen einheitlichen Monatsfunnel. Kosten kostenloser Kan\u00e4le geh\u00f6ren \u00fcber Arbeitsstunden in den Aufwand. Nullabschl\u00fcsse und fehlender positiver Deckungsbeitrag ergeben keine berechenbare Amortisation.\", \"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>Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[93053],"class_list":["post-21443","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>SaaS-Kundengewinnungs-Rechner | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.\" \/>\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\/saas-customer-acquisition-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SaaS-Kundengewinnungs-Rechner | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-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\\\/saas-customer-acquisition-calculator\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/saas-customer-acquisition-calculator\\\/\",\"name\":\"SaaS-Kundengewinnungs-Rechner | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-10-05T15:08:58+00:00\",\"description\":\"Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/saas-customer-acquisition-calculator\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/saas-customer-acquisition-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/saas-customer-acquisition-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\":\"SaaS-Kundengewinnungs-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":"SaaS-Kundengewinnungs-Rechner | Lukas Wojcik","description":"Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.","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\/saas-customer-acquisition-calculator\/","og_locale":"en_US","og_type":"article","og_title":"SaaS-Kundengewinnungs-Rechner | Lukas Wojcik","og_description":"Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-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\/saas-customer-acquisition-calculator\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-calculator\/","name":"SaaS-Kundengewinnungs-Rechner | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-10-05T15:08:58+00:00","description":"Vom Besuch bis zur Zahlung: erwartete Neukunden, Akquisekosten und Amortisation des Vertriebsaufwands.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-calculator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/saas-customer-acquisition-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":"SaaS-Kundengewinnungs-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\/21443","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=21443"}],"version-history":[{"count":1,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/21443\/revisions"}],"predecessor-version":[{"id":21455,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/21443\/revisions\/21455"}],"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=21443"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=21443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}