Download index.html from getreadystack/mdr-legacy-sunset-clock: direct link, hf CLI and curl.
- Browser
- Download file 35.5 kB
-
https://huggingface.co/spaces/getreadystack/mdr-legacy-sunset-clock/resolve/main/index.html
- Command line
-
hf download hf://spaces/getreadystack/mdr-legacy-sunset-clock/index.html
-
curl -L -o index.html https://huggingface.co/spaces/getreadystack/mdr-legacy-sunset-clock/resolve/main/index.html
35.5 kB
| <html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>MDR Legacy Sunset Clock 2026</title><meta name="description" content="Which Regulation (EU) 2023/607 date your legacy device actually falls under, and how many days are left."><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/mdr-legacy-sunset-clock"></head><body> | |
| <h1>Your legacy device, its real sunset date, and the gap</h1> | |
| <p class="sub">Which Regulation (EU) 2023/607 date your legacy device actually falls under, and how many days are left.</p> | |
| <label for="device_class">Device class under the old directive</label><select id="device_class" data-k="device_class"><option value="MDR class III custom-made implantable">MDR class III custom-made implantable</option><option value="MDR class III not custom-made">MDR class III not custom-made</option><option value="MDR class IIb implantable" selected>MDR class IIb implantable</option><option value="MDR class IIb implantable suture staple dental screw carve-out">MDR class IIb implantable suture staple dental screw carve-out</option><option value="MDR class IIb non-implantable">MDR class IIb non-implantable</option><option value="MDR class IIa">MDR class IIa</option><option value="MDR class Is Im Ir sterile measuring reusable surgical">MDR class Is Im Ir sterile measuring reusable surgical</option><option value="MDR class I up-classified needing a notified body first time">MDR class I up-classified needing a notified body first time</option><option value="IVDR class D">IVDR class D</option><option value="IVDR class C">IVDR class C</option><option value="IVDR class B">IVDR class B</option><option value="IVDR class A sterile">IVDR class A sterile</option></select> | |
| <label for="art120_conditions">Article 120 conditions</label><select id="art120_conditions" data-k="art120_conditions"><option value="Yes application lodged by 2024-05-26 and notified body agreement signed by 2024-09-26" selected>Yes application lodged by 2024-05-26 and notified body agreement signed by 2024-09-26</option><option value="No a 2024 step was missed or the device changed significantly">No a 2024 step was missed or the device changed significantly</option></select> | |
| <label for="today">Today</label><input type="date" id="today" data-k="today" value="2026-09-18"> | |
| <label for="dossier_ready">Date the MDR or IVDR dossier goes to the notified body</label><input type="date" id="dossier_ready" data-k="dossier_ready" value="2026-12-01"> | |
| <label for="review_months">Notified body conformity assessment length <span class="u">months</span></label><input type="number" id="review_months" data-k="review_months" value="18" step="any"> | |
| <label for="eu_revenue">EU revenue this device carries in a year <span class="u">EUR per year</span></label><input type="number" id="eu_revenue" data-k="eu_revenue" value="2400000" step="any"> | |
| <table><tr><th>Sunset date that binds this device</th><td class="v" data-o="sunset_date">—</td></tr><tr><th>Days left before that date</th><td class="v" data-o="days_left">—</td><td>days</td></tr><tr><th>Last safe day to hand over the dossier</th><td class="v" data-o="last_submission">—</td></tr><tr><th>Slack against that day, negative means already late</th><td class="v" data-o="slack_days">—</td><td>days</td></tr><tr><th>Days with no valid certificate</th><td class="v" data-o="days_off_market">—</td><td>days</td></tr><tr><th>EU revenue those days carry</th><td class="v" data-o="revenue_at_risk">—</td><td>EUR</td></tr><tr><th>Basis in law</th><td class="v" data-o="basis">—</td></tr></table> | |
| <div class="upsell" style="margin:14px 0 4px;padding:12px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;font:14px/1.5 system-ui,sans-serif"><p style="margin:0 0 8px">Answer above is free and unlimited. The full version exports your whole legacy-device portfolio as a CSV you keep and sets a browser alarm before each device’s last safe submission date.</p><a href="https://getreadystack.com/api/buy/cl/polar_cl_I4Tm3cswZqwNG4N3bUKWwdtIDUTqWwg7UOw8P2xcAlG" style="display:inline-block;padding:9px 16px;border-radius:6px;background:#0f172a;color:#fff;text-decoration:none;font-weight:600">Portfolio CSV export and submission alarms — $60</a><p style="margin:8px 0 0;color:#475569;font-size:13px">$60 once · one licence key per person or team seat · Today this question is answered by a regulatory affairs consultant, per device, at around EUR 150 per hour.</p></div> | |
| <div class="f"><b>Applicable sunset date</b><br>Maps your device to the Article 120 date that actually binds it: 2026-05-26, 2027-12-31, 2028-12-31 or 2029-12-31.</div><div class="f"><b>The suture and dental carve-out</b><br>Class IIb implantables that are sutures, staples, dental fillings, braces, crowns, screws, wedges, plates, wires, pins, clips or connectors drop to 2028-12-31, not 2027-12-31.</div><div class="f"><b>Last safe submission date</b><br>Back-calculates from the sunset date by your notified body review length, so you see the day the dossier has to be in their hands.</div><div class="f"><b>Days off the EU market</b><br>Turns a late dossier into days with no valid certificate and the EU revenue those days carry.</div><div class="f"><b>Portfolio CSV export</b><br>Paid layer: one row per legacy device so the whole portfolio review leaves the browser as a file you own.</div><div class="f"><b>Submission date alarm</b><br>Paid layer: a browser alarm before each device's last safe submission date, repeated until you clear it.</div> | |
| <script>function compute(v){ | |
| var DAY = 86400000; | |
| var TABLE = [ | |
| ['MDR class III custom-made implantable', '2026-05-26', 'MDR Art 120(3a), Reg (EU) 2023/607'], | |
| ['MDR class III not custom-made', '2027-12-31', 'MDR Art 120(3c), Reg (EU) 2023/607'], | |
| ['MDR class IIb implantable', '2027-12-31', 'MDR Art 120(3c), Reg (EU) 2023/607'], | |
| ['MDR class IIb implantable suture staple dental screw carve-out', '2028-12-31', 'MDR Art 120(3c) carve-out, Reg (EU) 2023/607'], | |
| ['MDR class IIb non-implantable', '2028-12-31', 'MDR Art 120(3c), Reg (EU) 2023/607'], | |
| ['MDR class IIa', '2028-12-31', 'MDR Art 120(3c), Reg (EU) 2023/607'], | |
| ['MDR class Is Im Ir sterile measuring reusable surgical', '2028-12-31', 'MDR Art 120(3c), Reg (EU) 2023/607'], | |
| ['MDR class I up-classified needing a notified body first time', '2028-12-31', 'MDR Art 120(3c), Reg (EU) 2023/607'], | |
| ['IVDR class D', '2027-12-31', 'IVDR Art 110(3), Reg (EU) 2023/607'], | |
| ['IVDR class C', '2028-12-31', 'IVDR Art 110(3), Reg (EU) 2023/607'], | |
| ['IVDR class B', '2029-12-31', 'IVDR Art 110(3), Reg (EU) 2023/607'], | |
| ['IVDR class A sterile', '2029-12-31', 'IVDR Art 110(3), Reg (EU) 2023/607'] | |
| ]; | |
| function pd(s){ | |
| var m = /^(\d{4})-(\d{1,2})-(\d{1,2})/.exec(String(s == null ? '' : s)); | |
| if (!m) { return null; } | |
| return Date.UTC(Number(m[1]), Number(m[2]) - 1, Number(m[3])); | |
| } | |
| function fmt(ms){ | |
| var d = new Date(ms); | |
| function p(n){ return (n < 10 ? '0' : '') + n; } | |
| return d.getUTCFullYear() + '-' + p(d.getUTCMonth() + 1) + '-' + p(d.getUTCDate()); | |
| } | |
| function addMonths(ms, n){ | |
| var d = new Date(ms); | |
| var day = d.getUTCDate(); | |
| var t = new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth() + n, 1)); | |
| var last = new Date(Date.UTC(t.getUTCFullYear(), t.getUTCMonth() + 1, 0)).getUTCDate(); | |
| return Date.UTC(t.getUTCFullYear(), t.getUTCMonth(), day < last ? day : last); | |
| } | |
| function num(x, d){ var n = Number(x); return (isFinite(n) && n >= 0) ? n : d; } | |
| var cls = String(v.device_class == null ? '' : v.device_class); | |
| var row = TABLE[2]; | |
| for (var i = 0; i < TABLE.length; i++) { if (TABLE[i][0] === cls) { row = TABLE[i]; break; } } | |
| var today = pd(v.today); if (today === null) { today = Date.UTC(2026, 8, 18); } | |
| var ready = pd(v.dossier_ready); if (ready === null) { ready = today; } | |
| var months = Math.round(num(v.review_months, 18)); | |
| if (months > 120) { months = 120; } | |
| var revenue = num(v.eu_revenue, 0); | |
| var kept = String(v.art120_conditions == null ? '' : v.art120_conditions).charAt(0) !== 'N'; | |
| var sunset = pd(row[1]); | |
| var basis = row[2]; | |
| if (!kept) { | |
| sunset = Date.UTC(2024, 4, 26); | |
| basis = 'No Art 120 extension: the old certificate lapsed on 2024-05-26'; | |
| } | |
| var lastSub = addMonths(sunset, -months); | |
| var finish = addMonths(ready, months); | |
| var off = finish > sunset ? Math.round((finish - sunset) / DAY) : 0; | |
| return { | |
| sunset_date: fmt(sunset), | |
| days_left: Math.round((sunset - today) / DAY), | |
| last_submission: fmt(lastSub), | |
| slack_days: Math.round((lastSub - ready) / DAY), | |
| days_off_market: off, | |
| revenue_at_risk: Math.round(revenue / 365 * off), | |
| basis: basis | |
| }; | |
| } | |
| </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/ncabpidceglopmcmehodpjaaaoacnbcc" rel="noopener" data-yj-install-door="edge" onclick="try{navigator.sendBeacon('/api/ev',new Blob([JSON.stringify({t:'install',slug:'mdr-legacy-sunset-clock',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 MDR Legacy Sunset Clock 2026 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:"mdr-legacy-sunset-clock",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);})();</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 complete version <span class="yj-price">$60</span></h2><p style="margin:.25rem 0 1rem;color:#41505f">This page is the working piece. The full pack has everything below.</p><p style="margin:0 0 1rem;color:#41505f">Which Regulation (EU) 2023/607 date your legacy device actually falls under, and how many days are left.</p><p style="margin:0 0 1rem;color:#5b6b7c;font-size:.94rem">Today this question is answered by a regulatory affairs consultant, per device. At a EUR 150 per hour EU RA consulting rate, one device's Article 120 date and submission-gap check is about half a day of billed time.</p><a href="https://getreadystack.com/api/buy/cl/polar_cl_I4Tm3cswZqwNG4N3bUKWwdtIDUTqWwg7UOw8P2xcAlG" 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></section> | |
| <!--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><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-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> | |
| <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-18">Updated 2026-09-18</time> · ReadyStack</p><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","dateModified":"2026-09-18","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/sku118891_result_card.jpg" alt="MDR Legacy Sunset Clock 2026" loading="lazy" style="max-width:100%;border-radius:6px"></p> | |
| <p>A class IIb implantable device still selling on its old MDD certificate has 469 days left on 2026-09-18, and the day its dossier had to reach the notified body was 2026-06-30, which is already 154 days gone. That is this extension's run from six inputs: device class, Article 120 conditions, today, a dossier date of 2026-12-01, an 18-month notified body review and EUR 2400000 of EU revenue on that device.</p> | |
| <p>If you are the regulatory affairs or quality manager who has to say which quarter each legacy product stops being sellable in the EU, that first paragraph is the whole job. The hard part is not the arithmetic. It is that the date most sources still give you is wrong.</p> | |
| <p>Ask a general chatbot when the EU medical device transition ends and it answers 2024-05-26. That was the original MDR deadline, and it is the answer sitting in most training data. Regulation (EU) 2023/607 replaced that single date with four, split by risk class, and deleted the sell-off provision, so there is no tail on the far side of the date.</p> | |
| <p>The four dates the extension holds: 2026-05-26 for class III custom-made implantables, which on 2026-09-18 is 115 days past. 2027-12-31 for class III, implantable class IIb and IVDR class D. 2028-12-31 for non-implantable class IIb, class IIa, class Is, Im and Ir, class I devices needing a notified body for the first time, and IVDR class C. 2029-12-31 for IVDR class B and class A sterile.</p> | |
| <p>Inside the 2027 group there is a carve-out. Implantable class IIb devices that are sutures, staples, dental fillings, braces, crowns, screws, wedges, plates, wires, pins, clips or connectors are not at 2027-12-31. They sit at 2028-12-31. That is a full extra year on one side of a list nobody memorises, so the extension carries it as its own device class in the dropdown.</p> | |
| <p>The sunset date is not the deadline you work to. That is the day the dossier has to be in the notified body's hands: the sunset date minus the conformity assessment length. 2027-12-31 minus an 18-month review is 2026-06-30. A dossier planned for 2026-12-01 is 154 days late. The device then spends 153 days without a valid certificate, and at EUR 2400000 of annual EU revenue those days carry EUR 1006027 of product that cannot be placed on the market.</p> | |
| <p>Change the inputs and the answer really moves. An IVDR class D assay with a 14-month review and a dossier ready 2027-01-15 has a last safe day of 2026-10-31, runs 76 days late, and loses 75 days off market, which at EUR 900000 of EU revenue is EUR 184932. A class IIa device with a 12-month review and a dossier ready 2026-10-01 has 456 days of slack and loses EUR 0, even though its revenue is the largest of the three at EUR 5000000.</p> | |
| <p>Article 120 only extends anything if the quality system application was lodged by 2024-05-26, the written notified body agreement was signed by 2024-09-26, and the device has not changed significantly. If any of those is missing there is no extension, and the tool prices the gap from 2024-05-26 instead.</p> | |
| <p>All of that is free, in the popup and on the free web page, with no key and nothing held back. The free layer finishes the job for one device. The paid layer sits on a different axis: it exports the whole legacy portfolio as a CSV you keep and sets a browser alarm before each device's last safe submission date, because the second time you need this it is a list, not a lookup.</p> | |
| <p>Nothing you type leaves the browser; the only outward call is licence key validation. The basis for every date above is Regulation (EU) 2023/607, amending MDR Article 120 and IVDR Article 110, and the tool prints which sub-article produced your answer.</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 the MDR Legacy Sunset Clock actually do?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">You pick your device's old-directive class and the extension returns the Regulation (EU) 2023/607 date that binds it: 2026-05-26, 2027-12-31, 2028-12-31 or 2029-12-31. It then subtracts your notified body review length to give the last day the dossier can be handed over, and the EU revenue any overrun costs.</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 this for?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">Regulatory affairs and quality managers at EU medical device and in vitro diagnostic manufacturers who still have products on the market under MDD, AIMDD or IVDD certificates. It is built for the person who has to say, in a management review, which quarter each legacy device stops being sellable in the EU.</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">General chatbots still reply that the MDR transition ended on 2024-05-26, because that was the original deadline. Regulation (EU) 2023/607 replaced one date with four, split by risk class, carved sutures and dental devices out of the 2027 group, and deleted the sell-off provision entirely. A wrong date here is a product off the market.</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">Every calculation is free and unlimited: the sunset date, the days left, the last safe submission day, the slack, and the revenue at risk, for any of the twelve device classes. The 60 dollar key adds two things on a different axis: a CSV of your whole portfolio that you keep, and browser alarms before each submission date.</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 does this cost if a person does it?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">This is normally answered by a regulatory affairs consultant, device by device. At a EUR 150 per hour EU consulting rate, roughly half a billed day goes into confirming the Article 120 class, the carve-out and the submission gap for a single device. A legacy portfolio is quoted per device, so the bill scales with your catalogue.</p></details><script type="application/ld+json" data-yj="yj-faq-ld">{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "What does the MDR Legacy Sunset Clock actually do?", "acceptedAnswer": {"@type": "Answer", "text": "You pick your device's old-directive class and the extension returns the Regulation (EU) 2023/607 date that binds it: 2026-05-26, 2027-12-31, 2028-12-31 or 2029-12-31. It then subtracts your notified body review length to give the last day the dossier can be handed over, and the EU revenue any overrun costs."}}, {"@type": "Question", "name": "Who is this for?", "acceptedAnswer": {"@type": "Answer", "text": "Regulatory affairs and quality managers at EU medical device and in vitro diagnostic manufacturers who still have products on the market under MDD, AIMDD or IVDD certificates. It is built for the person who has to say, in a management review, which quarter each legacy device stops being sellable in the EU."}}, {"@type": "Question", "name": "Why will a free chatbot not answer this?", "acceptedAnswer": {"@type": "Answer", "text": "General chatbots still reply that the MDR transition ended on 2024-05-26, because that was the original deadline. Regulation (EU) 2023/607 replaced one date with four, split by risk class, carved sutures and dental devices out of the 2027 group, and deleted the sell-off provision entirely. A wrong date here is a product off the market."}}, {"@type": "Question", "name": "What is free and what needs the key?", "acceptedAnswer": {"@type": "Answer", "text": "Every calculation is free and unlimited: the sunset date, the days left, the last safe submission day, the slack, and the revenue at risk, for any of the twelve device classes. The 60 dollar key adds two things on a different axis: a CSV of your whole portfolio that you keep, and browser alarms before each submission date."}}, {"@type": "Question", "name": "What does this cost if a person does it?", "acceptedAnswer": {"@type": "Answer", "text": "This is normally answered by a regulatory affairs consultant, device by device. At a EUR 150 per hour EU consulting rate, roughly half a billed day goes into confirming the Article 120 class, the carve-out and the submission gap for a single device. A legacy portfolio is quoted per device, so the bill scales with your catalogue."}}]}</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:118891,slug:"mdr-legacy-sunset-clock",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><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/german-e-invoice-clock-2027"><span class="yj-rel-t">German E-Invoice Clock 2027 - which Sec. 14 UStG date binds your German entity</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/ca-climate-disclosure-clock-2026"><span class="yj-rel-t">CA Climate Disclosure Clock 2026 — which SB 253 / SB 261 report your group owe</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/us-trademark-renewal-clock-2026"><span class="yj-rel-t">US Trademark Renewal Clock 2026 - Section 8/9 window, grace date and exact USP</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/b-notice-withholding-clock-2026"><span class="yj-rel-t">B-Notice Clock: CP2100 Backup Withholding Exposure (2026)</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/colorado-admt-clock-2027"><span class="yj-rel-t">Colorado ADMT Clock - SB 26-189 deadline calculator for automated decisions</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/dac7-deadline-penalty-clock"><span class="yj-rel-t">DAC7 Deadline & Penalty Clock 2026</span><span class="yj-rel-p">$60</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" defer></script> | |
| </body></html> |