File size: 46,989 Bytes
26fbee7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | <!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>2026 Minimum Wage gap and payroll back-pay exposure</title><meta name="description" content="Germany's floor is 13.90 euros an hour from 2026-01-01."><style>*{box-sizing:border-box}
:root{color-scheme:light dark}
body{font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;margin:0;padding:14px;min-width:320px}
h1{font-size:1.05rem;margin:0 0 .2rem}
.sub{opacity:.75;margin:0 0 .9rem;font-size:.86rem}
label{display:block;margin:.55rem 0 .2rem;font-weight:600;font-size:.86rem}
.u{font-weight:400;opacity:.65}
input,select{width:100%;padding:.4rem .5rem;border:1px solid #8886;border-radius:7px;
background:transparent;color:inherit;font:inherit}
input[type=checkbox]{width:auto}
table{border-collapse:collapse;width:100%;margin-top:.9rem;font-size:.9rem}
th,td{border:1px solid #8884;padding:.36rem .5rem;text-align:left}
td.v{font-variant-numeric:tabular-nums;font-weight:600}
.f{border:1px solid #8884;border-radius:9px;padding:9px 11px;margin:.5rem 0;font-size:.87rem}
.buy{margin-top:18px;border:1px solid #8884;border-radius:10px;padding:13px}
.buy a{display:inline-block;margin-top:.5rem;padding:.45rem .9rem;border:1px solid currentColor;
border-radius:8px;text-decoration:none;color:inherit;font-weight:600}
body{max-width:720px;margin-inline:auto;padding:22px}</style>
<script data-grow-initializer="">!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement("script");(e.type="text/javascript"),(e.src="https://faves.grow.me/main.js"),(e.defer=!0),e.setAttribute("data-grow-faves-site-id","U2l0ZTphZjljMzgyMC0yMmU5LTRhYjgtYTIxNS03OTRhMGY1N2ExYzM=");var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t);})();</script>
<!--yj-canon-s101--><link rel="canonical" href="https://getreadystack.com/tools/eu-minimum-wage-gap-2026"><style data-yj-mfit="1">#out{max-width:100%}#out td,#out th{overflow-wrap:break-word}#out th{white-space:nowrap}#out pre{white-space:pre-wrap;overflow-wrap:anywhere}#out code{white-space:pre-wrap;overflow-wrap:break-word}@media (max-width:640px){#out td,#out th{overflow-wrap:anywhere}#out th{white-space:normal}table{display:block;max-width:100%;overflow-x:auto}pre{max-width:100%;overflow-x:auto}code,a{overflow-wrap:anywhere}img,svg,video,canvas,iframe{max-width:100%}textarea,input,select{max-width:100%;box-sizing:border-box}.yj-lgbar{position:static!important;justify-content:flex-end;margin:0 0 10px}h1,h2,h3,h4,p,li,dd,dt,blockquote,figcaption,summary,label,.res,.lead{overflow-wrap:anywhere}label{max-width:100%;box-sizing:border-box}#out table:not(:has(tr>:nth-child(4))){display:table;table-layout:fixed;width:100%}#out table:has(tr>:nth-child(4)),#out table:has(tr>:nth-child(4)) tbody,#out table:has(tr>:nth-child(4)) tr,#out table:has(tr>:nth-child(4)) td{display:block;width:auto;overflow:visible}#out table:has(tr>:nth-child(4)) thead{display:none}#out table:has(tr>:nth-child(4)) tr{padding:10px 0;border-bottom:1px solid rgba(128,128,128,.28)}#out table:has(tr>:nth-child(4)) td{border:0;padding:1px 0}#out table:has(tr>:nth-child(4)) td:nth-child(-n+3){display:inline-block;margin-right:10px;font-size:12px;opacity:.78}}</style>
<!--yj-trust-org-s191--><script type="application/ld+json" data-yj="yj-trust-org">{"@context": "https://schema.org", "@type": "Organization", "name": "ReadyStack", "url": "https://getreadystack.com/", "logo": "https://getreadystack.com/branding/readystack_profile.png", "email": "support@getreadystack.com", "contactPoint": {"@type": "ContactPoint", "contactType": "customer support", "email": "support@getreadystack.com", "availableLanguage": ["English", "German", "Japanese", "Spanish", "Portuguese"]}}</script><!--/yj-trust-org-s191--></head><body>
<h1>2026 Minimum Wage gap and payroll back-pay exposure</h1>
<p class="sub">Germany's floor is 13.90 euros an hour from 2026-01-01. Type what you actually pay and read the back pay, the employer contributions and the total exposure.</p>
<label for="country">Country and its 2026 monthly floor</label><select id="country" data-k="country"><option value="Germany - 2,343 EUR per month" selected>Germany - 2,343 EUR per month</option><option value="Ireland - 2,391 EUR per month">Ireland - 2,391 EUR per month</option><option value="Netherlands - 2,295 EUR per month">Netherlands - 2,295 EUR per month</option><option value="France - 1,801 EUR per month">France - 1,801 EUR per month</option><option value="Poland - 1,139 EUR per month">Poland - 1,139 EUR per month</option></select>
<label for="paid_monthly">Gross you actually pay <span class="u">EUR per month</span></label><input type="number" id="paid_monthly" data-k="paid_monthly" value="2100" step="any">
<label for="headcount">Employees on that rate <span class="u">employees</span></label><input type="number" id="headcount" data-k="headcount" value="6" step="any">
<label for="months_paid">Months already paid at that rate <span class="u">months</span></label><input type="number" id="months_paid" data-k="months_paid" value="9" step="any">
<label for="employer_contrib_pct">Your employer contribution rate <span class="u">percent</span></label><input type="number" id="employer_contrib_pct" data-k="employer_contrib_pct" value="20.6" step="any">
<label for="check_date">Date you are checking</label><input type="date" id="check_date" data-k="check_date" value="2026-09-19">
<table><tr><th>Shortfall per employee</th><td class="v" data-o="monthly_gap">—</td><td>EUR per month</td></tr><tr><th>Shortfall per employee</th><td class="v" data-o="annual_gap">—</td><td>EUR per year</td></tr><tr><th>Back pay owed so far</th><td class="v" data-o="backpay_due">—</td><td>EUR</td></tr><tr><th>Employer contributions on back pay</th><td class="v" data-o="contrib_topup">—</td><td>EUR</td></tr><tr><th>Total exposure</th><td class="v" data-o="total_exposure">—</td><td>EUR</td></tr><tr><th>Days to the next 1 January uprating</th><td class="v" data-o="days_to_uprating">—</td><td>days</td></tr></table>
<div class="f" style="border:2px solid #111;padding:14px;margin:14px 0"><b>Full version — $60 once</b><br>The six numbers above are free, with no key and no limit. The full version exports this run to .csv and sets a browser alarm before the next 1 January uprating, so the numbers leave the popup and the next rate change reaches you in time.<br>$60 once · one licence key per person or team seat · A Steuerberater bills 30 to 70 euros per half hour under StBVV section 13; the MiLoG fine ceiling for underpayment is 500,000 euros.<br><br><a href="https://getreadystack.com/api/buy/cl/polar_cl_6uNQmn6FPBqKXYRr6A2pI9ifUn6M4j4HgptpH2ViXiA">Get the full version — .csv export and uprating alarm</a></div>
<div class="f"><b>2026 statutory floor</b><br>Holds the 2026 monthly minimum wage floor for Germany, Ireland, the Netherlands, France and Poland.</div><div class="f"><b>Shortfall per employee</b><br>Turns the difference between the floor and what you pay into a monthly and an annual figure.</div><div class="f"><b>Back pay owed so far</b><br>Multiplies the shortfall by headcount and by the months already run at that rate.</div><div class="f"><b>Employer contributions</b><br>Adds the employer social contributions owed on top of the back pay, at your own rate.</div><div class="f"><b>Uprating clock</b><br>Counts the days left until the next 1 January uprating resets the floor again.</div><div class="f"><b>Export and alarm</b><br>Full version: writes the run to .csv and sets a browser alarm before the next uprating.</div>
<script>function compute(v){
function num(x, d){
var s = String(x === undefined || x === null ? '' : x).replace(/[^0-9.\-]/g, '');
var n = Number(s);
return (isFinite(n) && s !== '') ? n : d;
}
function floorOf(s, d){
var t = String(s === undefined || s === null ? '' : s).replace(/[^0-9]/g, '');
var n = Number(t);
return (isFinite(n) && n > 0) ? n : d;
}
function ymd(s, dy, dm, dd){
var m = /^(\d{4})-(\d{1,2})-(\d{1,2})/.exec(String(s === undefined || s === null ? '' : s));
if (!m) { return [dy, dm, dd]; }
return [Number(m[1]), Number(m[2]), Number(m[3])];
}
function r2(n){ return Math.round(n * 100) / 100; }
var floorPay = floorOf(v.country, 2343);
var paid = num(v.paid_monthly, 0);
var heads = Math.max(0, Math.round(num(v.headcount, 1)));
var months = Math.max(0, num(v.months_paid, 0));
var contrib = num(v.employer_contrib_pct, 0);
var gap = floorPay - paid;
if (!(gap > 0)) { gap = 0; }
var monthly = r2(gap);
var annual = r2(gap * 12);
var backpay = r2(gap * heads * months);
var topup = r2(backpay * contrib / 100);
var total = r2(backpay + topup);
var d = ymd(v.check_date, 2026, 9, 19);
var now = Date.UTC(d[0], d[1] - 1, d[2]);
var target = Date.UTC(d[0] + 1, 0, 1);
var days = Math.round((target - now) / 86400000);
if (days < 0) { days = 0; }
return {
monthly_gap: monthly,
annual_gap: annual,
backpay_due: backpay,
contrib_topup: topup,
total_exposure: total,
days_to_uprating: days
};
}</script><script>(function(){
function read(){var v={};document.querySelectorAll('[data-k]').forEach(function(el){
var k=el.dataset.k;v[k]=el.type==='checkbox'?el.checked:(el.type==='number'?parseFloat(el.value):el.value);});
return v;}
function paint(){var r={};try{r=compute(read())||{};}catch(e){r={};}
document.querySelectorAll('[data-o]').forEach(function(el){
var x=r[el.dataset.o];el.textContent=(x===undefined||x===null)?'\u2014':String(x);});}
document.addEventListener('input',paint);document.addEventListener('change',paint);paint();
})();</script>
<section data-yj-install="free" style="margin:2rem auto 1rem;max-width:46rem;padding:1.25rem 1.25rem;border:1px solid #cfe3d6;border-radius:12px;background:#f6fbf8;font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif"><h2 style="margin:0 0 .4rem;font-size:1.2rem">Install free</h2><p style="margin:0 0 .8rem;color:#41505f">Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.</p><a href="https://microsoftedge.microsoft.com/addons/detail/ipiiiniamakifoalkbfdbmbmlijfbpmo" rel="noopener" data-yj-install-door="edge" onclick="try{navigator.sendBeacon('/api/ev',new Blob([JSON.stringify({t:'install',slug:'eu-minimum-wage-gap-2026',src:'edge',path:location.pathname})],{type:'application/json'}))}catch(e){}" style="display:inline-block;margin:0 .5rem .5rem 0;padding:.6rem 1rem;border-radius:8px;background:#0f7b3f;color:#fff;text-decoration:none;font-weight:600">Microsoft Edge Add-ons</a></section>
<section data-yj-alert="rule" style="margin:1rem auto 1.5rem;max-width:46rem;padding:1.1rem 1.25rem;border:1px solid #d9dee6;border-radius:12px;background:#fbfcfd;font:15px/1.55 system-ui,-apple-system,Segoe UI,sans-serif"><b style="font-size:1.05rem">Get one email when this rule changes</b><div style="opacity:.78;margin:.35rem 0 .8rem">We watch the regulation and vendor sources behind EU Minimum Wage Gap 2026 - back-pay check every day. When a rule changes, you get a single email with what changed and the updated check. No newsletter.</div><div style="display:flex;gap:8px;flex-wrap:wrap"><input id="yjae" type="email" placeholder="you@example.com" style="flex:1;min-width:210px;padding:11px 13px;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:#fff;color:inherit"><button id="yjab" style="padding:11px 18px;border-radius:8px;border:0;cursor:pointer;background:#0f7b3f;color:#fff;font:600 15px system-ui,sans-serif">Notify me</button></div><div id="yjao" hidden style="margin-top:.6rem;color:#0f7b3f">You're on the list. One email when it changes.</div><script>(function(){var b=document.getElementById("yjab"),e=document.getElementById("yjae");if(!b||!e)return;b.addEventListener("click",function(){var v=e.value.trim();if(!/.+@.+\..+/.test(v))return;try{localStorage.setItem("yj_em","1");}catch(_){}fetch(location.origin+"/api/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:v,slug:"eu-minimum-wage-gap-2026",lang:"en",source:"rule_alert"+((b.closest&&b.closest("section")&&b.closest("section").getAttribute("data-yj-moved"))?"_at_result":"")})}).then(function(r){var o=document.getElementById("yjao");o.hidden=false;if(!r.ok){o.textContent="Could not save - please try again.";}}).catch(function(){var o=document.getElementById("yjao");o.hidden=false;o.textContent="Could not save - please try again.";});});})();</script><script>(function(){var e=document.getElementById("yjae"),s=e&&e.closest?e.closest("section"):null,o=document.getElementById("out");if(!s||!o)return;var d=false;function mv(ev){if(d)return;if(ev&&ev.target&&s.contains(ev.target))return;d=true;var b=o;while(b.parentNode&&b.parentNode!==document.body&&b.parentNode.tagName!=="MAIN"&&b.parentNode.tagName!=="ARTICLE")b=b.parentNode;if(!b.parentNode||b===s||b.contains(s))return;try{b.parentNode.insertBefore(s,b.nextSibling);s.setAttribute("data-yj-moved","1");}catch(_){}}document.addEventListener("input",mv,true);document.addEventListener("change",mv,true);document.addEventListener("click",function(ev){var b=ev.target&&ev.target.closest?ev.target.closest("button,input[type=submit]"):null;if(b&&!b.closest("[data-yj],[data-yj-cta],[data-yj-install],[data-yj-alert],.yj-find,.yj-related,#yj-ask,.yjp"))mv(ev);},true);})();</script></section>
<section data-yj-cta="paid" style="margin:3rem auto;max-width:46rem;padding:1.5rem 1.25rem;border:1px solid #d8dee9;border-radius:12px;background:#fbfcfe;font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif"><h2 style="margin:0 0 .5rem;font-size:1.25rem">Get the full version <span class="yj-price">$60</span></h2><p class="yj-cta-paid" style="margin:.25rem 0 .6rem;color:#1f2a37">Exports the run to .csv and sets a browser alarm before the next 1 January uprating, so the numbers leave the popup and the next rate change reaches you in time.</p><p class="yj-cta-pay" style="margin:.25rem 0 1rem;color:#5b6b7c;font-size:.94rem">One payment, one licence key for this tool. The key is shown right after payment.</p><p class="yj-cta-anchor" style="margin:0 0 1rem;color:#5b6b7c;font-size:.94rem">A Steuerberater bills 30 to 70 euros per half hour under StBVV section 13; the MiLoG fine ceiling for underpayment is 500,000 euros.</p><a href="https://getreadystack.com/api/buy/cl/polar_cl_6uNQmn6FPBqKXYRr6A2pI9ifUn6M4j4HgptpH2ViXiA" rel="nofollow" style="display:inline-block;padding:.7rem 1.3rem;border-radius:8px;background:#1b64f2;color:#fff;text-decoration:none;font-weight:600">Buy the full version — $60</a><a href="#" data-yj-key hidden style="margin-left:1rem;font-size:.92rem;color:#41505f;text-decoration:underline">I have a key</a></section><!--yj-trust-strip-s191--><aside data-yj="yj-trust-strip" style="max-width:46rem;margin:-1.8rem auto 2.4rem;padding:.9rem 1.2rem;border:1px solid #d8dee9;border-radius:12px;background:#f6f8fb;font:14.5px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;color:#2b3640"><p style="margin:0 0 .3rem;font-weight:600">Buying here, plainly</p><ul style="margin:0;padding-left:1.2rem"><li style="margin:.25rem 0">Payment runs on Whop’s checkout: your card details go to Whop, not to us, and Whop emails you the receipt.</li><li style="margin:.25rem 0">Your licence key shows on the next page right after payment and stays in your Whop account (Your purchases).</li><li style="margin:.25rem 0">Chose a subscription? Cancel any time in your Whop account (Orders → Cancel membership); access lasts until the end of the period you paid.</li><li style="margin:.25rem 0">Your inputs are calculated in your browser and are not sent to us (unless you ask for the result by email).</li><li style="margin:.25rem 0">Questions before buying? support@getreadystack.com — we answer within 2 business days.</li></ul></aside><!--/yj-trust-strip-s191-->
<!--yj-pass-line-s196--><p data-yj="yj-pass-line" style="max-width:46rem;margin:0 auto 2rem;padding:.7rem 1.1rem;border:1px dashed #9aa4b2;border-radius:10px;font:14.5px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;color:#2b3640">Need more than this one? <b>ReadyStack Pass</b> opens all 462 files and 471 full versions — $29/month or $199/year. <a href="/pass/">See the Pass →</a></p><!--/yj-pass-line-s196-->
<!--yj-share-s101--><div style="margin:28px 0 8px;text-align:center"><button id="yjcp" type="button" style="font:inherit;padding:10px 18px;border:1px solid #8884;border-radius:10px;background:transparent;cursor:pointer">Copy link</button></div><script>(function(){var b=document.getElementById("yjcp");if(!b)return;var t=b.textContent;b.addEventListener("click",function(){var u=location.href.split("#")[0];function d(){b.textContent="Link copied";setTimeout(function(){b.textContent=t;},1800);}if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(u).then(d,function(){prompt("",u);});}else{prompt("",u);}});})();</script>
<script data-yj="yj-view-beacon">(function(){try{var p=location.pathname;var k='yjv:'+p;if(sessionStorage.getItem(k))return;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en",ref:(document.referrer||''),src:(function(){try{return (new URLSearchParams(location.search).get('ref')||'').replace(/[^a-z_]/g,'').slice(0,12)}catch(e){return ''}})()})}).catch(function(){});}catch(e){}})();</script><div class="yj-home-find"><div class="yj-lgbar"><a href="/" class="yj-lg on">EN</a><a href="/de/" class="yj-lg">DE</a><a href="/ja/" class="yj-lg">JA</a><a href="/es/" class="yj-lg">ES</a><a href="/pt/" class="yj-lg">PT</a></div><section class="yj-find"><h2>Find a tool</h2><input id="yjq" type="search" autocomplete="off" placeholder="Type a product name, format or task"><div id="yjr"></div></section><style>.yj-lgbar{position:absolute;top:14px;right:18px;display:flex;gap:6px;z-index:60}.yj-lg{font:600 12px/1 system-ui,sans-serif;padding:6px 9px;border-radius:4px;text-decoration:none;color:#8b96a3;border:1px solid rgba(140,150,165,.28)}.yj-lg:hover{color:#e8eaed;border-color:rgba(160,175,195,.6)}.yj-lg.on{color:#0e1116;background:#cfd6de;border-color:#cfd6de}.yj-find{max-width:760px;margin:34px auto 8px;padding:0 20px}.yj-find h2{font:600 20px/1.3 system-ui,sans-serif;margin:0 0 10px}#yjq{width:100%;box-sizing:border-box;padding:13px 15px;font:400 15.5px system-ui,sans-serif;border:1px solid rgba(140,150,165,.34);border-radius:8px;background:rgba(255,255,255,.04);color:inherit}#yjq:focus{outline:none;border-color:#7FD1C4}#yjr{margin-top:10px;display:flex;flex-direction:column;gap:6px}#yjr a{display:flex;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid rgba(140,150,165,.22);border-radius:6px;text-decoration:none;font:400 14.5px/1.4 system-ui,sans-serif;color:inherit}#yjr a:hover{border-color:#7FD1C4}#yjr .pr{font:600 13px system-ui,sans-serif;color:#5fbf9a;white-space:nowrap}</style><script>(function(){var q=document.getElementById("yjq"),r=document.getElementById("yjr"),D=null;function load(){if(D)return Promise.resolve(D);return fetch("/search-index.json").then(function(x){return x.json();}).then(function(j){D=j;return j;}).catch(function(){D=[];return D;});}function esc(t){return String(t).replace(/[&<>"]/g,function(c){return {"&":"&","<":"<",">":">",'"':"""}[c];});}function run(){var v=q.value.trim().toLowerCase();if(v.length<2){r.innerHTML="";return;}load().then(function(j){var w=v.split(/\s+/),o=[];for(var i=0;i<j.length&&o.length<12;i++){var t=j[i].t.toLowerCase();var ok=true;for(var k=0;k<w.length;k++){if(t.indexOf(w[k])<0){ok=false;break;}}if(ok)o.push(j[i]);}r.innerHTML=o.length?o.map(function(x){return "<a href=\""+esc(x.u)+"\">"+"<span>"+esc(x.t)+"</span>"+(x.p?"<span class=\"pr\">$"+x.p+"</span>":"")+"</a>";}).join(""):"";});}q.addEventListener("input",run);q.addEventListener("focus",load);})();</script></div>
<script data-yj="yj-use-beacon v2">(function(){try{var r=document.querySelector('main')||document.body;var p=location.pathname,k='yju:'+p,sent=false,armed=false;function ours(el){return !!(el&&el.closest&&el.closest('[data-yj],[data-yj-cta],.yj-email-gate,.yj-find,.yj-related,#yj-ask,#yjgo,#yjr'));}function fire(){if(sent||!armed||sessionStorage.getItem(k))return;sent=true;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en",t:'use',src:(function(){try{return (new URLSearchParams(location.search).get('ref')||'').replace(/[^a-z_]/g,'').slice(0,12)}catch(e){return ''}})()})}).catch(function(){});}r.addEventListener('click',function(e){var b=e.target&&e.target.closest?e.target.closest('button,input[type=submit],[role=button]'):null;if(!b||ours(b))return;armed=true;setTimeout(fire,400);},true);r.addEventListener('input',function(e){if(!ours(e.target))armed=true;},true);var mo=new MutationObserver(function(){if(armed){fire();if(sent)mo.disconnect();}});mo.observe(r,{childList:true,characterData:true,subtree:true});}catch(e){}})();</script>
<section data-yj="yj-facts-v1" style="max-width:920px;margin:48px auto 0;padding:0 20px;font-family:system-ui,sans-serif"><style>.yj-article p{font:400 15.5px/1.7 system-ui,sans-serif;color:#26313b;margin:0 0 12px;max-width:72ch}.yj-article h2,.yj-article h3,.yj-article h4{font:600 17px/1.35 system-ui,sans-serif;color:#1b1f24;margin:22px 0 8px}.yj-article table{border-collapse:collapse;margin:10px 0 16px;font:14px/1.45 system-ui,sans-serif}.yj-article th,.yj-article td{border:1px solid #e2e6ea;padding:6px 10px;text-align:left}.yj-article th{background:#f4f6f8}.yj-article pre{background:#0f1720;color:#e6edf3;padding:12px 14px;border-radius:8px;overflow:auto;font:13px/1.5 ui-monospace,Menlo,monospace}.yj-article code{font:13px ui-monospace,Menlo,monospace;background:#f1f3f5;padding:1px 4px;border-radius:3px}.yj-article pre code{background:none;padding:0}.yj-article ul,.yj-article ol{font:15px/1.6 system-ui,sans-serif;color:#26313b}</style><p style="font:400 13px/1.5 system-ui,sans-serif;color:#6b7680;margin:0 0 14px"><time datetime="2026-09-19">Updated 2026-09-19</time> · ReadyStack</p><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","dateModified":"2026-09-19","author":{"@type":"Organization","name":"ReadyStack"}}</script><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:0 0 6px;color:#1b1f24">Worked example</h2><p style="font:400 14.5px/1.5 system-ui,sans-serif;margin:0 0 16px;color:#5b6570">Real numbers from this tool, line by line.</p><div class="yj-article"><p><img src="https://getreadystack.com/img/promo/sku129254_result_card.jpg" alt="EU Minimum Wage Gap 2026 - back-pay check" loading="lazy" style="max-width:100%;border-radius:6px"></p>
<p>Six people on a direct German contract at 2,100 euros gross a month put a Berlin payroll 15,825.13 euros under water - 13,122 euros of back pay plus 2,703.13 euros of employer contributions - and the payroll manager running it has done nothing wrong except not notice that the floor moved.</p>
<p>Germany's statutory minimum wage went from 12.82 euros an hour in 2025 to 13.90 euros an hour on 2026-01-01. That is a monthly floor of 2,343 EUR per month. A salary of 2,100 euros gross was legal in December and is 243 euros short in January, 2,916 euros short over a full year. Nine months in, across six people, that is 13,122 euros of back pay you already owe. Apply a 20.6 percent employer contribution rate and another 2,703.13 euros is owed on top, for a total exposure of 15,825.13 EUR.</p>
<p>Nobody sends a reminder, and the next step is already fixed: 14.60 euros an hour on 2027-01-01. From 2026-09-19 that is 104 days away.</p>
<h4>The reason this is a browser extension and not a spreadsheet</h4>
<p>Because the number you need is not in your spreadsheet - it is the current statutory floor, and it changes under you once a year, in five different countries on five different schedules. This extension carries the 2026 monthly floors: Germany 2,343 EUR per month, Ireland 2,391, Netherlands 2,295, France 1,801, Poland 1,139. Source: Eurostat minimum wage statistics, data extracted January 2026, read on 2026-09-19.</p>
<p>You pick the country, type the gross you actually pay, the headcount on that rate, the months already run at that rate and your own employer contribution rate, and pick the date you are checking. Six inputs. It returns six outputs: shortfall per employee per month, shortfall per employee per year, back pay owed so far, employer contributions on that back pay, total exposure, and days to the next 1 January uprating.</p>
<h4>The same tool, three payrolls</h4>
<p>Fourteen people in Poland at 1,050 euros against a 1,139 floor is 89 euros each a month, 11,214 euros of back pay over nine months, 13,510.63 euros of total exposure at a 20.48 percent contribution rate. Four people in Ireland at 2,250 against a 2,391 floor is 141 euros each, 5,076 euros of back pay, 5,641.97 euros total at 11.15 percent. Same six inputs, genuinely different answers, because the floor is genuinely different.</p>
<h4>Why the free chatbot answer is the expensive one</h4>
<p>Ask an assistant what Germany's minimum wage is and there is a good chance you get 12.82 euros an hour, the 2025 rate, because the 13.90 rate took effect on 2026-01-01 and training data lags. That is the single most expensive wrong number in this whole calculation: it makes a 243-euro monthly gap look like zero. And even with the right rate, a chat answer does not multiply your headcount by your months, and does not add the employer contributions owed on the back pay.</p>
<p>Under the Mindestlohngesetz the fine ceiling for paying below the minimum wage is 500,000 euros. The back pay is owed on top of the ceiling, not instead of it. A Steuerberater bills 30 to 70 euros per half hour under StBVV section 13, so one sanity check across a five-country payroll costs more than this extension does once.</p>
<h4>What is free</h4>
<p>All of it. The six outputs are always shown - no key, no limit, no watermark, no locked answer. The full version, 60 dollars once, adds a .csv export so the run leaves the popup, and a browser alarm before the next 1 January uprating so the next rate change reaches you in time. One licence key per person or team seat. Everything is computed in the page; no payroll figure leaves your browser.</p></div><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:34px 0 6px;color:#1b1f24">Questions people ask</h2><details style="border-bottom:1px solid #e6e9ed;padding:10px 0"><summary style="cursor:pointer;font:600 15px/1.4 system-ui,sans-serif;color:#1b1f24">What does this extension actually do?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">It compares the gross monthly pay you actually run against the 2026 statutory minimum wage floor for the country you pick, then returns six outputs: shortfall per employee per month, shortfall per employee per year, back pay owed so far, employer contributions on that back pay, total exposure, and days to the next 1 January uprating.</p></details><details style="border-bottom:1px solid #e6e9ed;padding:10px 0"><summary style="cursor:pointer;font:600 15px/1.4 system-ui,sans-serif;color:#1b1f24">Who is it for?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">Payroll and people-ops managers at small companies that employ staff on direct local contracts in Germany, Ireland, the Netherlands, France or Poland, with no employer-of-record in between. If you run gross salaries yourself in more than one EU country, the floor moves under you every 1 January and nobody sends a reminder.</p></details><details style="border-bottom:1px solid #e6e9ed;padding:10px 0"><summary style="cursor:pointer;font:600 15px/1.4 system-ui,sans-serif;color:#1b1f24">Why will a free chatbot not answer this?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">Free chatbots and older blog posts still quote the 2025 German floor of 12.82 euros an hour, because the 13.90 rate only took effect on 2026-01-01 and training data lags behind. A search result also will not multiply your headcount and your months by the gap, or add the employer contributions owed on the back pay.</p></details><details style="border-bottom:1px solid #e6e9ed;padding:10px 0"><summary style="cursor:pointer;font:600 15px/1.4 system-ui,sans-serif;color:#1b1f24">What is free and what needs the key?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">Free covers the whole calculation with no key: you set six inputs - country, gross you actually pay, employees on that rate, months already paid at that rate, your employer contribution rate, and the date you are checking - and read all six outputs. The full version at 60 dollars adds a .csv export and an uprating alarm.</p></details><details style="border-bottom:1px solid #e6e9ed;padding:10px 0"><summary style="cursor:pointer;font:600 15px/1.4 system-ui,sans-serif;color:#1b1f24">What would this cost without the extension?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">A Steuerberater in Germany bills 30 to 70 euros per half hour under StBVV section 13, so a single sanity check across a five-country payroll costs more than this extension does once. The MiLoG fine ceiling for paying below the minimum wage is 500,000 euros, and the back pay is still owed on top of it.</p></details><script type="application/ld+json" data-yj="yj-faq-ld">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "What does this extension actually do?", "acceptedAnswer": {"@type": "Answer", "text": "It compares the gross monthly pay you actually run against the 2026 statutory minimum wage floor for the country you pick, then returns six outputs: shortfall per employee per month, shortfall per employee per year, back pay owed so far, employer contributions on that back pay, total exposure, and days to the next 1 January uprating."}}, {"@type": "Question", "name": "Who is it for?", "acceptedAnswer": {"@type": "Answer", "text": "Payroll and people-ops managers at small companies that employ staff on direct local contracts in Germany, Ireland, the Netherlands, France or Poland, with no employer-of-record in between. If you run gross salaries yourself in more than one EU country, the floor moves under you every 1 January and nobody sends a reminder."}}, {"@type": "Question", "name": "Why will a free chatbot not answer this?", "acceptedAnswer": {"@type": "Answer", "text": "Free chatbots and older blog posts still quote the 2025 German floor of 12.82 euros an hour, because the 13.90 rate only took effect on 2026-01-01 and training data lags behind. A search result also will not multiply your headcount and your months by the gap, or add the employer contributions owed on the back pay."}}, {"@type": "Question", "name": "What is free and what needs the key?", "acceptedAnswer": {"@type": "Answer", "text": "Free covers the whole calculation with no key: you set six inputs - country, gross you actually pay, employees on that rate, months already paid at that rate, your employer contribution rate, and the date you are checking - and read all six outputs. The full version at 60 dollars adds a .csv export and an uprating alarm."}}, {"@type": "Question", "name": "What would this cost without the extension?", "acceptedAnswer": {"@type": "Answer", "text": "A Steuerberater in Germany bills 30 to 70 euros per half hour under StBVV section 13, so a single sanity check across a five-country payroll costs more than this extension does once. The MiLoG fine ceiling for paying below the minimum wage is 500,000 euros, and the back pay is still owed on top of it."}}]}</script><div id="yj-ask" style="margin:36px 0 0;padding:18px 18px 16px;border:1px solid #e2e6ea;border-radius:10px;background:#fbfbfc"><h2 style="font:600 19px/1.3 system-ui,sans-serif;margin:0 0 4px;color:#1b1f24">Ask about this tool</h2><p style="font:400 13.5px/1.5 system-ui,sans-serif;margin:0 0 12px;color:#5b6570">One question, answered by the person who built it. Your email only if you want the answer sent.</p><form onsubmit="return yjAsk(event)" style="display:grid;gap:8px"><textarea name="question" required minlength="10" maxlength="2000" rows="3" placeholder="Your question" style="font:14px/1.5 system-ui,sans-serif;padding:10px;border:1px solid #cfd6dd;border-radius:6px"></textarea><div style="display:flex;gap:8px;flex-wrap:wrap"><input type="email" name="email" placeholder="Email (optional)" style="flex:1;min-width:200px;font:14px system-ui,sans-serif;padding:9px 10px;border:1px solid #cfd6dd;border-radius:6px"><button type="submit" style="font:600 14px system-ui,sans-serif;padding:9px 18px;border:0;border-radius:6px;background:#1b1f24;color:#fff;cursor:pointer">Send</button></div><p id="yj-ask-msg" style="font:13px system-ui,sans-serif;margin:2px 0 0;color:#0a6238;min-height:1em"></p></form><script>function yjAsk(e){e.preventDefault();var f=e.target,m=document.getElementById("yj-ask-msg");m.style.color="#0a6238";fetch(location.origin+"/api/ask",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sku:129254,slug:"eu-minimum-wage-gap-2026",lang:"en",question:f.question.value,email:f.email.value,page:location.pathname})}).then(function(r){if(!r.ok)throw 0;m.textContent="Thanks \u2014 noted. Answers land on this page and, if you left an email, in your inbox.";f.question.value="";}).catch(function(){m.style.color="#a8551f";m.textContent="Could not send. Please try again in a minute.";});return false;}</script></div></section><!--yj-embed-s178--><details id="embed" data-yj="yj-embed" style="max-width:46rem;margin:1.6rem auto;padding:.85rem 1.1rem;border:1px solid #8884;border-radius:10px"><summary style="cursor:pointer;font-weight:600">Embed this calculator on your site (free)</summary><p style="margin:.6rem 0;opacity:.85">Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.</p><textarea readonly rows="6" style="width:100%;font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;border:1px solid #8886;border-radius:7px;padding:.5rem"><iframe src="https://getreadystack.com/embed/eu-minimum-wage-gap-2026/" title="EU Minimum Wage Gap 2026 - back-pay check" loading="lazy" data-rs-embed="en-eu-minimum-wage-gap-2026" style="width:100%;max-width:760px;height:640px;border:1px solid #e3e3e3;border-radius:10px"></iframe>
<p style="font-size:13px;margin:6px 0 0"><a href="https://getreadystack.com/tools/eu-minimum-wage-gap-2026">EU Minimum Wage Gap 2026 - back-pay check</a> by <a href="https://getreadystack.com/">ReadyStack</a></p>
<script>window.addEventListener("message",function(e){if(e.origin!=="https://getreadystack.com"||!e.data||e.data.type!=="readystack-embed")return;var f=document.querySelectorAll("iframe[data-rs-embed]");for(var i=0;i<f.length;i++){if(f[i].contentWindow===e.source)f[i].style.height=Math.min(e.data.h+6,8000)+"px";}});</script></textarea><p style="margin:.5rem 0 0"><button type="button" data-yj="yj-embed-copy" style="font:inherit;padding:8px 14px;border:1px solid #8884;border-radius:9px;background:transparent;cursor:pointer">Copy code</button> <a href="/embed/">All embeddable tools</a></p><p style="margin:.7rem 0 0;font-size:.92em;opacity:.9">For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. <a href="/embed/pro/?ref=embed_box">See Pro →</a></p></details><script data-yj="yj-embed">(function(){var b=document.querySelector("[data-yj=yj-embed-copy]");if(!b)return;var t=b.textContent;b.addEventListener("click",function(){var a=b.closest("details").querySelector("textarea");var v=a.value;function d(){b.textContent="Copied";setTimeout(function(){b.textContent=t;},1800);}if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(v).then(d,function(){a.select();});}else{a.select();}});})();</script><section class="yj-related" style="max-width:920px;margin:56px auto 40px;padding:0 20px"><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:0 0 6px;color:#1b1f24">Same job, next tool</h2><p style="font:400 14.5px/1.5 system-ui,sans-serif;margin:0 0 20px;color:#5b6570">Free in the browser. The full version is a one-time licence.</p><div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px"><a class="yj-rel-c" href="https://getreadystack.com/tools/canada-payroll-2026-gap-check?ref=related"><span class="yj-rel-t">Canada Payroll 2026 Gap Check (CPP2 & EI)</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/france-packaging-epr-2026?ref=related"><span class="yj-rel-t">France Packaging EPR 2026 — Citeo fee and Article 45 exposure</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/ae-employer-cost-ie-2026?ref=related"><span class="yj-rel-t">Ireland Auto-Enrolment Employer Cost 2026</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/ssp-day-one-cost-2026?ref=related"><span class="yj-rel-t">UK SSP 2026: what day-one sick pay costs you</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/vat-relief-declaration-gap-uk?ref=related"><span class="yj-rel-t">VAT Relief Declaration Gap - UK Notice 701/7 exposure</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/payroll-tax-spreadsheet?ref=related"><span class="yj-rel-t">Payroll Tax Spreadsheet for US Small Employers — FICA, FUTA and State UI Wage-</span><span class="yj-rel-p">$21</span></a></div><style>.yj-rel-c{display:flex;flex-direction:column;gap:8px;padding:15px 16px;border:1px solid #e2e6ea;border-radius:6px;text-decoration:none;background:#fff}.yj-rel-c:hover{border-color:#b9c2cb;background:#fafbfc}.yj-rel-t{font:500 14.5px/1.42 system-ui,sans-serif;color:#1b1f24}.yj-rel-p{font:600 13px system-ui,sans-serif;color:#0a6238}</style></section>
<script src="/assets/pro.js?v=3a0f7794" defer></script>
<script data-yj="yj-prefill-s181 v1">(function(){try{var q=new URLSearchParams(location.search);if(!q.toString())return;var P={"R": {"employee": ["employee|w-?2\\b|arbeitnehmer|angestellt|会社員|従業員|給与所得|trabajador|asalariad|empregad|clt\\b|salari", "Employee"], "self": ["self-?employ|freelanc|sole (trader|prop)|selbst(ä|ae)ndig|freiberuf|個人事業|フリーランス|aut(ó|o)nom|\\bmei\\b", "Freelancer / self-employed"], "landlord": ["landlord|rental|vermiet|大家|不動産|arrendador|alquiler|locador|aluguel", "Landlord"], "investor": ["invest|trader|anleger|投資|inversor|investidor", "Investor / trader"], "employer": ["employer|arbeitgeber|雇用主|事業主|empleador|empregador", "Employer"], "seller": ["seller|online shop|h(ä|ae)ndler|販売|vendedor|e-?commerce", "Online seller"]}, "C": {"US": "^(us|usa)$|united states|estados unidos|vereinigte staaten|アメリカ|米国", "UK": "^(uk|gb)$|united kingdom|great britain|reino unido|vereinigtes k|イギリス|英国", "DE": "^de$|germany|deutschland|alemania|alemanha|ドイツ", "JP": "^jp$|japan|jap(ó|ã|o)n?|日本", "ES": "^es$|spain|españa|espana|espanha|spanien|スペイン", "BR": "^br$|brazil|brasil|ブラジル"}, "B": "your 2027 dates", "L": "en"};function ours(el){return !!(el&&el.closest&&el.closest("[data-yj],[data-yj-cta],[data-yj-cal],.yj-email-gate,.yj-find,.yj-related,#yj-ask,#yjgo,#yjr,header,footer,nav"));}function fields(){var r=document.querySelector("main")||document.body;return [].filter.call(r.querySelectorAll("input,select,textarea"),function(el){var t=(el.type||"").toLowerCase();return !ours(el)&&!el.disabled&&["email","hidden","search","password","file","submit","button","reset","image"].indexOf(t)<0;});}function key(el){return el.getAttribute("data-k")||el.id||el.name||"";}function fire(el){["input","change"].forEach(function(n){try{el.dispatchEvent(new Event(n,{bubbles:true}))}catch(e){}});}function setv(el,v){v=String(v).slice(0,80);var t=(el.type||"").toLowerCase(),tg=el.tagName;if(tg=="SELECT"){var o=[].filter.call(el.options,function(o){return o.value==v||o.text.trim()==v})[0];if(!o)return false;el.value=o.value;}else if(t=="checkbox"||t=="radio"){if(!/^(1|0|true|false|on|off|yes|no)$/i.test(v))return false;el.checked=/^(1|true|on|yes)$/i.test(v);}else if(t=="number"||t=="range"){var n=parseFloat(v.replace(/\s/g,"").replace(",","."));if(!isFinite(n))return false;el.value=String(n);}else if(t=="date"){if(!/^\d{4}-\d{2}-\d{2}$/.test(v))return false;el.value=v;}else{if(/[<>]/.test(v))return false;el.value=v;}fire(el);return true;}function pick(el,rx){if(el.tagName!="SELECT")return false;var re=new RegExp(rx,"i");var o=[].filter.call(el.options,function(o){return re.test(o.value)||re.test(o.text)})[0];if(!o||el.value==o.value)return false;el.value=o.value;fire(el);return true;}function run(){var F=fields(),done={},n=0;q.forEach(function(v,k){if(n>=20||/^(ref|role|cc|utm_.*|fbclid|gclid)$/.test(k)||!/^[A-Za-z0-9_-]{1,40}$/.test(k))return;F.forEach(function(el){if(key(el)===k&&!done[k]&&setv(el,v)){done[k]=1;n++;}});});var cc=(q.get("cc")||"").toUpperCase().replace(/[^A-Z]/g,"");if(P.C[cc])F.forEach(function(el){var k=key(el);if(!done[k]&&/country|land|pa(i|í)s|pays|国/i.test(k+" "+(el.id||""))&&pick(el,P.C[cc])){done[k]=1;n++;}});var ro=(q.get("role")||"").replace(/[^a-z]/g,""),R=P.R[ro];if(R)F.forEach(function(el){var k=key(el);if(!done[k]&&el.tagName=="SELECT"&&[].some.call(el.options,function(o){return [].some.call(Object.keys(P.R),function(x){return new RegExp(P.R[x][0],"i").test(o.text)})})&&pick(el,R[0])){done[k]=1;n++;}});if(q.get("ref")=="calendar"){var h=document.querySelector("main h1")||document.querySelector("h1");var d=document.createElement("div");d.setAttribute("data-yj","yj-prefill-back");d.style.cssText="margin:.4rem 0 .8rem;font:15px/1.5 system-ui,sans-serif;opacity:.9";var a=document.createElement("a");a.href="/"+P.L+"/calendar/?ref=tool"+(R?"&role="+ro:"")+(P.C[cc]?"&cc="+cc:"");a.textContent=(R?R[1]+" \u00b7 ":"")+P.B+" \u2192";d.appendChild(a);if(h&&h.parentNode)h.parentNode.insertBefore(d,h.nextSibling);}document.documentElement.setAttribute("data-yj-prefilled",String(n));}if(document.readyState=="loading")document.addEventListener("DOMContentLoaded",run);else run();}catch(e){}})();</script>
<script data-yj="yj-leave-beacon">(function(){try{if(navigator.doNotTrack=='1'||window.doNotTrack=='1'||navigator.globalPrivacyControl)return;var S=sessionStorage,p=location.pathname,ent=S.getItem('yje');if(ent===null){var h='';try{h=document.referrer?new URL(document.referrer).hostname:'';}catch(e){}if(/(^|\.)getreadystack\.com$/i.test(h))h='';var rq='';try{rq=(new URLSearchParams(location.search).get('ref')||'').replace(/[^a-z_]/g,'').slice(0,12);}catch(e){}ent=h?h.toLowerCase().slice(0,60):(rq?'ref_'+rq:'');S.setItem('yje',ent);}if(!ent||S.getItem('yjl:'+p))return;var vis=0,last=Date.now(),on=document.visibilityState!='hidden',maxy=0,act={},sent=false;function tick(){var n=Date.now();if(on)vis+=n-last;last=n;}function sc(){var y=(window.scrollY||0)+innerHeight;if(y>maxy)maxy=y;}sc();addEventListener('scroll',sc,{passive:true});document.addEventListener('copy',function(){act.copy=1;},true);document.addEventListener('input',function(e){if(e.isTrusted&&!(e.target&&e.target.closest&&e.target.closest('.yj-email-gate,.yj-find,#yj-ask')))act.type=1;},true);document.addEventListener('click',function(e){var a=e.target&&e.target.closest?e.target.closest('a,button'):null;if(!a)return;var hr=a.getAttribute('href')||'';if(/\/api\/buy\//.test(hr))act.buy=1;else if(a.hasAttribute('download')||/\.(mid|zip|xlsx|docx|pdf|tex|dxf|csv)(\?|$)/i.test(hr))act.file=1;else if(/^https?:/i.test(hr)&&!/getreadystack\.com/i.test(hr))act.out=1;else if(a.closest('[data-yj-first]'))act.first=1;},true);var M=[['result','#out,[data-o],.yjp'],['offer','.yjp-buy,[data-yj-cta],a[href*="/api/buy/"]'],['email','.yj-email-gate'],['faq','[data-yj="yj-facts-v1"],details'],['related','.yj-related'],['end','.yj-home-find,footer']];function lastSeen(){var b='top',by=-1;for(var i=0;i<M.length;i++){var e=document.querySelector(M[i][1]);if(!e)continue;var t=e.getBoundingClientRect().top+(window.scrollY||0);if(t<maxy&&t>by){by=t;b=M[i][0];}}return b;}function send(){if(sent)return;tick();sent=true;S.setItem('yjl:'+p,'1');var H=document.documentElement.scrollHeight||1;var b=JSON.stringify({path:p,lang:"en",t:'leave',ref:(ent.indexOf('ref_')===0?'':'https://'+ent),ent:ent,secs:Math.min(1800,Math.round(vis/1000)),depth:Math.min(100,Math.round(maxy/H*10)*10),last:lastSeen(),act:Object.keys(act).sort().join('_'),src:(function(){try{return (new URLSearchParams(location.search).get('ref')||'').replace(/[^a-z_]/g,'').slice(0,12)}catch(e){return ''}})()});try{if(navigator.sendBeacon&&navigator.sendBeacon('/api/ev',new Blob([b],{type:'application/json'})))return;}catch(e){}try{fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:b});}catch(e){}}document.addEventListener('visibilitychange',function(){if(document.visibilityState=='hidden'){tick();on=false;send();}else{last=Date.now();on=true;}});addEventListener('pagehide',send);}catch(e){}})();</script>
<!--yj-trust-foot-s191--><footer data-yj="yj-trust-foot" style="margin:3rem auto 0;padding:1.2rem 1rem 2rem;border-top:1px solid rgba(128,128,128,.28);max-width:60rem;font:14px/1.6 system-ui,-apple-system,Segoe UI,sans-serif;color:#5b6570;text-align:center"><nav aria-label="ReadyStack" style="display:flex;gap:.4rem 1.1rem;justify-content:center;flex-wrap:wrap"><a href="/about" style="color:inherit">About</a><a href="/verify/" style="color:inherit">How we verify</a><a href="/privacy" style="color:inherit">Privacy</a><a href="/terms" style="color:inherit">Terms</a><a href="/contact.html" style="color:inherit">Contact</a><a href="mailto:support@getreadystack.com" style="color:inherit">support@getreadystack.com</a></nav><p style="margin:.6rem 0 0">🔒 Secure checkout by Whop · © 2026 ReadyStack</p></footer><!--/yj-trust-foot-s191--></body></html> |