Represent restricted-input provenance in TROs (UK FRS, IRS PUF) via external-DOI pinning
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- python
- Domain
- documentation, tooling
Research direction
Start with docs/trace-case-study.md, the related policyengine.py#316 workstream, and the cited transcript at /tmp/aea-review/transcript.txt. Document the UK FRS and IRS PUF requirements, then prototype the interim pe: extension. Done means the requirements memo and a working representation can trace restricted inputs without redistributing them.
Written by the indexing model from the issue text.
Description
Context
At the 2026-04-21 meeting with Lars Vilhuber, Tim Clark, and Casper of the TRACE project, the question of how to represent restricted-input provenance in a TRO surfaced explicitly (transcript lines 239-243 and 485-489). Lars's summary:
"Tim, correct me if I'm wrong, but I think we don't have it yet in the trace protocol that that's firmed up. We've talked about it. But that is where it becomes fuzzy again because now you're having to rely on external validation of these things and how to tie them together."
and later:
"in the UK example is a good example... You identify the inputs. You've pinned those inputs. Those are inputs. Again, for now based on checksums in the current trace way of doing it. We've talked about enhancements that point then to external UIs or things like that."
The specific TRACE feature they are discussing: pinning restricted inputs by external DOI + checksum rather than by redistributable content. For PolicyEngine:
- UK FRS: UKDS-licensed, cannot redistribute; would pin by UKDS study number + checksum once the TRACE vocabulary supports it.
- IRS-PUF: IRS-license-required; would pin by the IRS PUF identifier + checksum.
What we want to contribute
The PolicyEngine pipeline is the clearest use case for this TRACE feature — we regularly ingest restricted microdata, compute a calibrated derivative, and need the TRO that cites the derivative to trace back to the restricted input in a verifiable way without redistribution. Two things we can do:
-
Document our exact requirements. What fields would a restricted-input external reference need? UKDS study number + version + SHA-256 of a reference extract? IRS PUF vintage year + SHA-256 of a canonical file hash? Write a short memo describing our two real cases so TRACE's vocabulary designers have concrete input.
-
Prototype a
pe:extension that represents restricted-input provenance in the interim (before TRACE formalizes it), and offer ourpe:*fields to TROv as they generalize. This lets us emit meaningful TROs now and swap the namespace later.
Non-goals
- Not proposing to redistribute IRS PUF or UKDS data under any guise.
- Not proposing to wait on TRACE — the
pe:*interim extension lets us ship today.
Related
docs/trace-case-study.md(PR #315 — discusses this as an adjacent workstream)- Transcript lines 239-243, 485-489 on this laptop at
/tmp/aea-review/transcript.txt - PolicyEngine/policyengine.py#316 (broader vocabulary contribution workstream; this is a concrete sub-thread)
- Dominant language
- Python
- Stars
- 7
- Forks
- 9
- Avg merge
- 14h 20m
- Merged PRs (30d)
- 10
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PolicyEngine/policyengine.py
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PolicyEngine/policyengine.py#473 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PolicyEngine/policyengine.py#436 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PolicyEngine/policyengine.py#408 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
PolicyEngine/policyengine.py#523 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
PolicyEngine/policyengine.py#518 ·
All issues in PolicyEngine/policyengine.py
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Openarea: ci bug perceived difficulty: 3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ClickHouse/clickhouse-connect#1057 ·