Add JOSS paper for submission#264
Conversation
Adds paper.md and paper.bib for submission to the Journal of Open Source Software (JOSS). Paper covers all 6 required JOSS sections and cites adoption by 10 Downing Street, HM Treasury, NIESR, INET Oxford, IEA, and House of Lords parliamentary debate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrites paper.md to describe the policyengine package as a unified multi-country (UK + US) microsimulation framework rather than the UK-only policyengine-uk package. Updates title, summary, statement of need, state of the field, software design, and acknowledgements to reflect the country-agnostic architecture. Adds TAXSIM and US data references to paper.bib. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds congressional citation (Young Adult Tax Credit Act, H.R.7547), NBER partnership (TAXSIM emulator MOU), Niskanen Center CTC report, NTA conference presentation, and Georgetown Beeck Center collaboration to the Research Impact section. Adds corresponding BibTeX entries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Convert all British spellings to American English (organised → organized, programme → program, labour → labor, behavioural → behavioral, modelling → modeling, licence → license, etc.) - Fix Beeck Center citation: was pointing to a 2022 event but labeled as 2024. Replace with correct Better Government Lab collaboration reference (pe_bgl) - Soften Youngman et al. claim: confirmed paper cites PolicyEngine UK data but removed unverifiable direct quote - Remove unused beeck2024rac bib entry Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change country order to "the US and the UK" - Remove "via the Simulation class" from Summary - Remove inline dataset names (Enhanced FRS, CPS) from Summary - Make Statement of Need more specific about access barriers for existing models (UKMOD requires institutional application, TAXSIM covers only taxes not benefits, HMT/IFS/CBO/TPC are fully proprietary) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update install instructions to match repo docs: pip install policyengine, policyengine[uk], policyengine[us], and uv pip install -e .[dev] for development - Remove backtick code styling from "Simulation class" in Statement of Need - Reorder State of the Field: US models first, then UK models Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Merge "Multi-country" and "Fully open-source" bullets into one - Add specific US program count (over 11) with full list: federal income tax, payroll taxes, state income taxes, SNAP, SSI, Social Security, Medicare, Medicaid, EITC, CTC, and TANF - Remove "Integration with the PolicyEngine web application" bullet Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Merge "Distributional analysis outputs" and "Labor supply dynamics" into single "Economic analysis" bullet - Change "policyengine package" to "policyengine.py package" - Delete "All code examples in the documentation are automatically re-executed" sentence - Remove "built 10ds-microsim on top of" reference, simplify to "used PolicyEngine" Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Academic research: - USC/HHS collaboration on effective marginal tax rates (Unrath) - DeBacker behavioral response modeling (Arnold Ventures) - Beeck Center rules-as-code reports (2023, 2025) Policy research: - DC District Child Tax Credit (first local CTC in US history) - Senator Booker Keep Your Pay Act calculator on Senate website - Reorder US citations before UK in both sections Acknowledgements: - Add US funders: Arnold Ventures, NEO Philanthropy ($200K grant), Gerald Huff Fund for Humanity, NSF POSE program - Keep Nuffield Foundation for UK Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Atlanta Fed Policy Rules Database MOU for multi-model validation in Institutional partnership section - Add NSF POSE Phase I award (2518372, $299,974) with nsf.gov URL - Update NBER TAXSIM MOU reference to use taxsim.nber.org instead of policyengine.org link - Update Arnold Ventures note to mention congressional district focus - Use external/official URLs for all references where available Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Consistently place US content before UK content in every section: Summary, Statement of Need, Software Design, Research Impact (Government adoption, Congressional/Parliamentary, Academic, Policy research), and Acknowledgements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…-installable to Python Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…example - Fix UKMOD: mark as pip-installable via euromod Python connector (consistent with euromod_download_2026 bib note) - Fix OpenFisca country coverage: "France, Tunisia, and other jurisdictions" (was understating the ecosystem) - Fix OpenFisca reform API: "Shared core, country-specific parameters" (openfisca-core provides shared Reform class) - Fix UKMOD country coverage: "UK and EU member states" - Fix code example: 2026 standard deduction is $16,100 under OBBBA, doubled = $32,200 (was $30,950, a stale value) - Fix code example output: $42,634 (was $42,484) - Fix HM Treasury ATRS framing: "registered... as an algorithmic tool their team evaluates" (ATRS is mandatory disclosure, not endorsement) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Redundancy review: repeated points in
|
- Use code formatting for policyengine-us and policyengine-uk - Replace em-dashes with commas in prose - Update date to 13 April 2026 - Regenerate paper-preview.html to match latest paper.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pandoc-generated paper.html is no longer needed; paper-preview.html is the single maintained preview. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Move Figure 1 directly after its reference sentence - Add "Figure 1:" prefix to figure caption - Add Table 1 caption - Remove code formatting from policyengine in table header - Merge 3 paragraphs into 2 in Software Design - Move macroeconomic limitation into first Software Design paragraph Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tions - Remove Dynamic class mention (not demonstrated in paper) - Reduce ~150 words of redundant certification/reproducibility detail across Summary, Statement of Need, State of the Field, Software Design - Fix tlaib bib entry: rename key to tlaib2023, correct date to April 6, 2023 - Fix NSF POSE URL to use .jsp format - Remove redundant table intro sentence before Table 1 - Shorten Figure 1 caption - Sync all changes to paper-preview.html Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolve conflicts in Makefile, README.md, and docs/dev.md by adopting main's MyST version variable and docs-serve target. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Updated the JOSS manuscript on This pass made three paper-only changes:
I also synced |
- Retitle to "A Microsimulation Tool for Tax-Benefit Policy Analysis" - Set Vahid Ahmadi as first (corresponding) author - Add explicit build-vs-contribute framing and design trade-offs for JOSS criteria - Correct API description: calculate_household_impact vs Simulation class - Fix comparison table: UKMOD coverage (UK only), OpenFisca coverage (multi-jurisdiction) - Rename table row to "Python-native implementation" - Normalize package names in backticks (policyengine-core) - Unify to US English; add TRACE TROV citation; bump date to 17 April 2026 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The March draft referenced pre-v4 APIs that no longer exist. Replace:
- ``calculate_household_impact(USHouseholdInput(...))`` → ``pe.us.calculate_household(...)``
- ``USHouseholdInput`` (removed) → keyword-arg call
- ``state_code_str`` → ``state_code``
- ``Policy`` + ``ParameterValue`` + ``Parameter`` chain → flat
``reform={"gov.irs...": value}`` dict (now accepted on both
``calculate_household`` and ``Simulation``)
- Paper version 3.4.4 → 4.2.1
- Date 17 April → 20 April 2026
Also update the Statement of Need paragraph to name the actual v4
entry points (``pe.us.calculate_household`` / ``pe.uk.calculate_household``)
and mention that reforms share the same dict shape at both the
household and simulation levels.
The script referenced analysis.programme_statistics (UK spelling), but the API exposes analysis.program_statistics (US). Crashed at the final print after producing the rest of the output. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@MaxGhenis — flagging for the readiness conversation. End-to-end test pass on
|
|
I ran a profiled duplicate of Summary of the run:
The memory behavior was the main concern:
This strongly supports the concern raised above that the US country package / examples are effectively too memory-heavy for normal local test runs. The UK package may be practical to exercise locally, but the US run is heavy enough that it can destabilize a developer workstation, at least on my machine. |
|
@vahid-ahmadi one follow-up from the instrumented US budgetary-impact run: the final The run completed the expensive baseline and reform simulations and produced the quick outputs:
The failure happened later inside "payroll_tax": {"entity": "person", "is_tax": True}The US model/output path appears to expose/materialize So my read is: if this lookup mismatch were fixed or skipped, the code probably would have continued past this point, albeit after a very resource-intensive run. But simply suppressing More generally, this is an inherently fragile pattern for the US package given the velocity of policy/model variable updates: hard-coded program-statistics variable names in |
Summary
paper.mdandpaper.bibfor submission to the Journal of Open Source Software (JOSS)What is JOSS?
JOSS is a peer-reviewed open-access journal for research software. It publishes short papers (750–1,750 words) describing open-source software with research impact. There are no submission fees. The review process happens on GitHub via openjournals/joss-reviews. See the submission guide and paper format for full details.
JOSS requirements checklist
Review suggestions status
From the self-review comment:
Additional fixes applied
Steps before submission
After submission
Test plan