Priority Claim Chain Validation

Priority claim chain validation is the process of proving, link by link, that every priority and benefit claim a patent application relies on is legally intact — filed inside its statutory window, correctly referenced, and unbroken back to the earliest application — so that the single date the entire portfolio computes against is defensible rather than assumed. A chain that looks continuous on a cover sheet but contains one gap silently corrupts every deadline derived from it.

The earliest priority date is the load-bearing input of a docketing engine: it anchors the 30/31-month national-phase window, the twenty-year term measured from the earliest non-provisional filing, and patent term adjustment. When that date is wrong, nothing downstream is right. This page specifies how to model a priority chain, resolve its earliest date deterministically, and detect the breaks that invalidate it, feeding trusted anchors to the parent Automated Deadline Calculation & Rule Engines framework. It sits alongside the PCT National Phase Entry Rules that consume the resolved date and the Continuation & CIP Deadline Tracking rules that extend the domestic-benefit branch of the same chain. The concrete failure modes and a family-walking algorithm are treated in the companion guide, Detecting Broken Priority Chains in PCT Filings.

A patent priority chain from the earliest application through a PCT filing to national-phase entries The chain runs left to right. Stage 1 is the priority application P0 — the earliest filing, such as a US provisional or a first foreign application. An arrow labelled "at most 12 months, Paris Article 4 and PCT Article 8" leads to stage 2, the single PCT international application that claims priority to P0; a note warns that a gap over 12 months requires restoration under PCT Rule 26bis.3. From the PCT filing, three arrows labelled "30 or 31 months, PCT Articles 22 and 39" fan out to the national-phase entries: a US entry under 35 U.S.C. 371, an EP entry under EPC Article 153, and a JP entry under PCT Article 22. A dashed line drops from the priority application to a band across the bottom stating that the earliest priority date anchors every downstream deadline — the 30 or 31-month entry, the 20-year term, and patent term adjustment — and that a break or gap in the chain silently shifts all of them. PRIORITY CHAIN NATIONAL PHASE ENTRIES 1 Priority application P0 — earliest filing provisional or first foreign app 2 PCT international app single filing claims priority to P0 3 US national phase 35 U.S.C. 371 EP national phase EPC Art. 153 JP national phase PCT Art. 22 ≤ 12 months Paris Art. 4 · PCT Art. 8 gap > 12 mo → restore (Rule 26bis.3) 30 / 31 months PCT Arts. 22 / 39 Earliest priority date anchors every downstream deadline — 30/31-month entry, 20-year term, PTA a break or gap in the chain silently shifts all of them

Why the Priority Chain Is the Load-Bearing Structure

Every high-value patent deadline is computed relative to a date the applicant claims, not a date the office assigns. The office records the claim; it does not, at docketing time, certify that the claim is valid. That gap is where malpractice lives. A docketing engine that trusts the priority date printed on a filing receipt inherits any defect in the underlying chain — a foreign application filed thirteen months before the PCT, a continuation that lost copendency, a provisional whose subject matter never actually supports the later claims. The engine will compute a perfectly precise, perfectly wrong 30-month date, and it will look correct until an examiner or an opponent unwinds it.

Validation is therefore a distinct responsibility from calculation. The calculation layer answers “given this base date, when is the deadline?” The validation layer answers the prior question: “is this base date one the applicant is legally entitled to?” Conflating the two hides the most dangerous class of error, because a confident wrong answer is worse than a flagged unknown. This page keeps the two separate: it resolves and verifies the earliest priority date, then hands only a validated anchor to the rule engine.

The chain also matters because it is mutable in ways a single filing date is not. Priority claims can be added or withdrawn within a correction window (PCT Rule 26bis), a parent application can be abandoned and break copendency, and a restoration decision can retroactively rescue a claim that was facially late. A validated chain must therefore be recomputed whenever any member of the application family changes state, not frozen at first docketing.

Operational Action: Treat the earliest priority date as a derived value with an audit trail, never a stored constant. Recompute and re-validate the whole chain on any family event — a new benefit claim, a parent abandonment, a restoration grant — and version each resolved anchor so a later shift is visible rather than silent.

The Governing Instruments

A priority chain spans three legal regimes, and each link must be checked against the instrument that actually governs it. Conflating a Paris Convention foreign-priority link with a domestic-benefit link is a common and consequential error, because they carry different time limits, different reference requirements, and different recovery paths.

