{"id":104,"date":"2026-07-09T20:07:44","date_gmt":"2026-07-09T20:07:44","guid":{"rendered":"https:\/\/dieschule.net\/?page_id=104"},"modified":"2026-07-09T20:07:44","modified_gmt":"2026-07-09T20:07:44","slug":"erloesverteilung","status":"publish","type":"page","link":"https:\/\/dieschule.net\/?page_id=104","title":{"rendered":"Erl\u00f6sverteilung"},"content":{"rendered":"        <div class=\"ev-front\" id=\"evLECRcK\">\n                        <p class=\"ev-front-note\">Diese \u00dcbersicht zeigt die periodengerechte Erl\u00f6sverteilung der Sprachkurse. Umschaltbar zwischen &quot;Datum der Leistung&quot; (Erl\u00f6s \u00fcber den Kurszeitraum verteilt) und &quot;Rechnungsdatum&quot; (voller Betrag im Monat der Rechnungsstellung). Die Spalte Vorjahr zeigt denselben Monat des Vorjahres, die Spalte Budget den Planwert.<\/p>\n                        <div class=\"ev-front-controls\">\n                <div class=\"ev-front-toggle\" role=\"tablist\">\n                    <button type=\"button\" class=\"ev-t active\" data-basis=\"leistung\">Datum der Leistung<\/button>\n                    <button type=\"button\" class=\"ev-t\" data-basis=\"zahlung\">Rechnungsdatum<\/button>\n                <\/div>\n                <label class=\"ev-front-year\">Jahr:\n                    <select class=\"ev-year\"><\/select>\n                <\/label>\n            <\/div>\n            <p class=\"ev-front-hint\"><\/p>\n            <table class=\"ev-front-table\"><thead><\/thead><tbody><\/tbody><\/table>\n            <p class=\"ev-front-delta\"><\/p>\n            <div class=\"ev-front-forecast\"><\/div>\n            <p class=\"ev-front-legend\">\n                <span class=\"ev-arr up\">\u25b2<\/span> \u00fcber Vergleich&nbsp;\u00b7&nbsp;\n                <span class=\"ev-arr dn\">\u25bc<\/span> unter Vergleich&nbsp;\u00b7&nbsp;\n                <span class=\"ev-arr eq\">\u2013<\/span> gleich&nbsp;&nbsp;|&nbsp;&nbsp;\n                Pfeil an der Ist-Zahl = Vergleich zum Vorjahr, Pfeil in der Budget-Spalte = Ist gegen Plan.\n            <\/p>\n        <\/div>\n        <script type=\"application\/json\" id=\"evLECRcK-data\">{\"data\":{\"leistung\":{\"2019\":[0,0,0,0,0,0,0,0,109.79,1006.52,5204.02,4039.95],\"2020\":[7511.31,12847.22,16418.98,9870.87,9991.34,11109.8,21109.72,2345.62,6569.77,15414.46,16643.96,17769.92],\"2021\":[16916.56,15054.14,18830.74,17497.65,18568.13,13889.43,16239.81,3429.18,7415.64,20343.99,21808.94,22289.52],\"2022\":[19831.35,23114.24,25857.83,25618.14,29853.3,20288.15,21372.43,4238.84,10391.81,15491.08,20588.66,24013.26],\"2023\":[21636.36,19833.34,25946.06,22864.36,24307.27,16081.83,17091.01,4706.74,7517.53,22803.8,25123.33,22992.72],\"2024\":[23956.38,29320.85,33634.37,30715,36285.1,26569.45,25096.53,4686.78,11195.11,27271.48,25536.39,26017.4],\"2025\":[23514.32,23322.55,30510.15,30473.58,37642.9,21148.2,28626.42,7014.05,5531.71,21494.98,26028.3,23576.61],\"2026\":[22798.36,20874.7,26181.97,32238.31,27159.86,27763.63,24891.44,4720.12,6935.56,5583.33,5125.18,4420.96],\"2027\":[3860.92,3218.38,3547.06,3432.66,3547.06,1542.37,0,0,0,0,0,0]},\"zahlung\":{\"2019\":[0,0,0,0,0,0,0,0,1100,3736.14,7370.52,8401.12],\"2020\":[14705.46,23355.72,4887.12,8364.77,8946.71,8231.89,14007.72,1658.46,25712.85,59068.77,10385.49,6676.75],\"2021\":[12295.28,10157.44,16704.05,6623.54,10532.6,8363.08,11371.6,2422.25,50261.74,63129.51,8878.45,5517.84],\"2022\":[18446.66,24754.58,20673.15,16809.16,9012.75,18204.2,9805.33,4245,38231.29,55785.8,20230.47,4338.54],\"2023\":[18759.12,16920.43,21440.16,12257.95,9261.13,7392.67,11026.59,1448.6,50993.68,73285.11,16869.21,4626.42],\"2024\":[28634.3,24249.44,17104.04,16240.07,22142.83,14461.95,18867.52,140,51067.47,78050.7,10578.86,9277.8],\"2025\":[29268.23,26606.4,21164.46,8797.02,18857.61,19322.31,13826.21,2461.59,64258.97,65095.48,11827,5215.23],\"2026\":[20496.92,21907.05,11242.05,17077.44,9650.94,26949.98,13296.32,0,27741.84,5258,0,0],\"2027\":[0,0,0,0,0,0,0,0,0,0,0,0]}},\"budget\":{\"2026\":[20000,20000,30000,30000,25000,25000,25000,30000,20000,25000,25000,25000]},\"years\":[2019,2020,2021,2022,2023,2024,2025,2026,2027],\"current\":2026,\"curYear\":2026,\"cutoff\":6}<\/script>\n        <script>\n        (function(){\n            var root = document.getElementById(\"evLECRcK\");\n            if(!root) return;\n            var P = JSON.parse(document.getElementById(\"evLECRcK-data\").textContent);\n            var MON = ['Januar','Februar','M\u00e4rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];\n            var HINT = {leistung:'Periodengerecht: Erl\u00f6s verteilt \u00fcber den Leistungszeitraum.', zahlung:'Rechnungsdatum: voller Netto-Betrag im Monat der Rechnungsstellung.'};\n            var basis='leistung', year=String(P.current);\n\n            var sel = root.querySelector('.ev-year');\n            var optAll=document.createElement('option'); optAll.value='all'; optAll.textContent='Alle Jahre'; sel.appendChild(optAll);\n            P.years.forEach(function(y){ var o=document.createElement('option'); o.value=String(y); o.textContent=y; sel.appendChild(o); });\n            sel.value = year;\n\n            function fmt(v){ return (v||0).toLocaleString('de-DE',{minimumFractionDigits:2,maximumFractionDigits:2})+' \u20ac'; }\n            function pct(cur,ref){ if(!ref) return ''; var p=(cur-ref)\/Math.abs(ref)*100; return ' ('+(p>=0?'+':'')+p.toLocaleString('de-DE',{maximumFractionDigits:1})+'%)'; }\n            function sum(a){ return (a||[]).reduce(function(x,y){return x+y;},0); }\n            function arrow(c,p){\n                if(c>p) return ' <span class=\"ev-arr up\" title=\"\u00fcber Vorjahr\">\u25b2<\/span>';\n                if(c<p) return ' <span class=\"ev-arr dn\" title=\"unter Vorjahr\">\u25bc<\/span>';\n                return ' <span class=\"ev-arr eq\" title=\"wie Vorjahr\">\u2013<\/span>';\n            }\n            function arrowB(c,b){\n                if(c>b) return ' <span class=\"ev-arr up\" title=\"\u00fcber Plan\">\u25b2<\/span>';\n                if(c<b) return ' <span class=\"ev-arr dn\" title=\"unter Plan\">\u25bc<\/span>';\n                return ' <span class=\"ev-arr eq\" title=\"auf Plan\">\u2013<\/span>';\n            }\n\n            function renderAll(){\n                root.querySelector('thead').innerHTML='<tr><th>Jahr<\/th><th>Monat<\/th><th class=\"ev-r\">Erl\u00f6s<\/th><\/tr>';\n                var tb=root.querySelector('tbody'); tb.innerHTML=''; var grand=0;\n                P.years.forEach(function(y){\n                    var months=P.data[basis][y]||[]; var ys=0;\n                    months.forEach(function(v,i){ ys+=v; grand+=v;\n                        var tr=document.createElement('tr'); tr.innerHTML='<td>'+y+'<\/td><td>'+MON[i]+'<\/td><td class=\"ev-r\">'+fmt(v)+'<\/td>'; tb.appendChild(tr);\n                    });\n                    var s=document.createElement('tr'); s.className='ev-ysum'; s.innerHTML='<td colspan=\"2\">Summe '+y+'<\/td><td class=\"ev-r\">'+fmt(ys)+'<\/td>'; tb.appendChild(s);\n                });\n                var g=document.createElement('tr'); g.className='ev-gsum'; g.innerHTML='<td colspan=\"2\">Gesamt<\/td><td class=\"ev-r\">'+fmt(grand)+'<\/td>'; tb.appendChild(g);\n                root.querySelector('.ev-front-delta').textContent='';\n                root.querySelector('.ev-front-forecast').innerHTML='';\n            }\n\n            function renderYear(){\n                var y=parseInt(year,10), py=y-1;\n                var cur=P.data[basis][y]||[], prev=P.data[basis][py]||[];\n                var bud=P.budget[y]||null;\n                var hasBud=!!bud;\n\n                var head='<tr><th>Monat<\/th><th class=\"ev-r\">'+y+'<\/th><th class=\"ev-r\">'+py+'<\/th>';\n                if(hasBud) head+='<th class=\"ev-r\">Budget<\/th>';\n                head+='<\/tr>';\n                root.querySelector('thead').innerHTML=head;\n\n                var tb=root.querySelector('tbody'); tb.innerHTML='';\n                for(var i=0;i<12;i++){\n                    var c=cur[i]||0, p=prev[i]||0;\n                    var row='<td>'+MON[i]+'<\/td><td class=\"ev-r\">'+fmt(c)+arrow(c,p)+'<\/td><td class=\"ev-r ev-muted\">'+fmt(p)+'<\/td>';\n                    if(hasBud){ var b=bud[i]||0; row+='<td class=\"ev-r ev-muted\">'+fmt(b)+arrowB(c,b)+'<\/td>'; }\n                    var tr=document.createElement('tr'); tr.innerHTML=row; tb.appendChild(tr);\n                }\n                var sc=sum(cur), sp=sum(prev), sb=hasBud?sum(bud):0;\n                var srow='<td>Summe<\/td><td class=\"ev-r\">'+fmt(sc)+arrow(sc,sp)+'<\/td><td class=\"ev-r ev-muted\">'+fmt(sp)+'<\/td>';\n                if(hasBud) srow+='<td class=\"ev-r ev-muted\">'+fmt(sb)+arrowB(sc,sb)+'<\/td>';\n                var s=document.createElement('tr'); s.className='ev-gsum'; s.innerHTML=srow; tb.appendChild(s);\n\n                var isCur = (y===P.curYear && P.cutoff>=1 && P.cutoff<=11);\n                var dlabel = isCur ? '\u0394 Vorjahr (Ist gebucht bisher): ' : '\u0394 Vorjahr: ';\n                var d=dlabel+(sc-sp>=0?'+':'')+fmt(sc-sp)+pct(sc,sp);\n                if(hasBud) d+='   \u00b7   \u0394 Budget: '+(sc-sb>=0?'+':'')+fmt(sc-sb)+pct(sc,sb);\n                root.querySelector('.ev-front-delta').textContent=d;\n\n                \/\/ Hochrechnung nur f\u00fcrs laufende Jahr, wenn Vorjahr vorhanden.\n                var fcEl = root.querySelector('.ev-front-forecast'); fcEl.innerHTML='';\n                if(isCur && prev.length){\n                    var co=P.cutoff, h1=0, pH1=0, pH2=0;\n                    for(var k=0;k<12;k++){ if(k<co){ h1+=cur[k]||0; pH1+=prev[k]||0; } else { pH2+=prev[k]||0; } }\n                    var pFull=pH1+pH2;\n                    var f = pH1>0 ? h1\/pH1 : 1;\n                    var fc = h1 + f*pH2; \/\/ Hochrechnung Gesamtjahr, saisonbereinigt nach Vorjahr\n                    var html='<div class=\"ev-fc-title\">Hochrechnung '+y+'<\/div>';\n                    html+='<div class=\"ev-fc-line\">Ist Jan\u2013'+MON[co-1]+': <b>'+fmt(h1)+'<\/b> \u00b7 Hochrechnung Gesamtjahr (Saisonverlauf Vorjahr): <b>'+fmt(fc)+'<\/b>'+arrow(fc,pFull)+(hasBud?arrowB(fc,sb):'')+'<\/div>';\n                    var dd='\u0394 Vorjahr: '+(fc-pFull>=0?'+':'')+fmt(fc-pFull)+pct(fc,pFull);\n                    if(hasBud) dd+='   \u00b7   \u0394 Budget: '+(fc-sb>=0?'+':'')+fmt(fc-sb)+pct(fc,sb);\n                    html+='<div class=\"ev-fc-line ev-fc-delta\">'+dd+'<\/div>';\n                    html+='<div class=\"ev-fc-note\">Hochrechnung = Ist bis '+MON[co-1]+' skaliert mit dem Saisonverlauf des Vorjahres (Faktor '+f.toLocaleString('de-DE',{maximumFractionDigits:2})+'). Richtwert, keine Garantie.<\/div>';\n                    fcEl.innerHTML=html;\n                }\n            }\n\n            function render(){\n                root.querySelector('.ev-front-hint').textContent=HINT[basis];\n                if(year==='all') renderAll(); else renderYear();\n            }\n\n            root.querySelectorAll('.ev-t').forEach(function(btn){\n                btn.addEventListener('click',function(){\n                    root.querySelectorAll('.ev-t').forEach(function(b){b.classList.remove('active');});\n                    btn.classList.add('active'); basis=btn.getAttribute('data-basis'); render();\n                });\n            });\n            sel.addEventListener('change',function(){ year=sel.value; render(); });\n            render();\n        })();\n        <\/script>\n        <style>\n        .ev-front{max-width:640px}\n        .ev-front-note{background:#f6f7f7;border-left:4px solid #2271b1;padding:10px 14px;margin:0 0 14px;color:#2c3338;font-size:13px;line-height:1.5}\n        .ev-front-legend{font-size:12px;color:#646970;margin:10px 0 0;line-height:1.6}\n        .ev-front-controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 4px}\n        .ev-front-toggle{display:inline-flex;border:1px solid #c3c4c7;border-radius:8px;overflow:hidden}\n        .ev-front-toggle .ev-t{padding:8px 16px;border:0;border-right:1px solid #c3c4c7;background:#f6f7f7;cursor:pointer;font:inherit;color:#2c3338}\n        .ev-front-toggle .ev-t:last-child{border-right:0}\n        .ev-front-toggle .ev-t.active{background:#2271b1;color:#fff;font-weight:600}\n        .ev-front-year select{padding:6px 8px}\n        .ev-front-hint{color:#646970;font-size:12px;margin:2px 0 10px}\n        .ev-front-delta{font-size:13px;font-weight:600;margin:8px 0 0}\n        .ev-front-forecast{margin:12px 0 0;padding:10px 14px;background:#fff8e5;border:1px solid #f0d97a;border-radius:8px}\n        .ev-front-forecast:empty{display:none}\n        .ev-fc-title{font-weight:700;margin-bottom:4px}\n        .ev-fc-line{font-size:13px;margin:2px 0}\n        .ev-fc-delta{font-weight:600}\n        .ev-fc-note{font-size:11px;color:#8a6d3b;margin-top:6px;line-height:1.5}\n        .ev-front-table{border-collapse:collapse;width:100%}\n        .ev-front-table th,.ev-front-table td{padding:6px 10px;border-bottom:1px solid #eee}\n        .ev-front-table thead th{border-bottom:2px solid #ccc;text-align:left}\n        .ev-front-table .ev-r{text-align:right;font-variant-numeric:tabular-nums}\n        .ev-front-table .ev-muted{color:#787c82}\n        .ev-arr{font-size:12px;font-weight:700}\n        .ev-arr.up{color:#116329}\n        .ev-arr.dn{color:#b32d2e}\n        .ev-arr.eq{color:#a7aaad}\n        .ev-front-table .ev-pos{color:#116329}\n        .ev-front-table .ev-neg{color:#b32d2e}\n        .ev-front-table .ev-ysum td{font-weight:600;background:#f6f7f7}\n        .ev-front-table .ev-gsum td{font-weight:700;border-top:2px solid #ccc}\n        <\/style>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-104","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dieschule.net\/index.php?rest_route=\/wp\/v2\/pages\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dieschule.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dieschule.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dieschule.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dieschule.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=104"}],"version-history":[{"count":1,"href":"https:\/\/dieschule.net\/index.php?rest_route=\/wp\/v2\/pages\/104\/revisions"}],"predecessor-version":[{"id":105,"href":"https:\/\/dieschule.net\/index.php?rest_route=\/wp\/v2\/pages\/104\/revisions\/105"}],"wp:attachment":[{"href":"https:\/\/dieschule.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}