Skip to content
This repository was archived by the owner on Jun 6, 2026. It is now read-only.

feat: add Luxembourg–Germany cross-border corridor — #40 PR 3/4#49

Merged
TommiLindfors merged 1 commit into
clarvia-org:mainfrom
HirenGajjar:feat/corridor-lu-de
May 31, 2026
Merged

feat: add Luxembourg–Germany cross-border corridor — #40 PR 3/4#49
TommiLindfors merged 1 commit into
clarvia-org:mainfrom
HirenGajjar:feat/corridor-lu-de

Conversation

@HirenGajjar
Copy link
Copy Markdown
Collaborator

Part 3 of 4 for issue #40. Adds the Germany corridor: 2 German sources, 1 German institution, and the LU–DE corridor scenario.


Context

Germany is the second largest frontalier corridor for Luxembourg — approximately 55,000 workers cross the border daily, primarily from Rhineland-Palatinate and Saarland. This PR encodes the DRV sources and institution a Luxembourg-connected family with German ties would interact with, and wires them into a corridor scenario referencing the cross-border conditions and EU regulations from PR 1.


Files added

data/sources/de/drv-hinterbliebenenrente.yaml

URL verified: https://www.deutsche-rentenversicherung.de/DRV/DE/Rente/In-der-Rente/Hinterbliebenenrente/hinterbliebenenrente_node.html — loads correctly, title confirmed as "Renten für Hinterbliebene".

  • source_type: institutional_page
  • verification_status: source-checked
  • institution_ids: [institution:de:drv] — references DRV institution created in this same PR