Paris Convention priority. Paris Convention Article 4 grants a twelve-month priority period for patents, running from the filing date of the first regularly filed application. A later application in another member state claiming that priority is treated as filed on the earlier date for novelty purposes, provided it is filed within twelve months. PCT Article 8 carries this into the international system, and PCT Rule 4.10 governs the formal content of the priority claim.

US domestic benefit. A US non-provisional can claim the benefit of an earlier US filing under two distinct statutes. Foreign priority and provisional benefit run under 35 U.S.C. § 119 — subsection (a) for a foreign application, subsection (e) for a US provisional, each with a twelve-month window. Benefit of an earlier US non-provisional — the continuation, divisional, and continuation-in-part relationships — runs under 35 U.S.C. § 120, which imposes no twelve-month cap but requires copendency (the child filed before the parent is patented, abandoned, or terminated) and a specific reference to the parent under 37 CFR § 1.78.

Restoration. A facially late Paris claim — filed after twelve months but within two additional months — can be rescued by restoration of the right of priority under PCT Rule 26bis.3 at the receiving-office stage, given effect in the US under 37 CFR § 1.452, with the standard set at either “unintentional” or “due care” depending on the office.

Link type Governing instrument Time limit Extra requirement Recovery path
Foreign priority (Paris) Paris Art. 4; PCT Art. 8; 35 U.S.C. § 119(a) 12 months Priority claim under PCT Rule 4.10 Restoration, PCT Rule 26bis.3
Provisional benefit 35 U.S.C. § 119(e); 37 CFR § 1.78 12 months Specific reference; provisional support Restoration (US), 37 CFR § 1.78
Domestic benefit (cont./div./CIP) 35 U.S.C. § 120; 37 CFR § 1.78 none Copendency; specific reference Petition to revive parent
Restored priority PCT Rule 26bis.3; 37 CFR § 1.452 +2 months “Unintentional” or “due care” showing

Operational Action: Tag every link in the model with its governing statute and time limit as data, not as an implied property of the jurisdiction. A validator that hard-codes “12 months for everything” will wrongly reject a valid § 120 continuation and wrongly accept a late foreign claim that needed restoration.

Resolving the Earliest Priority Date

The earliest priority date is not simply the oldest date in the family — it is the oldest date reachable through an unbroken sequence of valid links. A withdrawn foreign priority, or a benefit claim broken by lost copendency, must be excluded from the walk even though the application it points to still exists in the record. Resolution is therefore a graph traversal that stops at the first invalid link on each branch.

Model the family as a directed graph: nodes are applications, edges are priority or benefit claims pointing from a child to its parent. The earliest valid priority date is the minimum filing date over all nodes reachable from the application under examination by valid edges only. This is the value everything downstream anchors to, so the resolver must be explicit about why a branch was pruned.

from __future__ import annotations

from datetime import date
from enum import Enum

from dateutil.relativedelta import relativedelta
from pydantic import BaseModel, Field, model_validator


class ClaimBasis(str, Enum):
    PARIS = "paris_convention"     # foreign priority, Paris Art. 4 / 35 USC 119(a)
    PROVISIONAL = "provisional"    # 35 USC 119(e)
    DOMESTIC = "domestic_benefit"  # 35 USC 120 (continuation / divisional / CIP)


class PriorityLink(BaseModel):
    """One edge in the priority graph: child claims priority/benefit of parent."""
    child_app: str = Field(pattern=r"^[A-Z]{2}[A-Za-z0-9/.-]+$")
    parent_app: str = Field(pattern=r"^[A-Z]{2}[A-Za-z0-9/.-]+$")
    basis: ClaimBasis
    child_filing_date: date
    parent_filing_date: date
    parent_terminated_date: date | None = None  # patent/abandon/terminate date
    restored: bool = False                       # PCT Rule 26bis.3 grant on record

    @model_validator(mode="after")
    def _parent_precedes_child(self) -> "PriorityLink":
        # A parent filed on or after its child is structurally impossible.
        if self.parent_filing_date >= self.child_filing_date:
            raise ValueError("parent_filing_date must precede child_filing_date")
        return self

    def window_ok(self) -> bool:
        """Is this link inside its statutory window?"""
        if self.basis is ClaimBasis.DOMESTIC:
            # 35 USC 120: no 12-month cap, but copendency is required.
            if self.parent_terminated_date is None:
                return True  # parent still pending — copendent
            return self.child_filing_date <= self.parent_terminated_date
        # Paris / provisional: 12 months, extended to 14 if priority was restored.
        months = 14 if self.restored else 12
        latest = self.parent_filing_date + relativedelta(months=months)
        return self.child_filing_date <= latest

The window_ok method encodes the crucial asymmetry: a domestic-benefit link has no month cap but demands copendency, while a Paris or provisional link is capped at twelve months (fourteen if a restoration decision is on record). The resolver then walks parents, following only links whose window holds:

def earliest_priority_date(target: str, links: list[PriorityLink]) -> date:
    """Minimum filing date reachable from `target` through valid links only."""
    by_child: dict[str, list[PriorityLink]] = {}
    filing: dict[str, date] = {}
    for link in links:
        by_child.setdefault(link.child_app, []).append(link)
        filing[link.child_app] = link.child_filing_date
        filing[link.parent_app] = link.parent_filing_date

    earliest = filing[target]
    stack = [target]
    seen: set[str] = set()
    while stack:
        node = stack.pop()
        if node in seen:            # guard against cyclic/duplicated claims
            continue
        seen.add(node)
        for link in by_child.get(node, []):
            if not link.window_ok():
                continue            # broken link — prune this branch
            earliest = min(earliest, link.parent_filing_date)
            stack.append(link.parent_app)
    return earliest

Operational Action: Persist the resolved earliest date together with the exact set of links traversed to reach it. When a later restoration grant or a parent abandonment changes which links are valid, a diff of the traversal set is the audit evidence that explains why the anchor moved.

Restoration of the Right of Priority

Restoration is the single most misunderstood link in the chain, and mishandling it produces both false rejections and false acceptances. When a Paris or provisional priority claim is filed after the twelve-month period but within a further two months, the right is not automatically lost — it can be restored under PCT Rule 26bis.3 if the failure to file in time occurred despite due care, or was unintentional, depending on the criterion the office applies. The US as receiving office applies the “unintentional” standard under 37 CFR § 1.452.

Two subtleties trip up naive validators. First, restoration is office-specific in effect: a restoration granted by the receiving office is given effect in a designated state only under PCT Rule 49ter, and a state that entered a reservation may not honour it. A chain that is valid for EP entry may be broken for a state that does not recognise the restoration. Second, restoration extends the filing window, not the priority period itself — the twelve-month measuring point for downstream deadlines is unchanged, so the 30/31-month national-phase date still runs from the original priority date, not from the restored filing.

The model above captures the first-order case with a restored flag that widens the window from twelve to fourteen months. A production system must additionally record which office granted the restoration and under which criterion, and must down-rank the link in any designated state that entered a Rule 49ter reservation.

Operational Action: Store restoration as a first-class attribute of the link — granting office, criterion applied, and grant date — not as a widened tolerance. Then evaluate each national-phase branch against that state’s Rule 49ter position, so a chain that is intact for one office and broken for another is reported as exactly that, per office.

Failure Modes & Edge Cases

  • Silent twelve-month overrun. A foreign application filed 12 months and 3 days before the PCT, with no restoration on record, is a broken Paris link. The chain must be pruned at that edge and the downstream anchor recomputed from the next valid parent — not accepted because the claim appears on the request form.
  • Lost copendency. A 35 U.S.C. § 120 benefit claim to a parent that was abandoned before the child was filed is invalid regardless of what the reference statement says. Copendency is a date comparison, and the parent’s termination date must be an input to the validator.
  • Missing specific reference. A benefit claim that is legally available but never actually recited in the specification or application data sheet under 37 CFR § 1.78 does not exist for docketing purposes. Absence of the reference is a broken link, not a warning.
  • Restoration honoured unevenly. A restored priority recognised for US entry but rejected by a designated state that entered a PCT Rule 49ter reservation yields two different valid chains for the same family. Reporting a single global “valid/invalid” hides the divergence.
  • CIP subject-matter drift. A continuation-in-part adds new matter, and only claims fully supported by the parent are entitled to the parent’s date. The chain structure can be intact while a specific claim is not entitled to the early date; claim-level entitlement is a separate check treated under Continuation & CIP Deadline Tracking.
  • Cyclic or duplicated claims. A malformed family record can reference an application as its own ancestor. The traversal must carry a seen set (as above) so a cycle terminates instead of looping forever.

Verification & Regression Testing

Treat the resolver as compliance code and pin its behaviour against recorded families, including deliberately broken ones. Because the output is a single date that drives everything else, a test suite must assert both the resolved value and the set of links that produced it.

from datetime import date


def test_valid_paris_link_resolves_to_parent() -> None:
    links = [
        PriorityLink(child_app="WO2023000001", parent_app="US63000001",
                     basis=ClaimBasis.PROVISIONAL,
                     child_filing_date=date(2023, 5, 1),
                     parent_filing_date=date(2022, 6, 1)),
    ]
    assert earliest_priority_date("WO2023000001", links) == date(2022, 6, 1)


