{"id":254,"date":"2026-03-05T14:05:04","date_gmt":"2026-03-05T14:05:04","guid":{"rendered":"https:\/\/kalenderwoche.info\/blog\/?page_id=254"},"modified":"2026-03-05T14:05:05","modified_gmt":"2026-03-05T14:05:05","slug":"mwst-rechner","status":"publish","type":"page","link":"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/","title":{"rendered":"MwSt-Rechner"},"content":{"rendered":"\n<section id=\"tool__mwst-rechner\" aria-labelledby=\"tool__mwst-rechner__title\">\n  <style>\n    #tool__mwst-rechner{--bg:#fff;--surface:#f7f7f8;--border:#d9d9de;--text:#111827;--muted:#4b5563;--danger:#b42318;--ok:#0f766e;--focus:#2563eb;--radius:14px;--pad:16px;--gap:12px;--shadow:0 1px 0 rgba(17,24,39,.04)}\n    #tool__mwst-rechner *{box-sizing:border-box}\n    #tool__mwst-rechner{max-width:720px;margin:0 auto;color:var(--text);font:inherit}\n    #tool__mwst-rechner .t-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(14px,2.5vw,var(--pad));box-shadow:var(--shadow)}\n    #tool__mwst-rechner .t-head{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}\n    #tool__mwst-rechner h2{font-size:clamp(18px,2.2vw,22px);line-height:1.2;margin:0}\n    #tool__mwst-rechner .t-sub{margin:0;color:var(--muted);font-size:14px;line-height:1.45}\n    #tool__mwst-rechner form{margin:0}\n    #tool__mwst-rechner .t-grid{display:grid;grid-template-columns:1fr;gap:var(--gap)}\n    @media (min-width:640px){\n      #tool__mwst-rechner .t-grid{grid-template-columns:1fr 1fr}\n      #tool__mwst-rechner .t-span2{grid-column:1 \/ -1}\n    }\n    #tool__mwst-rechner label{display:block;font-weight:600;font-size:14px;margin:0 0 6px}\n    #tool__mwst-rechner .t-help{margin:6px 0 0;color:var(--muted);font-size:12.5px;line-height:1.45}\n    #tool__mwst-rechner input[type=\"number\"],\n    #tool__mwst-rechner select{\n      width:100%;\n      border:1px solid var(--border);\n      border-radius:12px;\n      padding:12px 12px;\n      font:inherit;\n      background:var(--surface);\n      color:var(--text);\n      outline:none;\n      min-height:44px;\n    }\n    #tool__mwst-rechner input[type=\"number\"]::placeholder{color:#6b7280}\n    #tool__mwst-rechner input[type=\"number\"]:focus,\n    #tool__mwst-rechner select:focus{border-color:var(--focus);box-shadow:0 0 0 3px rgba(37,99,235,.18);background:#fff}\n    #tool__mwst-rechner .t-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n    #tool__mwst-rechner .t-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}\n    #tool__mwst-rechner button{\n      appearance:none;\n      border:1px solid var(--border);\n      background:#fff;\n      color:var(--text);\n      border-radius:12px;\n      padding:10px 12px;\n      font:inherit;\n      cursor:pointer;\n      min-height:44px;\n    }\n    #tool__mwst-rechner button:focus{outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.2);border-color:var(--focus)}\n    #tool__mwst-rechner button:hover{background:#f3f4f6}\n    #tool__mwst-rechner button[disabled]{opacity:.55;cursor:not-allowed}\n    #tool__mwst-rechner .t-primary{background:#111827;color:#fff;border-color:#111827}\n    #tool__mwst-rechner .t-primary:hover{background:#0b1220}\n    #tool__mwst-rechner .t-toggle{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}\n    #tool__mwst-rechner .t-toggle input{margin-top:3px}\n    #tool__mwst-rechner .t-toggle strong{display:block;font-size:14px}\n    #tool__mwst-rechner .t-toggle span{display:block;color:var(--muted);font-size:12.5px;line-height:1.45;margin-top:2px}\n    #tool__mwst-rechner .t-out{margin-top:14px;border-top:1px solid var(--border);padding-top:14px}\n    #tool__mwst-rechner .t-status{min-height:20px;margin:0 0 10px;font-size:13px;line-height:1.4}\n    #tool__mwst-rechner .t-status[data-kind=\"error\"]{color:var(--danger)}\n    #tool__mwst-rechner .t-status[data-kind=\"hint\"]{color:var(--muted)}\n    #tool__mwst-rechner .t-results{display:grid;grid-template-columns:1fr;gap:10px}\n    @media (min-width:640px){\n      #tool__mwst-rechner .t-results{grid-template-columns:1fr 1fr}\n      #tool__mwst-rechner .t-results .t-span2{grid-column:1 \/ -1}\n    }\n    #tool__mwst-rechner .t-kpi{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px}\n    #tool__mwst-rechner .t-kpi dt{margin:0;color:var(--muted);font-size:12.5px}\n    #tool__mwst-rechner .t-kpi dd{margin:6px 0 0;font-size:18px;font-weight:700;letter-spacing:.2px}\n    #tool__mwst-rechner .t-note{margin:10px 0 0;color:var(--muted);font-size:13px;line-height:1.5}\n    #tool__mwst-rechner .t-copied{color:var(--ok)}\n    #tool__mwst-rechner .t-content{margin-top:14px}\n    #tool__mwst-rechner .t-content h3{font-size:16px;margin:18px 0 8px;line-height:1.3}\n    #tool__mwst-rechner .t-content p{margin:0 0 10px;line-height:1.65;color:var(--text)}\n    #tool__mwst-rechner details{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--bg)}\n    #tool__mwst-rechner details + details{margin-top:10px}\n    #tool__mwst-rechner summary{cursor:pointer;font-weight:600;list-style:none}\n    #tool__mwst-rechner summary::-webkit-details-marker{display:none}\n    #tool__mwst-rechner details[open]{background:var(--surface)}\n    #tool__mwst-rechner .t-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n  <\/style>\n\n  <div class=\"t-card\">\n    <div class=\"t-head\">\n      <h2 id=\"tool__mwst-rechner__title\">Mehrwertsteuer-Rechner<\/h2>\n      <p class=\"t-sub\">Rechnen Sie Netto, Brutto und MwSt. schnell und fehlerrobust \u2013 inklusive Copy-Funktion.<\/p>\n    <\/div>\n\n    <form id=\"tool__mwst-rechner__form\" novalidate>\n      <div class=\"t-grid\" role=\"group\" aria-label=\"Eingaben\">\n        <div>\n          <label for=\"tool__mwst-rechner__mode\">Berechnung<\/label>\n          <select id=\"tool__mwst-rechner__mode\" name=\"mode\">\n            <option value=\"netto_to_brutto\">Netto \u2192 Brutto<\/option>\n            <option value=\"brutto_to_netto\">Brutto \u2192 Netto<\/option>\n          <\/select>\n          <div class=\"t-help\" id=\"tool__mwst-rechner__mode_help\">W\u00e4hlen Sie, ob Sie von Netto oder von Brutto ausgehen.<\/div>\n        <\/div>\n\n        <div>\n          <label for=\"tool__mwst-rechner__amount\">Betrag<\/label>\n          <input id=\"tool__mwst-rechner__amount\" name=\"amount\" type=\"number\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"z. B. 100\" min=\"0\" step=\"0.01\" required aria-describedby=\"tool__mwst-rechner__amount_help\" \/>\n          <div class=\"t-help\" id=\"tool__mwst-rechner__amount_help\">Geben Sie den Betrag passend zur gew\u00e4hlten Berechnung ein (Netto oder Brutto).<\/div>\n        <\/div>\n\n        <div>\n          <label for=\"tool__mwst-rechner__ratePreset\">MwSt.-Satz<\/label>\n          <select id=\"tool__mwst-rechner__ratePreset\" name=\"ratePreset\" aria-describedby=\"tool__mwst-rechner__rate_help\">\n            <option value=\"19\">19 % (Standard)<\/option>\n            <option value=\"7\">7 % (erm\u00e4\u00dfigt)<\/option>\n            <option value=\"0\">0 %<\/option>\n            <option value=\"custom\">Benutzerdefiniert<\/option>\n          <\/select>\n          <div class=\"t-help\" id=\"tool__mwst-rechner__rate_help\">F\u00fcr Deutschland sind h\u00e4ufig 19 % oder 7 % relevant.<\/div>\n        <\/div>\n\n        <div id=\"tool__mwst-rechner__customWrap\" hidden>\n          <label for=\"tool__mwst-rechner__rateCustom\">Benutzerdefiniert (%)<\/label>\n          <input id=\"tool__mwst-rechner__rateCustom\" name=\"rateCustom\" type=\"number\" inputmode=\"decimal\" autocomplete=\"off\" placeholder=\"z. B. 20\" min=\"0\" max=\"100\" step=\"0.01\" aria-describedby=\"tool__mwst-rechner__custom_help\" \/>\n          <div class=\"t-help\" id=\"tool__mwst-rechner__custom_help\">Erlaubt sind 0 bis 100. Dezimalstellen sind m\u00f6glich (z. B. 5,5).<\/div>\n        <\/div>\n\n        <div class=\"t-span2\">\n          <div class=\"t-toggle\">\n            <input id=\"tool__mwst-rechner__remember\" name=\"remember\" type=\"checkbox\" \/>\n            <div>\n              <strong>Letzte Eingaben merken<\/strong>\n              <span>Speichert nur lokal in Ihrem Browser. Deaktivieren Sie es, wenn Sie an einem \u00f6ffentlichen Ger\u00e4t arbeiten.<\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"t-span2 t-actions\">\n          <button type=\"button\" class=\"t-primary\" id=\"tool__mwst-rechner__calc\">Berechnen<\/button>\n          <button type=\"button\" id=\"tool__mwst-rechner__reset\">Zur\u00fccksetzen<\/button>\n          <button type=\"button\" id=\"tool__mwst-rechner__copy\" disabled>Ergebnis kopieren<\/button>\n          <span class=\"t-sr\" id=\"tool__mwst-rechner__kbd\">Tipp: Enter berechnet, Esc setzt zur\u00fcck.<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"t-out\" aria-label=\"Ausgabe\">\n        <p id=\"tool__mwst-rechner__status\" class=\"t-status\" role=\"status\" aria-live=\"polite\" data-kind=\"hint\"><\/p>\n\n        <div class=\"t-results\" id=\"tool__mwst-rechner__results\" aria-live=\"polite\">\n          <dl class=\"t-kpi\">\n            <dt>Nettobetrag<\/dt>\n            <dd id=\"tool__mwst-rechner__netto\">\u2013<\/dd>\n          <\/dl>\n          <dl class=\"t-kpi\">\n            <dt>MwSt.-Betrag<\/dt>\n            <dd id=\"tool__mwst-rechner__vat\">\u2013<\/dd>\n          <\/dl>\n          <dl class=\"t-kpi t-span2\">\n            <dt>Bruttobetrag<\/dt>\n            <dd id=\"tool__mwst-rechner__brutto\">\u2013<\/dd>\n          <\/dl>\n        <\/div>\n\n        <p class=\"t-note\" id=\"tool__mwst-rechner__note\"><\/p>\n      <\/div>\n    <\/form>\n\n    <div class=\"t-content\" aria-label=\"Erkl\u00e4rung und FAQ\">\n      <h3>So funktioniert der Mehrwertsteuer-Rechner<\/h3>\n      <p>Mit diesem Rechner ermitteln Sie aus einem gegebenen Betrag den Nettowert, den Mehrwertsteuer-Anteil und den Bruttowert. W\u00e4hlen Sie zuerst, ob Ihr Ausgangsbetrag netto (ohne MwSt.) oder brutto (inklusive MwSt.) ist. Anschlie\u00dfend legen Sie den Mehrwertsteuersatz fest \u2013 typischerweise 19&nbsp;% oder 7&nbsp;%, alternativ auch 0&nbsp;% oder einen eigenen Wert. Das Ergebnis wird in Euro angezeigt und auf zwei Nachkommastellen gerundet, wie es bei Preisen \u00fcblich ist.<\/p>\n      <p>F\u00fcr die Berechnung gilt: Bei Netto \u2192 Brutto wird die MwSt. als Nettobetrag \u00d7 (Satz\/100) berechnet und zum Netto addiert. Bei Brutto \u2192 Netto wird der Nettobetrag als Brutto \/ (1 + Satz\/100) ermittelt; die MwSt. ist dann Brutto minus Netto. Eingaben werden validiert, damit keine unklaren Zust\u00e4nde entstehen. Wenn Sie m\u00f6chten, kann der Rechner Ihre letzten Eingaben lokal im Browser speichern \u2013 praktisch f\u00fcr wiederkehrende Berechnungen.<\/p>\n\n      <h3>FAQ<\/h3>\n      <details>\n        <summary>Warum unterscheiden sich Netto \u2192 Brutto und Brutto \u2192 Netto?<\/summary>\n        <div class=\"t-help\">Netto \u2192 Brutto addiert einen prozentualen Aufschlag. Brutto \u2192 Netto muss diesen Aufschlag \u201eherausrechnen\u201c, indem durch den Faktor (1 + Satz\/100) geteilt wird.<\/div>\n      <\/details>\n      <details>\n        <summary>Wie wird gerundet?<\/summary>\n        <div class=\"t-help\">Die Anzeige erfolgt in Euro mit zwei Dezimalstellen. Intern wird mit Flie\u00dfkommazahlen gerechnet und anschlie\u00dfend auf zwei Stellen formatiert.<\/div>\n      <\/details>\n      <details>\n        <summary>Kann ich einen eigenen MwSt.-Satz verwenden?<\/summary>\n        <div class=\"t-help\">Ja. W\u00e4hlen Sie \u201eBenutzerdefiniert\u201c und geben Sie einen Satz zwischen 0 und 100 ein, auch mit Dezimalstellen.<\/div>\n      <\/details>\n      <details>\n        <summary>Werden meine Daten gespeichert?<\/summary>\n        <div class=\"t-help\">Nur wenn Sie \u201eLetzte Eingaben merken\u201c aktivieren. Dann werden die Werte ausschlie\u00dflich lokal in Ihrem Browser gespeichert und nicht \u00fcbertragen.<\/div>\n      <\/details>\n    <\/div>\n  <\/div>\n\n  <script>\n    (() => {\n      'use strict';\n\n      const ROOT_ID = 'tool__mwst-rechner';\n      const STORAGE_KEY = 'tool__mwst_rechner_v1';\n\n      const $ = (sel) => document.querySelector(sel);\n\n      const els = {\n        form: $('#'+ROOT_ID+'__form'),\n        mode: $('#'+ROOT_ID+'__mode'),\n        amount: $('#'+ROOT_ID+'__amount'),\n        ratePreset: $('#'+ROOT_ID+'__ratePreset'),\n        customWrap: $('#'+ROOT_ID+'__customWrap'),\n        rateCustom: $('#'+ROOT_ID+'__rateCustom'),\n        remember: $('#'+ROOT_ID+'__remember'),\n        btnCalc: $('#'+ROOT_ID+'__calc'),\n        btnReset: $('#'+ROOT_ID+'__reset'),\n        btnCopy: $('#'+ROOT_ID+'__copy'),\n        status: $('#'+ROOT_ID+'__status'),\n        outNetto: $('#'+ROOT_ID+'__netto'),\n        outVat: $('#'+ROOT_ID+'__vat'),\n        outBrutto: $('#'+ROOT_ID+'__brutto'),\n        note: $('#'+ROOT_ID+'__note')\n      };\n\n      const nfCurrency = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' });\n      const nfPercent = new Intl.NumberFormat('de-DE', { maximumFractionDigits: 2, minimumFractionDigits: 0 });\n\n      const clamp = (n, min, max) => Math.min(max, Math.max(min, n));\n\n      const toNumber = (value) => {\n        if (typeof value !== 'string') return Number(value);\n        const normalized = value.replace(\/\\s+\/g, '').replace(',', '.');\n        const n = Number(normalized);\n        return Number.isFinite(n) ? n : NaN;\n      };\n\n      const isCustomRate = () => els.ratePreset.value === 'custom';\n\n      const getRate = () => {\n        const preset = els.ratePreset.value;\n        if (preset !== 'custom') return toNumber(preset);\n        return toNumber(els.rateCustom.value);\n      };\n\n      const validate = (state) => {\n        const errors = [];\n        if (!Number.isFinite(state.amount)) errors.push('Bitte geben Sie einen g\u00fcltigen Betrag ein.');\n        else if (state.amount < 0) errors.push('Der Betrag darf nicht negativ sein.');\n        else if (state.amount > 1e9) errors.push('Der Betrag ist zu gro\u00df. Bitte pr\u00fcfen Sie die Eingabe.');\n        if (!Number.isFinite(state.rate)) errors.push('Bitte geben Sie einen g\u00fcltigen MwSt.-Satz ein.');\n        else if (state.rate < 0 || state.rate > 100) errors.push('Der MwSt.-Satz muss zwischen 0 und 100 liegen.');\n        return errors;\n      };\n\n      const roundMoney = (n) => {\n        if (!Number.isFinite(n)) return NaN;\n        return Math.round((n + Number.EPSILON) * 100) \/ 100;\n      };\n\n      const compute = (mode, amount, ratePercent) => {\n        const r = ratePercent \/ 100;\n        let netto, brutto, vat;\n\n        if (mode === 'netto_to_brutto') {\n          netto = amount;\n          vat = amount * r;\n          brutto = amount + vat;\n        } else {\n          brutto = amount;\n          const denom = 1 + r;\n          netto = denom === 0 ? NaN : brutto \/ denom;\n          vat = brutto - netto;\n        }\n\n        netto = roundMoney(netto);\n        vat = roundMoney(vat);\n        brutto = roundMoney(brutto);\n\n        return { netto, vat, brutto };\n      };\n\n      const formatMoney = (n) => Number.isFinite(n) ? nfCurrency.format(n) : '\u2013';\n\n      const setStatus = (kind, msg) => {\n        els.status.dataset.kind = kind;\n        els.status.textContent = msg || '';\n      };\n\n      const renderRateVisibility = () => {\n        const show = isCustomRate();\n        els.customWrap.hidden = !show;\n        if (!show) {\n          els.rateCustom.value = '';\n          els.rateCustom.removeAttribute('required');\n        } else {\n          els.rateCustom.setAttribute('required', 'required');\n        }\n      };\n\n      const getState = () => {\n        const amount = toNumber(els.amount.value);\n        const rate = getRate();\n        return {\n          mode: els.mode.value,\n          amount,\n          rate,\n          remember: !!els.remember.checked\n        };\n      };\n\n      const serialize = (state) => ({\n        mode: state.mode,\n        amount: Number.isFinite(state.amount) ? String(state.amount) : '',\n        ratePreset: els.ratePreset.value,\n        rateCustom: els.rateCustom.value || '',\n        remember: !!state.remember\n      });\n\n      const saveState = (state) => {\n        if (!state.remember) return;\n        try { localStorage.setItem(STORAGE_KEY, JSON.stringify(serialize(state))); } catch (e) {}\n      };\n\n      const clearSaved = () => {\n        try { localStorage.removeItem(STORAGE_KEY); } catch (e) {}\n      };\n\n      const loadState = () => {\n        let raw = null;\n        try { raw = localStorage.getItem(STORAGE_KEY); } catch (e) { raw = null; }\n        if (!raw) return;\n\n        let data = null;\n        try { data = JSON.parse(raw); } catch (e) { data = null; }\n        if (!data || typeof data !== 'object') return;\n\n        if (typeof data.mode === 'string') els.mode.value = data.mode === 'brutto_to_netto' ? 'brutto_to_netto' : 'netto_to_brutto';\n        if (typeof data.ratePreset === 'string') {\n          const allowed = new Set(['19','7','0','custom']);\n          els.ratePreset.value = allowed.has(data.ratePreset) ? data.ratePreset : '19';\n        }\n        renderRateVisibility();\n\n        if (typeof data.rateCustom === 'string') els.rateCustom.value = data.rateCustom;\n        if (typeof data.amount === 'string') els.amount.value = data.amount;\n\n        els.remember.checked = !!data.remember;\n      };\n\n      const buildCopyText = (state, result) => {\n        const modeLabel = state.mode === 'netto_to_brutto' ? 'Netto \u2192 Brutto' : 'Brutto \u2192 Netto';\n        const rateLabel = nfPercent.format(state.rate) + ' %';\n        const amountLabel = formatMoney(roundMoney(state.amount));\n        const lines = [\n          'Mehrwertsteuer-Rechner',\n          'Berechnung: ' + modeLabel,\n          'Ausgangsbetrag: ' + amountLabel,\n          'MwSt.-Satz: ' + rateLabel,\n          'Nettobetrag: ' + formatMoney(result.netto),\n          'MwSt.-Betrag: ' + formatMoney(result.vat),\n          'Bruttobetrag: ' + formatMoney(result.brutto)\n        ];\n        return lines.join('\\n');\n      };\n\n      const copyToClipboard = async (text) => {\n        try {\n          if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {\n            await navigator.clipboard.writeText(text);\n            return true;\n          }\n        } catch (e) {}\n        try {\n          const ta = document.createElement('textarea');\n          ta.value = text;\n          ta.setAttribute('readonly', 'readonly');\n          ta.style.position = 'absolute';\n          ta.style.left = '-9999px';\n          document.body.appendChild(ta);\n          ta.select();\n          const ok = document.execCommand('copy');\n          document.body.removeChild(ta);\n          return !!ok;\n        } catch (e) {\n          return false;\n        }\n      };\n\n      const render = (opts = { announce: false }) => {\n        renderRateVisibility();\n\n        const state = getState();\n        const errors = validate(state);\n\n        if (!state.remember) {\n          clearSaved();\n        } else {\n          saveState(state);\n        }\n\n        if (errors.length) {\n          els.outNetto.textContent = '\u2013';\n          els.outVat.textContent = '\u2013';\n          els.outBrutto.textContent = '\u2013';\n          els.note.textContent = '';\n          els.btnCopy.disabled = true;\n          setStatus('error', errors[0]);\n          return;\n        }\n\n        const result = compute(state.mode, state.amount, clamp(state.rate, 0, 100));\n        const ok = Number.isFinite(result.netto) && Number.isFinite(result.vat) && Number.isFinite(result.brutto);\n\n        if (!ok) {\n          els.outNetto.textContent = '\u2013';\n          els.outVat.textContent = '\u2013';\n          els.outBrutto.textContent = '\u2013';\n          els.note.textContent = '';\n          els.btnCopy.disabled = true;\n          setStatus('error', 'Die Berechnung ist mit diesen Werten nicht m\u00f6glich. Bitte pr\u00fcfen Sie die Eingaben.');\n          return;\n        }\n\n        els.outNetto.textContent = formatMoney(result.netto);\n        els.outVat.textContent = formatMoney(result.vat);\n        els.outBrutto.textContent = formatMoney(result.brutto);\n\n        const rateText = nfPercent.format(state.rate) + ' %';\n        const note = state.mode === 'netto_to_brutto'\n          ? 'Aus Netto wird Brutto, indem die MwSt. ('+rateText+') addiert wird.'\n          : 'Aus Brutto wird Netto, indem die MwSt. ('+rateText+') herausgerechnet wird.';\n        els.note.textContent = note;\n\n        els.btnCopy.disabled = false;\n\n        if (opts.announce) {\n          setStatus('hint', 'Ergebnis aktualisiert.');\n        } else {\n          setStatus('hint', '');\n        }\n      };\n\n      const reset = () => {\n        els.mode.value = 'netto_to_brutto';\n        els.amount.value = '';\n        els.ratePreset.value = '19';\n        els.rateCustom.value = '';\n        els.remember.checked = false;\n        clearSaved();\n        renderRateVisibility();\n        setStatus('hint', 'Zur\u00fcckgesetzt.');\n        els.outNetto.textContent = '\u2013';\n        els.outVat.textContent = '\u2013';\n        els.outBrutto.textContent = '\u2013';\n        els.note.textContent = '';\n        els.btnCopy.disabled = true;\n      };\n\n      const onCalc = () => render({ announce: true });\n\n      const onKeyDown = (e) => {\n        const key = e.key;\n        if (key === 'Enter') {\n          const tag = (e.target && e.target.tagName) ? e.target.tagName.toLowerCase() : '';\n          if (tag === 'textarea') return;\n          e.preventDefault();\n          onCalc();\n          els.btnCalc.focus();\n        } else if (key === 'Escape') {\n          e.preventDefault();\n          reset();\n          els.amount.focus();\n        }\n      };\n\n      const onInput = (e) => {\n        const t = e.target;\n        if (!t) return;\n        if (t === els.amount || t === els.ratePreset || t === els.rateCustom || t === els.mode || t === els.remember) {\n          render({ announce: false });\n        }\n      };\n\n      const onClick = async (e) => {\n        const t = e.target;\n        if (!t) return;\n\n        if (t === els.btnCalc) {\n          onCalc();\n          return;\n        }\n        if (t === els.btnReset) {\n          reset();\n          return;\n        }\n        if (t === els.btnCopy) {\n          const state = getState();\n          const errors = validate(state);\n          if (errors.length) {\n            setStatus('error', errors[0]);\n            return;\n          }\n          const result = compute(state.mode, state.amount, clamp(state.rate, 0, 100));\n          const text = buildCopyText(state, result);\n          els.btnCopy.disabled = true;\n          const ok = await copyToClipboard(text);\n          els.btnCopy.disabled = false;\n          if (ok) {\n            setStatus('hint', 'Kopiert.');\n            els.status.classList.add('t-copied');\n            window.setTimeout(() => { els.status.classList.remove('t-copied'); }, 900);\n          } else {\n            setStatus('error', 'Kopieren nicht m\u00f6glich. Bitte markieren und manuell kopieren.');\n          }\n          return;\n        }\n      };\n\n      const init = () => {\n        loadState();\n        renderRateVisibility();\n        render({ announce: false });\n\n        els.form.addEventListener('input', onInput, { passive: true });\n        els.form.addEventListener('change', onInput, { passive: true });\n        els.form.addEventListener('click', onClick);\n        els.form.addEventListener('keydown', onKeyDown);\n\n        if (!els.amount.value) {\n          els.amount.setAttribute('aria-label', 'Betrag');\n        }\n      };\n\n      init();\n    })();\n  <\/script>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Mehrwertsteuer-Rechner Rechnen Sie Netto, Brutto und MwSt. schnell und fehlerrobust \u2013 inklusive Copy-Funktion. Berechnung Netto \u2192 BruttoBrutto \u2192 Netto W\u00e4hlen Sie, ob Sie von Netto oder von Brutto ausgehen. Betrag Geben Sie den Betrag passend zur gew\u00e4hlten Berechnung ein (Netto oder Brutto). MwSt.-Satz 19 % (Standard)7 % (erm\u00e4\u00dfigt)0 %Benutzerdefiniert F\u00fcr Deutschland sind h\u00e4ufig 19 % &#8230; <a title=\"MwSt-Rechner\" class=\"read-more\" href=\"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/\" aria-label=\"Mehr Informationen \u00fcber MwSt-Rechner\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-254","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mehrwertsteuer-Rechner: Netto \u2194 Brutto &amp; MwSt. (19%, 7%)<\/title>\n<meta name=\"description\" content=\"Mehrwertsteuer schnell berechnen: Netto\u2192Brutto oder Brutto\u2192Netto inkl. MwSt.-Anteil. 19%, 7% oder eigener Satz (0\u2013100, z. B. 5,5). Ergebnis kopieren, Eingaben optional lokal speichern.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mehrwertsteuer-Rechner: Netto \u2194 Brutto &amp; MwSt. (19%, 7%)\" \/>\n<meta property=\"og:description\" content=\"Mehrwertsteuer schnell berechnen: Netto\u2192Brutto oder Brutto\u2192Netto inkl. MwSt.-Anteil. 19%, 7% oder eigener Satz (0\u2013100, z. B. 5,5). Ergebnis kopieren, Eingaben optional lokal speichern.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/\" \/>\n<meta property=\"og:site_name\" content=\"Kalender Wissen\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-05T14:05:05+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/mwst-rechner\\\/\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/mwst-rechner\\\/\",\"name\":\"Mehrwertsteuer-Rechner: Netto \u2194 Brutto & MwSt. (19%, 7%)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#website\"},\"datePublished\":\"2026-03-05T14:05:04+00:00\",\"dateModified\":\"2026-03-05T14:05:05+00:00\",\"description\":\"Mehrwertsteuer schnell berechnen: Netto\u2192Brutto oder Brutto\u2192Netto inkl. MwSt.-Anteil. 19%, 7% oder eigener Satz (0\u2013100, z. B. 5,5). Ergebnis kopieren, Eingaben optional lokal speichern.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/mwst-rechner\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/mwst-rechner\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/mwst-rechner\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MwSt-Rechner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/\",\"name\":\"Kalenderwissen\",\"description\":\"f\u00fcr den Wissenshunger\",\"publisher\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#organization\",\"name\":\"Kalenderwissen\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/apple-touch-icon.png\",\"contentUrl\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/apple-touch-icon.png\",\"width\":180,\"height\":180,\"caption\":\"Kalenderwissen\"},\"image\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mehrwertsteuer-Rechner: Netto \u2194 Brutto & MwSt. (19%, 7%)","description":"Mehrwertsteuer schnell berechnen: Netto\u2192Brutto oder Brutto\u2192Netto inkl. MwSt.-Anteil. 19%, 7% oder eigener Satz (0\u2013100, z. B. 5,5). Ergebnis kopieren, Eingaben optional lokal speichern.","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:\/\/kalenderwoche.info\/blog\/mwst-rechner\/","og_locale":"de_DE","og_type":"article","og_title":"Mehrwertsteuer-Rechner: Netto \u2194 Brutto & MwSt. (19%, 7%)","og_description":"Mehrwertsteuer schnell berechnen: Netto\u2192Brutto oder Brutto\u2192Netto inkl. MwSt.-Anteil. 19%, 7% oder eigener Satz (0\u2013100, z. B. 5,5). Ergebnis kopieren, Eingaben optional lokal speichern.","og_url":"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/","og_site_name":"Kalender Wissen","article_modified_time":"2026-03-05T14:05:05+00:00","twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/","url":"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/","name":"Mehrwertsteuer-Rechner: Netto \u2194 Brutto & MwSt. (19%, 7%)","isPartOf":{"@id":"https:\/\/kalenderwoche.info\/blog\/#website"},"datePublished":"2026-03-05T14:05:04+00:00","dateModified":"2026-03-05T14:05:05+00:00","description":"Mehrwertsteuer schnell berechnen: Netto\u2192Brutto oder Brutto\u2192Netto inkl. MwSt.-Anteil. 19%, 7% oder eigener Satz (0\u2013100, z. B. 5,5). Ergebnis kopieren, Eingaben optional lokal speichern.","breadcrumb":{"@id":"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kalenderwoche.info\/blog\/mwst-rechner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/kalenderwoche.info\/blog\/"},{"@type":"ListItem","position":2,"name":"MwSt-Rechner"}]},{"@type":"WebSite","@id":"https:\/\/kalenderwoche.info\/blog\/#website","url":"https:\/\/kalenderwoche.info\/blog\/","name":"Kalenderwissen","description":"f\u00fcr den Wissenshunger","publisher":{"@id":"https:\/\/kalenderwoche.info\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalenderwoche.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kalenderwoche.info\/blog\/#organization","name":"Kalenderwissen","url":"https:\/\/kalenderwoche.info\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kalenderwoche.info\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/kalenderwoche.info\/blog\/wp-content\/uploads\/2026\/02\/apple-touch-icon.png","contentUrl":"https:\/\/kalenderwoche.info\/blog\/wp-content\/uploads\/2026\/02\/apple-touch-icon.png","width":180,"height":180,"caption":"Kalenderwissen"},"image":{"@id":"https:\/\/kalenderwoche.info\/blog\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages\/254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/comments?post=254"}],"version-history":[{"count":1,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages\/254\/revisions"}],"predecessor-version":[{"id":255,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages\/254\/revisions\/255"}],"wp:attachment":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/media?parent=254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}