Key facts documented in notes (from issue #40 research):

  • Marriage or registered partnership must exist at time of death
  • 5-year qualifying period (allgemeine Wartezeit) required
  • Sterbevierteljahr: 3 months after death, survivor receives pension at the deceased's full rate with no income offset — a critical time-sensitive provision families need to know

data/sources/de/drv-rente-und-ausland.yaml

URL verified: https://www.deutsche-rentenversicherung.de/DRV/DE/Rente/Ausland/ausland_node.html — loads correctly, title confirmed as "Arbeit und Rente im Ausland".

  • source_type: institutional_page
  • verification_status: source-checked
  • institution_ids: [institution:de:drv]

Key facts documented in notes:

  • DRV provides dedicated international advisory days (Internationale Beratungstage) for cross-border workers including Luxembourg frontaliers
  • Coordinates survivor pension claims with foreign pension authorities via EU social security coordination

data/institutions/de/drv.yaml

URL verified: https://www.deutsche-rentenversicherung.de — loads correctly.

  • id: institution:de:drv
  • verification_status: structured-from-source
  • References both DE sources created in this PR

Key facts documented in notes:

  • DRV is a network of regional carriers plus DRV Bund (federal)
  • For Luxembourg frontaliers (~55,000), DRV Rheinland-Pfalz and DRV Saarland are typically the competent carriers
  • DRV organises international advisory days with Luxembourg CNAP representatives
  • Survivor pension requires 5-year qualifying period and marriage/partnership at time of death

data/scenarios/corridor-lu-de.yaml

  • scenario_type: corridor
  • countries: [LU, DE]
  • publication_status: draft
  • References all 5 conditions from PR 1: deceased-is-foreign-national, deceased-is-frontalier, survivor-resides-abroad, assets-in-multiple-jurisdictions, repatriation-of-remains
  • References both EU sources from PR 1 and both DE sources from this PR

Key corridor facts documented in notes:

  • DRV survivor pension requires marriage/partnership at death and 5-year qualifying period
  • Sterbevierteljahr grants 3 months at deceased's full pension rate with no income offset
  • DRV coordinates with CNAP via EU social security coordination
  • DRV provides international advisory days for frontaliers
  • Succession governed by Brussels IV habitual residence rule

Schema compliance

  • Read all schemas before writing — additionalProperties: false respected throughout
  • institution_ids on DE source records reference institution:de:drv created in this same PR — dependency within PR is valid since validator checks schema compliance, not referential integrity
  • Institution official_site confirmed loading
  • Scenario condition_ids reference conditions merged in PR 1 — dependency respected

What PR 4 will add

  • scenario:corridor-lu-be + 1 BE source + 1 BE institution
  • scenario:corridor-lu-pt + 1 PT source + 1 PT institution

Verified

  • python3 scripts/validate.py — passes (28 data files, up from 24)
  • All 4 trailing newlines confirmed 0a
  • 4 new files, 0 existing files modified
  • All source and institution URLs verified loading in browser before writing
  • git status confirmed no unintended changes

Copy link
Copy Markdown
Contributor

@TommiLindfors TommiLindfors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Hiren! 🎉

Another fantastic contribution - thank you for keeping up this incredible momentum on the cross-border corridors!

The Germany corridor is structured beautifully and follows the same clean pattern as the France PR. A few things I particularly appreciate:

  • Sterbevierteljahr detail in both the scenario notes and the Hinterbliebenenrente source - this 3-month transitional provision is exactly the kind of critical, non-obvious fact that families need to know about
  • DRV regional carrier context (Rheinland-Pfalz and Saarland as competent carriers for Luxembourg frontaliers) - very helpful for guiding people to the right office
  • Bilingual descriptions (EN + DE) on both source records, consistent with the pattern we established
  • institution_ids cross-references correctly linking sources back to the DRV institution record

Schema validation passes. Merging now with squash.

One PR left in the #40 series (Belgium + Portugal) - looking forward to it! 🚀

@TommiLindfors TommiLindfors merged commit 865fb47 into clarvia-org:main May 31, 2026
1 check passed
TommiLindfors pushed a commit that referenced this pull request May 31, 2026
Part 4 of 4 for issue #40. Completes the cross-border corridor
infrastructure with Belgium and Portugal.

---

## Context

This PR adds the two remaining corridors:
- **Belgium** — ~50,000 daily frontaliers, third largest corridor
- **Portugal** — ~100,000 residents, the largest foreign national
community in Luxembourg

---

## Files added

### `data/sources/be/belgium-be-deces.yaml`

**URL verified:** https://www.belgium.be/fr/famille/deces — loads
correctly, title confirmed as "Décès".

- `source_type: government_portal`
- `verification_status: source-checked`
- `languages: [fr, nl, de]` — belgium.be is trilingual
- Includes `title_fr`, `title_de`, `description_fr`, `description_de`

**Key facts documented in notes (from issue #40 research):**
- Death must be declared to the municipality where the person died,
usually handled by the undertaker
- Death certificate is then forwarded to the municipality of last
residence
- Succession duties in Belgium are regional and depend on fiscal
residence

---

### `data/institutions/be/sfp.yaml`

**URL verified:** https://www.sfpd.fgov.be — loads correctly as "Federal
Pensions Service".

- `id: institution:be:sfp`
- `verification_status: structured-from-source`
- `languages: [fr, nl, de]` — Belgian trilingual institution (SFP in
French, FPD in Dutch)
- References `source:be:belgium-be-deces`

**Key facts documented in notes:**
- Survivor pension applications submitted via mypension.be
- Coordinates with CNAP via EU social security coordination for
cross-border cases
- Covers ~50,000 Belgian frontaliers

---

### `data/scenarios/corridor-lu-be.yaml`

- `scenario_type: corridor`
- `countries: [LU, BE]`
- `publication_status: draft`
- References all 5 PR1 conditions and both EU sources + BE source

---

### `data/sources/pt/gov-pt-obito.yaml`

**URL:** https://eportugal.gov.pt/en/temas/familia/morte — identified
from official ePortugal portal structure; page was inaccessible during
creation.

- `source_type: government_portal`
- `verification_status: discovered` — honest status, URL could not be
confirmed loading
- `last_verified_at: null`
- Notes explicitly state full content verification requires further
access

**Key facts encoded from issue #40 research:**
- Death of a Portuguese citizen abroad must be declared in Portugal
- Survivor pension (pensão de sobrevivência) requires minimum 36 months
of contributions
- Application via Segurança Social Direta using form RP 5075

---

### `data/institutions/pt/seguranca-social.yaml`

**URL:** https://www.seg-social.pt — confirmed loading from research.

- `id: institution:pt:seguranca-social`
- `verification_status: discovered` — consistent with PT source status
- `languages: [pt]`

**Key facts documented in notes:**
- Portugal has the largest foreign national community in Luxembourg
(~100,000 residents)
- 36-month contribution requirement for survivor pension
- Death of Portuguese national abroad must be registered in Portugal via
consular services
- Centro Nacional de Pensões (CNP) within ISS handles international
pension coordination

---

### `data/scenarios/corridor-lu-pt.yaml`

- `scenario_type: corridor`
- `countries: [LU, PT]`
- `publication_status: draft`
- Notes explicitly flag that further source verification is needed for
full PT corridor detail

---

## Verification status honesty

Belgium sources are `source-checked` — URLs verified loading, content
confirmed.
Portugal sources are `discovered` — URL identified from official portal
structure but could not be verified loading during creation. This is
consistent with issue #40's own note: "Detailed survivor-pension routing
and death transcription process need further verification."

---

## Issue #40 complete

With this PR all four corridors are now in main:
- PR 1/4 (#47) — EU foundation (conditions + EU regulations) ✅
- PR 2/4 (#48) — France corridor ✅
- PR 3/4 (#49) — Germany corridor ✅
- PR 4/4 (this PR) — Belgium + Portugal corridors

Total new files across all 4 PRs: 25 files covering 2 EU regulations, 5
cross-border conditions, 4 corridor scenarios, 6 foreign sources, 5
foreign institutions.

---

## Schema compliance

- All schemas read before writing — `additionalProperties: false`
respected throughout
- All condition IDs reference conditions from PR 1 (merged)
- All EU source IDs reference sources from PR 1 (merged)
- `institution_ids` and `source_ids` cross-references consistent within
each PR

---

## Verified

- `python3 scripts/validate.py` — passes (34 data files, up from 28)
- All 6 trailing newlines confirmed `0a`
- 6 new files, 0 existing files modified
- `git status` confirmed no unintended changes
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants