Patent Term Calculator

ANALife Services AuthorityNational Calculator Authority›Patent Term Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Patent Term Calculator

Estimate the remaining enforceable term of a US utility patent, accounting for Patent Term Adjustment (PTA) and Patent Term Extension (PTE).

Application Filing Date

Patent Grant Date

Patent Term Adjustment (PTA) Days (from grant certificate)

Patent Term Extension (PTE) Days (FDA regulatory delay, if applicable)

Reference Date (defaults to today)

Calculate

(function() { // Set default reference date to today var today = new Date().toISOString().split('T')[0]; document.getElementById('pat-ref-date').value = today; })();

function patCalc() { var resultDiv = document.getElementById('pat-result'); resultDiv.style.display = 'block';

// --- Parse inputs --- var filingVal = document.getElementById('pat-filing-date').value; var grantVal = document.getElementById('pat-grant-date').value; var ptaDays = parseInt(document.getElementById('pat-pta-days').value) || 0; var pteDays = parseInt(document.getElementById('pat-pte-days').value) || 0; var refVal = document.getElementById('pat-ref-date').value;

// --- Validation --- var errors = []; if (!filingVal) errors.push("Application Filing Date is required."); if (!grantVal) errors.push("Patent Grant Date is required."); if (!refVal) errors.push("Reference Date is required.");

if (filingVal && grantVal && new Date(grantVal) 1825) errors.push("PTE days cannot exceed 1,825 (5 years) under 35 U.S.C. § 156.");

if (errors.length > 0) { resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// --- Core Calculation --- // US Utility Patent base term: 20 years from earliest effective filing date (35 U.S.C. § 154) var BASE_TERM_YEARS = 20;

var filingDate = new Date(filingVal); var grantDate = new Date(grantVal); var refDate = new Date(refVal);

// Step 1: Base expiry = filing date + 20 years var baseExpiry = new Date(filingDate); baseExpiry.setFullYear(baseExpiry.getFullYear() + BASE_TERM_YEARS);

// Step 2: Add PTA (35 U.S.C. § 154(b)) — extends base expiry var ptaExpiry = new Date(baseExpiry.getTime() + ptaDays * 86400000);

// Step 3: Add PTE (35 U.S.C. § 156) — further extends expiry, capped at 5 years // PTE is capped so remaining term after PTE does not exceed 14 years from grant var pteCap14 = new Date(grantDate); pteCap14.setFullYear(pteCap14.getFullYear() + 14);

var finalExpiry = new Date(ptaExpiry.getTime() + pteDays * 86400000); // Apply 14-year-from-grant cap on PTE portion only if (pteDays > 0 && finalExpiry > pteCap14) { finalExpiry = pteCap14; }

// Step 4: Remaining term from reference date var msPerDay = 86400000; var remainingMs = finalExpiry.getTime() - refDate.getTime(); var remainingDays = Math.round(remainingMs / msPerDay); var remainingYears = remainingDays / 365.25;

// Prosecution length var prosecutionDays = Math.round((grantDate.getTime() - filingDate.getTime()) / msPerDay);

// --- Format dates --- function fmtDate(d) { return d.toLocaleDateString('en-US', {year:'numeric', month:'long', day:'numeric'}); }

// --- Status --- var statusHtml = ''; if (refDate >= finalExpiry) { statusHtml = '' + '⚠️ Patent Expired — The patent expired on ' + fmtDate(finalExpiry) + '.'; } else { statusHtml = '' + '✅ Patent In Force — Approximately ' + remainingDays.toLocaleString() + ' days (' + remainingYears.toFixed(2) + ' years) remaining as of ' + fmtDate(refDate) + '.'; }

resultDiv.className = 'calc-result calc-success'; resultDiv.innerHTML = statusHtml + '' + 'Item' + 'Value' + 'Filing Date' + '' + fmtDate(filingDate) + '' + 'Grant Date' + '' + fmtDate(grantDate) + '' + 'Prosecution Length' + '' + prosecutionDays.toLocaleString() + ' days' + 'Base Expiry (Filing + 20 yrs)' + '' + fmtDate(baseExpiry) + '' + 'PTA Added' + '+' + ptaDays.toLocaleString() + ' days' + 'PTE Added' + '+' + pteDays.toLocaleString() + ' days' + 'Adjusted Expiry Date' + '' + fmtDate(finalExpiry) + '' + 'Remaining Term' + '' + (remainingDays > 0 ? remainingDays.toLocaleString() + ' days (' + remainingYears.toFixed(2) + ' yrs)' : 'Expired') + '' + ''; }

#### Formula

Base Expiry = Filing Date + 20 years  (35 U.S.C. § 154(a)(2))

PTA-Adjusted Expiry = Base Expiry + PTA Days  (35 U.S.C. § 154(b))

Final Expiry = PTA-Adjusted Expiry + PTE Days  (35 U.S.C. § 156), subject to cap

PTE Cap: Final Expiry ≤ Grant Date + 14 years  (35 U.S.C. § 156(c)(3))

Remaining Term = Final Expiry − Reference Date

#### Assumptions & References

More Calculators

Read Next

Continuing Education Hours Tracker ANA › Life Services Authority › National Calculator Authority › Continuing Education Hours Tracker .calc-container {...

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References