def test_overrun_link_is_pruned() -> None:
    # Child filed 13 months after parent, no restoration -> link is broken,
    # so the earliest date falls back to the child's own filing date.
    links = [
        PriorityLink(child_app="WO2023000002", parent_app="EP22000001",
                     basis=ClaimBasis.PARIS,
                     child_filing_date=date(2023, 7, 1),
                     parent_filing_date=date(2022, 6, 1)),
    ]
    assert earliest_priority_date("WO2023000002", links) == date(2023, 7, 1)


def test_restoration_reopens_the_window() -> None:
    # Same 13-month gap, but restoration is on record -> link is valid.
    links = [
        PriorityLink(child_app="WO2023000003", parent_app="EP22000001",
                     basis=ClaimBasis.PARIS, restored=True,
                     child_filing_date=date(2023, 7, 1),
                     parent_filing_date=date(2022, 6, 1)),
    ]
    assert earliest_priority_date("WO2023000003", links) == date(2022, 6, 1)

A corpus of real family shapes — a clean single-priority PCT, a multi-priority filing, a broken continuation, a restored late claim — run in CI is the best defence against a change that accidentally makes a broken link look valid. Configuration for the validator is version-pinned to its governing sources:

# config/validation/priority_chain.yaml
# Priority-chain validator thresholds and citations.
# Paris Convention Art. 4: https://www.wipo.int/wipolex/en/text/288514
# PCT Rule 26bis.3 (restoration): https://www.wipo.int/pct/en/texts/rules/r26bis.html
# 35 U.S.C. 120 (copendency): https://www.uspto.gov/web/offices/pac/mpep/s211.html
priority_chain:
  paris_window_months: 12
  restoration_extension_months: 2      # PCT Rule 26bis.3 filing window
  restoration_criteria: ["unintentional", "due_care"]
  domestic_benefit_requires_copendency: true
  honour_rule_49ter_reservations: true # per-designated-state effect of restoration

Operational Action: Include at least one deliberately broken family per link type in the regression corpus and assert the pruned result, not just the happy path. The dangerous regression is the one that silently starts accepting a broken link, and only a broken-input test catches it.

Operational Action Summary

Operational Action: Resolve the earliest priority date as a derived value, store it with its traversal set, and re-validate on every family event so a shifted anchor is always visible in the audit trail.

Operational Action: Tag each link with its governing statute and window; never assume a single twelve-month rule covers domestic-benefit chains, which are capped only by copendency under 35 U.S.C. § 120.

Operational Action: Model restoration per office and per designated state under PCT Rule 49ter, and hand only validated, office-specific anchors to the PCT National Phase Entry Rules calculators.

Frequently Asked Questions

What is the difference between a priority claim and a domestic benefit claim?
A priority claim under Paris Convention Article 4 and 35 U.S.C. § 119 reaches back to a foreign application or a US provisional filed within the preceding twelve months. A domestic benefit claim under 35 U.S.C. § 120 reaches back to an earlier US non-provisional — a continuation, divisional, or continuation-in-part — and has no twelve-month cap, but it requires copendency and a specific reference. A validator must apply the correct rule per link type, because the time limits and requirements differ.
If a foreign priority application was filed 13 months before the PCT, is the chain always broken?
Not necessarily. A claim filed after the twelve-month period but within a further two months can be rescued by restoration of the right of priority under PCT Rule 26bis.3, on an "unintentional" or "due care" showing depending on the office. Without a restoration decision on record the link is broken and the anchor falls back to the next valid parent; with one, the original priority date is preserved for downstream deadline computation.
Does restoration of priority change the 30-month national phase deadline?
No. Restoration reopens the window to *file* the later application; it does not move the priority date the deadlines are measured from. The 30/31-month national-phase date under PCT Articles 22 and 39 still runs from the original earliest priority date. Restoration also has effect in a designated state only under PCT Rule 49ter, so a chain can be intact for one office and broken for another that entered a reservation.
Why resolve the earliest priority date instead of just reading it off the filing receipt?
The receipt records the claim the applicant made, not whether it is valid. A late Paris claim, a benefit claim broken by lost copendency, or a reference that was never actually recited can all appear on a receipt while being legally ineffective. Resolving the date by walking only valid links, and pruning broken ones, produces a defensible anchor rather than an assumed one, and it re-derives correctly when a family event changes which links hold.

↑ Back to Automated Deadline Calculation & Rule Engines