UPC per-jurisdiction holidays — seed national + state-level holidays for every division country and link the UPC location page #150

Open
opened 2026-05-27 15:51:08 +00:00 by mAi · 0 comments
Collaborator

m's flag (2026-05-27 15:19)

https://www.unifiedpatentcourt.org/en/contact-us/location-information — Have we got this linked somewhere? We have each holiday in the respective jurisdiction there.

Live audit confirms the gap:

  • The URL is NOT linked in Linkhub, Gerichtsverzeichnis, or any user-facing surface. Only mentioned in docs/research-deadlines-completeness-2026-05-25.md and docs/improvement-audit.md.
  • paliad.holidays corpus is DE-only + UPC vacations — only 2 distinct (country, regime, state) shapes seeded:
    • 22 rows of country=DE, state=null, regime=null, holiday_type='public_holiday' (German national holidays)
    • 33 rows of country=null, state=null, regime='UPC', holiday_type='vacation' (Summer + Winter recess)
  • No French (Paris CD/LD), no Italian (Milan LD), no Dutch (The Hague LD), no Portuguese (Lisbon LD), no German state-level (Munich LD = Bayern; Düsseldorf LD = NRW; Hamburg LD = HH; Mannheim LD = BW).

Two-part scope

Add https://www.unifiedpatentcourt.org/en/contact-us/location-information to:

  • Linkhub (the public-facing curated links). Category: "UPC Referenz" or similar. DE label: "UPC – Gerichtsstandorte & Feiertage"; EN: "UPC – Court Locations & Holidays".
  • Gerichtsverzeichnis (if not redundant with Linkhub): per-court entries can cite this page in their "Mehr Infos" link.

10-minute task. Coder/fixer can land in one commit.

Part B — Seed per-jurisdiction holidays

For every UPC division country (and German state where the LD sits), seed national + relevant regional holidays in paliad.holidays for the working horizon (2026 + 2027, extendable).

B.1 Country list (UPC member states with a local/central division)

The official UPC list per the location page. Today's UPC member states with a division:

  • DE — Munich LD (Bayern), Düsseldorf LD (NRW), Hamburg LD (HH), Mannheim LD (BW)
  • FR — Paris CD + Paris LD
  • NL — The Hague LD
  • IT — Milan LD + Milan CD section
  • PT — Lisbon LD
  • SI — Ljubljana LD
  • FI — Helsinki LD
  • DK — Copenhagen LD
  • AT — Vienna LD
  • BE — Brussels LD (if applicable)
  • SE — Nordic-Baltic regional division (Stockholm)
  • LT, LV, EE — Nordic-Baltic
  • (Verify the live list against the UPC page at write time — membership changes)

