Patent Term Calculator
ANA›Life Services Authority›National 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
- Applies to US utility patents filed on or after June 8, 1995 (GATT/TRIPS implementation).
- 20-year base term runs from the earliest effective US filing date (35 U.S.C. § 154(a)(2)).
- Patent Term Adjustment (PTA) compensates for USPTO delays during prosecution (35 U.S.C. § 154(b)). The exact PTA is printed on the grant certificate.
- Patent Term Extension (PTE) compensates for regulatory review delays (e.g., FDA approval) under 35 U.S.C. § 156. Maximum PTE is 5 years (1,825 days), and the remaining term after extension cannot exceed 14 years from grant.
- References: 35 U.S.C. §§ 154, 156; 37 C.F.R. §§ 1.362, 1.701–1.705; USPTO Patent Term Calculator guidance.
More Calculators
- Mortgage Repayment Calculator
- Personal Data Exposure Risk Calculator
- Real Estate Commission Calculator
- Congressional Apportionment Calculator
- Cap Rate Calculator
- Property Tax Estimator
- Subcontractor Payment Schedule Calculator
- Independent Contractor vs Employee Tax Liability Calculator
- Contractor Bond Amount Estimator
- Worker Misclassification Risk Assessment Calculator
- Continuing Education Hours Tracker
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;...