File size: 49,567 Bytes
62b60b9 | 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 | <!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Flight Delay Claim Calculator (EU 261)</title><meta name="description" content="Arrival delay in — Article 7 band, party total and the filing deadline date out, for the traveller who keeps the whole payout."><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/flight-delay-claim-eu261"><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>EU 261/2004 delay payout and filing deadline</h1>
<p class="sub">Arrival delay in — Article 7 band, party total and the filing deadline date out, for the traveller who keeps the whole payout.</p>
<label for="distance_km">Great-circle distance, departure to final destination <span class="u">km</span></label><input type="number" id="distance_km" data-k="distance_km" value="3800" step="any">
<label for="arrival_delay_h">Arrival delay at the final destination <span class="u">hours</span></label><input type="number" id="arrival_delay_h" data-k="arrival_delay_h" value="3.5" step="any">
<label for="passengers">Passengers on the booking <span class="u">people</span></label><input type="number" id="passengers" data-k="passengers" value="2" step="any">
<label for="reroute_offered">You accepted re-routing offered by the airline</label><input type="checkbox" id="reroute_offered" data-k="reroute_offered">
<label for="intra_eu">Both airports inside the EU/EEA</label><input type="checkbox" id="intra_eu" data-k="intra_eu">
<label for="flight_date">Date of the disrupted flight</label><input type="date" id="flight_date" data-k="flight_date" value="2026-04-11">
<label for="claim_country">Country whose courts would hear the claim</label><select id="claim_country" data-k="claim_country"><option value="Poland - 1 year">Poland - 1 year</option><option value="Italy - 2 years">Italy - 2 years</option><option value="Netherlands - 2 years">Netherlands - 2 years</option><option value="Germany - 3 years (runs to 31 Dec)" selected>Germany - 3 years (runs to 31 Dec)</option><option value="Portugal - 3 years">Portugal - 3 years</option><option value="Spain - 5 years">Spain - 5 years</option><option value="France - 5 years">France - 5 years</option><option value="Ireland - 6 years">Ireland - 6 years</option><option value="United Kingdom - 6 years">United Kingdom - 6 years</option><option value="Luxembourg - 10 years">Luxembourg - 10 years</option></select>
<label for="agency_cut_pct">Commission a claim agency would keep <span class="u">%</span></label><input type="number" id="agency_cut_pct" data-k="agency_cut_pct" value="35" step="any">
<table><tr><th>Article 7 band</th><td class="v" data-o="band">—</td></tr><tr><th>Per passenger</th><td class="v" data-o="per_passenger_eur">—</td><td>€</td></tr><tr><th>Whole booking</th><td class="v" data-o="party_total_eur">—</td><td>€</td></tr><tr><th>Agency would keep</th><td class="v" data-o="agency_keeps_eur">—</td><td>€</td></tr><tr><th>You would keep after commission</th><td class="v" data-o="you_keep_eur">—</td><td>€</td></tr><tr><th>File by (national limitation date)</th><td class="v" data-o="file_by_date">—</td></tr><tr><th>Days left to file</th><td class="v" data-o="days_left">—</td><td>days</td></tr><tr><th>Why that amount</th><td class="v" data-o="status">—</td></tr></table>
<div style="margin:.9rem 0;padding:.8rem 1rem;border:1px solid #d8dbe0;border-radius:10px;background:#fbfcfd">
<a href="https://getreadystack.com/api/buy/cl/polar_cl_IheZDkyR5DATeFHQaqKtTATAmcxbsfPhPQIUc11DZ1E" style="font-weight:600">Keep the claim record: .csv export + deadline alarms (30 / 14 / 1 day) — $60 once</a>
<div style="margin-top:.35rem;font-size:.85rem;opacity:.85">Every figure above stays free, for any number of flights. $60 once · one licence key per person or team seat · AirHelp keeps 35% of whatever it recovers (50% once a case goes to court); Flightright quotes 20-30% plus VAT.</div>
</div>
<div class="f"><b>Article 7 band picker</b><br>Sorts the flight into the €250 / €400 / €600 band and applies the intra-EU rule that caps every intra-EU flight over 1,500 km at €400, whatever the distance.</div><div class="f"><b>Article 7(2) halving test</b><br>Halves the amount only when re-routing was accepted and the arrival delay stayed under 2 h, 3 h or 4 h for that band — the step hand calculations and chatbots apply to the wrong band.</div><div class="f"><b>National filing deadline, printed as a date</b><br>Regulation 261/2004 sets no time limit at all: the window is national law and runs from 1 to 10 years (source: europa.eu Your Europe air passenger rights, plus the country tables at flight-delayed.com and skyrefund.com; Germany counts 3 years to 31 December of the third year). You get a date, not a vague window.</div><div class="f"><b>Agency cut beside your net</b><br>Puts the no-win-no-fee commission next to what is left: AirHelp 35% of the recovery, 50% if it goes to court; Flightright 20-30% plus VAT. The percentage is an input so you can check the quote you were actually given.</div><div class="f"><b>Whole booking, not one seat</b><br>Compensation under Article 7 is per passenger, so the popup totals the party on the booking and the .csv export lists every figure the airline will ask you to justify.</div><div class="f"><b>The default case, already filled in</b><br>Opens on a real case so nothing is blank: 3,800 km, arrival 3 h 30 late, 2 passengers, no re-routing, flown 11 April 2026, claim in Germany, agency commission 35%. It answers €600 per passenger, €1,200 for the booking, €420 kept by the agency, €780 left for you, and file by 31 December 2029.</div>
<script>function compute(v){
var km = Number(v.distance_km) || 0;
var delay = Number(v.arrival_delay_h) || 0;
var pax = Math.round(Number(v.passengers) || 0); if (pax < 1) { pax = 1; }
var intra = (v.intra_eu === true || v.intra_eu === 'true' || v.intra_eu === 'on');
var rerouted = (v.reroute_offered === true || v.reroute_offered === 'true' || v.reroute_offered === 'on');
var cut = Number(v.agency_cut_pct); if (!(cut >= 0)) { cut = 0; } if (cut > 100) { cut = 100; }
var base, halveUnder, band;
if (km <= 1500) { base = 250; halveUnder = 2; band = 'A - up to 1,500 km (€250)'; }
else if (intra || km <= 3500) { base = 400; halveUnder = 3; band = intra ? 'B - intra-EU over 1,500 km (€400)' : 'B - 1,500 to 3,500 km (€400)'; }
else { base = 600; halveUnder = 4; band = 'C - over 3,500 km, one airport outside the EU (€600)'; }
var per, status;
if (delay < 3) { per = 0; status = 'Arrival delay under 3 hours, so Article 7 pays nothing.'; }
else if (rerouted && delay < halveUnder) { per = base / 2; status = 'Re-routing accepted and arrival delay under ' + halveUnder + ' hours, so Article 7(2) halves band ' + band.charAt(0) + '.'; }
else { per = base; status = 'Arrival delay of ' + delay + ' hours pays full band ' + band.charAt(0) + ' per passenger.'; }
var total = Math.round(per * pax * 100) / 100;
var keeps = Math.round(total * cut) / 100;
var net = Math.round((total - keeps) * 100) / 100;
var country = String(v.claim_country || '');
var years = 0; var m = country.match(/(\d+)\s*year/); if (m) { years = Number(m[1]); }
var toYearEnd = country.indexOf('31 Dec') >= 0;
var iso = String(v.flight_date || ''); var parts = iso.split('-'); var due = '';
if (parts.length === 3 && years > 0 && Number(parts[0]) > 1900) {
var y = Number(parts[0]); var mo = Number(parts[1]); var d = Number(parts[2]);
if (toYearEnd) { due = String(y + years) + '-12-31'; }
else {
var dt = new Date(Date.UTC(y + years, mo - 1, d));
var p2 = function (n) { return (n < 10 ? '0' : '') + n; };
due = dt.getUTCFullYear() + '-' + p2(dt.getUTCMonth() + 1) + '-' + p2(dt.getUTCDate());
}
}
var days = '-';
if (due) { days = Math.round((Date.parse(due + 'T00:00:00Z') - Date.now()) / 86400000); }
return {band: band, per_passenger_eur: per, party_total_eur: total, agency_keeps_eur: keeps,
you_keep_eur: net, file_by_date: due || 'enter the flight date', days_left: days,
status: status};
}</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/gakbcgfkpjndlaifglaebfleadnkfeig" rel="noopener" data-yj-install-door="edge" onclick="try{navigator.sendBeacon('/api/ev',new Blob([JSON.stringify({t:'install',slug:'flight-delay-claim-eu261',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 Flight Delay Claim Calculator (EU 261) 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:"flight-delay-claim-eu261",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">A .csv claim record for the airline complaint or court file, plus alarms 30, 14 and 1 day before the filing deadline.</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">AirHelp keeps 35% of whatever it recovers (50% once a case goes to court); Flightright quotes 20-30% plus VAT. On a two-passenger Band C delay that is €420 of €1,200.</p><a href="https://getreadystack.com/api/buy/cl/polar_cl_IheZDkyR5DATeFHQaqKtTATAmcxbsfPhPQIUc11DZ1E" 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>
<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>
<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><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-20">Updated 2026-09-20</time> · ReadyStack</p><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebPage","dateModified":"2026-09-20","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/sku146139_result_card.jpg" alt="Flight Delay Claim Calculator (EU 261)" loading="lazy" style="max-width:100%;border-radius:6px"></p>
<p>A German business traveller with two seats booked and a 3 h 30 arrival delay over 3,800 km is owed €1,200 under Regulation 261/2004 — and that claim dies on 31 December 2029.</p>
<p>Both halves of that sentence are the problem. The amount is fixed by distance, so it is easy to get wrong in the direction the airline prefers. The deadline is not in the Regulation at all.</p>
<h3>The amount is a table, not a negotiation</h3>
<p>Article 7 pays €250 up to 1,500 km, €400 from 1,500 to 3,500 km, €400 for any intra-EU flight over 1,500 km however far it goes, and €600 over 3,500 km when one airport sits outside the EU. Compensation is owed once the arrival delay at the final destination reaches three hours.</p>
<p>Article 7(2) is where hand calculations collapse. The airline may halve the amount, but only if you accepted re-routing and your arrival delay stayed under 2 h in Band A, 3 h in Band B or 4 h in Band C. Type a 6,500 km flight, 3 h 30 late, two passengers, re-routing accepted, and the tool returns €300 each and €600 for the booking — halved, correctly. Change nothing but the delay, push it past four hours, and the same booking is €1,200. A chatbot asked to check will cheerfully apply the 3 h threshold to a Band C flight.</p>
<h3>The deadline is national law, and it is not one number</h3>
<p>Regulation 261/2004 sets no limitation period. What you actually have is the general limitation rule of the country whose courts would hear the claim, and across the EU and the UK that runs from one year to ten. Poland gives one year. Italy and the Netherlands give two. Germany gives three, counted not from the flight but to 31 December of the third year. Portugal three, Spain and France five, Ireland and the United Kingdom six, Luxembourg ten.</p>
<p>This is the question free tools answer worst, because they answer it at all: ask how long you have to claim and you get one confident figure, usually the two or three years that appears most often in training text. Pick that on a Polish claim and you are eleven months late.</p>
<p>So the extension does not print a window. It prints a date. A flight on 30 August 2026 with the claim in Poland: file by 30 August 2027. The same flight, claim in Germany: 31 December 2029. Four passengers on a 2,200 km intra-EU flight 3 h 12 late on 19 December 2025, claim in Luxembourg: €400 each, €1,600 for the booking, file by 19 December 2035.</p>
<h3>What the commission costs</h3>
<p>The no-win-no-fee route is real, and expensive. AirHelp keeps 35% of whatever it recovers, and 50% once a case goes to court. Flightright quotes 20–30% plus VAT. On the two-passenger Band C booking above, 35% is €420; you receive €780. The commission is an input in the popup rather than a constant, so you can put the exact percentage you were quoted next to the number that would reach your own account.</p>
<h3>Free, and where the key sits</h3>
<p>Every figure — band, per-passenger amount, booking total, agency cut, net, deadline date, days left and the sentence explaining which rule produced the amount — is free, for any number of flights, with no watermark and no lock on the answer. The same tool.js runs in the popup and on the free web page.</p>
<p>The $60 key changes axis rather than volume. It adds keeping: a .csv claim record with every figure, ready to attach to the airline complaint or the small-claims filing. And it adds repeating: browser alarms 30 days, 14 days and one day before the filing date you were given. One key per person or team seat.</p>
<p>Nothing typed into the popup leaves the browser; the only outbound call is the licence check when you press export or set an alarm.</p></div><h2 style="font:600 19px/1.3 system-ui,sans-serif;margin:30px 0 10px;color:#1b1f24">15 seconds — what it actually does</h2><h3 style="font:600 16px/1.3 system-ui,sans-serif;margin:22px 0 8px;color:#1b1f24">Full walk-through</h3><video controls playsinline preload="none" poster="/img/promo/sku146139_result_card.jpg" style="width:100%;max-width:720px;border-radius:10px;display:block;margin:0 auto"><source src="/media/sku146139_long.mp4" type="video/mp4"></video><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 Flight Delay Claim Calculator actually work out?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">It turns one disrupted flight into four numbers: the Article 7 band (€250, €400 or €600), the amount per passenger after the Article 7(2) halving test, the total for everyone on the booking, and the last date on which that claim can still be filed under the national law you choose.</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">EU and UK business travellers, freelancers who fly to clients, and the office managers who book them — people holding a boarding pass and a three-hour delay who intend to claim themselves rather than sign 35% away to AirHelp, Flightright or Skycop.</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 do this?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">Ask any chatbot how long you have to claim and it gives one number. There is no single number: Regulation 261/2004 sets no limitation period, so the window is national law and runs from one year to ten. It also routinely halves the wrong band and forgets that intra-EU flights over 1,500 km stop at €400.</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, for unlimited flights, with no watermark and no lockout: band, per-passenger amount, booking total, agency commission and deadline date. The $60 key is for keeping and repeating — exporting the claim record as .csv and setting alarms 30, 14 and 1 day before the deadline.</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 paying someone else cost?</summary><p style="margin:8px 0 2px;font:400 14.5px/1.6 system-ui,sans-serif;color:#33404b">AirHelp keeps 35% of whatever it recovers and 50% once a case goes to court; Flightright quotes 20-30% plus VAT. On a two-passenger Band C delay worth €1,200 that commission is €420 — about fourteen times the price of this key, on one trip.</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 Flight Delay Claim Calculator actually work out?", "acceptedAnswer": {"@type": "Answer", "text": "It turns one disrupted flight into four numbers: the Article 7 band (€250, €400 or €600), the amount per passenger after the Article 7(2) halving test, the total for everyone on the booking, and the last date on which that claim can still be filed under the national law you choose."}}, {"@type": "Question", "name": "Who is it for?", "acceptedAnswer": {"@type": "Answer", "text": "EU and UK business travellers, freelancers who fly to clients, and the office managers who book them — people holding a boarding pass and a three-hour delay who intend to claim themselves rather than sign 35% away to AirHelp, Flightright or Skycop."}}, {"@type": "Question", "name": "Why will a free chatbot not do this?", "acceptedAnswer": {"@type": "Answer", "text": "Ask any chatbot how long you have to claim and it gives one number. There is no single number: Regulation 261/2004 sets no limitation period, so the window is national law and runs from one year to ten. It also routinely halves the wrong band and forgets that intra-EU flights over 1,500 km stop at €400."}}, {"@type": "Question", "name": "What is free and what needs the key?", "acceptedAnswer": {"@type": "Answer", "text": "Every calculation is free, for unlimited flights, with no watermark and no lockout: band, per-passenger amount, booking total, agency commission and deadline date. The $60 key is for keeping and repeating — exporting the claim record as .csv and setting alarms 30, 14 and 1 day before the deadline."}}, {"@type": "Question", "name": "What would paying someone else cost?", "acceptedAnswer": {"@type": "Answer", "text": "AirHelp keeps 35% of whatever it recovers and 50% once a case goes to court; Flightright quotes 20-30% plus VAT. On a two-passenger Band C delay worth €1,200 that commission is €420 — about fourteen times the price of this key, on one trip."}}]}</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:146139,slug:"flight-delay-claim-eu261",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/flight-delay-claim-eu261/" title="Flight Delay Claim Calculator (EU 261)" loading="lazy" data-rs-embed="en-flight-delay-claim-eu261" 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/flight-delay-claim-eu261">Flight Delay Claim Calculator (EU 261)</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/colorado-admt-clock-2027?ref=related"><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/eudr-deadline-fine-calculator-2026?ref=related"><span class="yj-rel-t">EUDR Deadline & 4% Fine Calculator (2026)</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/late-payment-interest-claim?ref=related"><span class="yj-rel-t">Late Payment Interest Claim - UK, EU and Germany, 2026 rates</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/green-claim-lint-empco?ref=related"><span class="yj-rel-t">Green Claim Lint - EU EmpCo 2026</span><span class="yj-rel-p">$29</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/tax-preparer-website-template?ref=related"><span class="yj-rel-t">Tax Preparer Website Template — 26 Ready-Written HTML Pages for a Tax Office, </span><span class="yj-rel-p">$49</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/ca-climate-disclosure-clock-2026?ref=related"><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></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> |