B.2 What to seed per country

  • National public holidays (fixed dates: Jan 1, May 1, Christmas, …; movable: Easter-based; per country's official calendar)
  • The German LDs ALSO need their state's regional holidays (Bayern: Hl. Drei Könige, Allerheiligen, Mariä Himmelfahrt; NRW: Fronleichnam, Allerheiligen; Hamburg: Reformationstag; BW: Hl. Drei Könige, Fronleichnam, Allerheiligen)
  • Horizon: 2026 + 2027 minimum (rolls forward; 2028+ in a follow-up regen run)

B.3 Schema check

paliad.holidays columns: id, date, name, country, state, holiday_type, regime. Today already supports per-country + per-state holidays — just not seeded. Schema work needed only if the calculator doesn't already route per-court-country lookups correctly.

Verify:

  1. Does HolidayService.IsNonWorkingDay(date, country, regime) get called with the correct country per project? Trace from projects.proceeding_type_idproceeding_types.country (or court derivation) → calculator call site.
  2. Where does the calculator decide "this UPC INF case sits at Munich LD, therefore observe Bayern + DE + UPC holidays"? If that derivation doesn't exist yet, that's the gap — likely a small services-layer addition (read projects.court_idpaliad.courts.country + jurisdiction-specific state).
  3. The embedded snapshot at pkg/litigationplanner/embedded/upc/ also needs per-country shipping for youpc.org. Today the snapshot only ships DE + UPC; widen the generator (cmd/gen-upc-snapshot/main.go:211) to include all UPC member countries.

Acceptance

  • Linkhub entry added (DE + EN labels).
  • Gerichtsverzeichnis entries link to the UPC location URL where useful (decide which courts).
  • Live paliad.holidays seeded for FR, NL, IT, PT (Phase 1 — the biggest division countries) + German state-level holidays for Bayern, NRW, HH, BW.
  • (Phase 2, can be a follow-up) Remaining UPC member states.
  • Calculator routing audited: a German-LD project gets Bayern + DE + UPC holidays; a French project gets FR + UPC; etc.
  • Embedded snapshot generator extended to include all UPC member countries; holidays.json regenerated.
  • Worked example: deadline calc on Paris LD case crossing 2027-07-14 (Fête nationale) → date rolls.

Cross-references

  • docs/research-deadlines-completeness-2026-05-25.md — prior research notes
  • docs/improvement-audit.md — earlier audit
  • paliad.courts schema (id, code, country, regime, court_type, parent_id, sort_order) — already has the division taxonomy
  • internal/services/holidays.go — HolidayService implementation
  • pkg/litigationplanner/embedded/upc/holidays.go — embedded calendar (used by youpc.org)

Out of scope

  • UPC Court of Appeal Luxembourg holidays (those are LU national + UPC regime — minor seed if needed)
  • Non-UPC jurisdictions beyond DE (EPO Munich for EPO procedure, DPMA Munich) — those already work for the existing DE + UPC corpus; only state-level granularity might improve
  • Holiday data for 2028+ (start with 2026 + 2027; refresh annually)
  • Outlook/Calendar sync of these holidays (long-term goal)
## m's flag (2026-05-27 15:19) > https://www.unifiedpatentcourt.org/en/contact-us/location-information — Have we got this linked somewhere? We have each holiday in the respective jurisdiction there. Live audit confirms the gap: - The URL is **NOT linked** in Linkhub, Gerichtsverzeichnis, or any user-facing surface. Only mentioned in `docs/research-deadlines-completeness-2026-05-25.md` and `docs/improvement-audit.md`. - `paliad.holidays` corpus is **DE-only + UPC vacations** — only 2 distinct (country, regime, state) shapes seeded: - 22 rows of `country=DE, state=null, regime=null, holiday_type='public_holiday'` (German national holidays) - 33 rows of `country=null, state=null, regime='UPC', holiday_type='vacation'` (Summer + Winter recess) - No French (Paris CD/LD), no Italian (Milan LD), no Dutch (The Hague LD), no Portuguese (Lisbon LD), no German *state-level* (Munich LD = Bayern; Düsseldorf LD = NRW; Hamburg LD = HH; Mannheim LD = BW). ## Two-part scope ### Part A — Link the UPC location page Add `https://www.unifiedpatentcourt.org/en/contact-us/location-information` to: - **Linkhub** (the public-facing curated links). Category: "UPC Referenz" or similar. DE label: "UPC – Gerichtsstandorte & Feiertage"; EN: "UPC – Court Locations & Holidays". - **Gerichtsverzeichnis** (if not redundant with Linkhub): per-court entries can cite this page in their "Mehr Infos" link. 10-minute task. Coder/fixer can land in one commit. ### Part B — Seed per-jurisdiction holidays For every UPC division country (and German state where the LD sits), seed national + relevant regional holidays in `paliad.holidays` for the working horizon (2026 + 2027, extendable). #### B.1 Country list (UPC member states with a local/central division) The official UPC list per the location page. Today's UPC member states with a division: - **DE** — Munich LD (Bayern), Düsseldorf LD (NRW), Hamburg LD (HH), Mannheim LD (BW) - **FR** — Paris CD + Paris LD - **NL** — The Hague LD - **IT** — Milan LD + Milan CD section - **PT** — Lisbon LD - **SI** — Ljubljana LD - **FI** — Helsinki LD - **DK** — Copenhagen LD - **AT** — Vienna LD - **BE** — Brussels LD (if applicable) - **SE** — Nordic-Baltic regional division (Stockholm) - **LT, LV, EE** — Nordic-Baltic - (Verify the live list against the UPC page at write time — membership changes) #### B.2 What to seed per country - National public holidays (fixed dates: Jan 1, May 1, Christmas, …; movable: Easter-based; per country's official calendar) - The German LDs ALSO need their state's regional holidays (Bayern: Hl. Drei Könige, Allerheiligen, Mariä Himmelfahrt; NRW: Fronleichnam, Allerheiligen; Hamburg: Reformationstag; BW: Hl. Drei Könige, Fronleichnam, Allerheiligen) - Horizon: 2026 + 2027 minimum (rolls forward; 2028+ in a follow-up regen run) #### B.3 Schema check `paliad.holidays` columns: `id, date, name, country, state, holiday_type, regime`. Today already supports per-country + per-state holidays — just not seeded. **Schema work needed only if the calculator doesn't already route per-court-country lookups correctly.** Verify: 1. Does `HolidayService.IsNonWorkingDay(date, country, regime)` get called with the correct `country` per project? Trace from `projects.proceeding_type_id` → `proceeding_types.country` (or court derivation) → calculator call site. 2. Where does the calculator decide "this UPC INF case sits at Munich LD, therefore observe Bayern + DE + UPC holidays"? If that derivation doesn't exist yet, that's the gap — likely a small services-layer addition (read `projects.court_id` → `paliad.courts.country` + jurisdiction-specific state). 3. The embedded snapshot at `pkg/litigationplanner/embedded/upc/` also needs per-country shipping for youpc.org. Today the snapshot only ships DE + UPC; widen the generator (`cmd/gen-upc-snapshot/main.go:211`) to include all UPC member countries. ## Acceptance - [ ] Linkhub entry added (DE + EN labels). - [ ] Gerichtsverzeichnis entries link to the UPC location URL where useful (decide which courts). - [ ] Live `paliad.holidays` seeded for FR, NL, IT, PT (Phase 1 — the biggest division countries) + German state-level holidays for Bayern, NRW, HH, BW. - [ ] (Phase 2, can be a follow-up) Remaining UPC member states. - [ ] Calculator routing audited: a German-LD project gets Bayern + DE + UPC holidays; a French project gets FR + UPC; etc. - [ ] Embedded snapshot generator extended to include all UPC member countries; `holidays.json` regenerated. - [ ] Worked example: deadline calc on Paris LD case crossing 2027-07-14 (Fête nationale) → date rolls. ## Cross-references - `docs/research-deadlines-completeness-2026-05-25.md` — prior research notes - `docs/improvement-audit.md` — earlier audit - `paliad.courts` schema (id, code, country, regime, court_type, parent_id, sort_order) — already has the division taxonomy - `internal/services/holidays.go` — HolidayService implementation - `pkg/litigationplanner/embedded/upc/holidays.go` — embedded calendar (used by youpc.org) ## Out of scope - UPC Court of Appeal Luxembourg holidays (those are LU national + UPC regime — minor seed if needed) - Non-UPC jurisdictions beyond DE (EPO Munich for EPO procedure, DPMA Munich) — those already work for the existing DE + UPC corpus; only state-level granularity might improve - Holiday data for 2028+ (start with 2026 + 2027; refresh annually) - Outlook/Calendar sync of these holidays (long-term goal)
mAi self-assigned this 2026-05-27 15:51:08 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: m/paliad#150
No description provided.