PolicyEngine / PolicyEngine/policyengine-scorecard

App design: public scoreboard + mission control, four views

Open
#9 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
0
Forks
0
Avg merge
6d 12h
Merged PRs (30d)
32

Description

Design direction (Max + this session, 8/2), building on the existing app/ and MissionControl:

One app, four routes, all public (publish-everything doctrine — mission control included):

  1. Home = four stat tiles: catalog size (external claims × sources), coverage (share computed — strands 1–2), held-out replication record in tolerance bands, random-audit replication rate (strand 3, fixed-seed sample attempted regardless of convenience, out_of_model and not_computed published). Coverage and audit-rate side by side = the anti-cherry-picking argument. Credo line once, on About.
  2. Browse: comparisons table. Per row: vintage chip (external year / calibrated / projected), calibration_relationship badge (consumed/seed visibly excluded from the record but shown), status taxonomy, banded ratio (≤1% / ≤5% / ≤10% / beyond — never binary), diagnosis link. Default sort options include |delta| desc ("misses first"). Row drawer: publication provenance + source_column, pe_construction recipe, annotations, and full pe_results history across certified bundles (the regression story as product).
  3. Adjudications: narrative exhibits from the diagnosis loop — OBBBA triangle (JCT/TF/PWBM/TPC/BL vs PE decomposed by convention/scope/baseline), CPSP CTC counterfactuals, external-issue write-ups (CPSP erratum, CBO workbook label bug). Action links both directions.
  4. Mission control: lanes, strand queues (free-tier / reform-families / random-audit), freshest divergences, per-release regression panel.

Replication queue doctrine (for the DB/queue layer): unit of cost = the sim run. Strand 1 = free tier exhaustively (baseline runs answer thousands of claims). Strand 2 = reform families ranked by claims-unlocked-per-constructed-reform (OBBBA first: five sources per run; then CPSP CTC counterfactuals, TPC CTC options, PWBM SS-tax repeal); baseline variants (TCJA-extension, current-policy, +Title-VII) built once and reused; complete families, never partial. Strand 3 = fixed-seed random audit (~200 claims), re-drawn per certified release (doubles as the regression gate). PE is static: dynamic-scoring rows auto-classify; only conventional rows comparable.

Data contract: scorecard.db stays source of truth; build step exports per-view JSON slices (don't ship the .db). Static, Vercel preview → Max's two parked decisions (surface name; public flip) gate launch.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing app/ and MissionControl, then inspect scorecard.db and the build step that exports view data. The work is done when the four public routes, replication queues, and regression views are represented by per-view JSON slices, the .db is not shipped, and the Vercel preview is gated by the two parked decisions.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, data, frontend, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.