diff --git a/app/.prettierrc.mjs b/app/.prettierrc.mjs index dbcc9701e..9a3ddde31 100644 --- a/app/.prettierrc.mjs +++ b/app/.prettierrc.mjs @@ -33,4 +33,4 @@ const config = { ], }; -export default config; \ No newline at end of file +export default config; diff --git a/app/CONTRIBUTING.md b/app/CONTRIBUTING.md index 583ea05c3..0ed562fb2 100644 --- a/app/CONTRIBUTING.md +++ b/app/CONTRIBUTING.md @@ -5,6 +5,7 @@ Welcome to our newest frontend project! We're excited to have you contribute. Th ## Project Overview This project is the next iteration of our application (app-v2), building upon the foundation of app-v1. We're creating a modern, component-based frontend that includes: + - Interactive calculator-related pages with dynamic functionality (Policy, Population, Simulation, etc) - Static informational pages (About Us, Learning, API Playground, etc.) - Improved user experience and performance @@ -18,6 +19,7 @@ Before you begin, please refer to the main README.md for development setup and h 🎨 **Figma Access**: [Design Files Link](https://www.figma.com/design/ZZLB3A5QNYy97d7dBEPpQ8/PE-App-Redesign---Final-Screens?m=auto&t=0MkV9on8ot5RR4Lv-6) **To get access:** + 1. Please visit the link and request access. 2. Alternatively, please sign up with your email and provide your Figma account email to maintenaners for access. You'll receive an invitation with instructions shortly. @@ -39,14 +41,14 @@ Before you begin, please refer to the main README.md for development setup and h - For existing contributors: Issues have been or will be assigned to you. - For new contributors, look for labels `good first issue` or `help wanted` in our issue tracker and assign yourself. -These Issues have links and screenshots for the reference app-v1 component that is to be migrated over to app-v2. + These Issues have links and screenshots for the reference app-v1 component that is to be migrated over to app-v2. ### Recommended Progression Path We recommend contributors follow this learning path: 1. **Start with Components** (Beginner) - - Create individual UI components. + - Create individual UI components. - Focus on reusability and proper TypeScript types. - [Optionally] Write Storybook stories and tests. @@ -57,6 +59,7 @@ We recommend contributors follow this learning path: ### Branch Naming Conventions Use the following format for branch names: + - `feat/[issue-number]-brief-description` (e.g., `feat/123-add-calculator-component`) - `fix/[issue-number]-brief-description` (e.g., `fix/456-fix-navigation-bug`) - `docs/brief-description` (e.g., `docs/update-contributing-guide`) @@ -64,6 +67,7 @@ Use the following format for branch names: ### Development Standards Our project uses automated code quality tools: + - **ESLint**: `npm run lint` (with eslint-config-mantine) - **Prettier**: `npm run prettier` and `npm run prettier:write` - **TypeScript**: `npm run typecheck` diff --git a/app/api/posts.json b/app/api/posts.json index 41076924c..4ae86800b 100644 --- a/app/api/posts.json +++ b/app/api/posts.json @@ -1,59 +1,47 @@ [ + { + "title": "Estimating the constituency distribution of a mansion tax", + "description": "Three central London constituencies account for a fifth of property sales above £2 million. We map the geographic distribution.", + "date": "2025-11-25 12:00:00", + "tags": ["uk", "policy", "tax", "autumn budget", "featured"], + "authors": ["daphne-hansell"], + "filename": "uk-mansion-tax-autumn-budget.md", + "image": "uk-mansion-tax/cover.png", + "hideHeaderImage": false + }, { "title": "Analysing alternative income tax and National Insurance reform options for the UK", "description": "PolicyEngine analysis of alternative tax reform options: raising basic and higher income tax rates, cutting NI, and extending the threshold freeze.", "date": "2025-11-20 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], + "tags": ["uk", "policy", "featured"], "filename": "uk-income-tax-ni-reforms-2025.md", "image": "uk-income-tax-ni-reforms-2025.jpg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "PolicyEngine London event 2025", "description": "PolicyEngine hosted an event in London that presented new updates and capabilities, real-world policy research applications, local area modelling, and how to use AI in policy research.", "date": "2025-11-10", - "tags": [ - "uk", - "event", - "featured" - ], + "tags": ["uk", "event", "featured"], "filename": "policyengine-2-event-report.md", "image": "policyengine-2-event-report.jpeg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "Marginal tax rates in California's proposed billionaire tax", "description": "The 5% tax creates marginal tax rates between 50% and 60% on wealth between $1 billion and $1.1 billion.", "date": "2025-10-25", - "tags": [ - "us" - ], + "tags": ["us"], "filename": "california-billionaire-tax-marginal-rates.md", "image": "california-billionaire-tax-marginal-rates.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Comparing PolicyEngine and official UK poverty rates", "description": "We compare PolicyEngine poverty estimates with official DWP statistics and explain the methodological factors behind the differences.", "date": "2025-10-10 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-poverty-analysis.md", "image": "uk-poverty-analysis.jpg" }, @@ -61,14 +49,8 @@ "title": "How removing the two-child benefit limit would affect the UK", "description": "Removing the two-child limit would cost £2.8 billion in 2026-27 and reduce child poverty by 15.7%.", "date": "2025-10-06 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-two-child-limit.md", "image": "uk-reeves.jpg" }, @@ -76,15 +58,8 @@ "title": "How we used Claude Code to choose our DC office", "description": "We used Claude Code to build an interactive comparison tool for choosing our DC office. The winner: Open Gov Hub. Join us Oct 22 to celebrate!", "date": "2025-10-05", - "tags": [ - "us", - "org", - "ai" - ], - "authors": [ - "max-ghenis", - "daphne-hansell" - ], + "tags": ["us", "org", "ai"], + "authors": ["max-ghenis", "daphne-hansell"], "filename": "dc-office-ai-coding.md", "image": "dc-office-ai-coding.png" }, @@ -92,16 +67,8 @@ "title": "Introducing ACA-Calc: Calculate your household's premium tax credits", "description": "New interactive calculator shows how Affordable Care Act subsidies affect households under current enhanced schedule and original schedule.", "date": "2025-09-30", - "tags": [ - "us", - "policy", - "featured", - "healthcare", - "interactives" - ], - "authors": [ - "daphne-hansell" - ], + "tags": ["us", "policy", "featured", "healthcare", "interactives"], + "authors": ["daphne-hansell"], "filename": "introducing-aca-calc.md", "image": "biden-arpa.png" }, @@ -109,14 +76,8 @@ "title": "How carbon tax and dividend policies affect UK households", "description": "PolicyEngine analysis of £100/200 per tonne carbon taxes with full dividend redistribution shows approximately 71% of UK residents would gain.", "date": "2025-09-30 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-carbon-tax-dividend.md", "image": "uk-carbon-tax.png" }, @@ -124,15 +85,8 @@ "title": "Enhanced Premium Tax Credits: Analyzing Household Impacts of an Extension Beyond 2025", "description": "PolicyEngine analyzes extending the enhanced premium tax credits enacted through the American Rescue Plan Act beyond their 2025 expiration.", "date": "2025-09-30", - "tags": [ - "us", - "policy", - "featured", - "healthcare" - ], - "authors": [ - "daphne-hansell" - ], + "tags": ["us", "policy", "featured", "healthcare"], + "authors": ["daphne-hansell"], "filename": "enhanced-premium-tax-credits-extension.md", "image": "enhanced-premium-tax-credits-extension.jpg" }, @@ -140,163 +94,88 @@ "title": "Event: PolicyEngine 2.0 and the Future of Public Policy Analysis", "description": "Join us on the afternoon of November 3rd in London for an exclusive showcase of PolicyEngine's latest innovations in evidence-based policy analysis, featuring live demos and networking.", "date": "2025-09-12", - "tags": [ - "uk", - "org", - "featured", - "event" - ], + "tags": ["uk", "org", "featured", "event"], "filename": "sep-2025-london-event.md", "image": "sep-2025-london-event.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "PolicyEngine and NBER sign memorandum of understanding for TAXSIM emulator development", "description": "Partnership ensures continuity of tax microsimulation capabilities for the research community through open-source development.", "date": "2025-09-05", - "tags": [ - "us", - "org", - "featured" - ], + "tags": ["us", "org", "featured"], "filename": "policyengine-nber-mou-taxsim.md", "image": "policyengine-nber-mou-taxsim.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "National Science Foundation awards PolicyEngine $300,000 grant", "description": "NSF's Pathways to Enable Open-Source Ecosystems program will support PolicyEngine's work to expand access to policy analysis tools.", "date": "2025-08-18", - "tags": [ - "us", - "uk", - "org", - "featured" - ], + "tags": ["us", "uk", "org", "featured"], "filename": "nsf-pose-phase-1-grant.md", "image": "nsf-official-logo.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of the American Worker Rebate Act of 2025", "description": "The bill would cost $141 billion and benefit 80% of American residents.", "date": "2025-08-13", - "tags": [ - "us", - "tariffs", - "featured" - ], + "tags": ["us", "tariffs", "featured"], "filename": "american-worker-rebate-act.md", "image": "american-worker-rebate-act.jpg", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Enhanced CPS full launch: Comprehensive microdata for policy analysis", "description": "The Enhanced Current Population Survey now includes tip, overtime, and auto loan interest imputations, plus upcoming state and congressional district calibration.", "date": "2025-08-11", - "tags": [ - "us", - "data", - "featured" - ], + "tags": ["us", "data", "featured"], "filename": "enhanced-cps-launch.md", "image": "enhanced-cps-launch.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff", - "ben-ogorek", - "maria-juaristi" - ] + "authors": ["max-ghenis", "nikhil-woodruff", "ben-ogorek", "maria-juaristi"] }, { "title": "Analysis of individual income tax provisions in the final reconciliation bill", "description": "Our simulation projects a reduction in federal revenues of $3.8 trillion from 2026 to 2035 compared to current law.", "date": "2025-07-04", - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "tags": ["us", "policy", "featured", "reconciliation"], "filename": "final-2025-reconciliation-tax.md", "image": "final-2025-reconciliation-tax.png", - "authors": [ - "david-trimmer", - "pavel-makarchuk" - ] + "authors": ["david-trimmer", "pavel-makarchuk"] }, { "title": "Introducing the OBBBA Household Explorer", "description": "New interactive tool reveals household-level impacts of the One Big Beautiful Bill Act.", "date": "2025-07-03", - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "tags": ["us", "policy", "featured", "reconciliation"], "filename": "introducing-obbba-household-explorer.md", "image": "introducing-obbba-household-explorer.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk", - "elena-cura" - ] + "authors": ["max-ghenis", "pavel-makarchuk", "elena-cura"] }, { "title": "The 2025 American Family Act", "description": "The Child Tax Credit expansion would cost the federal government $2.5 trillion over ten years and lower child poverty by 25%.", "date": "2025-06-16", - "tags": [ - "us", - "policy", - "featured", - "child-tax-credit" - ], + "tags": ["us", "policy", "featured", "child-tax-credit"], "filename": "american-family-act-2025.md", "image": "american-family-act-2025.webp", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Childcare programmes in PolicyEngine UK", "description": "This report explains how PolicyEngine models childcare programmes in the UK.", "date": "2025-06-06", - "tags": [ - "uk", - "benefit", - "featured" - ], + "tags": ["uk", "benefit", "featured"], "filename": "uk-childcare-report.md", "image": "uk_childcare_report.jpg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "Manager's Amendment to H.R.1 - The One Big Beautiful Bill Act", "date": "2025-05-24", - "authors": [ - "pavel-makarchuk", - "david-trimmer", - "max-ghenis" - ], - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "authors": ["pavel-makarchuk", "david-trimmer", "max-ghenis"], + "tags": ["us", "policy", "featured", "reconciliation"], "description": "We project that individual provisions in the manager's amendment will cost $22 billion over the budget window.", "filename": "managers-amendment-to-hr1.md", "image": "managers-amendment-to-hr1.png" @@ -305,282 +184,169 @@ "title": "Montana Reduces Top Income Tax Rate and Expands EITC", "description": "Montana's latest individual income tax changes will lower state revenues by $245 million and raise net income for an estimated 77% of residents in 2027.", "date": "2025-05-22", - "tags": [ - "us", - "featured", - "us-mt" - ], + "tags": ["us", "featured", "us-mt"], "filename": "montana-tax-cuts-2026.md", "image": "montana-tax-cuts-2026.jpg", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "The SALT Caucus's Proposed Cap", "description": "We project that replacing the SALT cap approved by the Ways and Means Committee with the SALT Caucus proposal would cost $497 billion over the budget window.", "date": "2025-05-15", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "salt-caucus-62k-cap.md", "image": "salt-caucus-62k-cap.png", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Ways and Means Committee's SALT Cap", "description": "We project that limiting state and local tax deductions to $30,000, phasing down to $10,000 at high incomes, would raise $937 billion over the budget window.", "date": "2025-05-14", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "ways-and-means-salt-cap.md", "image": "ways-and-means-salt-cap.webp", - "authors": [ - "pavel-makarchuk", - "david-trimmer", - "max-ghenis" - ] + "authors": ["pavel-makarchuk", "david-trimmer", "max-ghenis"] }, { "title": "Tax changes in effect in April 2025", "description": "Using PolicyEngine UK, we analyse four tax changes taking effect in April 2025 that will increase taxes by an average of £1,133 per household.", "date": "2025-04-25", - "tags": [ - "uk", - "tax", - "policy", - "featured" - ], + "tags": ["uk", "tax", "policy", "featured"], "filename": "impact-of-tax-changes-2025-2026.md", "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Analyzing Energy Policy with PolicyEngine", "description": "We provide an Earth Day recap of our capabilities in the US and UK.", "date": "2025-04-22", - "tags": [ - "us", - "uk", - "featured" - ], + "tags": ["us", "uk", "featured"], "filename": "earth-day-2025.md", "image": "earth-day-2025.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "What's the SALTernative?", "description": "Introducing PolicyEngine’s free SALT‑AMT calculator — an open‑source web app to model next year’s SALT‑cap sunset, tweak AMT parameters, and see the budget, distributional, and household impacts in seconds.", "date": "2025-04-21", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "introducing-salternative.md", "image": "introducing-salternative.png", - "authors": [ - "pavel-makarchuk", - "max-ghenis" - ] + "authors": ["pavel-makarchuk", "max-ghenis"] }, { "title": "MyFriendBen Launches in North Carolina, Using PolicyEngine API", "description": "Our rules engine powers the open-source multi-benefit screener and its expansion beyond Colorado.", "date": "2025-04-05", - "tags": [ - "us", - "us-nc", - "featured", - "api", - "benefit-access" - ], + "tags": ["us", "us-nc", "featured", "api", "benefit-access"], "filename": "myfriendben-nc.md", "image": "myfriendben-nc.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "New Ways to Give to PolicyEngine", "description": "Exploring state tax credits for charitable giving.", "date": "2025-04-01", - "tags": [ - "us", - "april-fools", - "featured" - ], + "tags": ["us", "april-fools", "featured"], "filename": "april-1st-2025.md", "image": "april-1st-2025.png", - "authors": [ - "daphne-hansell" - ] + "authors": ["daphne-hansell"] }, { "title": "Analysis of the Spring 2025 OBR forecast", "description": "PolicyEngine integrates the new OBR forecasts to provide updated predictions on household income, poverty, and inequality.", "date": "2025-03-26", - "tags": [ - "uk", - "impact", - "featured" - ], + "tags": ["uk", "impact", "featured"], "filename": "obr-forecast-2025.ipynb", "image": "obr-forecast-2025.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "HM Treasury pilots PolicyEngine UK for tax-benefit microsimulation", "description": "The UK government's finance ministry explores PolicyEngine as a potential supplement to existing models.", "date": "2025-03-24", - "tags": [ - "uk", - "impact", - "featured" - ], + "tags": ["uk", "impact", "featured"], "filename": "hmt-policyengine-pilot.md", "image": "analysis-of-the-spring-budget-2023.jpeg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Extending the Income Tax threshold freeze to 2030", "description": "PolicyEngine estimates extending the personal allowance and higher rate threshold freeze would raise £12.2 billion over two years.", "date": "2025-03-25", - "tags": [ - "uk", - "policy", - "featured" - ], + "tags": ["uk", "policy", "featured"], "filename": "income-tax-freeze.md", "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "PolicyEngine's 2022 year in review", "description": "A year of launches, analysis, and building for the future.", "date": "2022-12-30", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "policyengine-2022-year-in-review.md", "image": "policyengine-2022-year-in-review.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "How machine learning tools make PolicyEngine more accurate", "description": "Today, we're launching new survey weights that cut deviations from administrative statistics by 97%.", "date": "2022-03-07", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "how-machine-learning-tools-make-policyengine-more-accurate.md", "image": "how-machine-learning-tools-make-policyengine-more-accurate.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Enhancing the Current Population Survey for policy analysis", "description": "We've used modern data science techniques to make PolicyEngine the UK's most accurate microsimulation model. In 2023, we'll do the same in the US.", "date": "2022-12-28", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "enhancing-the-current-population-survey-for-policy-analysis.md", "image": "enhancing-the-current-population-survey-for-policy-analysis.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "How charitable contributions affect Americans' taxes", "description": "PolicyEngine estimates the tax impact of your donations for free.", "date": "2022-11-29", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "charitable-contributions.md", "image": "charitable-contributions.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Maryland's standard deduction", "description": "PolicyEngine computes the program's impact on Maryland and individual households.", "date": "2022-11-22", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "maryland-standard-deduction.md", "image": "maryland-standard-deduction.png", - "authors": [ - "kevin-foster" - ] + "authors": ["kevin-foster"] }, { "title": "From OpenFisca to PolicyEngine", "description": "OpenFisca has catapulted our progress, and now we've forked it into our own microsimulation framework.", "date": "2022-11-10", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "from-openfisca-to-policyengine.md", "image": "from-openfisca-to-policyengine.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Oregon's Nonrefundable Exemption Credit", "description": "PolicyEngine computes the program's impact on Oregon and individual households.", "date": "2022-11-04", - "tags": [ - "us", - "us-or", - "policy" - ], + "tags": ["us", "us-or", "policy"], "filename": "oregons-nonrefundable-exemption-credit.md", "image": "oregons-nonrefundable-exemption-credit.jpeg", - "authors": [ - "kevin-foster" - ] + "authors": ["kevin-foster"] }, { "title": "Stamp duties in PolicyEngine UK", "date": "2022-09-22", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "The Times reported yesterday that Prime Minister Liz Truss will announce plans to cut Stamp Duty this week. PolicyEngine now supports…", "filename": "stamp-duties-in-policyengine-uk.md", "image": "stamp-duties-in-policyengine-uk.jpg" @@ -588,13 +354,8 @@ { "title": "Prime Minister Liz Truss’s energy bill price cap", "date": "2022-09-16", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the impact in PolicyEngine.", "filename": "prime-minister-liz-trusss-energy-bill-price-cap.md", "image": "prime-minister-liz-trusss-energy-bill-price-cap.jpg" @@ -602,13 +363,8 @@ { "title": "Raising the marriage allowance from 10% to 100%", "date": "2022-08-29", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "See the reform in PolicyEngine.", "filename": "raising-the-marriage-allowance-from-10-to-100.md", "image": "raising-the-marriage-allowance-from-10-to-100.jpg" @@ -616,14 +372,8 @@ { "title": "PolicyEngine launches in Washington state", "date": "2022-08-10", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical", - "us-wa" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical", "us-wa"], "description": "Washingtonians can now compute the impacts of the Working Families Tax Credit and federal reforms.", "filename": "policyengine-launches-in-washington-state.md", "image": "policyengine-launches-in-washington-state.jpg" @@ -631,13 +381,8 @@ { "title": "Electric vehicle tax credits under current law and the Inflation Reduction Act", "date": "2022-08-05", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "Use PolicyEngine US to analyze provisions of the potential reconciliation bill.", "filename": "electric-vehicle-tax-credits-under-current-law-and-the-inflation-reduction-act.md", "image": "electric-vehicle-tax-credits-under-current-law-and-the-inflation-reduction-act.jpg" @@ -645,13 +390,8 @@ { "title": "Rishi Sunak’s proposal to cut the basic rate to 16 percent", "date": "2022-08-01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the interactive simulation on PolicyEngine", "filename": "rishi-sunaks-proposal-to-cut-the-basic-rate-to-16-percent.md", "image": "rishi-sunaks-proposal-to-cut-the-basic-rate-to-16-percent.jpg" @@ -659,13 +399,8 @@ { "title": "The new PolicyEngine US Population Impact page", "date": "2022-07-01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "You design the policy. We compute the poverty, inequality, and budgetary impacts.", "filename": "the-new-policyengine-us-population-impact-page.md", "image": "the-new-policyengine-us-population-impact-page.jpg" @@ -673,13 +408,8 @@ { "title": "PolicyEngine at the BIG Conference and the Beeck Center’s Rules as Code Demo Day", "date": "2022-06-09", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "Register for the BIG Conference June 23–25 and the Rules as Code Demo Day June 28", "filename": "policyengine-at-the-basic-income-guarantee-conference-and-the-beeck-centers-rules-as-code-demo-day.md", "image": "policyengine-at-the-basic-income-guarantee-conference-and-the-beeck-centers-rules-as-code-demo-day.jpg" @@ -687,13 +417,8 @@ { "title": "Impact of the Chancellor’s Cost of Living Support package", "date": "2022-05-26", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the analysis in PolicyEngine UK", "filename": "impact-of-the-chancellors-cost-of-living-support-package.md", "image": "impact-of-the-chancellors-cost-of-living-support-package.jpg" @@ -701,13 +426,8 @@ { "title": "How developers can explore the PolicyEngine API", "date": "2022-04-29", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "global", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["global", "technical"], "description": "The UK API explorer and US API explorer describe variables and policy parameters in our models.", "filename": "how-developers-can-explore-the-policyengine-api.md", "image": "how-developers-can-explore-the-policyengine-api.jpg" @@ -715,13 +435,8 @@ { "title": "Make Everyone a Policymaker", "date": "2021-10-15", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "global", - "impact" - ], + "authors": ["nikhil-woodruff"], + "tags": ["global", "impact"], "description": "Today we're (re)launching PolicyEngine to give the public unprecedented insight into the tax and benefit system.", "filename": "make-everyone-a-policymaker.md", "image": "make-everyone-a-policymaker.webp" @@ -729,13 +444,8 @@ { "title": "Analysing Autumn Budget Universal Credit reforms with PolicyEngine", "date": "2021-10-30", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "See how the reform affects the UK population or your household.", "filename": "analysing-autumn-budget-universal-credit-reforms-with-policyengine.md", "image": "analysing-autumn-budget-universal-credit-reforms-with-policyengine.webp" @@ -743,13 +453,8 @@ { "title": "Income Tax cuts Rishi Sunak is reportedly considering", "date": "2021-12-04", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "Explore the basic rate and additional rate cuts in PolicyEngine.", "filename": "income-tax-cuts-rishi-sunak-is-reportedly-considering.md", "image": "income-tax-cuts-rishi-sunak-is-reportedly-considering.webp" @@ -757,13 +462,8 @@ { "title": "PolicyEngine's 2021 year in review", "date": "2021-12-29", - "authors": [ - "max-ghenis" - ], - "tags": [ - "global", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["global", "impact"], "description": "PolicyEngine's inaugural year was a substantial one for public policy.", "filename": "policyengines-2021-year-in-review.md", "image": "policyengines-2021-year-in-review.webp" @@ -771,13 +471,8 @@ { "title": "The Green Party Manifesto at PolicyFest", "date": "2022-01-26", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "Explore the Green Party Manifesto on PolicyEngine.", "filename": "the-green-party-manifesto-at-policyfest.md", "image": "the-green-party-manifesto-at-policyfest.webp" @@ -785,13 +480,8 @@ { "title": "PolicyEngine arrives stateside", "date": "2022-03-31", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "Today, we're beta-launching PolicyEngine US and several other new features.", "filename": "policyengine-comes-stateside.md", "image": "policyengine-comes-stateside.webp" @@ -799,13 +489,8 @@ { "title": "How PolicyEngine estimates the effects of UK carbon taxes", "date": "2022-04-23", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "By fusing datasets with machine learning, we empower anyone to integrate custom carbon taxes with other tax and benefit reforms.", "filename": "how-policyengine-estimates-the-effects-of-uk-carbon-taxes.md", "image": "how-policyengine-estimates-the-effects-of-uk-carbon-taxes.png" @@ -813,13 +498,8 @@ { "title": "Tax cuts in Prime Minister Truss's Growth Plan 2022", "date": "2022-09-23", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the impact on the population and on your household in PolicyEngine UK.", "filename": "tax-cuts-in-prime-minister-trusss-growth-plan.md", "image": "tax-cuts-in-prime-minister-trusss-growth-plan.png" @@ -827,13 +507,8 @@ { "title": "How to simulate basic and guaranteed income policies in PolicyEngine US", "date": "2022-09-27", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "From universal basic income to age-dependent means-tested payments, we've got you covered.", "filename": "how-to-simulate-basic-and-guaranteed-income-policies-in-policyengine-us.md", "image": "how-to-simulate-basic-and-guaranteed-income-policies-in-policyengine-us.png" @@ -841,13 +516,8 @@ { "title": "PolicyEngine launches in New York state", "date": "2022-10-21", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "New Yorkers can now estimate their state income taxes alongside federal taxes and benefits — and change the rules, too.", "filename": "policyengine-launches-in-new-york-state.md", "image": "policyengine-launches-in-new-york-state.webp" @@ -855,13 +525,8 @@ { "title": "Computing your Oregon Earned Income Tax Credit in PolicyEngine", "date": "2022-10-24", - "authors": [ - "kevin-foster" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["kevin-foster"], + "tags": ["us", "policy"], "description": "We walk you through it step by step.", "filename": "computing-your-oregon-earned-income-tax-credit.md", "image": "computing-your-oregon-earned-income-tax-credit.png" @@ -869,13 +534,8 @@ { "title": "Estimating your Supplemental Security Income benefits in PolicyEngine", "date": "2022-10-28", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "Enter your household information, and our free web app will estimate your SSI — plus other taxes and benefits.", "filename": "estimating-your-supplemental-security-income-benefits-in-policyengine.md", "image": "estimating-your-supplemental-security-income-benefits-in-policyengine.webp" @@ -883,13 +543,8 @@ { "title": "Updating PolicyEngine to reflect SNAP reform in the omnibus bill", "date": "2022-12-23", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "A step-by-step guide to syncing our code with the latest legislation.", "filename": "updating-policyengine-to-reflect-snap-reform-in-the-omnibus-bill.md", "image": "updating-policyengine-to-reflect-snap-reform-in-the-omnibus-bill.webp" @@ -897,13 +552,8 @@ { "title": "From idea to impact: scoring a policy reform on the new PolicyEngine UK", "date": "2023-01-12", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "A walkthrough of the new app on a UK tax-benefit reform.", "filename": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-uk.md", "image": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-uk.png" @@ -911,13 +561,8 @@ { "title": "From idea to impact: scoring a policy reform on the new PolicyEngine US", "date": "2023-01-12", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["us", "technical"], "description": "A walkthrough of the new app on a US tax-benefit reform.", "filename": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-us.md", "image": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-us.png" @@ -925,13 +570,8 @@ { "title": "The New PolicyEngine", "date": "2023-01-12 00:00:01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "We're exiting beta with the most accessible tax and benefit model ever built.", "filename": "us-the-new-policyengine.md", "image": "us-the-new-policyengine.png" @@ -939,13 +579,8 @@ { "title": "The New PolicyEngine", "date": "2023-01-12 00:00:01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "impact"], "description": "We're taking economic policy to the next level with the most accessible tax and benefit model ever built.", "filename": "uk-the-new-policyengine.md", "image": "uk-the-new-policyengine.png" @@ -953,14 +588,8 @@ { "title": "How would reforms affect cliffs?", "date": "2023-02-02 21:00:00", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis", "nikhil-woodruff"], + "tags": ["us", "policy"], "description": "We've added a new feature to the US version of PolicyEngine that lets you see how your reforms affect cliffs.", "filename": "how-would-reforms-affect-cliffs.md", "image": "how-would-reforms-affect-cliffs.png" @@ -969,562 +598,341 @@ "title": "Reform UK's Emergency Recovery Plan", "description": "See the UK party's proposed deficit-funded tax cuts in PolicyEngine", "date": "2023-02-09 11:15:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "reform-uks-emergency-recovery-plan.md", "image": "reform-uks-emergency-recovery-plan.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "The Child Tax Credit in 2023", "description": "We review how the program works and compute its impact with PolicyEngine US.", "date": "2023-02-09 00:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "the-child-tax-credit-in-2023.md", "image": "the-child-tax-credit-in-2023.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Restoration of the American Rescue Plan Act's expanded Child Tax Credit", "description": "PolicyEngine computes how the 2021 policy would affect Americans and America in 2023.", "date": "2023-02-10 00:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "restoration-of-the-american-rescue-plan-acts-expanded-child-tax-credit.md", "image": "restoration-of-the-american-rescue-plan-acts-expanded-child-tax-credit.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "OpenFisca wins Edge of Government's Innovation Award", "description": "The success of Rules as Code and its impact on citizens.", "date": "2023-02-15 00:00:00", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "openfisca-wins-edge-of-government-innovation-award.md", "image": "openfisca-wins-edge-of-government-innovation-award.jpeg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Massachusetts Governor Maura Healey's FY 2024 Budget Recommendation", "description": "PolicyEngine estimates the distributional impact of two provisions and the household impact of four provisions.", "date": "2023-03-03 00:00:00", - "tags": [ - "us", - "us-ma", - "policy" - ], + "tags": ["us", "us-ma", "policy"], "filename": "massachusetts-governor-maura-healeys-fy-2024-budget-recommendation.md", "image": "massachusetts-governor-maura-healeys-fy-2024-budget-recommendation.webp", - "authors": [ - "max-ghenis", - "nicholas-rodelo" - ] + "authors": ["max-ghenis", "nicholas-rodelo"] }, { "title": "The UK's extended Energy Price Guarantee", "description": "Analysis by PolicyEngine on the expected effects on income, poverty, and inequality.", "date": "2023-03-05 07:30:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "projected-impact-of-the-uks-extended-energy-price-guarantee.md", "image": "projected-impact-of-the-uks-extended-energy-price-guarantee.png", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ] + "authors": ["nikhil-woodruff", "max-ghenis"] }, { "title": "Breaking down poverty impacts by sex", "description": "PolicyEngine estimates the impact of customizable policy reforms on poverty — overall, by age, and now by sex.", "date": "2023-03-08 07:30:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "breaking-down-us-poverty-impacts-by-sex.md", "image": "breaking-down-poverty-impacts-by-sex.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Breaking down poverty impacts by sex", "description": "PolicyEngine estimates the impact of customisable policy reforms on poverty — overall, by age, and now by sex.", "date": "2023-03-08 07:30:00", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "breaking-down-uk-poverty-impacts-by-sex.md", "image": "breaking-down-poverty-impacts-by-sex.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Analysis of the Spring Budget 2023", "description": "PolicyEngine analysis estimates the impact of the EPG extension and the fuel duty freeze.", "date": "2023-03-15 18:10:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "analysis-of-the-spring-budget-2023.md", "image": "analysis-of-the-spring-budget-2023.jpeg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Automate policy analysis with PolicyEngine's new ChatGPT integration", "description": "Score an economic impact in a few clicks. Write a report in one more.", "date": "2023-03-17 11:00:00", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "automate-policy-analysis-with-policy-engines-new-chatgpt-integration.md", "image": "automate-policy-analysis-with-policy-engines-new-chatgpt-integration.png", - "authors": [ - "nikhil-woodruff", - "chat-gpt" - ] + "authors": ["nikhil-woodruff", "chat-gpt"] }, { "title": "How much should James Medlock donate to GiveDirectly?", "description": "We built a mini-app with the policyengine-us Python package to crunch the implications of a Twitter bet.", "date": "2023-03-23 01:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "medlock-donation-calculator.md", "image": "medlock-donation-calculator.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "FiscalSim and PolicyEngine: Emphasizing collaboration and open-source acknowledgment", "description": "The Center for Growth and Opportunity launches FiscalSim, a US policy-computing web app drawing heavily from PolicyEngine's work.", "date": "2023-03-24 01:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "fiscalsim.md", "image": "fiscalsim.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "Restoring the American Rescue Plan's Earned Income Tax Credit Expansion", "description": "We review how the expansion works and model its impact with PolicyEngine US.", "date": "2023-03-27 01:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "restoring-arpa-eitc.md", "image": "eitc.webp", - "authors": [ - "arthur-wright" - ] + "authors": ["arthur-wright"] }, { "title": "Breaking down policy impacts by wealth decile", "description": "Income isn't everything.", "date": "2023-03-28 09:00:00", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "breaking-down-policy-impacts-by-wealth-decile.md", "image": "breaking-down-policy-impacts-by-wealth-decile.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "The District Child Tax Credit proposal", "description": "Analysis of DC Councilmember Zachary Parker's new legislation.", "date": "2023-04-02 09:00:00", - "tags": [ - "us", - "us-dc", - "policy" - ], + "tags": ["us", "us-dc", "policy"], "filename": "district-child-tax-credit.md", "image": "district-child-tax-credit.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Announcing the addition of Kansas income tax to PolicyEngine", "description": "We've expanded our tax calculator and customizable reform simulator to the Sunflower State.", "date": "2023-04-03 09:00:00", - "tags": [ - "us", - "us-ks", - "policy" - ], + "tags": ["us", "us-ks", "policy"], "filename": "kansas-income-tax.md", "image": "kansas-income-tax.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Revolutionizing policy analysis with AI", "description": "Discover PolicyEngine's new GPT-4 integration and audience modes.", "date": "2023-04-03 16:00:00", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "gpt-analysis.md", "image": "ai-analysis.png", - "authors": [ - "nikhil-woodruff", - "chat-gpt" - ] + "authors": ["nikhil-woodruff", "chat-gpt"] }, { "title": "Introducing California income tax analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the most populous state.", "date": "2023-04-07 09:00:00", - "tags": [ - "us", - "us-ca", - "policy" - ], + "tags": ["us", "us-ca", "policy"], "filename": "california-income-tax.md", "image": "california-income-tax.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "PolicyEngine adds New York Family Assistance (TANF) to US model", "description": "Enhancing analysis of public policy impacts on needy families.", "date": "2023-04-08 09:00:00", - "tags": [ - "us", - "us-ny", - "policy" - ], + "tags": ["us", "us-ny", "policy"], "filename": "new-york-tanf.md", "image": "new-york-tanf.png", - "authors": [ - "max-ghenis", - "donglai-xu", - "lin-tao" - ] + "authors": ["max-ghenis", "donglai-xu", "lin-tao"] }, { "title": "Analysis of the DC Financial Support for Families with Children Amendment Act", "description": "Evaluating Councilmember Zachary Parker's second Child Tax Credit proposal of 2023.", "date": "2023-04-16 09:00:00", - "tags": [ - "us", - "us-dc", - "policy" - ], + "tags": ["us", "us-dc", "policy"], "filename": "dc-financial-support-for-families-with-children.md", "image": "dc-financial-support-for-families-with-children.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Introducing Utah State Income Tax Analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the Beehive State.", "date": "2023-04-17 09:00:00", - "tags": [ - "us", - "us-ut", - "policy" - ], + "tags": ["us", "us-ut", "policy"], "filename": "introducing-utah-state-income-tax-analysis-on-policyengine.md", "image": "introducing-utah-state-income-tax-analysis-on-policyengine.webp", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Building the roots of PolicyEngine Nigeria", "description": "We're expanding PolicyEngine's reach by empowering Nigerians to understand personal income tax policies.", "date": "2023-04-21 09:00:00", - "tags": [ - "ng", - "technical" - ], + "tags": ["ng", "technical"], "filename": "building-the-roots-of-policyengine-nigeria.md", "image": "building-the-roots-of-policyengine-nigeria.webp", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ] + "authors": ["nikhil-woodruff", "max-ghenis"] }, { "title": "Kansas's Flat Tax Proposal — SB169", "description": "We review how the bill works and model its impact with PolicyEngine US.", "date": "2023-04-23 09:00:00", - "tags": [ - "us", - "us-ks", - "policy" - ], + "tags": ["us", "us-ks", "policy"], "filename": "kansas-flat-income-tax-sb-169.md", "image": "kansas-flat-income-tax-sb-169.webp", - "authors": [ - "arthur-wright" - ] + "authors": ["arthur-wright"] }, { "title": "Digital Public Goods Alliance recognizes PolicyEngine as a Digital Public Good", "description": "The UN-endorsed initiative highlights PolicyEngine's open source approach to supporting the Sustainable Development Goals.", "date": "2023-04-26 09:00:00", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "digital-public-goods-alliance-recognizes-policyengine-as-a-digital-public-good.md", "image": "digital-public-goods-alliance-recognizes-policyengine-as-a-digital-public-good.webp", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "How PolicyEngine shaped the outcome of the $1 million bet James Medlock won today", "description": "Our free tax calculator helped determine Balaji Srinivasan's $500,000 payments to Medlock and GiveDirectly.", "date": "2023-05-02 16:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "medlock-wins.md", "image": "medlock-wins.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of Guaranteed Income for the 21st Century", "description": "The proposal from the New School and the Economic Security Project would lower poverty and inequality while expanding cliffs.", "date": "2023-06-08 13:45:00", "filename": "analysis-of-guaranteed-income-for-the-21st-century.md", - "tags": [ - "us", - "featured", - "policy" - ], + "tags": ["us", "featured", "policy"], "image": "analysis-of-guaranteed-income-for-the-21st-century.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of the Working Families Tax Cut Act", "description": "How the proposal to increase the standard deduction would affect households and society.", "date": "2023-06-08 20:00:00", "filename": "malliotakis-steel-working-families-tax-cut-act.md", - "tags": [ - "us", - "featured", - "policy" - ], + "tags": ["us", "featured", "policy"], "image": "malliotakis-steel-working-families-tax-credit-act.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "Unveiling poverty impacts by race and ethnicity", "description": "A new feature from PolicyEngine reveals how customizable tax and benefit reforms affect poverty rates for Black, White, Hispanic, and other Americans.", "date": "2023-06-19 20:00:00", "filename": "poverty-race-ethnicity.md", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "image": "poverty-race-ethnicity.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Scott Winship's individualized Earned Income Tax Credit proposal", "description": "An analysis and note on the value of open-source models.", "date": "2023-07-14 08:00:00", "filename": "winship-individualized-eitc.md", - "tags": [ - "us", - "policy", - "featured" - ], + "tags": ["us", "policy", "featured"], "image": "winship-individualized-eitc.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Dive Into New Mexico's Income Tax Analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the Land of Enchantment.", "date": "2023-08-02 16:00:00", "filename": "new-mexico-income-tax-launch.md", - "tags": [ - "us", - "us-nm", - "featured", - "policy" - ], + "tags": ["us", "us-nm", "featured", "policy"], "image": "new-mexico-income-tax-launch.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "Repealing the Universal Credit two-child limit", "description": "How removing the limit of some benefits to two children would affect the UK in 2023.", "date": "2023-08-07 16:00:00", "filename": "repealing_the_two_child_limit.md", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "two_child_limit.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "New King's College London research uses PolicyEngine", "description": "A ‘Citizens' Economic Council' explores PolicyEngine-scored tax-benefit impacts.", "date": "2023-11-04 09:00:00", "filename": "citizens-economic-council.md", - "tags": [ - "uk", - "impact" - ], + "tags": ["uk", "impact"], "image": "citizens-economic-council.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Autumn Statement 2023 tax-benefit reforms", "description": "Chancellor Jeremy Hunt just announced National Insurance cuts and benefit uprating. We've evaluated these reforms.", "date": "2023-11-22 17:25", "filename": "autumn-statement-2023.md", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "jeremy-hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Autumn 2023 model calibration update", "description": "Evaluating PolicyEngine's model performance with the latest official statistics.", "date": "2023-12-04 09:00:00", "filename": "uk-calibration-2023-q4.ipynb", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "image": "uk-calibration-dec-2023-update.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Preliminary analysis of the Wyden-Smith Child Tax Credit expansion", "description": "PolicyEngine estimates the impact of the reported compromise to expand the Child Tax Credit's refundable component.", "date": "2024-01-11 12:00:00", "filename": "wyden-smith-ctc.md", - "tags": [ - "us", - "impact", - "featured", - "child-tax-credit" - ], + "tags": ["us", "impact", "featured", "child-tax-credit"], "image": "wyden.jpeg", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "Spring Budget 2024 proposals", "description": "PolicyEngine estimates reported likely tax-benefit reforms ahead of the UK Spring Budget.", "date": "2024-03-04 09:00:00", "filename": "spring-budget-2024.ipynb", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "jeremy-hunt-with-budget-box.jpg", - "authors": [ - "anthony-volk", - "nikhil-woodruff" - ] + "authors": ["anthony-volk", "nikhil-woodruff"] }, { "title": "Spring Budget 2024", "description": "PolicyEngine estimates the impact of the UK Spring Budget.", "date": "2024-03-06 09:00:00", "filename": "uk-2024-spring-budget.ipynb", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff", - "anthony-volk" - ] + "authors": ["nikhil-woodruff", "anthony-volk"] }, { "title": "Beta-launch: PolicyEngine's enhanced microdata for policy analysis", "description": "By integrating and calibrating multiple datasets, PolicyEngine makes world-class tax-benefit microsimulation modeling available to anyone.", "date": "2024-03-25 09:00:00", - "tags": [ - "us", - "technical", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "technical", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "enhanced-cps-beta.md", "image": "enhanced-cps-beta.png" }, @@ -1532,14 +940,8 @@ "title": "Child Tax Credit Provisions of the Tax Relief for American Workers and Families Act", "description": "How the Wyden-Smith bipartisan tax package would affect families through 2025.", "date": "2024-03-25 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis"], "filename": "trafwa-ctc.md", "image": "trafwa-ctc.webp" }, @@ -1547,15 +949,8 @@ "title": "Individual income tax provisions of President Biden's 2025 Budget", "description": "PolicyEngine projects the impact of expanding tax credits and raising taxes on high-income filers.", "date": "2024-03-27 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "biden-budget-2025.md", "image": "biden-budget-2025.jpeg" }, @@ -1563,14 +958,8 @@ "title": "PolicyEngine launches state income tax modeling nationwide", "description": "Free, open-source platform now covers all 50 states and D.C., just in time for tax season.", "date": "2024-04-15 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["pavel-makarchuk"], "filename": "state-tax-model-beta.md", "image": "state-tax-model-beta.png" }, @@ -1578,27 +967,17 @@ "title": "PolicyEngine's Spring 2024 update", "description": "How PolicyEngine compares to the latest external forecasts.", "date": "2024-04-16 09:00:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "uk_march_update.png", - "authors": [ - "nikhil-woodruff" - ], + "authors": ["nikhil-woodruff"], "filename": "obr-forecast-update-spring-24.ipynb" }, { "title": "The Triple Lock Plus", "description": "PolicyEngine estimates the impact of the UK government's proposed pension uprating policy reform.", "date": "2024-05-28 09:00:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff"], "filename": "uk-triple-lock-plus.ipynb", "image": "uk-triple-lock-plus.jpg" }, @@ -1606,13 +985,8 @@ "title": "The Liberal Democrat Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-11 16:30:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff"], "filename": "lib-dem-2024-manifesto.md", "image": "lib-dem-manifesto-2024.jpeg" }, @@ -1620,15 +994,8 @@ "title": "The Conservative Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-12 16:30:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff", - "pavel-makarchuk", - "anthony-volk" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff", "pavel-makarchuk", "anthony-volk"], "filename": "conservative-2024-manifesto.md", "image": "conservative-2024-manifesto.png" }, @@ -1636,14 +1003,8 @@ "title": "The Labour Party Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-29 14:00:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff", - "anthony-volk" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff", "anthony-volk"], "filename": "labour-2024-manifesto.md", "image": "labour-2024-manifesto.png" }, @@ -1651,15 +1012,8 @@ "title": "PolicyEngine Powers Niskanen Center's Analysis", "description": "Three new reports from the Niskanen Center think tank demonstrate PolicyEngine's tax and benefit reform model.", "date": "2024-07-12 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "ben-gross" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis", "ben-gross"], "filename": "niskanen-center-analysis.md", "image": "niskanen-center-analysis.jpg" }, @@ -1667,16 +1021,8 @@ "title": "Kamala Harris's LIFT Act Middle Class Tax Credit", "description": "A comprehensive analysis of the Vice President's 2018 proposal.", "date": "2024-07-22 01:00:00", - "tags": [ - "us", - "policy", - "featured", - "2024-election" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured", "2024-election"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "lift-act.md", "image": "lift-act.jpg" }, @@ -1684,16 +1030,8 @@ "title": "Analysis of JD Vance’s Suggested $5,000 Child Tax Credit Expansion", "description": "Impacts of the vice presidential nominee’s reform depend largely on its uncertain refundability.", "date": "2024-08-11 01:00:00", - "tags": [ - "us", - "policy", - "featured", - "2024-election" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured", "2024-election"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "vance-ctc.md", "image": "vance-ctc.jpg" }, @@ -1701,15 +1039,8 @@ "title": "PolicyEngine at the 117th Annual Conference on Taxation", "description": "Exploring AI applications and enhanced data for tax policy analysis.", "date": "2024-08-13 01:00:00", - "tags": [ - "us", - "policy", - "conferences" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "policy", "conferences"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "nta-2024.md", "image": "nta-2024.png" }, @@ -1717,13 +1048,8 @@ "title": "Validation against the Survey of Personal Incomes", "description": "Evaluating PolicyEngine's model performance against the UK SPI.", "date": "2024-08-14 01:00:00", - "tags": [ - "uk", - "technical" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["uk", "technical"], + "authors": ["anthony-volk"], "filename": "uk-spi-validation.ipynb", "image": "uk-spi-validation.png" }, @@ -1731,16 +1057,8 @@ "title": "Kamala Harris’s Child Tax Credit Proposal", "description": "We analyze the Democratic nominee’s proposal to expand the 2021 expansion, giving $6,000 to parents of newborns.", "date": "2024-08-17 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "harris-ctc.md", "image": "harris-ctc.webp" }, @@ -1748,16 +1066,8 @@ "title": "Individual Income Tax Provisions in Minnesota Bill HF1938 (2023)", "description": "The reform signed by Governor Tim Walz expanded credits for low-income families, reduced taxes for middle-income retirees, and raised taxes for high-income filers.", "date": "2024-08-21 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured", - "minnesota" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "featured", "minnesota"], + "authors": ["pavel-makarchuk"], "filename": "mn-hf1938-walz.md", "image": "mn-hf1938-walz.webp" }, @@ -1765,15 +1075,8 @@ "title": "How the Rent Relief Act of 2019 Varies with Income and Location", "description": "We show the impact on different households of the tax credit bill introduced by then-Senator Kamala Harris.", "date": "2024-08-22 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["max-ghenis"], "filename": "rent-relief-act.md", "image": "rent-relief-act.png" }, @@ -1781,16 +1084,8 @@ "title": "How the Oregon Rebate May Affect Poverty Rates", "description": "Our model finds the ballot measure could reduce poverty by between 22% and 35%, without macroeconomic effects.", "date": "2024-09-29 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "us-or" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "us-or"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "oregon-rebate.md", "image": "oregon-rebate.png" }, @@ -1798,15 +1093,8 @@ "title": "Exempting Social Security Benefits from Income Taxation", "description": "PolicyEngine projects that former President Donald Trump’s proposal would cost $1.4 trillion over the budget window.", "date": "2024-10-07 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["david-trimmer"], "filename": "social-security-tax-exemption.md", "image": "social-security-tax-exemption.webp" }, @@ -1814,15 +1102,8 @@ "title": "Labour's reforms to VAT tax on private schools", "description": "PolicyEngine projects Labour's private school tax plan would raise £7.7 billion over five years, mainly affecting wealthier households.", "date": "2024-10-17 01:00:00", - "tags": [ - "uk", - "tax", - "policy", - "vat" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "policy", "vat"], + "authors": ["vahid-ahmadi"], "filename": "school-vat.md", "image": "classroom-2093744.jpg" }, @@ -1830,16 +1111,8 @@ "title": "Levying VAT on private school fees in the Autumn Budget", "description": "PolicyEngine projects the reforms to private school VAT would raise £1.5 billion in 2025.", "date": "2024-10-31 15:00:00", - "tags": [ - "uk", - "tax", - "policy", - "vat", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "policy", "vat", "featured"], + "authors": ["vahid-ahmadi"], "filename": "vat-school-comparison.md", "image": "vat-school-comparison-post.jpg" }, @@ -1847,15 +1120,8 @@ "title": "How PolicyEngine UK models behavioural responses", "description": "PolicyEngine has enhanced its modelling with behavioural responses, including income, substitution and capital gains elasticities.", "date": "2024-11-12 15:00:00", - "tags": [ - "uk", - "policy", - "behavioral-responses", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "behavioral-responses", "featured"], + "authors": ["vahid-ahmadi"], "filename": "behavioural-responses.md", "image": "behavioural-responses.jpg" }, @@ -1863,14 +1129,8 @@ "title": "Benefits uprating 2025/26", "description": "PolicyEngine projects Labour's 1.7% benefits uprating would cost £2.5 billion, mainly benefiting lower-income households.", "date": "2024-10-31 15:00:00", - "tags": [ - "uk", - "benefit", - "inflation" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "benefit", "inflation"], + "authors": ["vahid-ahmadi"], "filename": "Benefit-uprating-25.md", "image": "benefit-uprating-post-pic.jpg" }, @@ -1878,14 +1138,8 @@ "title": "Capital Gains Tax reforms in the Autumn Budget 2024", "description": "PolicyEngine estimates that the UK's 2024 Capital Gains Tax reforms will raise £6.4 billion between 2025-2029.", "date": "2024-11-06 15:00:00", - "tags": [ - "uk", - "tax", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "featured"], + "authors": ["vahid-ahmadi"], "filename": "cgt-autumn-budget.md", "image": "cgt-autumn-budget.jpg" }, @@ -1893,15 +1147,8 @@ "title": "Kamala Harris’s Earned Income Tax Credit Expansion Proposal", "description": "PolicyEngine projects that restoring the American Rescue Plan policy would cost $144 billion (static) or $201 billion (dynamic) over a decade, while lowering poverty by 1.6% in 2025.", "date": "2024-10-24 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "harris-eitc.md", "image": "harris-eitc.webp" }, @@ -1909,15 +1156,8 @@ "title": "Autumn Budget policy choices", "description": "PolicyEngine estimates that four reported tax reforms would raise £23 billion per year", "date": "2024-10-24 16:30:00", - "tags": [ - "uk", - "autumn-budget", - "featured", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "featured", "policy"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-2024-policy-choices.ipynb", "image": "autumn-budget-policy-choices.png" }, @@ -1925,28 +1165,16 @@ "title": "Levying employer National Insurance on pension contributions", "description": "PolicyEngine estimates the now-scrapped Autumn Budget reform would have raised between £10 and £18 billion per year, depending on how employers pass it on to wages.", "date": "2024-10-26 09:00:00", - "tags": [ - "uk", - "autumn-budget", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-2024-employer-nic-pension-contributions.md", "image": "autumn-budget-2024-employer-nic-pension-contributions.png" }, { "title": "Extending the Tax Cuts and Jobs Act", "date": "2024-10-28 00:00:01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "2024-election", - "featured" - ], + "authors": ["david-trimmer"], + "tags": ["us", "2024-election", "featured"], "description": "PolicyEngine projects extending the TCJA individual tax provisions would cost $3.9 trillion over a ten-year budget window.", "filename": "tcja-extension.md", "image": "tcja-extension.jpg" @@ -1955,15 +1183,8 @@ "title": "Employer National Insurance reforms in the Autumn Budget 2024", "description": "PolicyEngine projects the reforms to employer NI would raise £23 billion in 2025 and affect two thirds of people.", "date": "2024-10-30 16:30:00", - "tags": [ - "uk", - "autumn-budget", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-24-employer-ni.md", "image": "autumn-budget-24-employer-ni.png" }, @@ -1971,15 +1192,8 @@ "title": "Fuel duty reforms in the Autumn Budget 2024", "description": "PolicyEngine projects the reforms to fuel duty will cost £2.4 billion in 2025.", "date": "2024-10-30 17:30:00", - "tags": [ - "uk", - "autumn-budget", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-24-fuel-duty.md", "image": "autumn-budget-24-fuel-duty.png" }, @@ -1987,15 +1201,8 @@ "title": "Donald Trump's Economic Agenda", "description": "PolicyEngine projects three provisions of Donald Trump’s tax plan would cost $5.4 trillion over the next ten years.", "date": "2024-10-31 17:30:00", - "tags": [ - "us", - "election", - "donald-trump", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "election", "donald-trump", "featured"], + "authors": ["david-trimmer"], "filename": "trump-2024.md", "image": "trump-2024.webp" }, @@ -2003,18 +1210,8 @@ "title": "How Would Each Presidential Candidate’s Economic Plans Affect Your Household?", "description": "PolicyEngine has created a personalized calculator for the 2024 presidential election’s tax proposals.", "date": "2024-11-03 17:30:00", - "tags": [ - "us", - "election", - "donald-trump", - "kamala-harris", - "featured", - "interactives" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "election", "donald-trump", "kamala-harris", "featured", "interactives"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "introducing-2024-election-calculator.md", "image": "introducing-2024-election-calculator.png" }, @@ -2022,13 +1219,8 @@ "title": "Federal Tax Inflation Adjustments for Tax Year 2025", "description": "PolicyEngine has updated all relevant federal tax parameters based on the latest IRS announcements.", "date": "2024-11-19 09:30:00", - "tags": [ - "us", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "featured"], + "authors": ["david-trimmer"], "filename": "federal-tax-inflation-adjustments-2025.md", "image": "fed_tax_inflation_adjustments.webp" }, @@ -2036,15 +1228,8 @@ "title": "Introducing GiveCalc", "description": "Calculate the true cost of charitable giving.", "date": "2024-12-03 09:30:00", - "tags": [ - "us", - "featured", - "giving" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "featured", "giving"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "givecalc.md", "image": "givecalc.png" }, @@ -2052,14 +1237,8 @@ "title": "Louisiana Transitions to a Flat Tax", "description": "Analysis of the individual tax changes signed into law by Governor Jeff Landry.", "date": "2024-12-10 09:30:00", - "tags": [ - "us", - "featured", - "louisiana" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "featured", "louisiana"], + "authors": ["david-trimmer"], "filename": "louisiana-flat-tax.md", "image": "louisiana-flat-tax.webp" }, @@ -2067,13 +1246,8 @@ "title": "NEO Philanthropy Awards $200,000 Grant to PolicyEngine", "description": "Economic Mobility & Opportunity Fund supports expanding access to policy analysis tools.", "date": "2024-12-18 09:30:00", - "tags": [ - "us", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "featured"], + "authors": ["max-ghenis"], "filename": "neo-philanthropy.md", "image": "neo-philanthropy.png" }, @@ -2081,13 +1255,8 @@ "title": "Nuffield Foundation awards £250k to enhance PolicyEngine UK", "description": "Grant will support expanding and localising tax-benefit microsimulation capabilities.", "date": "2024-12-19 14:00:00", - "tags": [ - "uk", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["uk", "featured"], + "authors": ["max-ghenis"], "filename": "uk-nuffield-grant.md", "image": "uk-nuffield-grant.png" }, @@ -2095,14 +1264,8 @@ "title": "New AI Feature Helps People Understand Their Taxes and Benefits", "description": "We’re applying large language models to clarify complex policy rules.", "date": "2024-12-26 09:00:00", - "tags": [ - "us", - "featured", - "ai" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["us", "featured", "ai"], + "authors": ["anthony-volk"], "filename": "us-household-ai.md", "image": "us-household-ai.png" }, @@ -2110,14 +1273,8 @@ "title": "New AI feature helps people understand their taxes and benefits", "description": "We’re applying large language models to clarify complex policy rules.", "date": "2024-12-26 09:00:00", - "tags": [ - "uk", - "featured", - "ai" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["uk", "featured", "ai"], + "authors": ["anthony-volk"], "filename": "uk-household-ai.md", "image": "uk-household-ai.png" }, @@ -2125,18 +1282,8 @@ "title": "PolicyEngine US Launches Behavioral Responses", "description": "We've expanded our modeling framework to capture how policy changes affect labor supply.", "date": "2024-12-27 09:00:00", - "tags": [ - "us", - "policy", - "behavioral-responses", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff", - "jason-debacker", - "vahid-ahmadi" - ], + "tags": ["us", "policy", "behavioral-responses", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff", "jason-debacker", "vahid-ahmadi"], "filename": "us-behavioral-responses.md", "image": "behavioural-responses.jpg" }, @@ -2144,15 +1291,8 @@ "title": "PolicyEngine UK in 2024: A year in review", "description": "From AI-powered analysis to election impact, we transformed policy research through technology.", "date": "2024-12-28 09:00:00", - "tags": [ - "uk", - "year-in-review", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["uk", "year-in-review", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "uk-year-in-review-2024.md", "image": "year-in-review-2024.png" }, @@ -2160,15 +1300,8 @@ "title": "PolicyEngine US in 2024: A year in review", "description": "From state-level modeling to AI-powered analysis, we expanded the frontier of policy research through technology.", "date": "2024-12-29 09:00:00", - "tags": [ - "us", - "year-in-review", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "year-in-review", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "us-year-in-review-2024.md", "image": "year-in-review-2024.png" }, @@ -2176,14 +1309,8 @@ "title": "Analysis of the Family First Act", "description": "We project that Representative Blake Moore's Child Tax Credit bill would raise revenue and reduce poverty.", "date": "2025-01-17 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["pavel-makarchuk"], "filename": "family-first-act.md", "image": "family-first-act.jpg" }, @@ -2191,15 +1318,8 @@ "title": "The New York Working Families Tax Credit", "description": "A comprehensive analysis of the proposal from New York State Senator Andrew Gounardes.", "date": "2025-01-21 09:00:00", - "tags": [ - "us", - "policy", - "featured", - "us-ny" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "policy", "featured", "us-ny"], + "authors": ["david-trimmer"], "filename": "ny-wftc.md", "image": "ny-wftc.webp" }, @@ -2207,29 +1327,16 @@ "title": "How We're Improving our API in 2025", "description": "PolicyEngine's API target architecture for 2025.", "date": "2025-02-05", - "tags": [ - "technical", - "global" - ], - "authors": [ - "michael-smit" - ], + "tags": ["technical", "global"], + "authors": ["michael-smit"], "filename": "api-v2.md", "image": "api-v2.webp" }, { "title": "The Proposed New York City Child Tax Credit", "date": "2025-02-18 00:00:01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ny-nyc", - "featured", - "child-tax-credit", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ny-nyc", "featured", "child-tax-credit", "policy"], "description": "Analysis of Senate Bill S2238, introduced by Senator Andrew Gounardes.", "filename": "nyc-ctc-s2238.md", "image": "nyc-ctc-s2238.webp" @@ -2238,61 +1345,34 @@ "title": "Kentucky Cuts Income Tax Rate", "description": "Analysis of lowering Kentucky's 4% income tax rate to 3.5%.", "date": "2025-02-26", - "tags": [ - "us", - "us-ky", - "policy", - "featured" - ], + "tags": ["us", "us-ky", "policy", "featured"], "filename": "kentucky-cuts-income-tax-rate.md", "image": "kentucky-cuts-income-tax-rate.webp", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "The Family Income Supplemental Credit (FISC) Act", "description": "Representative Jared Golden’s Child Tax Credit reform would cost $193 billion in 2026 while reducing poverty and inequality.", "date": "2025-03-05", - "tags": [ - "us", - "policy", - "featured" - ], + "tags": ["us", "policy", "featured"], "filename": "fisc-act.md", "image": "jared-golden.jpeg", - "authors": [ - "pavel-makarchuk" - ] + "authors": ["pavel-makarchuk"] }, { "title": "Exempting young children from the two-child limit", "description": "Analysis of the potential impact of limiting the two-child limit to families with children under 5 years old.", "date": "2025-03-06 00:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi", - "pavel-makarchuk" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi", "pavel-makarchuk"], "filename": "young-child-exemption-two-child-limit.md", "image": "young-child-exemption-two-child-limit.jpg" }, { "title": "New York Governor Hochul's Tax Proposals", "date": "2025-03-07", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ny", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ny", "featured", "policy"], "description": "PolicyEngine analyzed several individual income tax policies included in Governor Kathy Hochul's FY2026 budget.", "filename": "ny-hochul-budget.md", "image": "ny-hochul-budget.jpg" @@ -2300,14 +1380,8 @@ { "title": "The impact of Personal Independence Payment, and freezing its level in 2025", "date": "2025-03-11", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy", - "featured" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy", "featured"], "description": "How the disability benefit, and one reform the government is reportedly considering, affect the UK household sector.", "filename": "pip-and-freeze.md", "image": "pip_and_freeze.jpg" @@ -2315,14 +1389,8 @@ { "title": "Analysis of Michigan HB 4170", "date": "2025-03-26", - "authors": [ - "pavel-makarchuk" - ], - "tags": [ - "us", - "policy", - "featured" - ], + "authors": ["pavel-makarchuk"], + "tags": ["us", "policy", "featured"], "description": "We project the bill, which would reduce Michigan’s tax rate from 4.25% to 4.05%, would cost $644 million in 2025.", "filename": "michigan-bill-hb4170.ipynb", "image": "michigan-bill-hb4170.jpg" @@ -2330,15 +1398,8 @@ { "title": "Restricting eligibility for the Personal Independence Payment Daily Living part", "date": "2025-03-18", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ], - "tags": [ - "uk", - "policy", - "featured" - ], + "authors": ["nikhil-woodruff", "max-ghenis"], + "tags": ["uk", "policy", "featured"], "description": "We simulate potential realisations of the Government's new £5 billion reform.", "filename": "uk-pip-reforms.md", "image": "uk-pip-reforms.jpg" @@ -2346,15 +1407,8 @@ { "title": "The Tax Cuts for Workers Act", "date": "2025-06-16", - "authors": [ - "pavel-makarchuk", - "max-ghenis" - ], - "tags": [ - "us", - "policy", - "featured" - ], + "authors": ["pavel-makarchuk", "max-ghenis"], + "tags": ["us", "policy", "featured"], "description": "We simulate the new bill to restore the American Rescue Plan Act’s Earned Income Tax Credit expansion.", "filename": "tax-cuts-for-workers-act.ipynb", "image": "tax-cuts-for-workers-act.png" @@ -2362,15 +1416,8 @@ { "title": "Benefits in PolicyEngine", "date": "2025-05-28 00:00:00", - "authors": [ - "vahid-ahmadi" - ], - "tags": [ - "uk", - "policy", - "featured", - "benefit" - ], + "authors": ["vahid-ahmadi"], + "tags": ["uk", "policy", "featured", "benefit"], "description": "PolicyEngine models different benefit components in the UK, including means-tested and non-means-tested benefits.", "filename": "uk-benefits-post.md", "image": "uk-benefit-post.png" @@ -2378,15 +1425,8 @@ { "title": "Idaho’s New Individual Income Tax Changes", "date": "2025-04-01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-id", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-id", "featured", "policy"], "description": "The lower top marginal rate and larger grocery tax credit will cost the state $225 million in 2025.", "filename": "idaho-2025-tax-change.ipynb", "image": "idaho-2025-tax-change.jpg" @@ -2395,31 +1435,16 @@ "title": "Taxes in PolicyEngine", "description": "PolicyEngine models different tax components in the UK, including direct taxes, indirect taxes, and proposed taxes.", "date": "2025-04-08 00:00:00", - "tags": [ - "uk", - "policy", - "featured", - "tax" - ], - "authors": [ - "vahid-ahmadi", - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured", "tax"], + "authors": ["vahid-ahmadi", "nikhil-woodruff"], "filename": "uk-taxes-post.md", "image": "uk-tax-post.jpg" }, { "title": "Utah Cuts Income Tax Rate and Expands Credits", "date": "2025-05-01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ut", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ut", "featured", "policy"], "description": "Utah’s latest individual income tax changes will lower state revenues by $96 million and raise net income for 62% of residents in 2025.", "filename": "utah-income-tax-changes.ipynb", "image": "utah-income-tax-changes.jpg" @@ -2428,14 +1453,8 @@ "title": "Reform UK's tax-benefit reform proposals", "description": "Nigel Farage has confirmed that Reform UK's manifesto will include four tax-benefit reforms that PolicyEngine estimates would cost £75 billion in 2025-26.", "date": "2025-05-27 19:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "farage-speech-may-2025.ipynb", "image": "farage-speech-may-2025.jpg" }, @@ -2443,14 +1462,8 @@ "title": "Extending the Winter Fuel Allowance", "description": "The government has reversed its Winter Fuel Allowance means testing, expanding eligibility to 9 million pensioners through a £35,000 income threshold.", "date": "2025-06-11 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "wfa-means-test.ipynb", "image": "wfa-repeal.jpeg" }, @@ -2458,14 +1471,8 @@ "title": "How changing the VAT threshold affects UK revenues", "description": "PolicyEngine's new firm microsimulation model estimates revenue and business impacts of VAT thresholds from £70,000 to £120,000.", "date": "2025-09-10 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-vat-thresholds.md", "image": "uk-vat-reeves.jpg" }, @@ -2473,16 +1480,8 @@ "title": "Testing multi-agent AI workflows for policy research", "description": "A multi-agent Claude Code system fared better on distributional analysis than benefit interactions; insights inform our forthcoming plugin.", "date": "2025-10-28", - "tags": [ - "uk", - "us", - "featured", - "technology", - "ai" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "us", "featured", "technology", "ai"], + "authors": ["vahid-ahmadi"], "filename": "multi-agent-workflows-policy-research.md", "image": "multi-agent-workflows-policy-research.png" } diff --git a/app/docs/NORMY_INTEGRATION.md b/app/docs/NORMY_INTEGRATION.md index e0a843f27..46cd3daff 100644 --- a/app/docs/NORMY_INTEGRATION.md +++ b/app/docs/NORMY_INTEGRATION.md @@ -9,11 +9,13 @@ With `@normy/react-query` installed and configured, your existing hooks (`useUse ### 1. Data is Automatically Normalized When your existing hooks fetch data with `id` fields, `@normy/react-query` automatically: + - Stores each object by its ID in a normalized cache - Merges updates across all queries - Ensures data consistency Example with `useUserSimulations`: + ```tsx // When this hook fetches simulations... const { data } = useUserSimulations(userId); @@ -34,7 +36,7 @@ const { data: userSims } = useUserSimulations('user-1'); // Component B const { data: simDetail } = useQuery({ queryKey: ['simulation', '123'], - queryFn: () => fetchSimulation('123') + queryFn: () => fetchSimulation('123'), }); // If this also returns simulation id:123, it uses/updates the same normalized object ``` @@ -59,16 +61,19 @@ const updateSim = useMutation({ Your existing hooks now have these benefits automatically: ### useUserHousehold + - Household objects are normalized by ID - Updates to a household in one place update it everywhere - Duplicate fetches are eliminated -### useUserSimulation +### useUserSimulation + - Simulations are normalized by ID - Related policies and populations are also normalized - Updates cascade through relationships ### useUserPolicy + - Policies are normalized by ID - Shared between simulations that reference the same policy - Consistent policy data across the app @@ -79,15 +84,15 @@ You can now access the normalized data directly: ```tsx import { useQueryNormalizer } from '@normy/react-query'; -import { useNormalizedData, useAllEntities } from '@/hooks/utils/normalizedUtils'; +import { useAllEntities, useNormalizedData } from '@/hooks/utils/normalizedUtils'; function MyComponent() { // Get a specific simulation from normalized store const simulation = useNormalizedData('simulations', '123'); - + // Get all policies from normalized store const allPolicies = useAllEntities('policies'); - + // Direct access via queryNormalizer const queryNormalizer = useQueryNormalizer(); const household = queryNormalizer.getObjectById('household-456'); @@ -115,7 +120,7 @@ const SimulationList = () => { const SimulationDetail = ({ simId }) => { // This will use the normalized simulation if already fetched! const simulation = useNormalizedData('simulations', simId); - + // Or fetch if needed (will be normalized) const { data } = useQuery({ queryKey: ['simulation', simId], @@ -134,7 +139,7 @@ import { useManualNormalization } from '@/hooks/utils/normalizedUtils'; function MyComponent() { const { updateEntity } = useManualNormalization(); - + // Manually update a simulation const handleWebSocketUpdate = (updatedSim) => { updateEntity('simulations', updatedSim); @@ -158,7 +163,7 @@ To see normalization in action: ```tsx // In App.tsx, enable dev logging - ``` -This will log when objects are normalized and updated. \ No newline at end of file +This will log when objects are normalized and updated. diff --git a/app/docs/NORMY_USAGE.md b/app/docs/NORMY_USAGE.md index bd0ecfcc9..0793a094d 100644 --- a/app/docs/NORMY_USAGE.md +++ b/app/docs/NORMY_USAGE.md @@ -5,6 +5,7 @@ This project uses `@normy/react-query` to automatically normalize data fetched v ## How It Works `@normy/react-query` automatically normalizes any objects with an `id` field. When data is fetched: + 1. Objects with `id` fields are stored in a normalized cache by their ID 2. If the same object (same ID) is fetched by another query, it's automatically merged 3. Updates to an object in one query automatically update all references to that object @@ -19,10 +20,8 @@ import { QueryNormalizerProvider } from '@normy/react-query'; const queryClient = new QueryClient(); - - {/* Your app */} - - + {/* Your app */} +; ``` ## Usage Examples @@ -44,10 +43,10 @@ import { useQueryNormalizer } from '@normy/react-query'; const MyComponent = () => { const queryNormalizer = useQueryNormalizer(); - + // Get a specific object by ID const user = queryNormalizer.getObjectById('user-123'); - + // Get all objects of a type const allUsers = queryNormalizer.getNormalizedData('users'); }; @@ -93,7 +92,7 @@ const mutation = useMutation({ You can configure the normalization behavior: ```tsx - { const userId = 'current-user-id'; - + const { - data, // Enhanced simulation objects with all relationships - isLoading, // Combined loading state - error, // Combined error state - associations, // Raw association data - getSimulationWithFullContext, // Helper function - getSimulationsByPolicy, // Helper function - getNormalizedPolicy, // Direct cache access + data, // Enhanced simulation objects with all relationships + isLoading, // Combined loading state + error, // Combined error state + associations, // Raw association data + getSimulationWithFullContext, // Helper function + getSimulationsByPolicy, // Helper function + getNormalizedPolicy, // Direct cache access } = useUserSimulations(userId); if (isLoading) return
Loading...
; - + return (
{data.map(({ userSimulation, simulation, policy, household, userPolicy }) => ( @@ -84,17 +87,10 @@ import { useUserSimulationById } from '@/hooks/useUserSimulations'; const SimulationDetail = ({ simulationId }) => { const userId = 'current-user-id'; - - const { - simulation, - policy, - household, - userPolicy, - userHousehold, - isLoading, - error, - } = useUserSimulationById(userId, simulationId); - + + const { simulation, policy, household, userPolicy, userHousehold, isLoading, error } = + useUserSimulationById(userId, simulationId); + // All related data is fetched and normalized }; ``` @@ -107,36 +103,39 @@ graph TD B --> B1[UserSimulation] B --> B2[UserPolicy] B --> B3[UserHousehold] - + B1 --> C[Extract Simulation IDs] C --> D[Fetch Simulations - Parallel] D --> E[Extract Policy & Household IDs] - + E --> F[Fetch Policies - Parallel] E --> G[Fetch Households - Parallel] - + F --> H[@normy/react-query Normalization] G --> H D --> H - + H --> I[Enhanced Results with Full Context] ``` ## Benefits ### 1. Performance + - **Cache First**: Always checks cache before fetching - **Parallel Fetching**: Uses `useQueries` for parallel API calls - **Deduplication**: Same objects are never fetched twice - **Automatic Sharing**: Data is shared across all components ### 2. Developer Experience + - **Type Safety**: Full TypeScript support - **Clean Code**: Follows DRY, CLEAN, SOLID principles - **Reusable Utilities**: Leverages existing adapters and utilities - **Helper Functions**: Provides convenient data access methods ### 3. Data Consistency + - **Automatic Updates**: Mutations update all references - **Single Source of Truth**: Normalized cache ensures consistency - **Relationship Integrity**: Maintains proper entity relationships @@ -145,18 +144,18 @@ graph TD The hook returns an object with: -| Property | Type | Description | -|----------|------|-------------| -| `data` | `EnhancedUserSimulation[]` | Array of simulations with full context | -| `isLoading` | `boolean` | Combined loading state | -| `error` | `Error \| null` | Combined error state | -| `associations` | `object` | Raw association data for simulations, policies, households | -| `getSimulationWithFullContext` | `function` | Get a specific simulation by ID | -| `getSimulationsByPolicy` | `function` | Filter simulations by policy ID | -| `getSimulationsByHousehold` | `function` | Filter simulations by household ID | -| `getNormalizedSimulation` | `function` | Direct access to normalized simulation | -| `getNormalizedPolicy` | `function` | Direct access to normalized policy | -| `getNormalizedHousehold` | `function` | Direct access to normalized household | +| Property | Type | Description | +| ------------------------------ | -------------------------- | ---------------------------------------------------------- | +| `data` | `EnhancedUserSimulation[]` | Array of simulations with full context | +| `isLoading` | `boolean` | Combined loading state | +| `error` | `Error \| null` | Combined error state | +| `associations` | `object` | Raw association data for simulations, policies, households | +| `getSimulationWithFullContext` | `function` | Get a specific simulation by ID | +| `getSimulationsByPolicy` | `function` | Filter simulations by policy ID | +| `getSimulationsByHousehold` | `function` | Filter simulations by household ID | +| `getNormalizedSimulation` | `function` | Direct access to normalized simulation | +| `getNormalizedPolicy` | `function` | Direct access to normalized policy | +| `getNormalizedHousehold` | `function` | Direct access to normalized household | ## Enhanced User Simulation Type @@ -165,15 +164,15 @@ interface EnhancedUserSimulation { // Core associations userSimulation: UserSimulation; simulation?: Simulation; - + // Related entities policy?: Policy; household?: HouseholdMetadata; - + // User associations for related entities userPolicy?: UserPolicy; userHousehold?: any; - + // Status isLoading: boolean; error: Error | null; @@ -183,17 +182,20 @@ interface EnhancedUserSimulation { ## Implementation Details ### Cache Strategy + 1. Check normalized cache via `queryNormalizer.getObjectById()` 2. Check React Query cache via `queryClient.getQueryData()` 3. Fetch from API if not cached 4. Normalize and store in both caches ### Parallel Fetching + - Uses `useParallelQueries` utility for batch operations - Fetches all simulations, policies, and households in parallel - Minimizes waterfall requests ### Error Handling + - Combines errors from all queries - Provides granular error information per entity - Gracefully handles partial failures @@ -217,7 +219,7 @@ import { useSimulationAssociationsByUser } from '@/hooks/useUserSimulationAssoci const SimulationCount = () => { const userId = 'current-user-id'; const { data: associations, isLoading } = useSimulationAssociationsByUser(userId); - + return
You have {associations?.length || 0} simulations
; }; ``` @@ -259,4 +261,4 @@ const SimulationPage = () => { ## Example: Complete Implementation -See `/app/src/hooks/examples/useEnhancedSimulationsExample.tsx` for complete implementation examples of both hooks. \ No newline at end of file +See `/app/src/hooks/examples/useEnhancedSimulationsExample.tsx` for complete implementation examples of both hooks. diff --git a/app/index.html b/app/index.html index 7986c00a6..c4ff4345a 100644 --- a/app/index.html +++ b/app/index.html @@ -1,4 +1,4 @@ - + @@ -8,12 +8,21 @@ content="minimum-scale=1, initial-scale=1, width=device-width, user-scalable=no" /> PolicyEngine - + - - + + @@ -22,8 +31,14 @@ - - + +
diff --git a/app/package-lock.json b/app/package-lock.json index 7eca8daf0..11580d49d 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -147,7 +147,6 @@ "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", @@ -433,6 +432,7 @@ "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", "license": "MIT", + "peer": true, "dependencies": { "commander": "^2.15.1" }, @@ -552,7 +552,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -576,7 +575,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -662,7 +660,6 @@ "integrity": "sha512-0dEVyRLM/lG4gp1R/Ik5bfPl/1wX00xFwd5KcNH602tzBa09oF7pbTKETEhR1GjZ75K6OJnYFu8II2dyMhONMw==", "dev": true, "license": "MPL-2.0", - "peer": true, "dependencies": { "@edge-runtime/primitives": "4.1.0" }, @@ -1222,7 +1219,6 @@ "integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1507,6 +1503,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz", "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -1543,7 +1540,6 @@ "resolved": "https://registry.npmjs.org/@mantine/core/-/core-8.1.2.tgz", "integrity": "sha512-+maX0a1+fxh6Lvnzi0qb0AZsCnnHlIiTE/hFC+dd3eRfUW2PEKJ5/wTpmrX8IGyxa+NS+fXjZD/cU4Yt9xNjdg==", "license": "MIT", - "peer": true, "dependencies": { "@floating-ui/react": "^0.26.28", "clsx": "^2.1.1", @@ -1579,7 +1575,6 @@ "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-8.1.2.tgz", "integrity": "sha512-BrriTsiazqZ2fLuL7UDasNTQJSaoJ7mN2qYVkdsiYI158lxJdUaFWHhd6BDyzK+W6thvBx2D+R/hh1rsWWefdQ==", "license": "MIT", - "peer": true, "peerDependencies": { "react": "^18.x || ^19.x" } @@ -1589,6 +1584,7 @@ "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", "license": "ISC", + "peer": true, "dependencies": { "get-stream": "^6.0.1", "minimist": "^1.2.6" @@ -1601,12 +1597,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "peer": true, "engines": { "node": ">= 0.6" } @@ -1616,6 +1614,7 @@ "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", "license": "BSD-3-Clause", + "peer": true, "peerDependencies": { "mapbox-gl": ">=0.32.1 <2.0.0" } @@ -1646,25 +1645,29 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@mapbox/tiny-sdf": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/@mapbox/unitbezier": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/@mapbox/vector-tile": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@mapbox/point-geometry": "~0.1.0" } @@ -1674,6 +1677,7 @@ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", "license": "ISC", + "peer": true, "engines": { "node": ">=6.0.0" } @@ -1683,6 +1687,7 @@ "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.4.0.tgz", "integrity": "sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==", "license": "ISC", + "peer": true, "dependencies": { "@mapbox/jsonlint-lines-primitives": "~2.0.2", "@mapbox/unitbezier": "^0.0.1", @@ -1702,13 +1707,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/tinyqueue": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -1797,13 +1804,15 @@ "version": "3.8.2", "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.2.tgz", "integrity": "sha512-wvsNmh1GYjyJfyEBPKJLTMzgf2c2bEbSIL50lmqVUi+o1NHaLPi1Lb4v7VxXXJn043BhNyrxUrWI85Q+zmjOVA==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@plotly/d3-sankey": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "d3-array": "1", "d3-collection": "1", @@ -1815,6 +1824,7 @@ "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", "license": "MIT", + "peer": true, "dependencies": { "d3-array": "^1.2.1", "d3-collection": "^1.0.4", @@ -1827,6 +1837,7 @@ "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", "license": "SEE LICENSE IN LICENSE.txt", + "peer": true, "dependencies": { "@mapbox/geojson-rewind": "^0.5.2", "@mapbox/geojson-types": "^1.0.2", @@ -1860,6 +1871,7 @@ "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", "license": "MIT", + "peer": true, "dependencies": { "array-bounds": "^1.0.1", "binary-search-bounds": "^2.0.4", @@ -2502,7 +2514,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.83.1.tgz", "integrity": "sha512-OG69LQgT7jSp+5pPuCfzltq/+7l2xoweggjme9vlbCPa/d7D7zaqv5vN/S82SzSYZ4EDLTxNO1PWrv49RAS64Q==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -2523,7 +2534,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.84.1.tgz", "integrity": "sha512-zo7EUygcWJMQfFNWDSG7CBhy8irje/XY0RDVKKV4IQJAysb+ZJkkJPcnQi+KboyGUgT+SQebRFoTqLuTtfoDLw==", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/query-core": "5.83.1" }, @@ -2558,7 +2568,6 @@ "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -2703,6 +2712,7 @@ "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.2.0.tgz", "integrity": "sha512-zuTTdQ4eoTI9nSSjerIy4QwgvxqwJVciQJ8tOPuMHbXJ9N/dNjI7bU8tasjhxas/Cx3NE9NxVHtNpYHL0FSzoA==", "license": "MIT", + "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/meta": "^7.2.0", @@ -2718,6 +2728,7 @@ "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", "license": "MIT", + "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/meta": "^7.2.0", @@ -2733,6 +2744,7 @@ "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.2.0.tgz", "integrity": "sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==", "license": "MIT", + "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@turf/meta": "^7.2.0", @@ -2748,6 +2760,7 @@ "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.2.0.tgz", "integrity": "sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==", "license": "MIT", + "peer": true, "dependencies": { "@types/geojson": "^7946.0.10", "tslib": "^2.8.1" @@ -2761,6 +2774,7 @@ "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", "license": "MIT", + "peer": true, "dependencies": { "@turf/helpers": "^7.2.0", "@types/geojson": "^7946.0.10" @@ -2859,6 +2873,7 @@ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -2869,6 +2884,7 @@ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -2893,13 +2909,15 @@ "version": "7946.0.16", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/geojson-vt": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", "license": "MIT", + "peer": true, "dependencies": { "@types/geojson": "*" } @@ -2936,19 +2954,22 @@ "version": "3.0.8", "resolved": "https://registry.npmjs.org/@types/less/-/less-3.0.8.tgz", "integrity": "sha512-Gjm4+H9noDJgu5EdT3rUw5MhPBag46fiOy27BefvWkNL8mlZnKnCaVVVTLKj6RYXed9b62CPKnPav9govyQDzA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/mapbox__point-geometry": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/mapbox__vector-tile": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", "license": "MIT", + "peer": true, "dependencies": { "@types/geojson": "*", "@types/mapbox__point-geometry": "*", @@ -2975,7 +2996,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.0.tgz", "integrity": "sha512-B2egV9wALML1JCpv3VQoQ+yesQKAmNMBIAY7OteVrikcOcAkWm+dGL6qpeCktPjAv6N1JLnhbNiqS35UpFyBsQ==", "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -2984,7 +3004,8 @@ "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/plotly.js": { "version": "3.0.2", @@ -2998,7 +3019,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.0.2" } @@ -3009,7 +3029,6 @@ "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.0.0" } @@ -3047,6 +3066,7 @@ "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -3056,6 +3076,7 @@ "resolved": "https://registry.npmjs.org/@types/stylus/-/stylus-0.48.43.tgz", "integrity": "sha512-72dv/zdhuyXWVHUXG2VTPEQdOG+oen95/DNFx2aMFFaY6LoITI6PwEqf5x31JF49kp2w9hvUzkNfTGBIeg61LQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -3065,6 +3086,7 @@ "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", "license": "MIT", + "peer": true, "dependencies": { "@types/geojson": "*" } @@ -3134,7 +3156,6 @@ "integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.36.0", "@typescript-eslint/types": "8.36.0", @@ -3686,6 +3707,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -3695,25 +3717,29 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -3724,13 +3750,15 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -3743,6 +3771,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "license": "MIT", + "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -3752,6 +3781,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } @@ -3760,13 +3790,15 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -3783,6 +3815,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -3796,6 +3829,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -3808,6 +3842,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -3822,6 +3857,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -3831,13 +3867,15 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/abbrev": { "version": "3.0.1", @@ -3853,14 +3891,14 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/acorn": { "version": "8.15.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3883,6 +3921,7 @@ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.13.0" }, @@ -3945,6 +3984,7 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "license": "MIT", + "peer": true, "dependencies": { "ajv": "^8.0.0" }, @@ -3962,6 +4002,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -3977,7 +4018,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/ansi-regex": { "version": "5.0.1", @@ -4031,7 +4073,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", @@ -4055,6 +4098,7 @@ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4087,6 +4131,7 @@ "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", "license": "MIT", + "peer": true, "dependencies": { "array-bounds": "^1.0.0" } @@ -4095,13 +4140,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/array-rearrange": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/array-union": { "version": "2.1.0", @@ -4335,6 +4382,7 @@ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6.0" } @@ -4377,7 +4425,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/bindings": { "version": "1.5.0", @@ -4393,19 +4442,22 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/bitmap-sdf": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", "license": "MIT", + "peer": true, "dependencies": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -4460,7 +4512,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", @@ -4503,7 +4554,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cac": { "version": "6.7.14", @@ -4631,6 +4683,7 @@ "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", "license": "MIT", + "peer": true, "dependencies": { "element-size": "^1.1.1" } @@ -4744,6 +4797,7 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.0" } @@ -4759,7 +4813,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/clsx": { "version": "2.1.1", @@ -4782,6 +4837,7 @@ "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", "license": "MIT", + "peer": true, "dependencies": { "color-parse": "^1.3.8" } @@ -4791,6 +4847,7 @@ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", "license": "MIT", + "peer": true, "dependencies": { "color-name": "^1.0.0" } @@ -4812,6 +4869,7 @@ "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", "license": "MIT", + "peer": true, "dependencies": { "clamp": "^1.0.1" } @@ -4827,6 +4885,7 @@ "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", "license": "MIT", + "peer": true, "dependencies": { "clamp": "^1.0.1", "color-rgba": "^2.1.1", @@ -4838,6 +4897,7 @@ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", "license": "MIT", + "peer": true, "dependencies": { "color-name": "^1.0.0" } @@ -4847,6 +4907,7 @@ "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz", "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==", "license": "MIT", + "peer": true, "dependencies": { "color-parse": "^1.4.2", "color-space": "^2.0.0" @@ -4857,6 +4918,7 @@ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", "license": "MIT", + "peer": true, "dependencies": { "color-name": "^1.0.0" } @@ -4866,6 +4928,7 @@ "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-3.0.0.tgz", "integrity": "sha512-PPwZYkEY3M2THEHHV6Y95sGUie77S7X8v+h1r6LSAPF3/LL2xJ8duUXSrkic31Nzc4odPwHgUbiX/XuTYzQHQg==", "license": "MIT", + "peer": true, "dependencies": { "color-parse": "^2.0.0", "color-space": "^2.0.0" @@ -4875,7 +4938,8 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/color-space/-/color-space-2.3.2.tgz", "integrity": "sha512-BcKnbOEsOarCwyoLstcoEztwT0IJxqqQkNwDuA3a65sICvvHL2yoeV13psoDFh5IuiOMnIOKdQDwB4Mk3BypiA==", - "license": "Unlicense" + "license": "Unlicense", + "peer": true }, "node_modules/colord": { "version": "2.9.3", @@ -4898,7 +4962,8 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -4915,6 +4980,7 @@ "node >= 0.8" ], "license": "MIT", + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -4962,7 +5028,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cosmiconfig": { "version": "9.0.0", @@ -4995,7 +5062,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/create-require": { "version": "1.1.1", @@ -5023,6 +5091,7 @@ "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", "license": "MIT", + "peer": true, "dependencies": { "css-font-size-keywords": "^1.0.0", "css-font-stretch-keywords": "^1.0.1", @@ -5039,25 +5108,29 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-font-stretch-keywords": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-font-style-keywords": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-font-weight-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-functions-list": { "version": "3.2.3", @@ -5073,13 +5146,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "license": "MIT", + "peer": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", @@ -5114,7 +5189,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/css-tree": { "version": "3.1.0", @@ -5141,7 +5217,8 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/cssesc": { "version": "3.0.0", @@ -5180,6 +5257,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "license": "ISC", + "peer": true, "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" @@ -5192,19 +5270,22 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-collection": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-color": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "license": "ISC", + "peer": true, "engines": { "node": ">=12" } @@ -5213,13 +5294,15 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-force": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "d3-collection": "1", "d3-dispatch": "1", @@ -5231,13 +5314,15 @@ "version": "1.4.5", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-geo": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "d3-array": "1" } @@ -5247,6 +5332,7 @@ "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "commander": "2", "d3-array": "1", @@ -5265,13 +5351,15 @@ "version": "1.1.9", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-interpolate": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "license": "ISC", + "peer": true, "dependencies": { "d3-color": "1 - 3" }, @@ -5283,19 +5371,22 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-quadtree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-shape": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "d3-path": "1" } @@ -5304,13 +5395,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/d3-time-format": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "d3-time": "1" } @@ -5319,7 +5412,8 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -5400,8 +5494,7 @@ "version": "1.11.13", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/debug": { "version": "4.4.1", @@ -5517,6 +5610,7 @@ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5534,7 +5628,8 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/detect-libc": { "version": "2.1.2", @@ -5613,6 +5708,7 @@ "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", "license": "MIT", + "peer": true, "dependencies": { "abs-svg-path": "~0.1.1", "normalize-svg-path": "~0.1.0" @@ -5623,6 +5719,7 @@ "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -5646,13 +5743,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "license": "MIT", + "peer": true, "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -5664,7 +5763,8 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/eastasianwidth": { "version": "0.2.0", @@ -5736,13 +5836,15 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/elementary-circuits-directed-graph": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", "license": "MIT", + "peer": true, "dependencies": { "strongly-connected-components": "^1.0.1" } @@ -5758,6 +5860,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", + "peer": true, "dependencies": { "once": "^1.4.0" } @@ -5767,6 +5870,7 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -5996,6 +6100,7 @@ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "hasInstallScript": true, "license": "ISC", + "peer": true, "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -6011,6 +6116,7 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "license": "MIT", + "peer": true, "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -6022,6 +6128,7 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "license": "ISC", + "peer": true, "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" @@ -6035,6 +6142,7 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "license": "ISC", + "peer": true, "dependencies": { "d": "1", "es5-ext": "^0.10.46", @@ -6049,7 +6157,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -6375,6 +6482,7 @@ "resolved": "https://registry.npmjs.org/esbuild-style-plugin/-/esbuild-style-plugin-1.6.3.tgz", "integrity": "sha512-XPEKf4FjLjEVLv/dJH4UxDzXCrFHYpD93DBO8B+izdZARW5b7nNKQbnKv3J+7VDWJbgCU+hzfgIh2AuIZzlmXQ==", "license": "ISC", + "peer": true, "dependencies": { "@types/less": "^3.0.3", "@types/sass": "^1.43.1", @@ -6479,6 +6587,7 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -6501,7 +6610,6 @@ "integrity": "sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -6577,7 +6685,6 @@ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -6618,7 +6725,6 @@ "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -6709,6 +6815,7 @@ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", "license": "ISC", + "peer": true, "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", @@ -6825,6 +6932,7 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "license": "MIT", + "peer": true, "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -6835,6 +6943,7 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.8.x" } @@ -6854,6 +6963,7 @@ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "license": "ISC", + "peer": true, "dependencies": { "type": "^2.7.2" } @@ -6869,6 +6979,7 @@ "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", "license": "MIT", + "peer": true, "dependencies": { "acorn": "^7.1.1", "isarray": "^2.0.1" @@ -6882,6 +6993,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6930,6 +7042,7 @@ "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", "license": "MIT", + "peer": true, "dependencies": { "is-string-blank": "^1.0.1" } @@ -7088,6 +7201,7 @@ "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", "license": "MIT", + "peer": true, "dependencies": { "dtype": "^2.0.0" } @@ -7097,6 +7211,7 @@ "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", "license": "MIT", + "peer": true, "dependencies": { "css-font": "^1.0.0" } @@ -7106,6 +7221,7 @@ "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", "license": "MIT", + "peer": true, "dependencies": { "css-font": "^1.2.0" } @@ -7182,6 +7298,7 @@ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" @@ -7256,6 +7373,7 @@ "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz", "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==", "license": "MIT", + "peer": true, "dependencies": { "loader-utils": "^3.2.0" } @@ -7274,13 +7392,15 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/get-canvas-context": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/get-intrinsic": { "version": "1.3.0", @@ -7335,6 +7455,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -7364,19 +7485,22 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==", - "license": "Zlib" + "license": "Zlib", + "peer": true }, "node_modules/gl-matrix": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/gl-text": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", "license": "MIT", + "peer": true, "dependencies": { "bit-twiddle": "^1.0.2", "color-normalize": "^1.5.0", @@ -7402,6 +7526,7 @@ "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", "license": "MIT", + "peer": true, "dependencies": { "is-browser": "^2.0.1", "is-firefox": "^1.0.3", @@ -7449,7 +7574,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.2", @@ -7586,6 +7712,7 @@ "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", "license": "MIT", + "peer": true, "dependencies": { "glsl-token-inject-block": "^1.0.0", "glsl-token-string": "^1.0.1", @@ -7597,6 +7724,7 @@ "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", "license": "MIT", + "peer": true, "dependencies": { "resolve": "^0.6.1", "xtend": "^2.1.2" @@ -7606,12 +7734,14 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-resolve/node_modules/xtend": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "peer": true, "engines": { "node": ">=0.4" } @@ -7620,13 +7750,15 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-token-defines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", "license": "MIT", + "peer": true, "dependencies": { "glsl-tokenizer": "^2.0.0" } @@ -7635,13 +7767,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-token-descope": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", "license": "MIT", + "peer": true, "dependencies": { "glsl-token-assignments": "^2.0.0", "glsl-token-depth": "^1.1.0", @@ -7653,37 +7787,43 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-token-properties": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-token-scope": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-token-string": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-token-whitespace-trim": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-tokenizer": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", "license": "MIT", + "peer": true, "dependencies": { "through2": "^0.6.3" } @@ -7692,13 +7832,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-tokenizer/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "license": "MIT", + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -7710,13 +7852,15 @@ "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/glsl-tokenizer/node_modules/through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", "license": "MIT", + "peer": true, "dependencies": { "readable-stream": ">=1.0.33-1 <1.1.0-0", "xtend": ">=4.0.0 <4.1.0-0" @@ -7727,6 +7871,7 @@ "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", "license": "MIT", + "peer": true, "dependencies": { "bl": "^2.2.1", "concat-stream": "^1.5.2", @@ -7753,6 +7898,7 @@ "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", "license": "MIT", + "peer": true, "dependencies": { "glsl-inject-defines": "^1.0.1", "glsl-token-defines": "^1.0.0", @@ -7771,6 +7917,7 @@ "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", "license": "ISC", + "peer": true, "dependencies": { "@choojs/findup": "^0.2.0", "events": "^3.2.0", @@ -7812,7 +7959,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/harmony-reflect": { "version": "1.6.2", @@ -7848,6 +7996,7 @@ "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", "license": "MIT", + "peer": true, "dependencies": { "is-browser": "^2.0.1" } @@ -7857,6 +8006,7 @@ "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", "license": "MIT", + "peer": true, "dependencies": { "is-browser": "^2.0.1" } @@ -8372,6 +8522,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "license": "ISC", + "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -8626,7 +8777,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/is-callable": { "version": "1.2.7", @@ -8748,6 +8900,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" }, @@ -8760,6 +8913,7 @@ "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8820,6 +8974,7 @@ "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8841,7 +8996,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/is-negative-zero": { "version": "2.0.3", @@ -8888,6 +9044,7 @@ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8897,6 +9054,7 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8987,13 +9145,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/is-svg-path": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/is-symbol": { "version": "1.1.1", @@ -9138,6 +9298,7 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -9152,6 +9313,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "license": "MIT", + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -9197,7 +9359,6 @@ "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssstyle": "^4.2.1", "data-urls": "^5.0.0", @@ -9287,7 +9448,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json5": { "version": "2.2.3", @@ -9370,7 +9532,8 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/keyv": { "version": "4.5.4", @@ -9444,6 +9607,7 @@ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "license": "MIT", + "peer": true, "engines": { "node": ">=6.11.5" } @@ -9453,6 +9617,7 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "license": "MIT", + "peer": true, "engines": { "node": ">= 12.13.0" } @@ -9484,7 +9649,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -9584,6 +9750,7 @@ "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", "license": "MIT", + "peer": true, "dependencies": { "once": "~1.3.0" } @@ -9593,6 +9760,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", "license": "ISC", + "peer": true, "dependencies": { "wrappy": "1" } @@ -9643,6 +9811,7 @@ "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.7.1.tgz", "integrity": "sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@mapbox/geojson-rewind": "^0.5.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", @@ -9683,31 +9852,36 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/maplibre-gl/node_modules/@mapbox/unitbezier": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/maplibre-gl/node_modules/earcut": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/maplibre-gl/node_modules/geojson-vt": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/maplibre-gl/node_modules/global-prefix": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", "license": "MIT", + "peer": true, "dependencies": { "ini": "^4.1.3", "kind-of": "^6.0.3", @@ -9722,6 +9896,7 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "license": "ISC", + "peer": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -9731,6 +9906,7 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "license": "ISC", + "peer": true, "engines": { "node": ">=16" } @@ -9739,19 +9915,22 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.1.0.tgz", "integrity": "sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/maplibre-gl/node_modules/quickselect": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/maplibre-gl/node_modules/supercluster": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", "license": "ISC", + "peer": true, "dependencies": { "kdbush": "^4.0.2" } @@ -9760,13 +9939,15 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/maplibre-gl/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "license": "ISC", + "peer": true, "dependencies": { "isexe": "^3.1.1" }, @@ -9802,6 +9983,7 @@ "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -10152,7 +10334,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/merge2": { "version": "1.4.1", @@ -10881,6 +11064,7 @@ "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", "license": "MIT", + "peer": true, "dependencies": { "mouse-event": "^1.0.0" } @@ -10889,19 +11073,22 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/mouse-event-offset": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/mouse-wheel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", "license": "MIT", + "peer": true, "dependencies": { "right-now": "^1.0.0", "signum": "^1.0.0", @@ -10928,7 +11115,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/nanoid": { "version": "3.3.11", @@ -10952,7 +11140,8 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/natural-compare": { "version": "1.4.0", @@ -10966,6 +11155,7 @@ "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "license": "MIT", + "peer": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", @@ -10983,6 +11173,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -10992,6 +11183,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -11003,13 +11195,15 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/node-fetch": { "version": "2.6.9", @@ -11105,13 +11299,15 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/number-is-integer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", "license": "MIT", + "peer": true, "dependencies": { "is-finite": "^1.0.1" }, @@ -11238,6 +11434,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "license": "ISC", + "peer": true, "dependencies": { "wrappy": "1" } @@ -11351,7 +11548,8 @@ "version": "3.1.8", "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/parse-entities": { "version": "4.0.2", @@ -11412,6 +11610,7 @@ "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", "license": "MIT", + "peer": true, "dependencies": { "pick-by-alias": "^1.2.0" } @@ -11420,13 +11619,15 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/parse-unit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/parse5": { "version": "7.3.0", @@ -11541,6 +11742,7 @@ "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "ieee754": "^1.1.12", "resolve-protobuf-schema": "^2.1.0" @@ -11553,13 +11755,15 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/pick-by-alias": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/picocolors": { "version": "1.1.1", @@ -11573,7 +11777,6 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -11650,13 +11853,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/polybooljs": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/possible-typed-array-names": { "version": "1.1.0", @@ -11687,7 +11892,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -11752,6 +11956,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-6.0.1.tgz", "integrity": "sha512-zyo2sAkVvuZFFy0gc2+4O+xar5dYlaVy/ebO24KT0ftk/iJevSNyPyQellsBLlnccwh7f6V6Y4GvuKRYToNgpQ==", "license": "MIT", + "peer": true, "dependencies": { "generic-names": "^4.0.0", "icss-utils": "^5.1.0", @@ -11771,6 +11976,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "license": "ISC", + "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11783,6 +11989,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "license": "MIT", + "peer": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -11800,6 +12007,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11813,6 +12021,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "license": "ISC", + "peer": true, "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -11828,6 +12037,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11841,6 +12051,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "license": "ISC", + "peer": true, "dependencies": { "icss-utils": "^5.0.0" }, @@ -11993,7 +12204,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -12011,7 +12223,6 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -12080,6 +12291,7 @@ "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", "license": "MIT", + "peer": true, "dependencies": { "lodash.merge": "^4.6.2", "needle": "^2.5.2", @@ -12100,7 +12312,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/prop-types": { "version": "15.8.1", @@ -12133,7 +12346,8 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/punycode": { "version": "2.3.1", @@ -12170,13 +12384,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "license": "MIT", + "peer": true, "dependencies": { "performance-now": "^2.1.0" } @@ -12186,6 +12402,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "^5.1.0" } @@ -12195,7 +12412,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -12250,7 +12466,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.26.0" }, @@ -12320,7 +12535,6 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", - "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -12495,6 +12709,7 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", + "peer": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -12509,13 +12724,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/recast": { "version": "0.23.11", @@ -12565,8 +12782,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/redux-thunk": { "version": "3.1.0", @@ -12742,13 +12958,15 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/regl-error2d": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", "license": "MIT", + "peer": true, "dependencies": { "array-bounds": "^1.0.1", "color-normalize": "^1.5.0", @@ -12764,6 +12982,7 @@ "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", "license": "MIT", + "peer": true, "dependencies": { "array-bounds": "^1.0.1", "array-find-index": "^1.0.2", @@ -12783,6 +13002,7 @@ "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", "license": "MIT", + "peer": true, "dependencies": { "@plotly/point-cluster": "^3.1.9", "array-range": "^1.0.1", @@ -12806,6 +13026,7 @@ "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", "license": "MIT", + "peer": true, "dependencies": { "color-name": "^1.0.0" } @@ -12815,6 +13036,7 @@ "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.4.0.tgz", "integrity": "sha512-Nti4qbzr/z2LbUWySr7H9dk3Rl7gZt7ihHAxlgT4Ho90EXWkjtkL1avTleu9yeGuqrt/chxTB6GKK8nZZ6V0+Q==", "license": "MIT", + "peer": true, "dependencies": { "color-parse": "^1.4.2", "color-space": "^2.0.0" @@ -12825,6 +13047,7 @@ "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", "license": "MIT", + "peer": true, "dependencies": { "array-bounds": "^1.0.1", "array-range": "^1.0.1", @@ -13002,6 +13225,7 @@ "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", "license": "MIT", + "peer": true, "dependencies": { "protocol-buffers-schema": "^3.3.1" } @@ -13021,7 +13245,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/rollup": { "version": "4.44.2", @@ -13098,7 +13323,8 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/safe-array-concat": { "version": "1.1.3", @@ -13138,7 +13364,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/safe-push-apply": { "version": "1.0.0", @@ -13185,7 +13412,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/saxes": { "version": "6.0.0", @@ -13211,6 +13439,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -13247,6 +13476,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -13258,7 +13488,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/semver": { "version": "7.7.2", @@ -13277,6 +13508,7 @@ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "randombytes": "^2.1.0" } @@ -13340,7 +13572,8 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/shebang-command": { "version": "2.0.0", @@ -13462,7 +13695,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/slash": { "version": "3.0.0", @@ -13515,6 +13749,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "license": "MIT", + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13534,6 +13769,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", + "peer": true, "engines": { "node": "*" } @@ -13550,6 +13786,7 @@ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", "license": "MIT", + "peer": true, "dependencies": { "escodegen": "^2.1.0" } @@ -13581,7 +13818,6 @@ "integrity": "sha512-sVKbCj/OTx67jhmauhxc2dcr1P+yOgz/x3h0krwjyMgdc5Oubvxyg4NYDZmzAw+ym36g/lzH8N0Ccp4dwtdfxw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@storybook/core": "8.6.14" }, @@ -13625,6 +13861,7 @@ "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", "license": "MIT", + "peer": true, "dependencies": { "debug": "2" } @@ -13634,6 +13871,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -13642,19 +13880,22 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/stream-shift": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -13663,19 +13904,22 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", - "license": "CC0-1.0" + "license": "CC0-1.0", + "peer": true }, "node_modules/string-split-by": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", "license": "MIT", + "peer": true, "dependencies": { "parenthesis": "^3.1.5" } @@ -13960,13 +14204,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/style-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", "license": "MIT", + "peer": true, "engines": { "node": ">= 18.12.0" }, @@ -14012,7 +14258,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", @@ -14282,7 +14527,6 @@ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14351,6 +14595,7 @@ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", "license": "ISC", + "peer": true, "dependencies": { "kdbush": "^3.0.0" } @@ -14359,13 +14604,15 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/superscript-text": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/supports-color": { "version": "7.2.0", @@ -14413,13 +14660,15 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/svg-path-bounds": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", "license": "MIT", + "peer": true, "dependencies": { "abs-svg-path": "^0.1.1", "is-svg-path": "^1.0.1", @@ -14432,6 +14681,7 @@ "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", "license": "MIT", + "peer": true, "dependencies": { "svg-arc-to-cubic-bezier": "^3.0.0" } @@ -14441,6 +14691,7 @@ "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", "license": "MIT", + "peer": true, "dependencies": { "bitmap-sdf": "^1.0.0", "draw-svg-path": "^1.0.0", @@ -14549,6 +14800,7 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -14585,6 +14837,7 @@ "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.14.0", @@ -14603,6 +14856,7 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", @@ -14637,6 +14891,7 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "license": "MIT", + "peer": true, "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" @@ -14676,7 +14931,8 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/tinyexec": { "version": "0.3.2", @@ -14716,7 +14972,8 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/tinyrainbow": { "version": "2.0.0", @@ -14762,13 +15019,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/to-px": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", "license": "MIT", + "peer": true, "dependencies": { "parse-unit": "^1.0.1" } @@ -14791,6 +15050,7 @@ "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "license": "ISC", + "peer": true, "dependencies": { "commander": "2" }, @@ -14977,7 +15237,8 @@ "version": "2.7.3", "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/type-check": { "version": "0.4.0", @@ -15086,13 +15347,15 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/typedarray-pool": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", "license": "MIT", + "peer": true, "dependencies": { "bit-twiddle": "^1.0.0", "dup": "^1.0.0" @@ -15104,7 +15367,6 @@ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15119,7 +15381,6 @@ "integrity": "sha512-fTCqxthY+h9QbEgSIBfL9iV6CvKDFuoxg6bHPNpJ9HIUzS+jy2lCEyCmGyZRWEBSaykqcDPf1SJ+BfCI8DRopA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/eslint-plugin": "8.36.0", "@typescript-eslint/parser": "8.36.0", @@ -15335,7 +15596,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/update-browserslist-db": { "version": "1.1.3", @@ -15371,7 +15633,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/uri-js": { "version": "4.4.1", @@ -15555,7 +15818,6 @@ "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", @@ -15746,6 +16008,7 @@ "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", "license": "MIT", + "peer": true, "dependencies": { "@mapbox/point-geometry": "0.1.0", "@mapbox/vector-tile": "^1.3.1", @@ -15770,6 +16033,7 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "license": "MIT", + "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -15782,7 +16046,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==", - "license": "Apache-2.0" + "license": "Apache-2.0", + "peer": true }, "node_modules/web-namespaces": { "version": "2.0.1", @@ -15799,6 +16064,7 @@ "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", "license": "MIT", + "peer": true, "dependencies": { "get-canvas-context": "^1.0.1" } @@ -15867,6 +16133,7 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.13.0" } @@ -15883,6 +16150,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -15896,6 +16164,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "license": "BSD-2-Clause", + "peer": true, "engines": { "node": ">=4.0" } @@ -16082,6 +16351,7 @@ "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.4.tgz", "integrity": "sha512-VGRnLJS+xJmGDPodgJRnGIDwGu0s+Cr9V2HB3EzlDZ5n0qb8h5SJtGUEkjrphZYAglEiXZ6kiXdmk0H/h/uu/w==", "license": "MIT", + "peer": true, "dependencies": { "object-assign": "^4.1.0" } @@ -16169,7 +16439,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/write-file-atomic": { "version": "5.0.1", diff --git a/app/public/assets/posts/uk-mansion-tax/cover.png b/app/public/assets/posts/uk-mansion-tax/cover.png new file mode 100644 index 000000000..0ef145057 Binary files /dev/null and b/app/public/assets/posts/uk-mansion-tax/cover.png differ diff --git a/app/public/assets/posts/uk-mansion-tax/impact_data_1m.json b/app/public/assets/posts/uk-mansion-tax/impact_data_1m.json new file mode 100644 index 000000000..9a78cb0b9 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/impact_data_1m.json @@ -0,0 +1,569 @@ +{ + "Cities of London and Westminster": { "pct": 6.691, "num": 929, "rev": 1858000 }, + "Kensington and Bayswater": { "pct": 5.452, "num": 757, "rev": 1514000 }, + "Chelsea and Fulham": { "pct": 4.163, "num": 578, "rev": 1156000 }, + "Hampstead and Highgate": { "pct": 2.737, "num": 380, "rev": 760000 }, + "Battersea": { "pct": 2.226, "num": 309, "rev": 618000 }, + "Richmond Park": { "pct": 2.024, "num": 281, "rev": 562000 }, + "Islington South and Finsbury": { "pct": 1.743, "num": 242, "rev": 484000 }, + "Hammersmith and Chiswick": { "pct": 1.721, "num": 239, "rev": 478000 }, + "Holborn and St Pancras": { "pct": 1.462, "num": 203, "rev": 406000 }, + "Finchley and Golders Green": { "pct": 1.332, "num": 185, "rev": 370000 }, + "Ealing Central and Acton": { "pct": 1.217, "num": 169, "rev": 338000 }, + "Runnymede and Weybridge": { "pct": 1.21, "num": 168, "rev": 336000 }, + "Wimbledon": { "pct": 1.116, "num": 155, "rev": 310000 }, + "Queen's Park and Maida Vale": { "pct": 1.109, "num": 154, "rev": 308000 }, + "Esher and Walton": { "pct": 1.095, "num": 152, "rev": 304000 }, + "Hornsey and Friern Barnet": { "pct": 1.03, "num": 143, "rev": 286000 }, + "Twickenham": { "pct": 0.965, "num": 134, "rev": 268000 }, + "Windsor": { "pct": 0.936, "num": 130, "rev": 260000 }, + "Putney": { "pct": 0.893, "num": 124, "rev": 248000 }, + "Harpenden and Berkhamsted": { "pct": 0.864, "num": 120, "rev": 240000 }, + "Tooting": { "pct": 0.857, "num": 119, "rev": 238000 }, + "Dulwich and West Norwood": { "pct": 0.821, "num": 114, "rev": 228000 }, + "Chesham and Amersham": { "pct": 0.792, "num": 110, "rev": 220000 }, + "Beaconsfield": { "pct": 0.771, "num": 107, "rev": 214000 }, + "Islington North": { "pct": 0.72, "num": 100, "rev": 200000 }, + "Reigate": { "pct": 0.634, "num": 88, "rev": 176000 }, + "Hackney South and Shoreditch": { "pct": 0.619, "num": 86, "rev": 172000 }, + "Winchester": { "pct": 0.583, "num": 81, "rev": 162000 }, + "Hertsmere": { "pct": 0.576, "num": 80, "rev": 160000 }, + "Sevenoaks": { "pct": 0.569, "num": 79, "rev": 158000 }, + "Guildford": { "pct": 0.569, "num": 79, "rev": 158000 }, + "Maidenhead": { "pct": 0.555, "num": 77, "rev": 154000 }, + "Bath": { "pct": 0.547, "num": 76, "rev": 152000 }, + "South West Hertfordshire": { "pct": 0.54, "num": 75, "rev": 150000 }, + "North Cotswolds": { "pct": 0.526, "num": 73, "rev": 146000 }, + "Clapham and Brixton Hill": { "pct": 0.519, "num": 72, "rev": 144000 }, + "Godalming and Ash": { "pct": 0.504, "num": 70, "rev": 140000 }, + "Hackney North and Stoke Newington": { "pct": 0.49, "num": 68, "rev": 136000 }, + "Oxford West and Abingdon": { "pct": 0.483, "num": 67, "rev": 134000 }, + "Arundel and South Downs": { "pct": 0.483, "num": 67, "rev": 134000 }, + "Tatton": { "pct": 0.483, "num": 67, "rev": 134000 }, + "Poole": { "pct": 0.468, "num": 65, "rev": 130000 }, + "Epping Forest": { "pct": 0.468, "num": 65, "rev": 130000 }, + "Woking": { "pct": 0.439, "num": 61, "rev": 122000 }, + "Henley and Thame": { "pct": 0.425, "num": 59, "rev": 118000 }, + "Chipping Barnet": { "pct": 0.411, "num": 57, "rev": 114000 }, + "St Albans": { "pct": 0.411, "num": 57, "rev": 114000 }, + "Farnham and Bordon": { "pct": 0.411, "num": 57, "rev": 114000 }, + "Hove and Portslade": { "pct": 0.396, "num": 55, "rev": 110000 }, + "Brentwood and Ongar": { "pct": 0.396, "num": 55, "rev": 110000 }, + "Vauxhall and Camberwell Green": { "pct": 0.375, "num": 52, "rev": 104000 }, + "Bermondsey and Old Southwark": { "pct": 0.375, "num": 52, "rev": 104000 }, + "Greenwich and Woolwich": { "pct": 0.353, "num": 49, "rev": 98000 }, + "Dorking and Horley": { "pct": 0.353, "num": 49, "rev": 98000 }, + "Lewisham West and East Dulwich": { "pct": 0.346, "num": 48, "rev": 96000 }, + "Brent East": { "pct": 0.346, "num": 48, "rev": 96000 }, + "Banbury": { "pct": 0.346, "num": 48, "rev": 96000 }, + "Tunbridge Wells": { "pct": 0.339, "num": 47, "rev": 94000 }, + "Hendon": { "pct": 0.331, "num": 46, "rev": 92000 }, + "East Hampshire": { "pct": 0.331, "num": 46, "rev": 92000 }, + "Chichester": { "pct": 0.324, "num": 45, "rev": 90000 }, + "Southgate and Wood Green": { "pct": 0.324, "num": 45, "rev": 90000 }, + "South Cotswolds": { "pct": 0.324, "num": 45, "rev": 90000 }, + "Poplar and Limehouse": { "pct": 0.317, "num": 44, "rev": 88000 }, + "Cambridge": { "pct": 0.317, "num": 44, "rev": 88000 }, + "New Forest East": { "pct": 0.317, "num": 44, "rev": 88000 }, + "Altrincham and Sale West": { "pct": 0.31, "num": 43, "rev": 86000 }, + "Kingston and Surbiton": { "pct": 0.295, "num": 41, "rev": 82000 }, + "Bromley and Biggin Hill": { "pct": 0.295, "num": 41, "rev": 82000 }, + "East Surrey": { "pct": 0.295, "num": 41, "rev": 82000 }, + "Newbury": { "pct": 0.288, "num": 40, "rev": 80000 }, + "Ruislip, Northwood and Pinner": { "pct": 0.288, "num": 40, "rev": 80000 }, + "Wycombe": { "pct": 0.288, "num": 40, "rev": 80000 }, + "Reading Central": { "pct": 0.266, "num": 37, "rev": 74000 }, + "Streatham and Croydon North": { "pct": 0.266, "num": 37, "rev": 74000 }, + "Epsom and Ewell": { "pct": 0.259, "num": 36, "rev": 72000 }, + "East Grinstead and Uckfield": { "pct": 0.259, "num": 36, "rev": 72000 }, + "Reading West and Mid Berkshire": { "pct": 0.259, "num": 36, "rev": 72000 }, + "Eltham and Chislehurst": { "pct": 0.252, "num": 35, "rev": 70000 }, + "North East Hampshire": { "pct": 0.252, "num": 35, "rev": 70000 }, + "Manchester Central": { "pct": 0.252, "num": 35, "rev": 70000 }, + "Leyton and Wanstead": { "pct": 0.252, "num": 35, "rev": 70000 }, + "South Devon": { "pct": 0.245, "num": 34, "rev": 68000 }, + "Mid Buckinghamshire": { "pct": 0.238, "num": 33, "rev": 66000 }, + "New Forest West": { "pct": 0.238, "num": 33, "rev": 66000 }, + "Lewisham North": { "pct": 0.238, "num": 33, "rev": 66000 }, + "Wokingham": { "pct": 0.238, "num": 33, "rev": 66000 }, + "South Cambridgeshire": { "pct": 0.23, "num": 32, "rev": 64000 }, + "Cheltenham": { "pct": 0.23, "num": 32, "rev": 64000 }, + "Bristol Central": { "pct": 0.23, "num": 32, "rev": 64000 }, + "Witney": { "pct": 0.223, "num": 31, "rev": 62000 }, + "North Cornwall": { "pct": 0.223, "num": 31, "rev": 62000 }, + "Mid Sussex": { "pct": 0.223, "num": 31, "rev": 62000 }, + "Romsey and Southampton North": { "pct": 0.223, "num": 31, "rev": 62000 }, + "Welwyn Hatfield": { "pct": 0.223, "num": 31, "rev": 62000 }, + "North West Essex": { "pct": 0.216, "num": 30, "rev": 60000 }, + "Stratford-on-Avon": { "pct": 0.209, "num": 29, "rev": 58000 }, + "Sussex Weald": { "pct": 0.209, "num": 29, "rev": 58000 }, + "Truro and Falmouth": { "pct": 0.209, "num": 29, "rev": 58000 }, + "Ealing Southall": { "pct": 0.202, "num": 28, "rev": 56000 }, + "Meriden and Solihull East": { "pct": 0.202, "num": 28, "rev": 56000 }, + "North East Hertfordshire": { "pct": 0.194, "num": 27, "rev": 54000 }, + "Birmingham Ladywood": { "pct": 0.194, "num": 27, "rev": 54000 }, + "Tonbridge": { "pct": 0.194, "num": 27, "rev": 54000 }, + "Salisbury": { "pct": 0.187, "num": 26, "rev": 52000 }, + "York Central": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Bethnal Green and Stepney": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Harrow East": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Surrey Heath": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Wetherby and Easingwold": { "pct": 0.18, "num": 25, "rev": 50000 }, + "Beckenham and Penge": { "pct": 0.18, "num": 25, "rev": 50000 }, + "North West Hampshire": { "pct": 0.18, "num": 25, "rev": 50000 }, + "Kenilworth and Southam": { "pct": 0.18, "num": 25, "rev": 50000 }, + "Daventry": { "pct": 0.18, "num": 25, "rev": 50000 }, + "South Northamptonshire": { "pct": 0.173, "num": 24, "rev": 48000 }, + "Croydon West": { "pct": 0.173, "num": 24, "rev": 48000 }, + "East Wiltshire": { "pct": 0.173, "num": 24, "rev": 48000 }, + "Frome and East Somerset": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Croydon South": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Didcot and Wantage": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Edmonton and Winchmore Hill": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Exeter": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Horsham": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Harrogate and Knaresborough": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Macclesfield": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Rutland and Stamford": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Cardiff South and Penarth": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Basildon and Billericay": { "pct": 0.151, "num": 21, "rev": 42000 }, + "Peckham": { "pct": 0.151, "num": 21, "rev": 42000 }, + "Canterbury": { "pct": 0.151, "num": 21, "rev": 42000 }, + "Liverpool Riverside": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Tottenham": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Enfield North": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Exmouth and Exeter East": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Watford": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Luton South and South Bedfordshire": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Hitchin": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Hertford and Stortford": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Salford": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Bristol North West": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Bicester and Woodstock": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Chingford and Woodford Green": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Hamble Valley": { "pct": 0.137, "num": 19, "rev": 38000 }, + "North West Norfolk": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Maldon": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Hornchurch and Upminster": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Newcastle upon Tyne Central and West": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Droitwich and Evesham": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Warwick and Leamington": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Orpington": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Stretford and Urmston": { "pct": 0.13, "num": 18, "rev": 36000 }, + "North Somerset": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Tewkesbury": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Bury St Edmunds and Stowmarket": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Sutton and Cheam": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Lewes": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Oxford East": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Westmorland and Lonsdale": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Ely and East Cambridgeshire": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Eastbourne": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Skipton and Ripon": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Sheffield Central": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Hemel Hempstead": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Spelthorne": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Tamworth": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Wells and Mendip Hills": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Bexhill and Battle": { "pct": 0.115, "num": 16, "rev": 32000 }, + "St Austell and Newquay": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Leeds South": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Honiton and Sidmouth": { "pct": 0.108, "num": 15, "rev": 30000 }, + "West Dorset": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Manchester Rusholme": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Knowsley": { "pct": 0.108, "num": 15, "rev": 30000 }, + "South Dorset": { "pct": 0.108, "num": 15, "rev": 30000 }, + "St Ives": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Buckingham and Bletchley": { "pct": 0.108, "num": 15, "rev": 30000 }, + "North Northumberland": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Rushcliffe": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Broxbourne": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Ealing North": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Bromsgrove": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Brighton Pavilion": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Christchurch": { "pct": 0.108, "num": 15, "rev": 30000 }, + "North Devon": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Bournemouth West": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Loughborough": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Chester South and Eddisbury": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Weald of Kent": { "pct": 0.101, "num": 14, "rev": 28000 }, + "South West Norfolk": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Brentford and Isleworth": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Stratford and Bow": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Manchester Withington": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Mid Bedfordshire": { "pct": 0.101, "num": 14, "rev": 28000 }, + "South Suffolk": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Milton Keynes North": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Stourbridge": { "pct": 0.094, "num": 13, "rev": 26000 }, + "West Lancashire": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Braintree": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Leeds Central and Headingley": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Keighley and Ilkley": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Harlow": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Chelmsford": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Suffolk Coastal": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Isle of Wight West": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Isle of Wight East": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Romford": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Worcester": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Stroud": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Thirsk and Malton": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Nottingham South": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Nottingham East": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Melton and Syston": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Sutton Coldfield": { "pct": 0.094, "num": 13, "rev": 26000 }, + "North West Cambridgeshire": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Glastonbury and Somerton": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Melksham and Devizes": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Fylde": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Thornbury and Yate": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Coventry East": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Tiverton and Minehead": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Hexham": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Ashford": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Telford": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Hayes and Harlington": { "pct": 0.086, "num": 12, "rev": 24000 }, + "North Herefordshire": { "pct": 0.086, "num": 12, "rev": 24000 }, + "North Dorset": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Cheadle": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Scarborough and Whitby": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Torbay": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Birmingham Edgbaston": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Lewisham East": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Camborne and Redruth": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Neath and Swansea East": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Thurrock": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Mid Leicestershire": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Newcastle-under-Lyme": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Wirral West": { "pct": 0.079, "num": 11, "rev": 22000 }, + "North Norfolk": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Northampton North": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Leicester South": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Witham": { "pct": 0.079, "num": 11, "rev": 22000 }, + "York Outer": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Aylesbury": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Central Devon": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Harrow West": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Dartford": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Doncaster Central": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Corby and East Northamptonshire": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Gower": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Rugby": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Richmond and Northallerton": { "pct": 0.072, "num": 10, "rev": 20000 }, + "St Neots and Mid Cambridgeshire": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Ribble Valley": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Walthamstow": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Rayleigh and Wickford": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Portsmouth South": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Brecon, Radnor and Cwm Tawe": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Gloucester": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Peterborough": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Bognor Regis and Littlehampton": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Sittingbourne and Sheppey": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Congleton": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Broadland and Fakenham": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Filton and Bradley Stoke": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Bury South": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Hereford and South Herefordshire": { "pct": 0.072, "num": 10, "rev": 20000 }, + "West Worcestershire": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Yeovil": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Mid Dorset and North Poole": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Newcastle upon Tyne North": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Newark": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Wyre Forest": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Huntingdon": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Worthing West": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Earley and Woodley": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Shrewsbury": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Chester North and Neston": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Central Suffolk and North Ipswich": { "pct": 0.065, "num": 9, "rev": 18000 }, + "North West Leicestershire": { "pct": 0.065, "num": 9, "rev": 18000 }, + "North Bedfordshire": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Dover and Deal": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Derbyshire Dales": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Solihull West and Shirley": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Hinckley and Bosworth": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Bracknell": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Southend East and Rochford": { "pct": 0.065, "num": 9, "rev": 18000 }, + "South Ribble": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Brent West": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Stockport": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Gravesham": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Hastings and Rye": { "pct": 0.065, "num": 9, "rev": 18000 }, + "South West Wiltshire": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Ashfield": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Herne Bay and Sandwich": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Widnes and Halewood": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Basingstoke": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bassetlaw": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Oldham West, Chadderton and Royton": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bedford": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Birmingham Erdington": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Worsley and Eccles": { "pct": 0.058, "num": 8, "rev": 16000 }, + "North Shropshire": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Waveney Valley": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Crawley": { "pct": 0.058, "num": 8, "rev": 16000 }, + "South East Cornwall": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Washington and Gateshead South": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Wakefield and Rothwell": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Torridge and Tavistock": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Portsmouth North": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Stafford": { "pct": 0.058, "num": 8, "rev": 16000 }, + "St Helens North": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Rossendale and Darwen": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bristol East": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Southampton Itchen": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Sheffield Hallam": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bristol South": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Milton Keynes Central": { "pct": 0.058, "num": 8, "rev": 16000 }, + "South West Devon": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Monmouthshire": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Rochester and Strood": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Aberafan Maesteg": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Heywood and Middleton North": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Maidstone and Malling": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Llanelli": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Mid Norfolk": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Feltham and Heston": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Lichfield": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Harborough, Oadby and Wigston": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Mansfield": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Stevenage": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Plymouth Sutton and Devonport": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Brighton Kemptown and Peacehaven": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Southampton Test": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Broxtowe": { "pct": 0.05, "num": 7, "rev": 14000 }, + "South Leicestershire": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Cardiff West": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Sheffield South East": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Swindon South": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Redditch": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Clwyd North": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Penrith and Solway": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Makerfield": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Bradford South": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Pontefract, Castleford and Knottingley": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Bolsover": { "pct": 0.05, "num": 7, "rev": 14000 }, + "East Thanet": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Mid and South Pembrokeshire": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Wrexham": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Mid Derbyshire": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Normanton and Hemsworth": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Newport East": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Ilford North": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Wolverhampton West": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Dunstable and Leighton Buzzard": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Ilford South": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Kingswinford and South Staffordshire": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Carlisle": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Sefton Central": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Cardiff North": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Chippenham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Runcorn and Helsby": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Barking": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Clacton": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Wythenshawe and Sale East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Sheffield Heeley": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Slough": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Lincoln": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leicester West": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Halesowen": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Bridgwater": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Birmingham Selly Oak": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leeds North East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Uxbridge and South Ruislip": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Grantham and Bourne": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Vale of Glamorgan": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Sleaford and North Hykeham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Warrington South": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Burton and Uttoxeter": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Bury North": { "pct": 0.043, "num": 6, "rev": 12000 }, + "South Basildon and East Thurrock": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Wigan": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Bradford East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leeds North West": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Middlesbrough and Thornaby East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Gorton and Denton": { "pct": 0.043, "num": 6, "rev": 12000 }, + "North East Somerset and Hanham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "East Worthing and Shoreham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Erith and Thamesmead": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Derby North": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Derby South": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Nuneaton": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Pendle and Clitheroe": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leeds East": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Caerfyrddin": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Havant": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Harwich and North Essex": { "pct": 0.036, "num": 5, "rev": 10000 }, + "West Suffolk": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Sheffield Brightside and Hillsborough": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Birkenhead": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Nottingham North and Kimberley": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Wellingborough and Rushden": { "pct": 0.036, "num": 5, "rev": 10000 }, + "North East Derbyshire": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Walsall and Bloxwich": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Tynemouth": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Swindon North": { "pct": 0.036, "num": 5, "rev": 10000 }, + "South Derbyshire": { "pct": 0.036, "num": 5, "rev": 10000 }, + "South Shropshire": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Old Bexley and Sidcup": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Stoke-on-Trent South": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Taunton and Wellington": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Stoke-on-Trent Central": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Doncaster East and the Isle of Axholme": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Bournemouth East": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Leicester East": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Halifax": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Lancaster and Wyre": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Preston": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Chorley": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Bangor Aberconwy": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Chatham and Aylesford": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Carshalton and Wallington": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Morecambe and Lunesdale": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Mitcham and Morden": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Rochdale": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Louth and Horncastle": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Ynys M\u00f4n": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Alyn and Deeside": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Folkestone and Hythe": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Huddersfield": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Easington": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bristol North East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Southport": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Doncaster North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Forest of Dean": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bolton South and Walkden": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Rhondda and Ogmore": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Kingston upon Hull West and Haltemprice": { "pct": 0.029, "num": 4, "rev": 8000 }, + "St Helens South and Whiston": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bolton West": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Amber Valley": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Staffordshire Moorlands": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Merthyr Tydfil and Aberdare": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Boston and Skegness": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Stoke-on-Trent North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Stone, Great Wyrley and Penkridge": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Sunderland Central": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bradford West": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Darlington": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Wolverhampton South East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Newport West and Islwyn": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Luton North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Hartlepool": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Newcastle upon Tyne East and Wallsend": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Kettering": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Gillingham and Rainham": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Jarrow and Gateshead East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Warrington North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Smethwick": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Eastleigh": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Faversham and Mid Kent": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Dwyfor Meirionnydd": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bishop Auckland": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Croydon East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Blackburn": { "pct": 0.029, "num": 4, "rev": 8000 }, + "South Holland and The Deepings": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Kingston upon Hull North and Cottingham": { "pct": 0.029, "num": 4, "rev": 8000 }, + "South Norfolk": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Burnley": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Weston-super-Mare": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Hazel Grove": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Barnsley North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "West Ham and Beckton": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Ipswich": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Erewash": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Torfaen": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Swansea West": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Birmingham Hodge Hill and Solihull North": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Houghton and Sunderland South": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Blaenau Gwent and Rhymney": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Newton Abbot": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Blaydon and Consett": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Tipton and Wednesbury": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Whitehaven and Workington": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Plymouth Moor View": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Caerphilly": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Colne Valley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Cardiff East": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Dagenham and Rainham": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Aldershot": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Oldham East and Saddleworth": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Ossett and Denby Dale": { "pct": 0.022, "num": 3, "rev": 6000 }, + "North Warwickshire and Bedworth": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Goole and Pocklington": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Rother Valley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Coventry South": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Sherwood Forest": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Scunthorpe": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Chesterfield": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Leeds South West and Morley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Shipley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Rawmarsh and Conisbrough": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Bridlington and The Wolds": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Stalybridge and Hyde": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Northampton South": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Colchester": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Gainsborough": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Penistone and Stocksbridge": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Dewsbury and Batley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Liverpool Garston": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Crewe and Nantwich": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Birmingham Hall Green and Moseley": { "pct": 0.014, "num": 2, "rev": 4000 }, + "West Bromwich": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Calder Valley": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Bridgend": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Liverpool Wavertree": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Norwich South": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Barrow and Furness": { "pct": 0.014, "num": 2, "rev": 4000 }, + "High Peak": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Lowestoft": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Gedling": { "pct": 0.014, "num": 2, "rev": 4000 }, + "East Ham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "City of Durham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Clwyd East": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Rotherham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Birmingham Northfield": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Leigh and Atherton": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Ellesmere Port and Bromborough": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blyth and Ashington": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Norwich North": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blackpool South": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blackpool North and Fleetwood": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blackley and Middleton South": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Bolton North East": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Fareham and Waterlooville": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Spen Valley": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Southend West and Leigh": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Brigg and Immingham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Bootle": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Cramlington and Killingworth": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Great Yarmouth": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Kingston upon Hull East": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Stockton North": { "pct": 0.014, "num": 2, "rev": 4000 }, + "North Durham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "The Wrekin": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Gateshead Central and Whickham": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Hyndburn": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Redcar": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Leeds West and Pudsey": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Wolverhampton North East": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Ashton-under-Lyne": { "pct": 0.007, "num": 1, "rev": 2000 }, + "North East Cambridgeshire": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Ceredigion Preseli": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Barnsley South": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Gosport": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Middlesbrough South and East Cleveland": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Birmingham Yardley": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Coventry North West": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Selby": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Cannock Chase": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Beverley and Holderness": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Bexleyheath and Crayford": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Newton Aycliffe and Spennymoor": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Liverpool Walton": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Birmingham Perry Barr": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Dudley": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Wallasey": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Stockton West": { "pct": 0.007, "num": 1, "rev": 2000 } +} diff --git a/app/public/assets/posts/uk-mansion-tax/impact_data_2m.json b/app/public/assets/posts/uk-mansion-tax/impact_data_2m.json new file mode 100644 index 000000000..439b05066 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/impact_data_2m.json @@ -0,0 +1,569 @@ +{ + "Cities of London and Westminster": { "pct": 9.453, "num": 742, "rev": 1484000 }, + "Kensington and Bayswater": { "pct": 7.045, "num": 553, "rev": 1106000 }, + "Chelsea and Fulham": { "pct": 4.638, "num": 364, "rev": 728000 }, + "Hampstead and Highgate": { "pct": 3.019, "num": 237, "rev": 474000 }, + "Battersea": { "pct": 1.669, "num": 131, "rev": 262000 }, + "Richmond Park": { "pct": 1.873, "num": 147, "rev": 294000 }, + "Islington South and Finsbury": { "pct": 1.745, "num": 137, "rev": 274000 }, + "Hammersmith and Chiswick": { "pct": 1.567, "num": 123, "rev": 246000 }, + "Holborn and St Pancras": { "pct": 1.72, "num": 135, "rev": 270000 }, + "Finchley and Golders Green": { "pct": 1.363, "num": 107, "rev": 214000 }, + "Ealing Central and Acton": { "pct": 0.956, "num": 75, "rev": 150000 }, + "Runnymede and Weybridge": { "pct": 1.249, "num": 98, "rev": 196000 }, + "Wimbledon": { "pct": 1.121, "num": 88, "rev": 176000 }, + "Queen's Park and Maida Vale": { "pct": 1.096, "num": 86, "rev": 172000 }, + "Esher and Walton": { "pct": 0.956, "num": 75, "rev": 150000 }, + "Hornsey and Friern Barnet": { "pct": 0.612, "num": 48, "rev": 96000 }, + "Twickenham": { "pct": 0.675, "num": 53, "rev": 106000 }, + "Windsor": { "pct": 1.006, "num": 79, "rev": 158000 }, + "Putney": { "pct": 0.573, "num": 45, "rev": 90000 }, + "Harpenden and Berkhamsted": { "pct": 0.701, "num": 55, "rev": 110000 }, + "Tooting": { "pct": 0.701, "num": 55, "rev": 110000 }, + "Dulwich and West Norwood": { "pct": 0.624, "num": 49, "rev": 98000 }, + "Chesham and Amersham": { "pct": 0.688, "num": 54, "rev": 108000 }, + "Beaconsfield": { "pct": 0.624, "num": 49, "rev": 98000 }, + "Islington North": { "pct": 0.51, "num": 40, "rev": 80000 }, + "Reigate": { "pct": 0.395, "num": 31, "rev": 62000 }, + "Hackney South and Shoreditch": { "pct": 0.586, "num": 46, "rev": 92000 }, + "Winchester": { "pct": 0.408, "num": 32, "rev": 64000 }, + "Hertsmere": { "pct": 0.561, "num": 44, "rev": 88000 }, + "Sevenoaks": { "pct": 0.395, "num": 31, "rev": 62000 }, + "Guildford": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Maidenhead": { "pct": 0.535, "num": 42, "rev": 84000 }, + "Bath": { "pct": 0.446, "num": 35, "rev": 70000 }, + "South West Hertfordshire": { "pct": 0.484, "num": 38, "rev": 76000 }, + "North Cotswolds": { "pct": 0.484, "num": 38, "rev": 76000 }, + "Clapham and Brixton Hill": { "pct": 0.382, "num": 30, "rev": 60000 }, + "Godalming and Ash": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Hackney North and Stoke Newington": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Oxford West and Abingdon": { "pct": 0.497, "num": 39, "rev": 78000 }, + "Arundel and South Downs": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Tatton": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Poole": { "pct": 0.408, "num": 32, "rev": 64000 }, + "Epping Forest": { "pct": 0.433, "num": 34, "rev": 68000 }, + "Woking": { "pct": 0.344, "num": 27, "rev": 54000 }, + "Henley and Thame": { "pct": 0.382, "num": 30, "rev": 60000 }, + "Chipping Barnet": { "pct": 0.319, "num": 25, "rev": 50000 }, + "St Albans": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Farnham and Bordon": { "pct": 0.357, "num": 28, "rev": 56000 }, + "Hove and Portslade": { "pct": 0.28, "num": 22, "rev": 44000 }, + "Brentwood and Ongar": { "pct": 0.344, "num": 27, "rev": 54000 }, + "Vauxhall and Camberwell Green": { "pct": 0.408, "num": 32, "rev": 64000 }, + "Bermondsey and Old Southwark": { "pct": 0.459, "num": 36, "rev": 72000 }, + "Greenwich and Woolwich": { "pct": 0.357, "num": 28, "rev": 56000 }, + "Dorking and Horley": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Lewisham West and East Dulwich": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Brent East": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Banbury": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Tunbridge Wells": { "pct": 0.242, "num": 19, "rev": 38000 }, + "Hendon": { "pct": 0.268, "num": 21, "rev": 42000 }, + "East Hampshire": { "pct": 0.319, "num": 25, "rev": 50000 }, + "Chichester": { "pct": 0.306, "num": 24, "rev": 48000 }, + "Southgate and Wood Green": { "pct": 0.293, "num": 23, "rev": 46000 }, + "South Cotswolds": { "pct": 0.28, "num": 22, "rev": 44000 }, + "Poplar and Limehouse": { "pct": 0.306, "num": 24, "rev": 48000 }, + "Cambridge": { "pct": 0.306, "num": 24, "rev": 48000 }, + "New Forest East": { "pct": 0.319, "num": 25, "rev": 50000 }, + "Altrincham and Sale West": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Kingston and Surbiton": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Bromley and Biggin Hill": { "pct": 0.331, "num": 26, "rev": 52000 }, + "East Surrey": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Newbury": { "pct": 0.331, "num": 26, "rev": 52000 }, + "Ruislip, Northwood and Pinner": { "pct": 0.191, "num": 15, "rev": 30000 }, + "Wycombe": { "pct": 0.331, "num": 26, "rev": 52000 }, + "Reading Central": { "pct": 0.357, "num": 28, "rev": 56000 }, + "Streatham and Croydon North": { "pct": 0.255, "num": 20, "rev": 40000 }, + "Epsom and Ewell": { "pct": 0.204, "num": 16, "rev": 32000 }, + "East Grinstead and Uckfield": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Reading West and Mid Berkshire": { "pct": 0.28, "num": 22, "rev": 44000 }, + "Eltham and Chislehurst": { "pct": 0.127, "num": 10, "rev": 20000 }, + "North East Hampshire": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Manchester Central": { "pct": 0.395, "num": 31, "rev": 62000 }, + "Leyton and Wanstead": { "pct": 0.217, "num": 17, "rev": 34000 }, + "South Devon": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Mid Buckinghamshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "New Forest West": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Lewisham North": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Wokingham": { "pct": 0.178, "num": 14, "rev": 28000 }, + "South Cambridgeshire": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Cheltenham": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Bristol Central": { "pct": 0.293, "num": 23, "rev": 46000 }, + "Witney": { "pct": 0.217, "num": 17, "rev": 34000 }, + "North Cornwall": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Mid Sussex": { "pct": 0.191, "num": 15, "rev": 30000 }, + "Romsey and Southampton North": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Welwyn Hatfield": { "pct": 0.217, "num": 17, "rev": 34000 }, + "North West Essex": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Stratford-on-Avon": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Sussex Weald": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Truro and Falmouth": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Ealing Southall": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Meriden and Solihull East": { "pct": 0.178, "num": 14, "rev": 28000 }, + "North East Hertfordshire": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Birmingham Ladywood": { "pct": 0.306, "num": 24, "rev": 48000 }, + "Tonbridge": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Salisbury": { "pct": 0.153, "num": 12, "rev": 24000 }, + "York Central": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Bethnal Green and Stepney": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Harrow East": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Surrey Heath": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Wetherby and Easingwold": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Beckenham and Penge": { "pct": 0.127, "num": 10, "rev": 20000 }, + "North West Hampshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Kenilworth and Southam": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Daventry": { "pct": 0.204, "num": 16, "rev": 32000 }, + "South Northamptonshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Croydon West": { "pct": 0.191, "num": 15, "rev": 30000 }, + "East Wiltshire": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Frome and East Somerset": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Croydon South": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Didcot and Wantage": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Edmonton and Winchmore Hill": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Exeter": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Horsham": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Harrogate and Knaresborough": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Macclesfield": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Rutland and Stamford": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Cardiff South and Penarth": { "pct": 0.242, "num": 19, "rev": 38000 }, + "Basildon and Billericay": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Peckham": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Canterbury": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Liverpool Riverside": { "pct": 0.191, "num": 15, "rev": 30000 }, + "Tottenham": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Enfield North": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Exmouth and Exeter East": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Watford": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Luton South and South Bedfordshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Hitchin": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Hertford and Stortford": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Salford": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Bristol North West": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bicester and Woodstock": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Chingford and Woodford Green": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Hamble Valley": { "pct": 0.127, "num": 10, "rev": 20000 }, + "North West Norfolk": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Maldon": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Hornchurch and Upminster": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Newcastle upon Tyne Central and West": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Droitwich and Evesham": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Warwick and Leamington": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Orpington": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Stretford and Urmston": { "pct": 0.178, "num": 14, "rev": 28000 }, + "North Somerset": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Tewkesbury": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bury St Edmunds and Stowmarket": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Sutton and Cheam": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Lewes": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Oxford East": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Westmorland and Lonsdale": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Ely and East Cambridgeshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Eastbourne": { "pct": 0.178, "num": 14, "rev": 28000 }, + "Skipton and Ripon": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Sheffield Central": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Hemel Hempstead": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Spelthorne": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Tamworth": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Wells and Mendip Hills": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bexhill and Battle": { "pct": 0.127, "num": 10, "rev": 20000 }, + "St Austell and Newquay": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Leeds South": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Honiton and Sidmouth": { "pct": 0.051, "num": 4, "rev": 8000 }, + "West Dorset": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Manchester Rusholme": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Knowsley": { "pct": 0.178, "num": 14, "rev": 28000 }, + "South Dorset": { "pct": 0.076, "num": 6, "rev": 12000 }, + "St Ives": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Buckingham and Bletchley": { "pct": 0.089, "num": 7, "rev": 14000 }, + "North Northumberland": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Rushcliffe": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Broxbourne": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Ealing North": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bromsgrove": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Brighton Pavilion": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Christchurch": { "pct": 0.064, "num": 5, "rev": 10000 }, + "North Devon": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bournemouth West": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Loughborough": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Chester South and Eddisbury": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Weald of Kent": { "pct": 0.089, "num": 7, "rev": 14000 }, + "South West Norfolk": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Brentford and Isleworth": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Stratford and Bow": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Manchester Withington": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Mid Bedfordshire": { "pct": 0.14, "num": 11, "rev": 22000 }, + "South Suffolk": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Milton Keynes North": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Stourbridge": { "pct": 0.115, "num": 9, "rev": 18000 }, + "West Lancashire": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Braintree": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Leeds Central and Headingley": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Keighley and Ilkley": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Harlow": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Chelmsford": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Suffolk Coastal": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Isle of Wight West": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Isle of Wight East": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Romford": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Worcester": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Stroud": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Thirsk and Malton": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Nottingham South": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Nottingham East": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Melton and Syston": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Sutton Coldfield": { "pct": 0.051, "num": 4, "rev": 8000 }, + "North West Cambridgeshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Glastonbury and Somerton": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Melksham and Devizes": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Fylde": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Thornbury and Yate": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Coventry East": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Tiverton and Minehead": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Hexham": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Ashford": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Telford": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Hayes and Harlington": { "pct": 0.14, "num": 11, "rev": 22000 }, + "North Herefordshire": { "pct": 0.115, "num": 9, "rev": 18000 }, + "North Dorset": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Cheadle": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Scarborough and Whitby": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Torbay": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Birmingham Edgbaston": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Lewisham East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Camborne and Redruth": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Neath and Swansea East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Thurrock": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Mid Leicestershire": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Newcastle-under-Lyme": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Wirral West": { "pct": 0.102, "num": 8, "rev": 16000 }, + "North Norfolk": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Northampton North": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Leicester South": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Witham": { "pct": 0.051, "num": 4, "rev": 8000 }, + "York Outer": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Aylesbury": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Central Devon": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Harrow West": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Dartford": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Doncaster Central": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Corby and East Northamptonshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Gower": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Rugby": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Richmond and Northallerton": { "pct": 0.038, "num": 3, "rev": 6000 }, + "St Neots and Mid Cambridgeshire": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Ribble Valley": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Walthamstow": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Rayleigh and Wickford": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Portsmouth South": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Brecon, Radnor and Cwm Tawe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Gloucester": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Peterborough": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bognor Regis and Littlehampton": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Sittingbourne and Sheppey": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Congleton": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Broadland and Fakenham": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Filton and Bradley Stoke": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bury South": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Hereford and South Herefordshire": { "pct": 0.089, "num": 7, "rev": 14000 }, + "West Worcestershire": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Yeovil": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Mid Dorset and North Poole": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Newcastle upon Tyne North": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Newark": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Wyre Forest": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Huntingdon": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Worthing West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Earley and Woodley": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Shrewsbury": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Chester North and Neston": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Central Suffolk and North Ipswich": { "pct": 0.102, "num": 8, "rev": 16000 }, + "North West Leicestershire": { "pct": 0.051, "num": 4, "rev": 8000 }, + "North Bedfordshire": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Dover and Deal": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Derbyshire Dales": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Solihull West and Shirley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Hinckley and Bosworth": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Bracknell": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Southend East and Rochford": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Ribble": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Brent West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Stockport": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Gravesham": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Hastings and Rye": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South West Wiltshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Ashfield": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Herne Bay and Sandwich": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Widnes and Halewood": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Basingstoke": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bassetlaw": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Oldham West, Chadderton and Royton": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Bedford": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Birmingham Erdington": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Worsley and Eccles": { "pct": 0.076, "num": 6, "rev": 12000 }, + "North Shropshire": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Waveney Valley": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Crawley": { "pct": 0.089, "num": 7, "rev": 14000 }, + "South East Cornwall": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Washington and Gateshead South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Wakefield and Rothwell": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Torridge and Tavistock": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Portsmouth North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Stafford": { "pct": 0.051, "num": 4, "rev": 8000 }, + "St Helens North": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Rossendale and Darwen": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bristol East": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Southampton Itchen": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Sheffield Hallam": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bristol South": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Milton Keynes Central": { "pct": 0.064, "num": 5, "rev": 10000 }, + "South West Devon": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Monmouthshire": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Rochester and Strood": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Aberafan Maesteg": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Heywood and Middleton North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Maidstone and Malling": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Llanelli": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Mid Norfolk": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Feltham and Heston": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Lichfield": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Harborough, Oadby and Wigston": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Mansfield": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Stevenage": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Plymouth Sutton and Devonport": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Brighton Kemptown and Peacehaven": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Southampton Test": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Broxtowe": { "pct": 0.051, "num": 4, "rev": 8000 }, + "South Leicestershire": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Cardiff West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Sheffield South East": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Swindon South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Redditch": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Clwyd North": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Penrith and Solway": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Makerfield": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bradford South": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Pontefract, Castleford and Knottingley": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bolsover": { "pct": 0.089, "num": 7, "rev": 14000 }, + "East Thanet": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Mid and South Pembrokeshire": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Wrexham": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Mid Derbyshire": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Normanton and Hemsworth": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Newport East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Ilford North": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Wolverhampton West": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Dunstable and Leighton Buzzard": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Ilford South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Kingswinford and South Staffordshire": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Carlisle": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Sefton Central": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Cardiff North": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Chippenham": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Runcorn and Helsby": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Barking": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Clacton": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Wythenshawe and Sale East": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Sheffield Heeley": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Slough": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Lincoln": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Leicester West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Halesowen": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bridgwater": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Birmingham Selly Oak": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Leeds North East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Uxbridge and South Ruislip": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Grantham and Bourne": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Vale of Glamorgan": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sleaford and North Hykeham": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Warrington South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Burton and Uttoxeter": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Bury North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Basildon and East Thurrock": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Wigan": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bradford East": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Leeds North West": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Middlesbrough and Thornaby East": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Gorton and Denton": { "pct": 0.064, "num": 5, "rev": 10000 }, + "North East Somerset and Hanham": { "pct": 0.025, "num": 2, "rev": 4000 }, + "East Worthing and Shoreham": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Erith and Thamesmead": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Derby North": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Derby South": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Nuneaton": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Pendle and Clitheroe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Leeds East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Caerfyrddin": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Havant": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Harwich and North Essex": { "pct": 0.025, "num": 2, "rev": 4000 }, + "West Suffolk": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sheffield Brightside and Hillsborough": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Birkenhead": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Nottingham North and Kimberley": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Wellingborough and Rushden": { "pct": 0.051, "num": 4, "rev": 8000 }, + "North East Derbyshire": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Walsall and Bloxwich": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Tynemouth": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Swindon North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "South Derbyshire": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Shropshire": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Old Bexley and Sidcup": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Stoke-on-Trent South": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Taunton and Wellington": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stoke-on-Trent Central": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Doncaster East and the Isle of Axholme": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bournemouth East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Leicester East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Halifax": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Lancaster and Wyre": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Preston": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Chorley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bangor Aberconwy": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Chatham and Aylesford": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Carshalton and Wallington": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Morecambe and Lunesdale": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Mitcham and Morden": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Rochdale": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Louth and Horncastle": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Ynys M\u00f4n": { "pct": 0.0, "num": 0, "rev": 0 }, + "Alyn and Deeside": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Folkestone and Hythe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Huddersfield": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Easington": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Bristol North East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Southport": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Doncaster North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Forest of Dean": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bolton South and Walkden": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Rhondda and Ogmore": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Kingston upon Hull West and Haltemprice": { "pct": 0.038, "num": 3, "rev": 6000 }, + "St Helens South and Whiston": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bolton West": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Amber Valley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Staffordshire Moorlands": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Merthyr Tydfil and Aberdare": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Boston and Skegness": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stoke-on-Trent North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stone, Great Wyrley and Penkridge": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sunderland Central": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bradford West": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Darlington": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Wolverhampton South East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Newport West and Islwyn": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Luton North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Hartlepool": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Newcastle upon Tyne East and Wallsend": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Kettering": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Gillingham and Rainham": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Jarrow and Gateshead East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Warrington North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Smethwick": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Eastleigh": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Faversham and Mid Kent": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Dwyfor Meirionnydd": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bishop Auckland": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Croydon East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Blackburn": { "pct": 0.025, "num": 2, "rev": 4000 }, + "South Holland and The Deepings": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Kingston upon Hull North and Cottingham": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Norfolk": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Burnley": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Weston-super-Mare": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Hazel Grove": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Barnsley North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "West Ham and Beckton": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Ipswich": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Erewash": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Torfaen": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Swansea West": { "pct": 0.0, "num": 0, "rev": 0 }, + "Birmingham Hodge Hill and Solihull North": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Houghton and Sunderland South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blaenau Gwent and Rhymney": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Newton Abbot": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Blaydon and Consett": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Tipton and Wednesbury": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Whitehaven and Workington": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Plymouth Moor View": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Caerphilly": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Colne Valley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Cardiff East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Dagenham and Rainham": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Aldershot": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Oldham East and Saddleworth": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Ossett and Denby Dale": { "pct": 0.038, "num": 3, "rev": 6000 }, + "North Warwickshire and Bedworth": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Goole and Pocklington": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Rother Valley": { "pct": 0.0, "num": 0, "rev": 0 }, + "Coventry South": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sherwood Forest": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Scunthorpe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Chesterfield": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Leeds South West and Morley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Shipley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Rawmarsh and Conisbrough": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bridlington and The Wolds": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stalybridge and Hyde": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Northampton South": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Colchester": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Gainsborough": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Penistone and Stocksbridge": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Dewsbury and Batley": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Liverpool Garston": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Crewe and Nantwich": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Birmingham Hall Green and Moseley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "West Bromwich": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Calder Valley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bridgend": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Liverpool Wavertree": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Norwich South": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Barrow and Furness": { "pct": 0.0, "num": 0, "rev": 0 }, + "High Peak": { "pct": 0.0, "num": 0, "rev": 0 }, + "Lowestoft": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Gedling": { "pct": 0.013, "num": 1, "rev": 2000 }, + "East Ham": { "pct": 0.0, "num": 0, "rev": 0 }, + "City of Durham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Clwyd East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Rotherham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Birmingham Northfield": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Leigh and Atherton": { "pct": 0.0, "num": 0, "rev": 0 }, + "Ellesmere Port and Bromborough": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blyth and Ashington": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Norwich North": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blackpool South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blackpool North and Fleetwood": { "pct": 0.0, "num": 0, "rev": 0 }, + "Blackley and Middleton South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bolton North East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Fareham and Waterlooville": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Spen Valley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Southend West and Leigh": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Brigg and Immingham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bootle": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Cramlington and Killingworth": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Great Yarmouth": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Kingston upon Hull East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Stockton North": { "pct": 0.013, "num": 1, "rev": 2000 }, + "North Durham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "The Wrekin": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Gateshead Central and Whickham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Hyndburn": { "pct": 0.0, "num": 0, "rev": 0 }, + "Redcar": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Leeds West and Pudsey": { "pct": 0.0, "num": 0, "rev": 0 }, + "Wolverhampton North East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Ashton-under-Lyne": { "pct": 0.013, "num": 1, "rev": 2000 }, + "North East Cambridgeshire": { "pct": 0.0, "num": 0, "rev": 0 }, + "Ceredigion Preseli": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Barnsley South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Gosport": { "pct": 0.0, "num": 0, "rev": 0 }, + "Middlesbrough South and East Cleveland": { "pct": 0.0, "num": 0, "rev": 0 }, + "Birmingham Yardley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Coventry North West": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Selby": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Cannock Chase": { "pct": 0.0, "num": 0, "rev": 0 }, + "Beverley and Holderness": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bexleyheath and Crayford": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Newton Aycliffe and Spennymoor": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Liverpool Walton": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Birmingham Perry Barr": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Dudley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Wallasey": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Stockton West": { "pct": 0.013, "num": 1, "rev": 2000 } +} diff --git a/app/public/assets/posts/uk-mansion-tax/impact_data_combined.json b/app/public/assets/posts/uk-mansion-tax/impact_data_combined.json new file mode 100644 index 000000000..f0b6f6d52 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/impact_data_combined.json @@ -0,0 +1,1140 @@ +{ + "1.5m": { + "Cities of London and Westminster": { "pct": 6.691, "num": 929, "rev": 1858000 }, + "Kensington and Bayswater": { "pct": 5.452, "num": 757, "rev": 1514000 }, + "Chelsea and Fulham": { "pct": 4.163, "num": 578, "rev": 1156000 }, + "Hampstead and Highgate": { "pct": 2.737, "num": 380, "rev": 760000 }, + "Battersea": { "pct": 2.226, "num": 309, "rev": 618000 }, + "Richmond Park": { "pct": 2.024, "num": 281, "rev": 562000 }, + "Islington South and Finsbury": { "pct": 1.743, "num": 242, "rev": 484000 }, + "Hammersmith and Chiswick": { "pct": 1.721, "num": 239, "rev": 478000 }, + "Holborn and St Pancras": { "pct": 1.462, "num": 203, "rev": 406000 }, + "Finchley and Golders Green": { "pct": 1.332, "num": 185, "rev": 370000 }, + "Ealing Central and Acton": { "pct": 1.217, "num": 169, "rev": 338000 }, + "Runnymede and Weybridge": { "pct": 1.21, "num": 168, "rev": 336000 }, + "Wimbledon": { "pct": 1.116, "num": 155, "rev": 310000 }, + "Queen's Park and Maida Vale": { "pct": 1.109, "num": 154, "rev": 308000 }, + "Esher and Walton": { "pct": 1.095, "num": 152, "rev": 304000 }, + "Hornsey and Friern Barnet": { "pct": 1.03, "num": 143, "rev": 286000 }, + "Twickenham": { "pct": 0.965, "num": 134, "rev": 268000 }, + "Windsor": { "pct": 0.936, "num": 130, "rev": 260000 }, + "Putney": { "pct": 0.893, "num": 124, "rev": 248000 }, + "Harpenden and Berkhamsted": { "pct": 0.864, "num": 120, "rev": 240000 }, + "Tooting": { "pct": 0.857, "num": 119, "rev": 238000 }, + "Dulwich and West Norwood": { "pct": 0.821, "num": 114, "rev": 228000 }, + "Chesham and Amersham": { "pct": 0.792, "num": 110, "rev": 220000 }, + "Beaconsfield": { "pct": 0.771, "num": 107, "rev": 214000 }, + "Islington North": { "pct": 0.72, "num": 100, "rev": 200000 }, + "Reigate": { "pct": 0.634, "num": 88, "rev": 176000 }, + "Hackney South and Shoreditch": { "pct": 0.619, "num": 86, "rev": 172000 }, + "Winchester": { "pct": 0.583, "num": 81, "rev": 162000 }, + "Hertsmere": { "pct": 0.576, "num": 80, "rev": 160000 }, + "Sevenoaks": { "pct": 0.569, "num": 79, "rev": 158000 }, + "Guildford": { "pct": 0.569, "num": 79, "rev": 158000 }, + "Maidenhead": { "pct": 0.555, "num": 77, "rev": 154000 }, + "Bath": { "pct": 0.547, "num": 76, "rev": 152000 }, + "South West Hertfordshire": { "pct": 0.54, "num": 75, "rev": 150000 }, + "North Cotswolds": { "pct": 0.526, "num": 73, "rev": 146000 }, + "Clapham and Brixton Hill": { "pct": 0.519, "num": 72, "rev": 144000 }, + "Godalming and Ash": { "pct": 0.504, "num": 70, "rev": 140000 }, + "Hackney North and Stoke Newington": { "pct": 0.49, "num": 68, "rev": 136000 }, + "Oxford West and Abingdon": { "pct": 0.483, "num": 67, "rev": 134000 }, + "Arundel and South Downs": { "pct": 0.483, "num": 67, "rev": 134000 }, + "Tatton": { "pct": 0.483, "num": 67, "rev": 134000 }, + "Poole": { "pct": 0.468, "num": 65, "rev": 130000 }, + "Epping Forest": { "pct": 0.468, "num": 65, "rev": 130000 }, + "Woking": { "pct": 0.439, "num": 61, "rev": 122000 }, + "Henley and Thame": { "pct": 0.425, "num": 59, "rev": 118000 }, + "Chipping Barnet": { "pct": 0.411, "num": 57, "rev": 114000 }, + "St Albans": { "pct": 0.411, "num": 57, "rev": 114000 }, + "Farnham and Bordon": { "pct": 0.411, "num": 57, "rev": 114000 }, + "Hove and Portslade": { "pct": 0.396, "num": 55, "rev": 110000 }, + "Brentwood and Ongar": { "pct": 0.396, "num": 55, "rev": 110000 }, + "Vauxhall and Camberwell Green": { "pct": 0.375, "num": 52, "rev": 104000 }, + "Bermondsey and Old Southwark": { "pct": 0.375, "num": 52, "rev": 104000 }, + "Greenwich and Woolwich": { "pct": 0.353, "num": 49, "rev": 98000 }, + "Dorking and Horley": { "pct": 0.353, "num": 49, "rev": 98000 }, + "Lewisham West and East Dulwich": { "pct": 0.346, "num": 48, "rev": 96000 }, + "Brent East": { "pct": 0.346, "num": 48, "rev": 96000 }, + "Banbury": { "pct": 0.346, "num": 48, "rev": 96000 }, + "Tunbridge Wells": { "pct": 0.339, "num": 47, "rev": 94000 }, + "Hendon": { "pct": 0.331, "num": 46, "rev": 92000 }, + "East Hampshire": { "pct": 0.331, "num": 46, "rev": 92000 }, + "Chichester": { "pct": 0.324, "num": 45, "rev": 90000 }, + "Southgate and Wood Green": { "pct": 0.324, "num": 45, "rev": 90000 }, + "South Cotswolds": { "pct": 0.324, "num": 45, "rev": 90000 }, + "Poplar and Limehouse": { "pct": 0.317, "num": 44, "rev": 88000 }, + "Cambridge": { "pct": 0.317, "num": 44, "rev": 88000 }, + "New Forest East": { "pct": 0.317, "num": 44, "rev": 88000 }, + "Altrincham and Sale West": { "pct": 0.31, "num": 43, "rev": 86000 }, + "Kingston and Surbiton": { "pct": 0.295, "num": 41, "rev": 82000 }, + "Bromley and Biggin Hill": { "pct": 0.295, "num": 41, "rev": 82000 }, + "East Surrey": { "pct": 0.295, "num": 41, "rev": 82000 }, + "Newbury": { "pct": 0.288, "num": 40, "rev": 80000 }, + "Ruislip, Northwood and Pinner": { "pct": 0.288, "num": 40, "rev": 80000 }, + "Wycombe": { "pct": 0.288, "num": 40, "rev": 80000 }, + "Reading Central": { "pct": 0.266, "num": 37, "rev": 74000 }, + "Streatham and Croydon North": { "pct": 0.266, "num": 37, "rev": 74000 }, + "Epsom and Ewell": { "pct": 0.259, "num": 36, "rev": 72000 }, + "East Grinstead and Uckfield": { "pct": 0.259, "num": 36, "rev": 72000 }, + "Reading West and Mid Berkshire": { "pct": 0.259, "num": 36, "rev": 72000 }, + "Eltham and Chislehurst": { "pct": 0.252, "num": 35, "rev": 70000 }, + "North East Hampshire": { "pct": 0.252, "num": 35, "rev": 70000 }, + "Manchester Central": { "pct": 0.252, "num": 35, "rev": 70000 }, + "Leyton and Wanstead": { "pct": 0.252, "num": 35, "rev": 70000 }, + "South Devon": { "pct": 0.245, "num": 34, "rev": 68000 }, + "Mid Buckinghamshire": { "pct": 0.238, "num": 33, "rev": 66000 }, + "New Forest West": { "pct": 0.238, "num": 33, "rev": 66000 }, + "Lewisham North": { "pct": 0.238, "num": 33, "rev": 66000 }, + "Wokingham": { "pct": 0.238, "num": 33, "rev": 66000 }, + "South Cambridgeshire": { "pct": 0.23, "num": 32, "rev": 64000 }, + "Cheltenham": { "pct": 0.23, "num": 32, "rev": 64000 }, + "Bristol Central": { "pct": 0.23, "num": 32, "rev": 64000 }, + "Witney": { "pct": 0.223, "num": 31, "rev": 62000 }, + "North Cornwall": { "pct": 0.223, "num": 31, "rev": 62000 }, + "Mid Sussex": { "pct": 0.223, "num": 31, "rev": 62000 }, + "Romsey and Southampton North": { "pct": 0.223, "num": 31, "rev": 62000 }, + "Welwyn Hatfield": { "pct": 0.223, "num": 31, "rev": 62000 }, + "North West Essex": { "pct": 0.216, "num": 30, "rev": 60000 }, + "Stratford-on-Avon": { "pct": 0.209, "num": 29, "rev": 58000 }, + "Sussex Weald": { "pct": 0.209, "num": 29, "rev": 58000 }, + "Truro and Falmouth": { "pct": 0.209, "num": 29, "rev": 58000 }, + "Ealing Southall": { "pct": 0.202, "num": 28, "rev": 56000 }, + "Meriden and Solihull East": { "pct": 0.202, "num": 28, "rev": 56000 }, + "North East Hertfordshire": { "pct": 0.194, "num": 27, "rev": 54000 }, + "Birmingham Ladywood": { "pct": 0.194, "num": 27, "rev": 54000 }, + "Tonbridge": { "pct": 0.194, "num": 27, "rev": 54000 }, + "Salisbury": { "pct": 0.187, "num": 26, "rev": 52000 }, + "York Central": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Bethnal Green and Stepney": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Harrow East": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Surrey Heath": { "pct": 0.187, "num": 26, "rev": 52000 }, + "Wetherby and Easingwold": { "pct": 0.18, "num": 25, "rev": 50000 }, + "Beckenham and Penge": { "pct": 0.18, "num": 25, "rev": 50000 }, + "North West Hampshire": { "pct": 0.18, "num": 25, "rev": 50000 }, + "Kenilworth and Southam": { "pct": 0.18, "num": 25, "rev": 50000 }, + "Daventry": { "pct": 0.18, "num": 25, "rev": 50000 }, + "South Northamptonshire": { "pct": 0.173, "num": 24, "rev": 48000 }, + "Croydon West": { "pct": 0.173, "num": 24, "rev": 48000 }, + "East Wiltshire": { "pct": 0.173, "num": 24, "rev": 48000 }, + "Frome and East Somerset": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Croydon South": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Didcot and Wantage": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Edmonton and Winchmore Hill": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Exeter": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Horsham": { "pct": 0.166, "num": 23, "rev": 46000 }, + "Harrogate and Knaresborough": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Macclesfield": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Rutland and Stamford": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Cardiff South and Penarth": { "pct": 0.158, "num": 22, "rev": 44000 }, + "Basildon and Billericay": { "pct": 0.151, "num": 21, "rev": 42000 }, + "Peckham": { "pct": 0.151, "num": 21, "rev": 42000 }, + "Canterbury": { "pct": 0.151, "num": 21, "rev": 42000 }, + "Liverpool Riverside": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Tottenham": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Enfield North": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Exmouth and Exeter East": { "pct": 0.144, "num": 20, "rev": 40000 }, + "Watford": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Luton South and South Bedfordshire": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Hitchin": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Hertford and Stortford": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Salford": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Bristol North West": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Bicester and Woodstock": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Chingford and Woodford Green": { "pct": 0.137, "num": 19, "rev": 38000 }, + "Hamble Valley": { "pct": 0.137, "num": 19, "rev": 38000 }, + "North West Norfolk": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Maldon": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Hornchurch and Upminster": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Newcastle upon Tyne Central and West": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Droitwich and Evesham": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Warwick and Leamington": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Orpington": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Stretford and Urmston": { "pct": 0.13, "num": 18, "rev": 36000 }, + "North Somerset": { "pct": 0.13, "num": 18, "rev": 36000 }, + "Tewkesbury": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Bury St Edmunds and Stowmarket": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Sutton and Cheam": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Lewes": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Oxford East": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Westmorland and Lonsdale": { "pct": 0.122, "num": 17, "rev": 34000 }, + "Ely and East Cambridgeshire": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Eastbourne": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Skipton and Ripon": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Sheffield Central": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Hemel Hempstead": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Spelthorne": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Tamworth": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Wells and Mendip Hills": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Bexhill and Battle": { "pct": 0.115, "num": 16, "rev": 32000 }, + "St Austell and Newquay": { "pct": 0.115, "num": 16, "rev": 32000 }, + "Leeds South": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Honiton and Sidmouth": { "pct": 0.108, "num": 15, "rev": 30000 }, + "West Dorset": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Manchester Rusholme": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Knowsley": { "pct": 0.108, "num": 15, "rev": 30000 }, + "South Dorset": { "pct": 0.108, "num": 15, "rev": 30000 }, + "St Ives": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Buckingham and Bletchley": { "pct": 0.108, "num": 15, "rev": 30000 }, + "North Northumberland": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Rushcliffe": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Broxbourne": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Ealing North": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Bromsgrove": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Brighton Pavilion": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Christchurch": { "pct": 0.108, "num": 15, "rev": 30000 }, + "North Devon": { "pct": 0.108, "num": 15, "rev": 30000 }, + "Bournemouth West": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Loughborough": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Chester South and Eddisbury": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Weald of Kent": { "pct": 0.101, "num": 14, "rev": 28000 }, + "South West Norfolk": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Brentford and Isleworth": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Stratford and Bow": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Manchester Withington": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Mid Bedfordshire": { "pct": 0.101, "num": 14, "rev": 28000 }, + "South Suffolk": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Milton Keynes North": { "pct": 0.101, "num": 14, "rev": 28000 }, + "Stourbridge": { "pct": 0.094, "num": 13, "rev": 26000 }, + "West Lancashire": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Braintree": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Leeds Central and Headingley": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Keighley and Ilkley": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Harlow": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Chelmsford": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Suffolk Coastal": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Isle of Wight West": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Isle of Wight East": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Romford": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Worcester": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Stroud": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Thirsk and Malton": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Nottingham South": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Nottingham East": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Melton and Syston": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Sutton Coldfield": { "pct": 0.094, "num": 13, "rev": 26000 }, + "North West Cambridgeshire": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Glastonbury and Somerton": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Melksham and Devizes": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Fylde": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Thornbury and Yate": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Coventry East": { "pct": 0.094, "num": 13, "rev": 26000 }, + "Tiverton and Minehead": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Hexham": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Ashford": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Telford": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Hayes and Harlington": { "pct": 0.086, "num": 12, "rev": 24000 }, + "North Herefordshire": { "pct": 0.086, "num": 12, "rev": 24000 }, + "North Dorset": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Cheadle": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Scarborough and Whitby": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Torbay": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Birmingham Edgbaston": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Lewisham East": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Camborne and Redruth": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Neath and Swansea East": { "pct": 0.086, "num": 12, "rev": 24000 }, + "Thurrock": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Mid Leicestershire": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Newcastle-under-Lyme": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Wirral West": { "pct": 0.079, "num": 11, "rev": 22000 }, + "North Norfolk": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Northampton North": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Leicester South": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Witham": { "pct": 0.079, "num": 11, "rev": 22000 }, + "York Outer": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Aylesbury": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Central Devon": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Harrow West": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Dartford": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Doncaster Central": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Corby and East Northamptonshire": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Gower": { "pct": 0.079, "num": 11, "rev": 22000 }, + "Rugby": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Richmond and Northallerton": { "pct": 0.072, "num": 10, "rev": 20000 }, + "St Neots and Mid Cambridgeshire": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Ribble Valley": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Walthamstow": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Rayleigh and Wickford": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Portsmouth South": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Brecon, Radnor and Cwm Tawe": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Gloucester": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Peterborough": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Bognor Regis and Littlehampton": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Sittingbourne and Sheppey": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Congleton": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Broadland and Fakenham": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Filton and Bradley Stoke": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Bury South": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Hereford and South Herefordshire": { "pct": 0.072, "num": 10, "rev": 20000 }, + "West Worcestershire": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Yeovil": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Mid Dorset and North Poole": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Newcastle upon Tyne North": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Newark": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Wyre Forest": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Huntingdon": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Worthing West": { "pct": 0.072, "num": 10, "rev": 20000 }, + "Earley and Woodley": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Shrewsbury": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Chester North and Neston": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Central Suffolk and North Ipswich": { "pct": 0.065, "num": 9, "rev": 18000 }, + "North West Leicestershire": { "pct": 0.065, "num": 9, "rev": 18000 }, + "North Bedfordshire": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Dover and Deal": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Derbyshire Dales": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Solihull West and Shirley": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Hinckley and Bosworth": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Bracknell": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Southend East and Rochford": { "pct": 0.065, "num": 9, "rev": 18000 }, + "South Ribble": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Brent West": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Stockport": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Gravesham": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Hastings and Rye": { "pct": 0.065, "num": 9, "rev": 18000 }, + "South West Wiltshire": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Ashfield": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Herne Bay and Sandwich": { "pct": 0.065, "num": 9, "rev": 18000 }, + "Widnes and Halewood": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Basingstoke": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bassetlaw": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Oldham West, Chadderton and Royton": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bedford": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Birmingham Erdington": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Worsley and Eccles": { "pct": 0.058, "num": 8, "rev": 16000 }, + "North Shropshire": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Waveney Valley": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Crawley": { "pct": 0.058, "num": 8, "rev": 16000 }, + "South East Cornwall": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Washington and Gateshead South": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Wakefield and Rothwell": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Torridge and Tavistock": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Portsmouth North": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Stafford": { "pct": 0.058, "num": 8, "rev": 16000 }, + "St Helens North": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Rossendale and Darwen": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bristol East": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Southampton Itchen": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Sheffield Hallam": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Bristol South": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Milton Keynes Central": { "pct": 0.058, "num": 8, "rev": 16000 }, + "South West Devon": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Monmouthshire": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Rochester and Strood": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Aberafan Maesteg": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Heywood and Middleton North": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Maidstone and Malling": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Llanelli": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Mid Norfolk": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Feltham and Heston": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Lichfield": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Harborough, Oadby and Wigston": { "pct": 0.058, "num": 8, "rev": 16000 }, + "Mansfield": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Stevenage": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Plymouth Sutton and Devonport": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Brighton Kemptown and Peacehaven": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Southampton Test": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Broxtowe": { "pct": 0.05, "num": 7, "rev": 14000 }, + "South Leicestershire": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Cardiff West": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Sheffield South East": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Swindon South": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Redditch": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Clwyd North": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Penrith and Solway": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Makerfield": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Bradford South": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Pontefract, Castleford and Knottingley": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Bolsover": { "pct": 0.05, "num": 7, "rev": 14000 }, + "East Thanet": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Mid and South Pembrokeshire": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Wrexham": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Mid Derbyshire": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Normanton and Hemsworth": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Newport East": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Ilford North": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Wolverhampton West": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Dunstable and Leighton Buzzard": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Ilford South": { "pct": 0.05, "num": 7, "rev": 14000 }, + "Kingswinford and South Staffordshire": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Carlisle": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Sefton Central": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Cardiff North": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Chippenham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Runcorn and Helsby": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Barking": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Clacton": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Wythenshawe and Sale East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Sheffield Heeley": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Slough": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Lincoln": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leicester West": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Halesowen": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Bridgwater": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Birmingham Selly Oak": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leeds North East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Uxbridge and South Ruislip": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Grantham and Bourne": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Vale of Glamorgan": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Sleaford and North Hykeham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Warrington South": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Burton and Uttoxeter": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Bury North": { "pct": 0.043, "num": 6, "rev": 12000 }, + "South Basildon and East Thurrock": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Wigan": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Bradford East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leeds North West": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Middlesbrough and Thornaby East": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Gorton and Denton": { "pct": 0.043, "num": 6, "rev": 12000 }, + "North East Somerset and Hanham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "East Worthing and Shoreham": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Erith and Thamesmead": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Derby North": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Derby South": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Nuneaton": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Pendle and Clitheroe": { "pct": 0.043, "num": 6, "rev": 12000 }, + "Leeds East": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Caerfyrddin": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Havant": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Harwich and North Essex": { "pct": 0.036, "num": 5, "rev": 10000 }, + "West Suffolk": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Sheffield Brightside and Hillsborough": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Birkenhead": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Nottingham North and Kimberley": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Wellingborough and Rushden": { "pct": 0.036, "num": 5, "rev": 10000 }, + "North East Derbyshire": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Walsall and Bloxwich": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Tynemouth": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Swindon North": { "pct": 0.036, "num": 5, "rev": 10000 }, + "South Derbyshire": { "pct": 0.036, "num": 5, "rev": 10000 }, + "South Shropshire": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Old Bexley and Sidcup": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Stoke-on-Trent South": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Taunton and Wellington": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Stoke-on-Trent Central": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Doncaster East and the Isle of Axholme": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Bournemouth East": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Leicester East": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Halifax": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Lancaster and Wyre": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Preston": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Chorley": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Bangor Aberconwy": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Chatham and Aylesford": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Carshalton and Wallington": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Morecambe and Lunesdale": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Mitcham and Morden": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Rochdale": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Louth and Horncastle": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Ynys M\u00f4n": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Alyn and Deeside": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Folkestone and Hythe": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Huddersfield": { "pct": 0.036, "num": 5, "rev": 10000 }, + "Easington": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bristol North East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Southport": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Doncaster North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Forest of Dean": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bolton South and Walkden": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Rhondda and Ogmore": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Kingston upon Hull West and Haltemprice": { "pct": 0.029, "num": 4, "rev": 8000 }, + "St Helens South and Whiston": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bolton West": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Amber Valley": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Staffordshire Moorlands": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Merthyr Tydfil and Aberdare": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Boston and Skegness": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Stoke-on-Trent North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Stone, Great Wyrley and Penkridge": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Sunderland Central": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bradford West": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Darlington": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Wolverhampton South East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Newport West and Islwyn": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Luton North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Hartlepool": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Newcastle upon Tyne East and Wallsend": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Kettering": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Gillingham and Rainham": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Jarrow and Gateshead East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Warrington North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Smethwick": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Eastleigh": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Faversham and Mid Kent": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Dwyfor Meirionnydd": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Bishop Auckland": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Croydon East": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Blackburn": { "pct": 0.029, "num": 4, "rev": 8000 }, + "South Holland and The Deepings": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Kingston upon Hull North and Cottingham": { "pct": 0.029, "num": 4, "rev": 8000 }, + "South Norfolk": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Burnley": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Weston-super-Mare": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Hazel Grove": { "pct": 0.029, "num": 4, "rev": 8000 }, + "Barnsley North": { "pct": 0.029, "num": 4, "rev": 8000 }, + "West Ham and Beckton": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Ipswich": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Erewash": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Torfaen": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Swansea West": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Birmingham Hodge Hill and Solihull North": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Houghton and Sunderland South": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Blaenau Gwent and Rhymney": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Newton Abbot": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Blaydon and Consett": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Tipton and Wednesbury": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Whitehaven and Workington": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Plymouth Moor View": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Caerphilly": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Colne Valley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Cardiff East": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Dagenham and Rainham": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Aldershot": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Oldham East and Saddleworth": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Ossett and Denby Dale": { "pct": 0.022, "num": 3, "rev": 6000 }, + "North Warwickshire and Bedworth": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Goole and Pocklington": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Rother Valley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Coventry South": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Sherwood Forest": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Scunthorpe": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Chesterfield": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Leeds South West and Morley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Shipley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Rawmarsh and Conisbrough": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Bridlington and The Wolds": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Stalybridge and Hyde": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Northampton South": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Colchester": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Gainsborough": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Penistone and Stocksbridge": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Dewsbury and Batley": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Liverpool Garston": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Crewe and Nantwich": { "pct": 0.022, "num": 3, "rev": 6000 }, + "Birmingham Hall Green and Moseley": { "pct": 0.014, "num": 2, "rev": 4000 }, + "West Bromwich": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Calder Valley": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Bridgend": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Liverpool Wavertree": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Norwich South": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Barrow and Furness": { "pct": 0.014, "num": 2, "rev": 4000 }, + "High Peak": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Lowestoft": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Gedling": { "pct": 0.014, "num": 2, "rev": 4000 }, + "East Ham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "City of Durham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Clwyd East": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Rotherham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Birmingham Northfield": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Leigh and Atherton": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Ellesmere Port and Bromborough": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blyth and Ashington": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Norwich North": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blackpool South": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blackpool North and Fleetwood": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Blackley and Middleton South": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Bolton North East": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Fareham and Waterlooville": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Spen Valley": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Southend West and Leigh": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Brigg and Immingham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Bootle": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Cramlington and Killingworth": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Great Yarmouth": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Kingston upon Hull East": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Stockton North": { "pct": 0.014, "num": 2, "rev": 4000 }, + "North Durham": { "pct": 0.014, "num": 2, "rev": 4000 }, + "The Wrekin": { "pct": 0.014, "num": 2, "rev": 4000 }, + "Gateshead Central and Whickham": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Hyndburn": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Redcar": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Leeds West and Pudsey": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Wolverhampton North East": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Ashton-under-Lyne": { "pct": 0.007, "num": 1, "rev": 2000 }, + "North East Cambridgeshire": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Ceredigion Preseli": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Barnsley South": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Gosport": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Middlesbrough South and East Cleveland": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Birmingham Yardley": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Coventry North West": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Selby": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Cannock Chase": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Beverley and Holderness": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Bexleyheath and Crayford": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Newton Aycliffe and Spennymoor": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Liverpool Walton": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Birmingham Perry Barr": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Dudley": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Wallasey": { "pct": 0.007, "num": 1, "rev": 2000 }, + "Stockton West": { "pct": 0.007, "num": 1, "rev": 2000 } + }, + "2m": { + "Cities of London and Westminster": { "pct": 9.453, "num": 742, "rev": 1484000 }, + "Kensington and Bayswater": { "pct": 7.045, "num": 553, "rev": 1106000 }, + "Chelsea and Fulham": { "pct": 4.638, "num": 364, "rev": 728000 }, + "Hampstead and Highgate": { "pct": 3.019, "num": 237, "rev": 474000 }, + "Battersea": { "pct": 1.669, "num": 131, "rev": 262000 }, + "Richmond Park": { "pct": 1.873, "num": 147, "rev": 294000 }, + "Islington South and Finsbury": { "pct": 1.745, "num": 137, "rev": 274000 }, + "Hammersmith and Chiswick": { "pct": 1.567, "num": 123, "rev": 246000 }, + "Holborn and St Pancras": { "pct": 1.72, "num": 135, "rev": 270000 }, + "Finchley and Golders Green": { "pct": 1.363, "num": 107, "rev": 214000 }, + "Ealing Central and Acton": { "pct": 0.956, "num": 75, "rev": 150000 }, + "Runnymede and Weybridge": { "pct": 1.249, "num": 98, "rev": 196000 }, + "Wimbledon": { "pct": 1.121, "num": 88, "rev": 176000 }, + "Queen's Park and Maida Vale": { "pct": 1.096, "num": 86, "rev": 172000 }, + "Esher and Walton": { "pct": 0.956, "num": 75, "rev": 150000 }, + "Hornsey and Friern Barnet": { "pct": 0.612, "num": 48, "rev": 96000 }, + "Twickenham": { "pct": 0.675, "num": 53, "rev": 106000 }, + "Windsor": { "pct": 1.006, "num": 79, "rev": 158000 }, + "Putney": { "pct": 0.573, "num": 45, "rev": 90000 }, + "Harpenden and Berkhamsted": { "pct": 0.701, "num": 55, "rev": 110000 }, + "Tooting": { "pct": 0.701, "num": 55, "rev": 110000 }, + "Dulwich and West Norwood": { "pct": 0.624, "num": 49, "rev": 98000 }, + "Chesham and Amersham": { "pct": 0.688, "num": 54, "rev": 108000 }, + "Beaconsfield": { "pct": 0.624, "num": 49, "rev": 98000 }, + "Islington North": { "pct": 0.51, "num": 40, "rev": 80000 }, + "Reigate": { "pct": 0.395, "num": 31, "rev": 62000 }, + "Hackney South and Shoreditch": { "pct": 0.586, "num": 46, "rev": 92000 }, + "Winchester": { "pct": 0.408, "num": 32, "rev": 64000 }, + "Hertsmere": { "pct": 0.561, "num": 44, "rev": 88000 }, + "Sevenoaks": { "pct": 0.395, "num": 31, "rev": 62000 }, + "Guildford": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Maidenhead": { "pct": 0.535, "num": 42, "rev": 84000 }, + "Bath": { "pct": 0.446, "num": 35, "rev": 70000 }, + "South West Hertfordshire": { "pct": 0.484, "num": 38, "rev": 76000 }, + "North Cotswolds": { "pct": 0.484, "num": 38, "rev": 76000 }, + "Clapham and Brixton Hill": { "pct": 0.382, "num": 30, "rev": 60000 }, + "Godalming and Ash": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Hackney North and Stoke Newington": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Oxford West and Abingdon": { "pct": 0.497, "num": 39, "rev": 78000 }, + "Arundel and South Downs": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Tatton": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Poole": { "pct": 0.408, "num": 32, "rev": 64000 }, + "Epping Forest": { "pct": 0.433, "num": 34, "rev": 68000 }, + "Woking": { "pct": 0.344, "num": 27, "rev": 54000 }, + "Henley and Thame": { "pct": 0.382, "num": 30, "rev": 60000 }, + "Chipping Barnet": { "pct": 0.319, "num": 25, "rev": 50000 }, + "St Albans": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Farnham and Bordon": { "pct": 0.357, "num": 28, "rev": 56000 }, + "Hove and Portslade": { "pct": 0.28, "num": 22, "rev": 44000 }, + "Brentwood and Ongar": { "pct": 0.344, "num": 27, "rev": 54000 }, + "Vauxhall and Camberwell Green": { "pct": 0.408, "num": 32, "rev": 64000 }, + "Bermondsey and Old Southwark": { "pct": 0.459, "num": 36, "rev": 72000 }, + "Greenwich and Woolwich": { "pct": 0.357, "num": 28, "rev": 56000 }, + "Dorking and Horley": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Lewisham West and East Dulwich": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Brent East": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Banbury": { "pct": 0.42, "num": 33, "rev": 66000 }, + "Tunbridge Wells": { "pct": 0.242, "num": 19, "rev": 38000 }, + "Hendon": { "pct": 0.268, "num": 21, "rev": 42000 }, + "East Hampshire": { "pct": 0.319, "num": 25, "rev": 50000 }, + "Chichester": { "pct": 0.306, "num": 24, "rev": 48000 }, + "Southgate and Wood Green": { "pct": 0.293, "num": 23, "rev": 46000 }, + "South Cotswolds": { "pct": 0.28, "num": 22, "rev": 44000 }, + "Poplar and Limehouse": { "pct": 0.306, "num": 24, "rev": 48000 }, + "Cambridge": { "pct": 0.306, "num": 24, "rev": 48000 }, + "New Forest East": { "pct": 0.319, "num": 25, "rev": 50000 }, + "Altrincham and Sale West": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Kingston and Surbiton": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Bromley and Biggin Hill": { "pct": 0.331, "num": 26, "rev": 52000 }, + "East Surrey": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Newbury": { "pct": 0.331, "num": 26, "rev": 52000 }, + "Ruislip, Northwood and Pinner": { "pct": 0.191, "num": 15, "rev": 30000 }, + "Wycombe": { "pct": 0.331, "num": 26, "rev": 52000 }, + "Reading Central": { "pct": 0.357, "num": 28, "rev": 56000 }, + "Streatham and Croydon North": { "pct": 0.255, "num": 20, "rev": 40000 }, + "Epsom and Ewell": { "pct": 0.204, "num": 16, "rev": 32000 }, + "East Grinstead and Uckfield": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Reading West and Mid Berkshire": { "pct": 0.28, "num": 22, "rev": 44000 }, + "Eltham and Chislehurst": { "pct": 0.127, "num": 10, "rev": 20000 }, + "North East Hampshire": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Manchester Central": { "pct": 0.395, "num": 31, "rev": 62000 }, + "Leyton and Wanstead": { "pct": 0.217, "num": 17, "rev": 34000 }, + "South Devon": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Mid Buckinghamshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "New Forest West": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Lewisham North": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Wokingham": { "pct": 0.178, "num": 14, "rev": 28000 }, + "South Cambridgeshire": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Cheltenham": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Bristol Central": { "pct": 0.293, "num": 23, "rev": 46000 }, + "Witney": { "pct": 0.217, "num": 17, "rev": 34000 }, + "North Cornwall": { "pct": 0.268, "num": 21, "rev": 42000 }, + "Mid Sussex": { "pct": 0.191, "num": 15, "rev": 30000 }, + "Romsey and Southampton North": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Welwyn Hatfield": { "pct": 0.217, "num": 17, "rev": 34000 }, + "North West Essex": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Stratford-on-Avon": { "pct": 0.229, "num": 18, "rev": 36000 }, + "Sussex Weald": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Truro and Falmouth": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Ealing Southall": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Meriden and Solihull East": { "pct": 0.178, "num": 14, "rev": 28000 }, + "North East Hertfordshire": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Birmingham Ladywood": { "pct": 0.306, "num": 24, "rev": 48000 }, + "Tonbridge": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Salisbury": { "pct": 0.153, "num": 12, "rev": 24000 }, + "York Central": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Bethnal Green and Stepney": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Harrow East": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Surrey Heath": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Wetherby and Easingwold": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Beckenham and Penge": { "pct": 0.127, "num": 10, "rev": 20000 }, + "North West Hampshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Kenilworth and Southam": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Daventry": { "pct": 0.204, "num": 16, "rev": 32000 }, + "South Northamptonshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Croydon West": { "pct": 0.191, "num": 15, "rev": 30000 }, + "East Wiltshire": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Frome and East Somerset": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Croydon South": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Didcot and Wantage": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Edmonton and Winchmore Hill": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Exeter": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Horsham": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Harrogate and Knaresborough": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Macclesfield": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Rutland and Stamford": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Cardiff South and Penarth": { "pct": 0.242, "num": 19, "rev": 38000 }, + "Basildon and Billericay": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Peckham": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Canterbury": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Liverpool Riverside": { "pct": 0.191, "num": 15, "rev": 30000 }, + "Tottenham": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Enfield North": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Exmouth and Exeter East": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Watford": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Luton South and South Bedfordshire": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Hitchin": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Hertford and Stortford": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Salford": { "pct": 0.204, "num": 16, "rev": 32000 }, + "Bristol North West": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bicester and Woodstock": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Chingford and Woodford Green": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Hamble Valley": { "pct": 0.127, "num": 10, "rev": 20000 }, + "North West Norfolk": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Maldon": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Hornchurch and Upminster": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Newcastle upon Tyne Central and West": { "pct": 0.217, "num": 17, "rev": 34000 }, + "Droitwich and Evesham": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Warwick and Leamington": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Orpington": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Stretford and Urmston": { "pct": 0.178, "num": 14, "rev": 28000 }, + "North Somerset": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Tewkesbury": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bury St Edmunds and Stowmarket": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Sutton and Cheam": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Lewes": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Oxford East": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Westmorland and Lonsdale": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Ely and East Cambridgeshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Eastbourne": { "pct": 0.178, "num": 14, "rev": 28000 }, + "Skipton and Ripon": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Sheffield Central": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Hemel Hempstead": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Spelthorne": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Tamworth": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Wells and Mendip Hills": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bexhill and Battle": { "pct": 0.127, "num": 10, "rev": 20000 }, + "St Austell and Newquay": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Leeds South": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Honiton and Sidmouth": { "pct": 0.051, "num": 4, "rev": 8000 }, + "West Dorset": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Manchester Rusholme": { "pct": 0.166, "num": 13, "rev": 26000 }, + "Knowsley": { "pct": 0.178, "num": 14, "rev": 28000 }, + "South Dorset": { "pct": 0.076, "num": 6, "rev": 12000 }, + "St Ives": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Buckingham and Bletchley": { "pct": 0.089, "num": 7, "rev": 14000 }, + "North Northumberland": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Rushcliffe": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Broxbourne": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Ealing North": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bromsgrove": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Brighton Pavilion": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Christchurch": { "pct": 0.064, "num": 5, "rev": 10000 }, + "North Devon": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bournemouth West": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Loughborough": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Chester South and Eddisbury": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Weald of Kent": { "pct": 0.089, "num": 7, "rev": 14000 }, + "South West Norfolk": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Brentford and Isleworth": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Stratford and Bow": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Manchester Withington": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Mid Bedfordshire": { "pct": 0.14, "num": 11, "rev": 22000 }, + "South Suffolk": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Milton Keynes North": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Stourbridge": { "pct": 0.115, "num": 9, "rev": 18000 }, + "West Lancashire": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Braintree": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Leeds Central and Headingley": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Keighley and Ilkley": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Harlow": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Chelmsford": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Suffolk Coastal": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Isle of Wight West": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Isle of Wight East": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Romford": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Worcester": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Stroud": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Thirsk and Malton": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Nottingham South": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Nottingham East": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Melton and Syston": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Sutton Coldfield": { "pct": 0.051, "num": 4, "rev": 8000 }, + "North West Cambridgeshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Glastonbury and Somerton": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Melksham and Devizes": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Fylde": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Thornbury and Yate": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Coventry East": { "pct": 0.153, "num": 12, "rev": 24000 }, + "Tiverton and Minehead": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Hexham": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Ashford": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Telford": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Hayes and Harlington": { "pct": 0.14, "num": 11, "rev": 22000 }, + "North Herefordshire": { "pct": 0.115, "num": 9, "rev": 18000 }, + "North Dorset": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Cheadle": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Scarborough and Whitby": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Torbay": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Birmingham Edgbaston": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Lewisham East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Camborne and Redruth": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Neath and Swansea East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Thurrock": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Mid Leicestershire": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Newcastle-under-Lyme": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Wirral West": { "pct": 0.102, "num": 8, "rev": 16000 }, + "North Norfolk": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Northampton North": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Leicester South": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Witham": { "pct": 0.051, "num": 4, "rev": 8000 }, + "York Outer": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Aylesbury": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Central Devon": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Harrow West": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Dartford": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Doncaster Central": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Corby and East Northamptonshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Gower": { "pct": 0.14, "num": 11, "rev": 22000 }, + "Rugby": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Richmond and Northallerton": { "pct": 0.038, "num": 3, "rev": 6000 }, + "St Neots and Mid Cambridgeshire": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Ribble Valley": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Walthamstow": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Rayleigh and Wickford": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Portsmouth South": { "pct": 0.127, "num": 10, "rev": 20000 }, + "Brecon, Radnor and Cwm Tawe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Gloucester": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Peterborough": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Bognor Regis and Littlehampton": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Sittingbourne and Sheppey": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Congleton": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Broadland and Fakenham": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Filton and Bradley Stoke": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bury South": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Hereford and South Herefordshire": { "pct": 0.089, "num": 7, "rev": 14000 }, + "West Worcestershire": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Yeovil": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Mid Dorset and North Poole": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Newcastle upon Tyne North": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Newark": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Wyre Forest": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Huntingdon": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Worthing West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Earley and Woodley": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Shrewsbury": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Chester North and Neston": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Central Suffolk and North Ipswich": { "pct": 0.102, "num": 8, "rev": 16000 }, + "North West Leicestershire": { "pct": 0.051, "num": 4, "rev": 8000 }, + "North Bedfordshire": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Dover and Deal": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Derbyshire Dales": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Solihull West and Shirley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Hinckley and Bosworth": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Bracknell": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Southend East and Rochford": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Ribble": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Brent West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Stockport": { "pct": 0.115, "num": 9, "rev": 18000 }, + "Gravesham": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Hastings and Rye": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South West Wiltshire": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Ashfield": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Herne Bay and Sandwich": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Widnes and Halewood": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Basingstoke": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bassetlaw": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Oldham West, Chadderton and Royton": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Bedford": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Birmingham Erdington": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Worsley and Eccles": { "pct": 0.076, "num": 6, "rev": 12000 }, + "North Shropshire": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Waveney Valley": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Crawley": { "pct": 0.089, "num": 7, "rev": 14000 }, + "South East Cornwall": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Washington and Gateshead South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Wakefield and Rothwell": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Torridge and Tavistock": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Portsmouth North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Stafford": { "pct": 0.051, "num": 4, "rev": 8000 }, + "St Helens North": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Rossendale and Darwen": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Bristol East": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Southampton Itchen": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Sheffield Hallam": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bristol South": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Milton Keynes Central": { "pct": 0.064, "num": 5, "rev": 10000 }, + "South West Devon": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Monmouthshire": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Rochester and Strood": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Aberafan Maesteg": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Heywood and Middleton North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Maidstone and Malling": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Llanelli": { "pct": 0.102, "num": 8, "rev": 16000 }, + "Mid Norfolk": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Feltham and Heston": { "pct": 0.089, "num": 7, "rev": 14000 }, + "Lichfield": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Harborough, Oadby and Wigston": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Mansfield": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Stevenage": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Plymouth Sutton and Devonport": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Brighton Kemptown and Peacehaven": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Southampton Test": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Broxtowe": { "pct": 0.051, "num": 4, "rev": 8000 }, + "South Leicestershire": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Cardiff West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Sheffield South East": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Swindon South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Redditch": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Clwyd North": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Penrith and Solway": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Makerfield": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bradford South": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Pontefract, Castleford and Knottingley": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bolsover": { "pct": 0.089, "num": 7, "rev": 14000 }, + "East Thanet": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Mid and South Pembrokeshire": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Wrexham": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Mid Derbyshire": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Normanton and Hemsworth": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Newport East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Ilford North": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Wolverhampton West": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Dunstable and Leighton Buzzard": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Ilford South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Kingswinford and South Staffordshire": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Carlisle": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Sefton Central": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Cardiff North": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Chippenham": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Runcorn and Helsby": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Barking": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Clacton": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Wythenshawe and Sale East": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Sheffield Heeley": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Slough": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Lincoln": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Leicester West": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Halesowen": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bridgwater": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Birmingham Selly Oak": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Leeds North East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Uxbridge and South Ruislip": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Grantham and Bourne": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Vale of Glamorgan": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sleaford and North Hykeham": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Warrington South": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Burton and Uttoxeter": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Bury North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Basildon and East Thurrock": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Wigan": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bradford East": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Leeds North West": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Middlesbrough and Thornaby East": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Gorton and Denton": { "pct": 0.064, "num": 5, "rev": 10000 }, + "North East Somerset and Hanham": { "pct": 0.025, "num": 2, "rev": 4000 }, + "East Worthing and Shoreham": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Erith and Thamesmead": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Derby North": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Derby South": { "pct": 0.076, "num": 6, "rev": 12000 }, + "Nuneaton": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Pendle and Clitheroe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Leeds East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Caerfyrddin": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Havant": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Harwich and North Essex": { "pct": 0.025, "num": 2, "rev": 4000 }, + "West Suffolk": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sheffield Brightside and Hillsborough": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Birkenhead": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Nottingham North and Kimberley": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Wellingborough and Rushden": { "pct": 0.051, "num": 4, "rev": 8000 }, + "North East Derbyshire": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Walsall and Bloxwich": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Tynemouth": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Swindon North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "South Derbyshire": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Shropshire": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Old Bexley and Sidcup": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Stoke-on-Trent South": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Taunton and Wellington": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stoke-on-Trent Central": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Doncaster East and the Isle of Axholme": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bournemouth East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Leicester East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Halifax": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Lancaster and Wyre": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Preston": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Chorley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bangor Aberconwy": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Chatham and Aylesford": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Carshalton and Wallington": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Morecambe and Lunesdale": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Mitcham and Morden": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Rochdale": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Louth and Horncastle": { "pct": 0.064, "num": 5, "rev": 10000 }, + "Ynys M\u00f4n": { "pct": 0.0, "num": 0, "rev": 0 }, + "Alyn and Deeside": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Folkestone and Hythe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Huddersfield": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Easington": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Bristol North East": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Southport": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Doncaster North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Forest of Dean": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bolton South and Walkden": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Rhondda and Ogmore": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Kingston upon Hull West and Haltemprice": { "pct": 0.038, "num": 3, "rev": 6000 }, + "St Helens South and Whiston": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bolton West": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Amber Valley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Staffordshire Moorlands": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Merthyr Tydfil and Aberdare": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Boston and Skegness": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stoke-on-Trent North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stone, Great Wyrley and Penkridge": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sunderland Central": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bradford West": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Darlington": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Wolverhampton South East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Newport West and Islwyn": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Luton North": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Hartlepool": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Newcastle upon Tyne East and Wallsend": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Kettering": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Gillingham and Rainham": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Jarrow and Gateshead East": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Warrington North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Smethwick": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Eastleigh": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Faversham and Mid Kent": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Dwyfor Meirionnydd": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Bishop Auckland": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Croydon East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Blackburn": { "pct": 0.025, "num": 2, "rev": 4000 }, + "South Holland and The Deepings": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Kingston upon Hull North and Cottingham": { "pct": 0.038, "num": 3, "rev": 6000 }, + "South Norfolk": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Burnley": { "pct": 0.051, "num": 4, "rev": 8000 }, + "Weston-super-Mare": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Hazel Grove": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Barnsley North": { "pct": 0.038, "num": 3, "rev": 6000 }, + "West Ham and Beckton": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Ipswich": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Erewash": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Torfaen": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Swansea West": { "pct": 0.0, "num": 0, "rev": 0 }, + "Birmingham Hodge Hill and Solihull North": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Houghton and Sunderland South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blaenau Gwent and Rhymney": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Newton Abbot": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Blaydon and Consett": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Tipton and Wednesbury": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Whitehaven and Workington": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Plymouth Moor View": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Caerphilly": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Colne Valley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Cardiff East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Dagenham and Rainham": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Aldershot": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Oldham East and Saddleworth": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Ossett and Denby Dale": { "pct": 0.038, "num": 3, "rev": 6000 }, + "North Warwickshire and Bedworth": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Goole and Pocklington": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Rother Valley": { "pct": 0.0, "num": 0, "rev": 0 }, + "Coventry South": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Sherwood Forest": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Scunthorpe": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Chesterfield": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Leeds South West and Morley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Shipley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Rawmarsh and Conisbrough": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bridlington and The Wolds": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Stalybridge and Hyde": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Northampton South": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Colchester": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Gainsborough": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Penistone and Stocksbridge": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Dewsbury and Batley": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Liverpool Garston": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Crewe and Nantwich": { "pct": 0.038, "num": 3, "rev": 6000 }, + "Birmingham Hall Green and Moseley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "West Bromwich": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Calder Valley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Bridgend": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Liverpool Wavertree": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Norwich South": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Barrow and Furness": { "pct": 0.0, "num": 0, "rev": 0 }, + "High Peak": { "pct": 0.0, "num": 0, "rev": 0 }, + "Lowestoft": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Gedling": { "pct": 0.013, "num": 1, "rev": 2000 }, + "East Ham": { "pct": 0.0, "num": 0, "rev": 0 }, + "City of Durham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Clwyd East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Rotherham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Birmingham Northfield": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Leigh and Atherton": { "pct": 0.0, "num": 0, "rev": 0 }, + "Ellesmere Port and Bromborough": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blyth and Ashington": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Norwich North": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blackpool South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Blackpool North and Fleetwood": { "pct": 0.0, "num": 0, "rev": 0 }, + "Blackley and Middleton South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bolton North East": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Fareham and Waterlooville": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Spen Valley": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Southend West and Leigh": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Brigg and Immingham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bootle": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Cramlington and Killingworth": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Great Yarmouth": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Kingston upon Hull East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Stockton North": { "pct": 0.013, "num": 1, "rev": 2000 }, + "North Durham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "The Wrekin": { "pct": 0.025, "num": 2, "rev": 4000 }, + "Gateshead Central and Whickham": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Hyndburn": { "pct": 0.0, "num": 0, "rev": 0 }, + "Redcar": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Leeds West and Pudsey": { "pct": 0.0, "num": 0, "rev": 0 }, + "Wolverhampton North East": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Ashton-under-Lyne": { "pct": 0.013, "num": 1, "rev": 2000 }, + "North East Cambridgeshire": { "pct": 0.0, "num": 0, "rev": 0 }, + "Ceredigion Preseli": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Barnsley South": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Gosport": { "pct": 0.0, "num": 0, "rev": 0 }, + "Middlesbrough South and East Cleveland": { "pct": 0.0, "num": 0, "rev": 0 }, + "Birmingham Yardley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Coventry North West": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Selby": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Cannock Chase": { "pct": 0.0, "num": 0, "rev": 0 }, + "Beverley and Holderness": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Bexleyheath and Crayford": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Newton Aycliffe and Spennymoor": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Liverpool Walton": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Birmingham Perry Barr": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Dudley": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Wallasey": { "pct": 0.013, "num": 1, "rev": 2000 }, + "Stockton West": { "pct": 0.013, "num": 1, "rev": 2000 } + } +} diff --git a/app/public/assets/posts/uk-mansion-tax/mansion_tax_constituency_data.csv b/app/public/assets/posts/uk-mansion-tax/mansion_tax_constituency_data.csv new file mode 100644 index 000000000..89e1dfb67 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/mansion_tax_constituency_data.csv @@ -0,0 +1,568 @@ +constituency,properties_1.5m,revenue_1.5m,properties_2m,revenue_2m +Cities of London and Westminster,929,1858000,742,1484000 +Kensington and Bayswater,757,1514000,553,1106000 +Chelsea and Fulham,578,1156000,364,728000 +Hampstead and Highgate,380,760000,237,474000 +Battersea,309,618000,131,262000 +Richmond Park,281,562000,147,294000 +Islington South and Finsbury,242,484000,137,274000 +Hammersmith and Chiswick,239,478000,123,246000 +Holborn and St Pancras,203,406000,135,270000 +Finchley and Golders Green,185,370000,107,214000 +Ealing Central and Acton,169,338000,75,150000 +Runnymede and Weybridge,168,336000,98,196000 +Wimbledon,155,310000,88,176000 +Queen's Park and Maida Vale,154,308000,86,172000 +Esher and Walton,152,304000,75,150000 +Hornsey and Friern Barnet,143,286000,48,96000 +Twickenham,134,268000,53,106000 +Windsor,130,260000,79,158000 +Putney,124,248000,45,90000 +Harpenden and Berkhamsted,120,240000,55,110000 +Tooting,119,238000,55,110000 +Dulwich and West Norwood,114,228000,49,98000 +Chesham and Amersham,110,220000,54,108000 +Beaconsfield,107,214000,49,98000 +Islington North,100,200000,40,80000 +Reigate,88,176000,31,62000 +Hackney South and Shoreditch,86,172000,46,92000 +Winchester,81,162000,32,64000 +Hertsmere,80,160000,44,88000 +Sevenoaks,79,158000,31,62000 +Guildford,79,158000,33,66000 +Maidenhead,77,154000,42,84000 +Bath,76,152000,35,70000 +South West Hertfordshire,75,150000,38,76000 +North Cotswolds,73,146000,38,76000 +Clapham and Brixton Hill,72,144000,30,60000 +Godalming and Ash,70,140000,33,66000 +Hackney North and Stoke Newington,68,136000,18,36000 +Oxford West and Abingdon,67,134000,39,78000 +Arundel and South Downs,67,134000,33,66000 +Tatton,67,134000,33,66000 +Poole,65,130000,32,64000 +Epping Forest,65,130000,34,68000 +Woking,61,122000,27,54000 +Henley and Thame,59,118000,30,60000 +Chipping Barnet,57,114000,25,50000 +St Albans,57,114000,21,42000 +Farnham and Bordon,57,114000,28,56000 +Hove and Portslade,55,110000,22,44000 +Brentwood and Ongar,55,110000,27,54000 +Vauxhall and Camberwell Green,52,104000,32,64000 +Bermondsey and Old Southwark,52,104000,36,72000 +Greenwich and Woolwich,49,98000,28,56000 +Dorking and Horley,49,98000,16,32000 +Lewisham West and East Dulwich,48,96000,10,20000 +Brent East,48,96000,21,42000 +Banbury,48,96000,33,66000 +Tunbridge Wells,47,94000,19,38000 +Hendon,46,92000,21,42000 +East Hampshire,46,92000,25,50000 +Chichester,45,90000,24,48000 +Southgate and Wood Green,45,90000,23,46000 +South Cotswolds,45,90000,22,44000 +Poplar and Limehouse,44,88000,24,48000 +Cambridge,44,88000,24,48000 +New Forest East,44,88000,25,50000 +Altrincham and Sale West,43,86000,18,36000 +Kingston and Surbiton,41,82000,17,34000 +Bromley and Biggin Hill,41,82000,26,52000 +East Surrey,41,82000,18,36000 +Newbury,40,80000,26,52000 +"Ruislip, Northwood and Pinner",40,80000,15,30000 +Wycombe,40,80000,26,52000 +Reading Central,37,74000,28,56000 +Streatham and Croydon North,37,74000,20,40000 +Epsom and Ewell,36,72000,16,32000 +East Grinstead and Uckfield,36,72000,21,42000 +Reading West and Mid Berkshire,36,72000,22,44000 +Eltham and Chislehurst,35,70000,10,20000 +North East Hampshire,35,70000,11,22000 +Manchester Central,35,70000,31,62000 +Leyton and Wanstead,35,70000,17,34000 +South Devon,34,68000,11,22000 +Mid Buckinghamshire,33,66000,13,26000 +New Forest West,33,66000,10,20000 +Lewisham North,33,66000,17,34000 +Wokingham,33,66000,14,28000 +South Cambridgeshire,32,64000,17,34000 +Cheltenham,32,64000,9,18000 +Bristol Central,32,64000,23,46000 +Witney,31,62000,17,34000 +North Cornwall,31,62000,21,42000 +Mid Sussex,31,62000,15,30000 +Romsey and Southampton North,31,62000,13,26000 +Welwyn Hatfield,31,62000,17,34000 +North West Essex,30,60000,13,26000 +Stratford-on-Avon,29,58000,18,36000 +Sussex Weald,29,58000,10,20000 +Truro and Falmouth,29,58000,12,24000 +Ealing Southall,28,56000,9,18000 +Meriden and Solihull East,28,56000,14,28000 +North East Hertfordshire,27,54000,9,18000 +Birmingham Ladywood,27,54000,24,48000 +Tonbridge,27,54000,11,22000 +Salisbury,26,52000,12,24000 +York Central,26,52000,17,34000 +Bethnal Green and Stepney,26,52000,16,32000 +Harrow East,26,52000,5,10000 +Surrey Heath,26,52000,9,18000 +Wetherby and Easingwold,25,50000,16,32000 +Beckenham and Penge,25,50000,10,20000 +North West Hampshire,25,50000,13,26000 +Kenilworth and Southam,25,50000,10,20000 +Daventry,25,50000,16,32000 +South Northamptonshire,24,48000,13,26000 +Croydon West,24,48000,15,30000 +East Wiltshire,24,48000,10,20000 +Frome and East Somerset,23,46000,12,24000 +Croydon South,23,46000,13,26000 +Didcot and Wantage,23,46000,9,18000 +Edmonton and Winchmore Hill,23,46000,9,18000 +Exeter,23,46000,16,32000 +Horsham,23,46000,9,18000 +Harrogate and Knaresborough,22,44000,16,32000 +Macclesfield,22,44000,12,24000 +Rutland and Stamford,22,44000,12,24000 +Cardiff South and Penarth,22,44000,19,38000 +Basildon and Billericay,21,42000,12,24000 +Peckham,21,42000,10,20000 +Canterbury,21,42000,12,24000 +Liverpool Riverside,20,40000,15,30000 +Tottenham,20,40000,11,22000 +Enfield North,20,40000,11,22000 +Exmouth and Exeter East,20,40000,9,18000 +Watford,19,38000,13,26000 +Luton South and South Bedfordshire,19,38000,13,26000 +Hitchin,19,38000,8,16000 +Hertford and Stortford,19,38000,10,20000 +Salford,19,38000,16,32000 +Bristol North West,19,38000,7,14000 +Bicester and Woodstock,19,38000,11,22000 +Chingford and Woodford Green,19,38000,6,12000 +Hamble Valley,19,38000,10,20000 +North West Norfolk,18,36000,11,22000 +Maldon,18,36000,8,16000 +Hornchurch and Upminster,18,36000,10,20000 +Newcastle upon Tyne Central and West,18,36000,17,34000 +Droitwich and Evesham,18,36000,12,24000 +Warwick and Leamington,18,36000,8,16000 +Orpington,18,36000,8,16000 +Stretford and Urmston,18,36000,14,28000 +North Somerset,18,36000,7,14000 +Tewkesbury,17,34000,8,16000 +Bury St Edmunds and Stowmarket,17,34000,10,20000 +Sutton and Cheam,17,34000,3,6000 +Lewes,17,34000,7,14000 +Oxford East,17,34000,8,16000 +Westmorland and Lonsdale,17,34000,10,20000 +Ely and East Cambridgeshire,16,32000,6,12000 +Eastbourne,16,32000,14,28000 +Skipton and Ripon,16,32000,9,18000 +Sheffield Central,16,32000,12,24000 +Hemel Hempstead,16,32000,10,20000 +Spelthorne,16,32000,10,20000 +Tamworth,16,32000,8,16000 +Wells and Mendip Hills,16,32000,7,14000 +Bexhill and Battle,16,32000,10,20000 +St Austell and Newquay,16,32000,7,14000 +Leeds South,15,30000,12,24000 +Honiton and Sidmouth,15,30000,4,8000 +West Dorset,15,30000,7,14000 +Manchester Rusholme,15,30000,13,26000 +Knowsley,15,30000,14,28000 +South Dorset,15,30000,6,12000 +St Ives,15,30000,8,16000 +Buckingham and Bletchley,15,30000,7,14000 +North Northumberland,15,30000,11,22000 +Rushcliffe,15,30000,6,12000 +Broxbourne,15,30000,8,16000 +Ealing North,15,30000,8,16000 +Bromsgrove,15,30000,7,14000 +Brighton Pavilion,15,30000,6,12000 +Christchurch,15,30000,5,10000 +North Devon,15,30000,8,16000 +Bournemouth West,14,28000,3,6000 +Loughborough,14,28000,4,8000 +Chester South and Eddisbury,14,28000,6,12000 +Weald of Kent,14,28000,7,14000 +South West Norfolk,14,28000,12,24000 +Brentford and Isleworth,14,28000,7,14000 +Stratford and Bow,14,28000,8,16000 +Manchester Withington,14,28000,9,18000 +Mid Bedfordshire,14,28000,11,22000 +South Suffolk,14,28000,9,18000 +Milton Keynes North,14,28000,11,22000 +Stourbridge,13,26000,9,18000 +West Lancashire,13,26000,8,16000 +Braintree,13,26000,6,12000 +Leeds Central and Headingley,13,26000,8,16000 +Keighley and Ilkley,13,26000,8,16000 +Harlow,13,26000,7,14000 +Chelmsford,13,26000,8,16000 +Suffolk Coastal,13,26000,4,8000 +Isle of Wight West,13,26000,9,18000 +Isle of Wight East,13,26000,10,20000 +Romford,13,26000,9,18000 +Worcester,13,26000,10,20000 +Stroud,13,26000,7,14000 +Thirsk and Malton,13,26000,6,12000 +Nottingham South,13,26000,10,20000 +Nottingham East,13,26000,10,20000 +Melton and Syston,13,26000,10,20000 +Sutton Coldfield,13,26000,4,8000 +North West Cambridgeshire,13,26000,6,12000 +Glastonbury and Somerton,13,26000,8,16000 +Melksham and Devizes,13,26000,7,14000 +Fylde,13,26000,2,4000 +Thornbury and Yate,13,26000,9,18000 +Coventry East,13,26000,12,24000 +Tiverton and Minehead,12,24000,7,14000 +Hexham,12,24000,6,12000 +Ashford,12,24000,8,16000 +Telford,12,24000,9,18000 +Hayes and Harlington,12,24000,11,22000 +North Herefordshire,12,24000,9,18000 +North Dorset,12,24000,4,8000 +Cheadle,12,24000,6,12000 +Scarborough and Whitby,12,24000,9,18000 +Torbay,12,24000,11,22000 +Birmingham Edgbaston,12,24000,5,10000 +Lewisham East,12,24000,3,6000 +Camborne and Redruth,12,24000,5,10000 +Neath and Swansea East,12,24000,1,2000 +Thurrock,11,22000,11,22000 +Mid Leicestershire,11,22000,9,18000 +Newcastle-under-Lyme,11,22000,9,18000 +Wirral West,11,22000,8,16000 +North Norfolk,11,22000,4,8000 +Northampton North,11,22000,11,22000 +Leicester South,11,22000,9,18000 +Witham,11,22000,4,8000 +York Outer,11,22000,7,14000 +Aylesbury,11,22000,8,16000 +Central Devon,11,22000,3,6000 +Harrow West,11,22000,6,12000 +Dartford,11,22000,9,18000 +Doncaster Central,11,22000,8,16000 +Corby and East Northamptonshire,11,22000,6,12000 +Gower,11,22000,11,22000 +Rugby,10,20000,9,18000 +Richmond and Northallerton,10,20000,3,6000 +St Neots and Mid Cambridgeshire,10,20000,4,8000 +Ribble Valley,10,20000,6,12000 +Walthamstow,10,20000,3,6000 +Rayleigh and Wickford,10,20000,2,4000 +Portsmouth South,10,20000,10,20000 +"Brecon, Radnor and Cwm Tawe",10,20000,3,6000 +Gloucester,10,20000,5,10000 +Peterborough,10,20000,8,16000 +Bognor Regis and Littlehampton,10,20000,6,12000 +Sittingbourne and Sheppey,10,20000,9,18000 +Congleton,10,20000,7,14000 +Broadland and Fakenham,10,20000,5,10000 +Filton and Bradley Stoke,10,20000,7,14000 +Bury South,10,20000,8,16000 +Hereford and South Herefordshire,10,20000,7,14000 +West Worcestershire,10,20000,8,16000 +Yeovil,10,20000,7,14000 +Mid Dorset and North Poole,10,20000,5,10000 +Newcastle upon Tyne North,10,20000,6,12000 +Newark,10,20000,7,14000 +Wyre Forest,10,20000,8,16000 +Huntingdon,10,20000,4,8000 +Worthing West,10,20000,5,10000 +Earley and Woodley,9,18000,6,12000 +Shrewsbury,9,18000,4,8000 +Chester North and Neston,9,18000,3,6000 +Central Suffolk and North Ipswich,9,18000,8,16000 +North West Leicestershire,9,18000,4,8000 +North Bedfordshire,9,18000,8,16000 +Dover and Deal,9,18000,3,6000 +Derbyshire Dales,9,18000,5,10000 +Solihull West and Shirley,9,18000,1,2000 +Hinckley and Bosworth,9,18000,6,12000 +Bracknell,9,18000,7,14000 +Southend East and Rochford,9,18000,3,6000 +South Ribble,9,18000,6,12000 +Brent West,9,18000,5,10000 +Stockport,9,18000,9,18000 +Gravesham,9,18000,7,14000 +Hastings and Rye,9,18000,3,6000 +South West Wiltshire,9,18000,6,12000 +Ashfield,9,18000,8,16000 +Herne Bay and Sandwich,9,18000,6,12000 +Widnes and Halewood,8,16000,5,10000 +Basingstoke,8,16000,7,14000 +Bassetlaw,8,16000,5,10000 +"Oldham West, Chadderton and Royton",8,16000,6,12000 +Bedford,8,16000,6,12000 +Birmingham Erdington,8,16000,7,14000 +Worsley and Eccles,8,16000,6,12000 +North Shropshire,8,16000,5,10000 +Waveney Valley,8,16000,6,12000 +Crawley,8,16000,7,14000 +South East Cornwall,8,16000,2,4000 +Washington and Gateshead South,8,16000,5,10000 +Wakefield and Rothwell,8,16000,6,12000 +Torridge and Tavistock,8,16000,4,8000 +Portsmouth North,8,16000,4,8000 +Stafford,8,16000,4,8000 +St Helens North,8,16000,6,12000 +Rossendale and Darwen,8,16000,7,14000 +Bristol East,8,16000,7,14000 +Southampton Itchen,8,16000,7,14000 +Sheffield Hallam,8,16000,3,6000 +Bristol South,8,16000,7,14000 +Milton Keynes Central,8,16000,5,10000 +South West Devon,8,16000,1,2000 +Monmouthshire,8,16000,5,10000 +Rochester and Strood,8,16000,5,10000 +Aberafan Maesteg,8,16000,3,6000 +Heywood and Middleton North,8,16000,3,6000 +Maidstone and Malling,8,16000,6,12000 +Llanelli,8,16000,8,16000 +Mid Norfolk,8,16000,6,12000 +Feltham and Heston,8,16000,7,14000 +Lichfield,8,16000,3,6000 +"Harborough, Oadby and Wigston",8,16000,4,8000 +Mansfield,7,14000,5,10000 +Stevenage,7,14000,3,6000 +Plymouth Sutton and Devonport,7,14000,3,6000 +Brighton Kemptown and Peacehaven,7,14000,2,4000 +Southampton Test,7,14000,6,12000 +Broxtowe,7,14000,4,8000 +South Leicestershire,7,14000,5,10000 +Cardiff West,7,14000,5,10000 +Sheffield South East,7,14000,6,12000 +Swindon South,7,14000,5,10000 +Redditch,7,14000,4,8000 +Clwyd North,7,14000,5,10000 +Penrith and Solway,7,14000,3,6000 +Makerfield,7,14000,3,6000 +Bradford South,7,14000,6,12000 +"Pontefract, Castleford and Knottingley",7,14000,3,6000 +Bolsover,7,14000,7,14000 +East Thanet,7,14000,4,8000 +Mid and South Pembrokeshire,7,14000,3,6000 +Wrexham,7,14000,5,10000 +Mid Derbyshire,7,14000,4,8000 +Normanton and Hemsworth,7,14000,6,12000 +Newport East,7,14000,4,8000 +Ilford North,7,14000,6,12000 +Wolverhampton West,7,14000,4,8000 +Dunstable and Leighton Buzzard,7,14000,5,10000 +Ilford South,7,14000,5,10000 +Kingswinford and South Staffordshire,6,12000,3,6000 +Carlisle,6,12000,5,10000 +Sefton Central,6,12000,5,10000 +Cardiff North,6,12000,5,10000 +Chippenham,6,12000,6,12000 +Runcorn and Helsby,6,12000,4,8000 +Barking,6,12000,5,10000 +Clacton,6,12000,4,8000 +Wythenshawe and Sale East,6,12000,5,10000 +Sheffield Heeley,6,12000,3,6000 +Slough,6,12000,4,8000 +Lincoln,6,12000,2,4000 +Leicester West,6,12000,5,10000 +Halesowen,6,12000,2,4000 +Bridgwater,6,12000,4,8000 +Birmingham Selly Oak,6,12000,3,6000 +Leeds North East,6,12000,3,6000 +Uxbridge and South Ruislip,6,12000,4,8000 +Grantham and Bourne,6,12000,2,4000 +Vale of Glamorgan,6,12000,3,6000 +Sleaford and North Hykeham,6,12000,5,10000 +Warrington South,6,12000,5,10000 +Burton and Uttoxeter,6,12000,4,8000 +Bury North,6,12000,3,6000 +South Basildon and East Thurrock,6,12000,5,10000 +Wigan,6,12000,1,2000 +Bradford East,6,12000,6,12000 +Leeds North West,6,12000,4,8000 +Middlesbrough and Thornaby East,6,12000,5,10000 +Gorton and Denton,6,12000,5,10000 +North East Somerset and Hanham,6,12000,2,4000 +East Worthing and Shoreham,6,12000,6,12000 +Erith and Thamesmead,6,12000,2,4000 +Derby North,6,12000,5,10000 +Derby South,6,12000,6,12000 +Nuneaton,6,12000,5,10000 +Pendle and Clitheroe,6,12000,3,6000 +Leeds East,5,10000,4,8000 +Caerfyrddin,5,10000,4,8000 +Havant,5,10000,1,2000 +Harwich and North Essex,5,10000,2,4000 +West Suffolk,5,10000,3,6000 +Sheffield Brightside and Hillsborough,5,10000,1,2000 +Birkenhead,5,10000,3,6000 +Nottingham North and Kimberley,5,10000,5,10000 +Wellingborough and Rushden,5,10000,4,8000 +North East Derbyshire,5,10000,1,2000 +Walsall and Bloxwich,5,10000,4,8000 +Tynemouth,5,10000,3,6000 +Swindon North,5,10000,4,8000 +South Derbyshire,5,10000,3,6000 +South Shropshire,5,10000,1,2000 +Old Bexley and Sidcup,5,10000,1,2000 +Stoke-on-Trent South,5,10000,3,6000 +Taunton and Wellington,5,10000,3,6000 +Stoke-on-Trent Central,5,10000,4,8000 +Doncaster East and the Isle of Axholme,5,10000,3,6000 +Bournemouth East,5,10000,1,2000 +Leicester East,5,10000,4,8000 +Halifax,5,10000,4,8000 +Lancaster and Wyre,5,10000,4,8000 +Preston,5,10000,4,8000 +Chorley,5,10000,2,4000 +Bangor Aberconwy,5,10000,2,4000 +Chatham and Aylesford,5,10000,3,6000 +Carshalton and Wallington,5,10000,5,10000 +Morecambe and Lunesdale,5,10000,3,6000 +Mitcham and Morden,5,10000,3,6000 +Rochdale,5,10000,3,6000 +Louth and Horncastle,5,10000,5,10000 +Ynys Môn,5,10000,0,0 +Alyn and Deeside,5,10000,4,8000 +Folkestone and Hythe,5,10000,3,6000 +Huddersfield,5,10000,4,8000 +Easington,4,8000,4,8000 +Bristol North East,4,8000,4,8000 +Southport,4,8000,4,8000 +Doncaster North,4,8000,4,8000 +Forest of Dean,4,8000,2,4000 +Bolton South and Walkden,4,8000,3,6000 +Rhondda and Ogmore,4,8000,1,2000 +Kingston upon Hull West and Haltemprice,4,8000,3,6000 +St Helens South and Whiston,4,8000,3,6000 +Bolton West,4,8000,2,4000 +Amber Valley,4,8000,1,2000 +Staffordshire Moorlands,4,8000,3,6000 +Merthyr Tydfil and Aberdare,4,8000,2,4000 +Boston and Skegness,4,8000,3,6000 +Stoke-on-Trent North,4,8000,3,6000 +"Stone, Great Wyrley and Penkridge",4,8000,3,6000 +Sunderland Central,4,8000,3,6000 +Bradford West,4,8000,3,6000 +Darlington,4,8000,3,6000 +Wolverhampton South East,4,8000,3,6000 +Newport West and Islwyn,4,8000,3,6000 +Luton North,4,8000,4,8000 +Hartlepool,4,8000,4,8000 +Newcastle upon Tyne East and Wallsend,4,8000,3,6000 +Kettering,4,8000,3,6000 +Gillingham and Rainham,4,8000,3,6000 +Jarrow and Gateshead East,4,8000,3,6000 +Warrington North,4,8000,3,6000 +Smethwick,4,8000,2,4000 +Eastleigh,4,8000,2,4000 +Faversham and Mid Kent,4,8000,3,6000 +Dwyfor Meirionnydd,4,8000,3,6000 +Bishop Auckland,4,8000,2,4000 +Croydon East,4,8000,2,4000 +Blackburn,4,8000,2,4000 +South Holland and The Deepings,4,8000,3,6000 +Kingston upon Hull North and Cottingham,4,8000,3,6000 +South Norfolk,4,8000,3,6000 +Burnley,4,8000,4,8000 +Weston-super-Mare,4,8000,3,6000 +Hazel Grove,4,8000,3,6000 +Barnsley North,4,8000,3,6000 +West Ham and Beckton,3,6000,3,6000 +Ipswich,3,6000,3,6000 +Erewash,3,6000,2,4000 +Torfaen,3,6000,3,6000 +Swansea West,3,6000,0,0 +Birmingham Hodge Hill and Solihull North,3,6000,2,4000 +Houghton and Sunderland South,3,6000,1,2000 +Blaenau Gwent and Rhymney,3,6000,1,2000 +Newton Abbot,3,6000,2,4000 +Blaydon and Consett,3,6000,2,4000 +Tipton and Wednesbury,3,6000,3,6000 +Whitehaven and Workington,3,6000,1,2000 +Plymouth Moor View,3,6000,2,4000 +Caerphilly,3,6000,2,4000 +Colne Valley,3,6000,2,4000 +Cardiff East,3,6000,2,4000 +Dagenham and Rainham,3,6000,3,6000 +Aldershot,3,6000,3,6000 +Oldham East and Saddleworth,3,6000,2,4000 +Ossett and Denby Dale,3,6000,3,6000 +North Warwickshire and Bedworth,3,6000,3,6000 +Goole and Pocklington,3,6000,2,4000 +Rother Valley,3,6000,0,0 +Coventry South,3,6000,3,6000 +Sherwood Forest,3,6000,2,4000 +Scunthorpe,3,6000,3,6000 +Chesterfield,3,6000,2,4000 +Leeds South West and Morley,3,6000,1,2000 +Shipley,3,6000,1,2000 +Rawmarsh and Conisbrough,3,6000,2,4000 +Bridlington and The Wolds,3,6000,3,6000 +Stalybridge and Hyde,3,6000,3,6000 +Northampton South,3,6000,2,4000 +Colchester,3,6000,3,6000 +Gainsborough,3,6000,3,6000 +Penistone and Stocksbridge,3,6000,2,4000 +Dewsbury and Batley,3,6000,3,6000 +Liverpool Garston,3,6000,2,4000 +Crewe and Nantwich,3,6000,3,6000 +Birmingham Hall Green and Moseley,2,4000,1,2000 +West Bromwich,2,4000,1,2000 +Calder Valley,2,4000,2,4000 +Bridgend,2,4000,1,2000 +Liverpool Wavertree,2,4000,1,2000 +Norwich South,2,4000,2,4000 +Barrow and Furness,2,4000,0,0 +High Peak,2,4000,0,0 +Lowestoft,2,4000,2,4000 +Gedling,2,4000,1,2000 +East Ham,2,4000,0,0 +City of Durham,2,4000,1,2000 +Clwyd East,2,4000,2,4000 +Rotherham,2,4000,1,2000 +Birmingham Northfield,2,4000,2,4000 +Leigh and Atherton,2,4000,0,0 +Ellesmere Port and Bromborough,2,4000,1,2000 +Blyth and Ashington,2,4000,2,4000 +Norwich North,2,4000,1,2000 +Blackpool South,2,4000,1,2000 +Blackpool North and Fleetwood,2,4000,0,0 +Blackley and Middleton South,2,4000,1,2000 +Bolton North East,2,4000,2,4000 +Fareham and Waterlooville,2,4000,1,2000 +Spen Valley,2,4000,2,4000 +Southend West and Leigh,2,4000,1,2000 +Brigg and Immingham,2,4000,1,2000 +Bootle,2,4000,2,4000 +Cramlington and Killingworth,2,4000,2,4000 +Great Yarmouth,2,4000,1,2000 +Kingston upon Hull East,2,4000,1,2000 +Stockton North,2,4000,1,2000 +North Durham,2,4000,1,2000 +The Wrekin,2,4000,2,4000 +Gateshead Central and Whickham,1,2000,1,2000 +Hyndburn,1,2000,0,0 +Redcar,1,2000,1,2000 +Leeds West and Pudsey,1,2000,0,0 +Wolverhampton North East,1,2000,1,2000 +Ashton-under-Lyne,1,2000,1,2000 +North East Cambridgeshire,1,2000,0,0 +Ceredigion Preseli,1,2000,1,2000 +Barnsley South,1,2000,1,2000 +Gosport,1,2000,0,0 +Middlesbrough South and East Cleveland,1,2000,0,0 +Birmingham Yardley,1,2000,1,2000 +Coventry North West,1,2000,1,2000 +Selby,1,2000,1,2000 +Cannock Chase,1,2000,0,0 +Beverley and Holderness,1,2000,1,2000 +Bexleyheath and Crayford,1,2000,1,2000 +Newton Aycliffe and Spennymoor,1,2000,1,2000 +Liverpool Walton,1,2000,1,2000 +Birmingham Perry Barr,1,2000,1,2000 +Dudley,1,2000,1,2000 +Wallasey,1,2000,1,2000 +Stockton West,1,2000,1,2000 diff --git a/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3.html b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3.html new file mode 100644 index 000000000..55def6cff --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3.html @@ -0,0 +1,26701 @@ + + + + + + Mansion Tax Impact by Constituency + + + + + + +
+
+

Mansion tax impact by constituency

+

Number of high-value property sales by UK parliamentary constituency

+
+ +
+
+

Search constituency

+
+ +
+
+
+ +
+ + +
+
+ + +
+ +
+
+
+ Lower % + Higher % +
+
+
+ +
+ +
+ + + +
+
+
+ +
+ Source: PolicyEngine analysis of Land Registry data (uprated to 2026-27 using OBR HPI) +
+
+ + + + diff --git a/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_1m.html b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_1m.html new file mode 100644 index 000000000..1f4d311f0 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_1m.html @@ -0,0 +1,26086 @@ + + + + + + Mansion Tax Impact by Constituency (£1.5m threshold) + + + + + + +
+
+

Mansion tax impact by constituency (£1.5m threshold)

+

Number of properties affected in each UK parliamentary constituency

+
+ +
+
+

Search constituency

+
+ +
+
+
+ +
+ + +
+ +
+
+
+ Lower % + Higher % +
+
+
+ +
+ +
+ + + +
+
+
+ +
+ Source: PolicyEngine analysis of Land Registry data (uprated to 2026-27 using OBR HPI) +
+
+ + + + diff --git a/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_2m.html b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_2m.html new file mode 100644 index 000000000..3a0ae7fa2 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_2m.html @@ -0,0 +1,26086 @@ + + + + + + Mansion Tax Impact by Constituency (£2m threshold) + + + + + + +
+
+

Mansion tax impact by constituency (£2m threshold)

+

Number of properties affected in each UK parliamentary constituency

+
+ +
+
+

Search constituency

+
+ +
+
+
+ +
+ + +
+ +
+
+
+ Lower % + Higher % +
+
+
+ +
+ +
+ + + +
+
+
+ +
+ Source: PolicyEngine analysis of Land Registry data (uprated to 2026-27 using OBR HPI) +
+
+ + + + diff --git a/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_combined_footer.txt b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_combined_footer.txt new file mode 100644 index 000000000..1963f84e0 --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_combined_footer.txt @@ -0,0 +1,394 @@ + + const width = 800; + const height = 900; + const svg = d3.select('#map'); + const g = svg.append('g'); + const tooltip = document.getElementById('tooltip'); + + let currentView = 'geo'; + + // Calculate bounds of British National Grid coordinates + let xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity; + geoData.features.forEach(feature => { + const traverse = (coords) => { + if (typeof coords[0] === 'number') { + xMin = Math.min(xMin, coords[0]); + xMax = Math.max(xMax, coords[0]); + yMin = Math.min(yMin, coords[1]); + yMax = Math.max(yMax, coords[1]); + } else { + coords.forEach(traverse); + } + }; + traverse(feature.geometry.coordinates); + }); + + // Create scale to fit British National Grid into SVG + const padding = 80; + const dataWidth = xMax - xMin; + const dataHeight = yMax - yMin; + const geoScale = Math.min((width - 2 * padding) / dataWidth, (height - 2 * padding) / dataHeight); + const geoOffsetX = (width - dataWidth * geoScale) / 2; + const geoOffsetY = (height - dataHeight * geoScale) / 2; + + const projection = d3.geoTransform({ + point: function(x, y) { + this.stream.point( + (x - xMin) * geoScale + geoOffsetX, + height - ((y - yMin) * geoScale + geoOffsetY) + ); + } + }); + + const path = d3.geoPath().projection(projection); + + // Calculate hex bounds + let hexQMin = Infinity, hexQMax = -Infinity, hexRMin = Infinity, hexRMax = -Infinity; + Object.values(hexData).forEach(h => { + hexQMin = Math.min(hexQMin, h.q); + hexQMax = Math.max(hexQMax, h.q); + hexRMin = Math.min(hexRMin, h.r); + hexRMax = Math.max(hexRMax, h.r); + }); + + // Hex positioning + const hexSize = 9; + const hexWidth = hexSize * 2; + const hexHeight = Math.sqrt(3) * hexSize; + const hexRangeQ = hexQMax - hexQMin; + const hexRangeR = hexRMax - hexRMin; + const hexTotalWidth = hexRangeQ * hexWidth * 0.75 + hexWidth; + const hexTotalHeight = hexRangeR * hexHeight + hexHeight; + const hexOffsetX = (width - hexTotalWidth) / 2; + const hexOffsetY = (height - hexTotalHeight) / 2; + + function getHexPosition(q, r) { + const x = hexOffsetX + (q - hexQMin) * hexWidth * 0.75 + hexWidth / 2; + // Flip y-axis so south (London) is at the bottom + const y = hexOffsetY + (hexRMax - r) * hexHeight + (q % 2 !== 0 ? hexHeight / 2 : 0) + hexHeight / 2; + return { x, y }; + } + + // Hex path generator + function hexPath(cx, cy, size) { + const angles = [0, 60, 120, 180, 240, 300].map(a => a * Math.PI / 180); + const points = angles.map(a => [ + cx + size * Math.cos(a), + cy + size * Math.sin(a) + ]); + return 'M' + points.map(p => p.join(',')).join('L') + 'Z'; + } + + // Color scale - sequential teal based on % of constituency + const maxPct = Math.max(...Object.values(impactData).map(d => d.pct)); + const colorScale = d3.scaleSequential() + .domain([0, maxPct]) + .interpolator(t => d3.interpolate('#e0e7ed', '#1a4a6e')(Math.pow(t, 0.5))); + + // Calculate centroids for geo view + const centroids = {}; + geoData.features.forEach(feature => { + const bounds = path.bounds(feature); + centroids[feature.properties.Name] = { + x: (bounds[0][0] + bounds[1][0]) / 2, + y: (bounds[0][1] + bounds[1][1]) / 2 + }; + }); + + // Draw geographic view (initial) + const paths = g.selectAll('path') + .data(geoData.features) + .join('path') + .attr('d', path) + .attr('class', 'constituency-path') + .attr('fill', d => { + const data = impactData[d.properties.Name]; + return data ? colorScale(data.pct) : '#e0e7ed'; + }) + .attr('stroke', '#fff') + .attr('stroke-width', 0.3) + .on('click', handleClick); + + function handleClick(event, d) { + event.stopPropagation(); + const name = d.properties ? d.properties.Name : d.name; + const data = impactData[name] || { pct: 0, num: 0, rev: 0 }; + showTooltip(name, data, event); + // Highlight + g.selectAll('.constituency-path, .hex') + .attr('stroke', '#fff') + .attr('stroke-width', currentView === 'geo' ? 0.3 : 1); + d3.select(this) + .attr('stroke', '#277674') + .attr('stroke-width', currentView === 'geo' ? 1.5 : 2); + } + + function showTooltip(name, data, event) { + tooltip.innerHTML = ` +

${name}

+
+ Number + ${data.num.toLocaleString()} +
+
+ Percent + ${data.pct.toFixed(2)}% +
+
+ Est. revenue + £${data.rev.toLocaleString()} +
+ `; + const rect = document.querySelector('.map-canvas').getBoundingClientRect(); + tooltip.style.left = (event.clientX - rect.left) + 'px'; + tooltip.style.top = (event.clientY - rect.top - 10) + 'px'; + tooltip.style.display = 'block'; + } + + // Click outside to hide tooltip + svg.on('click', () => { + tooltip.style.display = 'none'; + g.selectAll('.constituency-path, .hex') + .attr('stroke', '#fff') + .attr('stroke-width', currentView === 'geo' ? 0.3 : 1); + }); + + // Zoom behavior + const zoom = d3.zoom() + .scaleExtent([1, 8]) + .on('zoom', (event) => { + g.attr('transform', event.transform); + }); + svg.call(zoom); + + // Set initial view to center UK with slight zoom + const initialScale = 1.1; + const initialX = (width - width * initialScale) / 2; + const initialY = (height - height * initialScale) / 2 - 200; + svg.call(zoom.transform, d3.zoomIdentity.translate(initialX, initialY).scale(initialScale)); + + document.getElementById('zoom-in').onclick = () => svg.transition().call(zoom.scaleBy, 1.5); + document.getElementById('zoom-out').onclick = () => svg.transition().call(zoom.scaleBy, 0.67); + document.getElementById('zoom-reset').onclick = () => { + svg.transition().call(zoom.transform, d3.zoomIdentity); + tooltip.style.display = 'none'; + }; + + // View toggle + const btnGeo = document.getElementById('btn-geo'); + const btnHex = document.getElementById('btn-hex'); + + btnGeo.onclick = () => { + if (currentView === 'geo') return; + currentView = 'geo'; + btnGeo.classList.add('active'); + btnHex.classList.remove('active'); + switchToGeo(); + }; + + btnHex.onclick = () => { + if (currentView === 'hex') return; + currentView = 'hex'; + btnHex.classList.add('active'); + btnGeo.classList.remove('active'); + switchToHex(); + }; + + function switchToHex() { + // Set zoom for hex view (zoomed out and shifted up to fit) + const hexScale = 0.8; + const hexX = (width - width * hexScale) / 2; + const hexY = (height - height * hexScale) / 2 - 60; + svg.transition().duration(300).call(zoom.transform, d3.zoomIdentity.translate(hexX, hexY).scale(hexScale)); + tooltip.style.display = 'none'; + + // Remove existing paths + g.selectAll('path').remove(); + + // Create hex data array + const hexArray = geoData.features.map(feature => { + const name = feature.properties.Name; + const hex = hexData[name]; + return { + name: name, + hex: hex, + feature: feature + }; + }).filter(d => d.hex); + + // Draw hexes + g.selectAll('.hex') + .data(hexArray) + .join('path') + .attr('class', 'hex') + .attr('d', d => { + const pos = getHexPosition(d.hex.q, d.hex.r); + return hexPath(pos.x, pos.y, hexSize); + }) + .attr('fill', d => { + const data = impactData[d.name]; + return data ? colorScale(data.pct) : '#e0e7ed'; + }) + .attr('stroke', '#fff') + .attr('stroke-width', 1) + .style('opacity', 0) + .on('click', function(event, d) { + event.stopPropagation(); + const data = impactData[d.name] || { pct: 0, num: 0, rev: 0 }; + showTooltip(d.name, data, event); + g.selectAll('.hex') + .attr('stroke', '#fff') + .attr('stroke-width', 1); + d3.select(this) + .attr('stroke', '#277674') + .attr('stroke-width', 2); + }) + .transition() + .duration(500) + .style('opacity', 1); + } + + function switchToGeo() { + // Reset zoom + svg.transition().duration(300).call(zoom.transform, d3.zoomIdentity); + tooltip.style.display = 'none'; + + // Remove hexes + g.selectAll('.hex').remove(); + + // Redraw paths + g.selectAll('path') + .data(geoData.features) + .join('path') + .attr('d', path) + .attr('class', 'constituency-path') + .attr('fill', d => { + const data = impactData[d.properties.Name]; + return data ? colorScale(data.pct) : '#e0e7ed'; + }) + .attr('stroke', '#fff') + .attr('stroke-width', 0.3) + .style('opacity', 0) + .on('click', handleClick) + .transition() + .duration(500) + .style('opacity', 1); + } + + // Search functionality + const searchInput = document.getElementById('search-input'); + const searchResults = document.getElementById('search-results'); + const allNames = geoData.features.map(f => f.properties.Name).sort(); + + searchInput.addEventListener('input', (e) => { + const query = e.target.value.toLowerCase(); + if (query.length < 2) { + searchResults.style.display = 'none'; + return; + } + const matches = allNames + .filter(name => name.toLowerCase().includes(query)) + .slice(0, 5); + + if (matches.length === 0) { + searchResults.style.display = 'none'; + return; + } + + searchResults.innerHTML = matches.map(name => { + const data = impactData[name] || { pct: 0, num: 0, rev: 0 }; + return ` + + `; + }).join(''); + searchResults.style.display = 'block'; + + searchResults.querySelectorAll('.search-result-item').forEach(btn => { + btn.onclick = () => { + const name = btn.dataset.name; + searchInput.value = name; + searchResults.style.display = 'none'; + + // Reset zoom first + svg.transition().duration(300).call(zoom.transform, d3.zoomIdentity); + + // Show tooltip + const data = impactData[name] || { pct: 0, num: 0, rev: 0 }; + tooltip.innerHTML = ` +

${name}

+
Number${data.num.toLocaleString()}
+
Percent${data.pct.toFixed(2)}%
+
Est. revenue£${data.rev.toLocaleString()}
+ `; + + if (currentView === 'geo') { + // Highlight and zoom to constituency + g.selectAll('.constituency-path') + .attr('stroke', '#fff') + .attr('stroke-width', 0.3); + g.selectAll('.constituency-path') + .filter(d => d.properties.Name === name) + .attr('stroke', '#277674') + .attr('stroke-width', 1.5); + + const feature = geoData.features.find(f => f.properties.Name === name); + if (feature) { + const bounds = path.bounds(feature); + const dx = bounds[1][0] - bounds[0][0]; + const dy = bounds[1][1] - bounds[0][1]; + const x = (bounds[0][0] + bounds[1][0]) / 2; + const y = (bounds[0][1] + bounds[1][1]) / 2; + const zoomScale = Math.min(4, 0.9 / Math.max(dx / width, dy / height)); + const translate = [width / 2 - zoomScale * x, height / 2 - zoomScale * y]; + + svg.transition().duration(750).call( + zoom.transform, + d3.zoomIdentity.translate(translate[0], translate[1]).scale(zoomScale) + ); + + tooltip.style.left = '50%'; + tooltip.style.top = '40%'; + tooltip.style.display = 'block'; + } + } else { + // Highlight hex + g.selectAll('.hex') + .attr('stroke', '#fff') + .attr('stroke-width', 1); + g.selectAll('.hex') + .filter(d => d.name === name) + .attr('stroke', '#277674') + .attr('stroke-width', 2); + + const hex = hexData[name]; + if (hex) { + const pos = getHexPosition(hex.q, hex.r); + const zoomScale = 3; + const translate = [width / 2 - zoomScale * pos.x, height / 2 - zoomScale * pos.y]; + + svg.transition().duration(750).call( + zoom.transform, + d3.zoomIdentity.translate(translate[0], translate[1]).scale(zoomScale) + ); + + tooltip.style.left = '50%'; + tooltip.style.top = '40%'; + tooltip.style.display = 'block'; + } + } + }; + }); + }); + + // Hide search results when clicking outside + document.addEventListener('click', (e) => { + if (!e.target.closest('.search-container')) { + searchResults.style.display = 'none'; + } + }); + + + \ No newline at end of file diff --git a/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_combined_header.txt b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_combined_header.txt new file mode 100644 index 000000000..cd4eff3fb --- /dev/null +++ b/app/public/assets/posts/uk-mansion-tax/mansion_tax_d3_combined_header.txt @@ -0,0 +1,305 @@ + + + + + + Mansion Tax Impact by Constituency (£1.5m threshold) + + + + + + +
+
+

Mansion tax impact by constituency (£1.5m threshold)

+

Number of properties affected in each UK parliamentary constituency

+
+ +
+
+

Search constituency

+
+ +
+
+
+ +
+ + +
+ +
+
+
+ Lower % + Higher % +
+
+
+ +
+ +
+ + + +
+
+
+ +
+ Source: PolicyEngine analysis of Land Registry data (uprated to 2026-27 using OBR HPI) +
+
+ + diff --git a/app/public/charts/california-billionaire-tax-marginal-rates/mtr.html b/app/public/charts/california-billionaire-tax-marginal-rates/mtr.html index 70332b4bc..12866c9d8 100644 --- a/app/public/charts/california-billionaire-tax-marginal-rates/mtr.html +++ b/app/public/charts/california-billionaire-tax-marginal-rates/mtr.html @@ -9,7 +9,7 @@
diff --git a/app/public/charts/california-billionaire-tax-marginal-rates/phase-in.html b/app/public/charts/california-billionaire-tax-marginal-rates/phase-in.html index 95bac6027..73a10eef7 100644 --- a/app/public/charts/california-billionaire-tax-marginal-rates/phase-in.html +++ b/app/public/charts/california-billionaire-tax-marginal-rates/phase-in.html @@ -9,7 +9,7 @@
diff --git a/app/public/data/posts.json b/app/public/data/posts.json index 41076924c..4ae86800b 100644 --- a/app/public/data/posts.json +++ b/app/public/data/posts.json @@ -1,59 +1,47 @@ [ + { + "title": "Estimating the constituency distribution of a mansion tax", + "description": "Three central London constituencies account for a fifth of property sales above £2 million. We map the geographic distribution.", + "date": "2025-11-25 12:00:00", + "tags": ["uk", "policy", "tax", "autumn budget", "featured"], + "authors": ["daphne-hansell"], + "filename": "uk-mansion-tax-autumn-budget.md", + "image": "uk-mansion-tax/cover.png", + "hideHeaderImage": false + }, { "title": "Analysing alternative income tax and National Insurance reform options for the UK", "description": "PolicyEngine analysis of alternative tax reform options: raising basic and higher income tax rates, cutting NI, and extending the threshold freeze.", "date": "2025-11-20 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], + "tags": ["uk", "policy", "featured"], "filename": "uk-income-tax-ni-reforms-2025.md", "image": "uk-income-tax-ni-reforms-2025.jpg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "PolicyEngine London event 2025", "description": "PolicyEngine hosted an event in London that presented new updates and capabilities, real-world policy research applications, local area modelling, and how to use AI in policy research.", "date": "2025-11-10", - "tags": [ - "uk", - "event", - "featured" - ], + "tags": ["uk", "event", "featured"], "filename": "policyengine-2-event-report.md", "image": "policyengine-2-event-report.jpeg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "Marginal tax rates in California's proposed billionaire tax", "description": "The 5% tax creates marginal tax rates between 50% and 60% on wealth between $1 billion and $1.1 billion.", "date": "2025-10-25", - "tags": [ - "us" - ], + "tags": ["us"], "filename": "california-billionaire-tax-marginal-rates.md", "image": "california-billionaire-tax-marginal-rates.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Comparing PolicyEngine and official UK poverty rates", "description": "We compare PolicyEngine poverty estimates with official DWP statistics and explain the methodological factors behind the differences.", "date": "2025-10-10 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-poverty-analysis.md", "image": "uk-poverty-analysis.jpg" }, @@ -61,14 +49,8 @@ "title": "How removing the two-child benefit limit would affect the UK", "description": "Removing the two-child limit would cost £2.8 billion in 2026-27 and reduce child poverty by 15.7%.", "date": "2025-10-06 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-two-child-limit.md", "image": "uk-reeves.jpg" }, @@ -76,15 +58,8 @@ "title": "How we used Claude Code to choose our DC office", "description": "We used Claude Code to build an interactive comparison tool for choosing our DC office. The winner: Open Gov Hub. Join us Oct 22 to celebrate!", "date": "2025-10-05", - "tags": [ - "us", - "org", - "ai" - ], - "authors": [ - "max-ghenis", - "daphne-hansell" - ], + "tags": ["us", "org", "ai"], + "authors": ["max-ghenis", "daphne-hansell"], "filename": "dc-office-ai-coding.md", "image": "dc-office-ai-coding.png" }, @@ -92,16 +67,8 @@ "title": "Introducing ACA-Calc: Calculate your household's premium tax credits", "description": "New interactive calculator shows how Affordable Care Act subsidies affect households under current enhanced schedule and original schedule.", "date": "2025-09-30", - "tags": [ - "us", - "policy", - "featured", - "healthcare", - "interactives" - ], - "authors": [ - "daphne-hansell" - ], + "tags": ["us", "policy", "featured", "healthcare", "interactives"], + "authors": ["daphne-hansell"], "filename": "introducing-aca-calc.md", "image": "biden-arpa.png" }, @@ -109,14 +76,8 @@ "title": "How carbon tax and dividend policies affect UK households", "description": "PolicyEngine analysis of £100/200 per tonne carbon taxes with full dividend redistribution shows approximately 71% of UK residents would gain.", "date": "2025-09-30 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-carbon-tax-dividend.md", "image": "uk-carbon-tax.png" }, @@ -124,15 +85,8 @@ "title": "Enhanced Premium Tax Credits: Analyzing Household Impacts of an Extension Beyond 2025", "description": "PolicyEngine analyzes extending the enhanced premium tax credits enacted through the American Rescue Plan Act beyond their 2025 expiration.", "date": "2025-09-30", - "tags": [ - "us", - "policy", - "featured", - "healthcare" - ], - "authors": [ - "daphne-hansell" - ], + "tags": ["us", "policy", "featured", "healthcare"], + "authors": ["daphne-hansell"], "filename": "enhanced-premium-tax-credits-extension.md", "image": "enhanced-premium-tax-credits-extension.jpg" }, @@ -140,163 +94,88 @@ "title": "Event: PolicyEngine 2.0 and the Future of Public Policy Analysis", "description": "Join us on the afternoon of November 3rd in London for an exclusive showcase of PolicyEngine's latest innovations in evidence-based policy analysis, featuring live demos and networking.", "date": "2025-09-12", - "tags": [ - "uk", - "org", - "featured", - "event" - ], + "tags": ["uk", "org", "featured", "event"], "filename": "sep-2025-london-event.md", "image": "sep-2025-london-event.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "PolicyEngine and NBER sign memorandum of understanding for TAXSIM emulator development", "description": "Partnership ensures continuity of tax microsimulation capabilities for the research community through open-source development.", "date": "2025-09-05", - "tags": [ - "us", - "org", - "featured" - ], + "tags": ["us", "org", "featured"], "filename": "policyengine-nber-mou-taxsim.md", "image": "policyengine-nber-mou-taxsim.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "National Science Foundation awards PolicyEngine $300,000 grant", "description": "NSF's Pathways to Enable Open-Source Ecosystems program will support PolicyEngine's work to expand access to policy analysis tools.", "date": "2025-08-18", - "tags": [ - "us", - "uk", - "org", - "featured" - ], + "tags": ["us", "uk", "org", "featured"], "filename": "nsf-pose-phase-1-grant.md", "image": "nsf-official-logo.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of the American Worker Rebate Act of 2025", "description": "The bill would cost $141 billion and benefit 80% of American residents.", "date": "2025-08-13", - "tags": [ - "us", - "tariffs", - "featured" - ], + "tags": ["us", "tariffs", "featured"], "filename": "american-worker-rebate-act.md", "image": "american-worker-rebate-act.jpg", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Enhanced CPS full launch: Comprehensive microdata for policy analysis", "description": "The Enhanced Current Population Survey now includes tip, overtime, and auto loan interest imputations, plus upcoming state and congressional district calibration.", "date": "2025-08-11", - "tags": [ - "us", - "data", - "featured" - ], + "tags": ["us", "data", "featured"], "filename": "enhanced-cps-launch.md", "image": "enhanced-cps-launch.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff", - "ben-ogorek", - "maria-juaristi" - ] + "authors": ["max-ghenis", "nikhil-woodruff", "ben-ogorek", "maria-juaristi"] }, { "title": "Analysis of individual income tax provisions in the final reconciliation bill", "description": "Our simulation projects a reduction in federal revenues of $3.8 trillion from 2026 to 2035 compared to current law.", "date": "2025-07-04", - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "tags": ["us", "policy", "featured", "reconciliation"], "filename": "final-2025-reconciliation-tax.md", "image": "final-2025-reconciliation-tax.png", - "authors": [ - "david-trimmer", - "pavel-makarchuk" - ] + "authors": ["david-trimmer", "pavel-makarchuk"] }, { "title": "Introducing the OBBBA Household Explorer", "description": "New interactive tool reveals household-level impacts of the One Big Beautiful Bill Act.", "date": "2025-07-03", - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "tags": ["us", "policy", "featured", "reconciliation"], "filename": "introducing-obbba-household-explorer.md", "image": "introducing-obbba-household-explorer.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk", - "elena-cura" - ] + "authors": ["max-ghenis", "pavel-makarchuk", "elena-cura"] }, { "title": "The 2025 American Family Act", "description": "The Child Tax Credit expansion would cost the federal government $2.5 trillion over ten years and lower child poverty by 25%.", "date": "2025-06-16", - "tags": [ - "us", - "policy", - "featured", - "child-tax-credit" - ], + "tags": ["us", "policy", "featured", "child-tax-credit"], "filename": "american-family-act-2025.md", "image": "american-family-act-2025.webp", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Childcare programmes in PolicyEngine UK", "description": "This report explains how PolicyEngine models childcare programmes in the UK.", "date": "2025-06-06", - "tags": [ - "uk", - "benefit", - "featured" - ], + "tags": ["uk", "benefit", "featured"], "filename": "uk-childcare-report.md", "image": "uk_childcare_report.jpg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "Manager's Amendment to H.R.1 - The One Big Beautiful Bill Act", "date": "2025-05-24", - "authors": [ - "pavel-makarchuk", - "david-trimmer", - "max-ghenis" - ], - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "authors": ["pavel-makarchuk", "david-trimmer", "max-ghenis"], + "tags": ["us", "policy", "featured", "reconciliation"], "description": "We project that individual provisions in the manager's amendment will cost $22 billion over the budget window.", "filename": "managers-amendment-to-hr1.md", "image": "managers-amendment-to-hr1.png" @@ -305,282 +184,169 @@ "title": "Montana Reduces Top Income Tax Rate and Expands EITC", "description": "Montana's latest individual income tax changes will lower state revenues by $245 million and raise net income for an estimated 77% of residents in 2027.", "date": "2025-05-22", - "tags": [ - "us", - "featured", - "us-mt" - ], + "tags": ["us", "featured", "us-mt"], "filename": "montana-tax-cuts-2026.md", "image": "montana-tax-cuts-2026.jpg", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "The SALT Caucus's Proposed Cap", "description": "We project that replacing the SALT cap approved by the Ways and Means Committee with the SALT Caucus proposal would cost $497 billion over the budget window.", "date": "2025-05-15", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "salt-caucus-62k-cap.md", "image": "salt-caucus-62k-cap.png", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Ways and Means Committee's SALT Cap", "description": "We project that limiting state and local tax deductions to $30,000, phasing down to $10,000 at high incomes, would raise $937 billion over the budget window.", "date": "2025-05-14", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "ways-and-means-salt-cap.md", "image": "ways-and-means-salt-cap.webp", - "authors": [ - "pavel-makarchuk", - "david-trimmer", - "max-ghenis" - ] + "authors": ["pavel-makarchuk", "david-trimmer", "max-ghenis"] }, { "title": "Tax changes in effect in April 2025", "description": "Using PolicyEngine UK, we analyse four tax changes taking effect in April 2025 that will increase taxes by an average of £1,133 per household.", "date": "2025-04-25", - "tags": [ - "uk", - "tax", - "policy", - "featured" - ], + "tags": ["uk", "tax", "policy", "featured"], "filename": "impact-of-tax-changes-2025-2026.md", "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Analyzing Energy Policy with PolicyEngine", "description": "We provide an Earth Day recap of our capabilities in the US and UK.", "date": "2025-04-22", - "tags": [ - "us", - "uk", - "featured" - ], + "tags": ["us", "uk", "featured"], "filename": "earth-day-2025.md", "image": "earth-day-2025.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "What's the SALTernative?", "description": "Introducing PolicyEngine’s free SALT‑AMT calculator — an open‑source web app to model next year’s SALT‑cap sunset, tweak AMT parameters, and see the budget, distributional, and household impacts in seconds.", "date": "2025-04-21", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "introducing-salternative.md", "image": "introducing-salternative.png", - "authors": [ - "pavel-makarchuk", - "max-ghenis" - ] + "authors": ["pavel-makarchuk", "max-ghenis"] }, { "title": "MyFriendBen Launches in North Carolina, Using PolicyEngine API", "description": "Our rules engine powers the open-source multi-benefit screener and its expansion beyond Colorado.", "date": "2025-04-05", - "tags": [ - "us", - "us-nc", - "featured", - "api", - "benefit-access" - ], + "tags": ["us", "us-nc", "featured", "api", "benefit-access"], "filename": "myfriendben-nc.md", "image": "myfriendben-nc.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "New Ways to Give to PolicyEngine", "description": "Exploring state tax credits for charitable giving.", "date": "2025-04-01", - "tags": [ - "us", - "april-fools", - "featured" - ], + "tags": ["us", "april-fools", "featured"], "filename": "april-1st-2025.md", "image": "april-1st-2025.png", - "authors": [ - "daphne-hansell" - ] + "authors": ["daphne-hansell"] }, { "title": "Analysis of the Spring 2025 OBR forecast", "description": "PolicyEngine integrates the new OBR forecasts to provide updated predictions on household income, poverty, and inequality.", "date": "2025-03-26", - "tags": [ - "uk", - "impact", - "featured" - ], + "tags": ["uk", "impact", "featured"], "filename": "obr-forecast-2025.ipynb", "image": "obr-forecast-2025.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "HM Treasury pilots PolicyEngine UK for tax-benefit microsimulation", "description": "The UK government's finance ministry explores PolicyEngine as a potential supplement to existing models.", "date": "2025-03-24", - "tags": [ - "uk", - "impact", - "featured" - ], + "tags": ["uk", "impact", "featured"], "filename": "hmt-policyengine-pilot.md", "image": "analysis-of-the-spring-budget-2023.jpeg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Extending the Income Tax threshold freeze to 2030", "description": "PolicyEngine estimates extending the personal allowance and higher rate threshold freeze would raise £12.2 billion over two years.", "date": "2025-03-25", - "tags": [ - "uk", - "policy", - "featured" - ], + "tags": ["uk", "policy", "featured"], "filename": "income-tax-freeze.md", "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "PolicyEngine's 2022 year in review", "description": "A year of launches, analysis, and building for the future.", "date": "2022-12-30", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "policyengine-2022-year-in-review.md", "image": "policyengine-2022-year-in-review.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "How machine learning tools make PolicyEngine more accurate", "description": "Today, we're launching new survey weights that cut deviations from administrative statistics by 97%.", "date": "2022-03-07", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "how-machine-learning-tools-make-policyengine-more-accurate.md", "image": "how-machine-learning-tools-make-policyengine-more-accurate.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Enhancing the Current Population Survey for policy analysis", "description": "We've used modern data science techniques to make PolicyEngine the UK's most accurate microsimulation model. In 2023, we'll do the same in the US.", "date": "2022-12-28", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "enhancing-the-current-population-survey-for-policy-analysis.md", "image": "enhancing-the-current-population-survey-for-policy-analysis.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "How charitable contributions affect Americans' taxes", "description": "PolicyEngine estimates the tax impact of your donations for free.", "date": "2022-11-29", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "charitable-contributions.md", "image": "charitable-contributions.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Maryland's standard deduction", "description": "PolicyEngine computes the program's impact on Maryland and individual households.", "date": "2022-11-22", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "maryland-standard-deduction.md", "image": "maryland-standard-deduction.png", - "authors": [ - "kevin-foster" - ] + "authors": ["kevin-foster"] }, { "title": "From OpenFisca to PolicyEngine", "description": "OpenFisca has catapulted our progress, and now we've forked it into our own microsimulation framework.", "date": "2022-11-10", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "from-openfisca-to-policyengine.md", "image": "from-openfisca-to-policyengine.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Oregon's Nonrefundable Exemption Credit", "description": "PolicyEngine computes the program's impact on Oregon and individual households.", "date": "2022-11-04", - "tags": [ - "us", - "us-or", - "policy" - ], + "tags": ["us", "us-or", "policy"], "filename": "oregons-nonrefundable-exemption-credit.md", "image": "oregons-nonrefundable-exemption-credit.jpeg", - "authors": [ - "kevin-foster" - ] + "authors": ["kevin-foster"] }, { "title": "Stamp duties in PolicyEngine UK", "date": "2022-09-22", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "The Times reported yesterday that Prime Minister Liz Truss will announce plans to cut Stamp Duty this week. PolicyEngine now supports…", "filename": "stamp-duties-in-policyengine-uk.md", "image": "stamp-duties-in-policyengine-uk.jpg" @@ -588,13 +354,8 @@ { "title": "Prime Minister Liz Truss’s energy bill price cap", "date": "2022-09-16", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the impact in PolicyEngine.", "filename": "prime-minister-liz-trusss-energy-bill-price-cap.md", "image": "prime-minister-liz-trusss-energy-bill-price-cap.jpg" @@ -602,13 +363,8 @@ { "title": "Raising the marriage allowance from 10% to 100%", "date": "2022-08-29", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "See the reform in PolicyEngine.", "filename": "raising-the-marriage-allowance-from-10-to-100.md", "image": "raising-the-marriage-allowance-from-10-to-100.jpg" @@ -616,14 +372,8 @@ { "title": "PolicyEngine launches in Washington state", "date": "2022-08-10", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical", - "us-wa" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical", "us-wa"], "description": "Washingtonians can now compute the impacts of the Working Families Tax Credit and federal reforms.", "filename": "policyengine-launches-in-washington-state.md", "image": "policyengine-launches-in-washington-state.jpg" @@ -631,13 +381,8 @@ { "title": "Electric vehicle tax credits under current law and the Inflation Reduction Act", "date": "2022-08-05", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "Use PolicyEngine US to analyze provisions of the potential reconciliation bill.", "filename": "electric-vehicle-tax-credits-under-current-law-and-the-inflation-reduction-act.md", "image": "electric-vehicle-tax-credits-under-current-law-and-the-inflation-reduction-act.jpg" @@ -645,13 +390,8 @@ { "title": "Rishi Sunak’s proposal to cut the basic rate to 16 percent", "date": "2022-08-01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the interactive simulation on PolicyEngine", "filename": "rishi-sunaks-proposal-to-cut-the-basic-rate-to-16-percent.md", "image": "rishi-sunaks-proposal-to-cut-the-basic-rate-to-16-percent.jpg" @@ -659,13 +399,8 @@ { "title": "The new PolicyEngine US Population Impact page", "date": "2022-07-01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "You design the policy. We compute the poverty, inequality, and budgetary impacts.", "filename": "the-new-policyengine-us-population-impact-page.md", "image": "the-new-policyengine-us-population-impact-page.jpg" @@ -673,13 +408,8 @@ { "title": "PolicyEngine at the BIG Conference and the Beeck Center’s Rules as Code Demo Day", "date": "2022-06-09", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "Register for the BIG Conference June 23–25 and the Rules as Code Demo Day June 28", "filename": "policyengine-at-the-basic-income-guarantee-conference-and-the-beeck-centers-rules-as-code-demo-day.md", "image": "policyengine-at-the-basic-income-guarantee-conference-and-the-beeck-centers-rules-as-code-demo-day.jpg" @@ -687,13 +417,8 @@ { "title": "Impact of the Chancellor’s Cost of Living Support package", "date": "2022-05-26", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the analysis in PolicyEngine UK", "filename": "impact-of-the-chancellors-cost-of-living-support-package.md", "image": "impact-of-the-chancellors-cost-of-living-support-package.jpg" @@ -701,13 +426,8 @@ { "title": "How developers can explore the PolicyEngine API", "date": "2022-04-29", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "global", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["global", "technical"], "description": "The UK API explorer and US API explorer describe variables and policy parameters in our models.", "filename": "how-developers-can-explore-the-policyengine-api.md", "image": "how-developers-can-explore-the-policyengine-api.jpg" @@ -715,13 +435,8 @@ { "title": "Make Everyone a Policymaker", "date": "2021-10-15", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "global", - "impact" - ], + "authors": ["nikhil-woodruff"], + "tags": ["global", "impact"], "description": "Today we're (re)launching PolicyEngine to give the public unprecedented insight into the tax and benefit system.", "filename": "make-everyone-a-policymaker.md", "image": "make-everyone-a-policymaker.webp" @@ -729,13 +444,8 @@ { "title": "Analysing Autumn Budget Universal Credit reforms with PolicyEngine", "date": "2021-10-30", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "See how the reform affects the UK population or your household.", "filename": "analysing-autumn-budget-universal-credit-reforms-with-policyengine.md", "image": "analysing-autumn-budget-universal-credit-reforms-with-policyengine.webp" @@ -743,13 +453,8 @@ { "title": "Income Tax cuts Rishi Sunak is reportedly considering", "date": "2021-12-04", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "Explore the basic rate and additional rate cuts in PolicyEngine.", "filename": "income-tax-cuts-rishi-sunak-is-reportedly-considering.md", "image": "income-tax-cuts-rishi-sunak-is-reportedly-considering.webp" @@ -757,13 +462,8 @@ { "title": "PolicyEngine's 2021 year in review", "date": "2021-12-29", - "authors": [ - "max-ghenis" - ], - "tags": [ - "global", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["global", "impact"], "description": "PolicyEngine's inaugural year was a substantial one for public policy.", "filename": "policyengines-2021-year-in-review.md", "image": "policyengines-2021-year-in-review.webp" @@ -771,13 +471,8 @@ { "title": "The Green Party Manifesto at PolicyFest", "date": "2022-01-26", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "Explore the Green Party Manifesto on PolicyEngine.", "filename": "the-green-party-manifesto-at-policyfest.md", "image": "the-green-party-manifesto-at-policyfest.webp" @@ -785,13 +480,8 @@ { "title": "PolicyEngine arrives stateside", "date": "2022-03-31", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "Today, we're beta-launching PolicyEngine US and several other new features.", "filename": "policyengine-comes-stateside.md", "image": "policyengine-comes-stateside.webp" @@ -799,13 +489,8 @@ { "title": "How PolicyEngine estimates the effects of UK carbon taxes", "date": "2022-04-23", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "By fusing datasets with machine learning, we empower anyone to integrate custom carbon taxes with other tax and benefit reforms.", "filename": "how-policyengine-estimates-the-effects-of-uk-carbon-taxes.md", "image": "how-policyengine-estimates-the-effects-of-uk-carbon-taxes.png" @@ -813,13 +498,8 @@ { "title": "Tax cuts in Prime Minister Truss's Growth Plan 2022", "date": "2022-09-23", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the impact on the population and on your household in PolicyEngine UK.", "filename": "tax-cuts-in-prime-minister-trusss-growth-plan.md", "image": "tax-cuts-in-prime-minister-trusss-growth-plan.png" @@ -827,13 +507,8 @@ { "title": "How to simulate basic and guaranteed income policies in PolicyEngine US", "date": "2022-09-27", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "From universal basic income to age-dependent means-tested payments, we've got you covered.", "filename": "how-to-simulate-basic-and-guaranteed-income-policies-in-policyengine-us.md", "image": "how-to-simulate-basic-and-guaranteed-income-policies-in-policyengine-us.png" @@ -841,13 +516,8 @@ { "title": "PolicyEngine launches in New York state", "date": "2022-10-21", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "New Yorkers can now estimate their state income taxes alongside federal taxes and benefits — and change the rules, too.", "filename": "policyengine-launches-in-new-york-state.md", "image": "policyengine-launches-in-new-york-state.webp" @@ -855,13 +525,8 @@ { "title": "Computing your Oregon Earned Income Tax Credit in PolicyEngine", "date": "2022-10-24", - "authors": [ - "kevin-foster" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["kevin-foster"], + "tags": ["us", "policy"], "description": "We walk you through it step by step.", "filename": "computing-your-oregon-earned-income-tax-credit.md", "image": "computing-your-oregon-earned-income-tax-credit.png" @@ -869,13 +534,8 @@ { "title": "Estimating your Supplemental Security Income benefits in PolicyEngine", "date": "2022-10-28", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "Enter your household information, and our free web app will estimate your SSI — plus other taxes and benefits.", "filename": "estimating-your-supplemental-security-income-benefits-in-policyengine.md", "image": "estimating-your-supplemental-security-income-benefits-in-policyengine.webp" @@ -883,13 +543,8 @@ { "title": "Updating PolicyEngine to reflect SNAP reform in the omnibus bill", "date": "2022-12-23", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "A step-by-step guide to syncing our code with the latest legislation.", "filename": "updating-policyengine-to-reflect-snap-reform-in-the-omnibus-bill.md", "image": "updating-policyengine-to-reflect-snap-reform-in-the-omnibus-bill.webp" @@ -897,13 +552,8 @@ { "title": "From idea to impact: scoring a policy reform on the new PolicyEngine UK", "date": "2023-01-12", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "A walkthrough of the new app on a UK tax-benefit reform.", "filename": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-uk.md", "image": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-uk.png" @@ -911,13 +561,8 @@ { "title": "From idea to impact: scoring a policy reform on the new PolicyEngine US", "date": "2023-01-12", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["us", "technical"], "description": "A walkthrough of the new app on a US tax-benefit reform.", "filename": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-us.md", "image": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-us.png" @@ -925,13 +570,8 @@ { "title": "The New PolicyEngine", "date": "2023-01-12 00:00:01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "We're exiting beta with the most accessible tax and benefit model ever built.", "filename": "us-the-new-policyengine.md", "image": "us-the-new-policyengine.png" @@ -939,13 +579,8 @@ { "title": "The New PolicyEngine", "date": "2023-01-12 00:00:01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "impact"], "description": "We're taking economic policy to the next level with the most accessible tax and benefit model ever built.", "filename": "uk-the-new-policyengine.md", "image": "uk-the-new-policyengine.png" @@ -953,14 +588,8 @@ { "title": "How would reforms affect cliffs?", "date": "2023-02-02 21:00:00", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis", "nikhil-woodruff"], + "tags": ["us", "policy"], "description": "We've added a new feature to the US version of PolicyEngine that lets you see how your reforms affect cliffs.", "filename": "how-would-reforms-affect-cliffs.md", "image": "how-would-reforms-affect-cliffs.png" @@ -969,562 +598,341 @@ "title": "Reform UK's Emergency Recovery Plan", "description": "See the UK party's proposed deficit-funded tax cuts in PolicyEngine", "date": "2023-02-09 11:15:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "reform-uks-emergency-recovery-plan.md", "image": "reform-uks-emergency-recovery-plan.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "The Child Tax Credit in 2023", "description": "We review how the program works and compute its impact with PolicyEngine US.", "date": "2023-02-09 00:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "the-child-tax-credit-in-2023.md", "image": "the-child-tax-credit-in-2023.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Restoration of the American Rescue Plan Act's expanded Child Tax Credit", "description": "PolicyEngine computes how the 2021 policy would affect Americans and America in 2023.", "date": "2023-02-10 00:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "restoration-of-the-american-rescue-plan-acts-expanded-child-tax-credit.md", "image": "restoration-of-the-american-rescue-plan-acts-expanded-child-tax-credit.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "OpenFisca wins Edge of Government's Innovation Award", "description": "The success of Rules as Code and its impact on citizens.", "date": "2023-02-15 00:00:00", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "openfisca-wins-edge-of-government-innovation-award.md", "image": "openfisca-wins-edge-of-government-innovation-award.jpeg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Massachusetts Governor Maura Healey's FY 2024 Budget Recommendation", "description": "PolicyEngine estimates the distributional impact of two provisions and the household impact of four provisions.", "date": "2023-03-03 00:00:00", - "tags": [ - "us", - "us-ma", - "policy" - ], + "tags": ["us", "us-ma", "policy"], "filename": "massachusetts-governor-maura-healeys-fy-2024-budget-recommendation.md", "image": "massachusetts-governor-maura-healeys-fy-2024-budget-recommendation.webp", - "authors": [ - "max-ghenis", - "nicholas-rodelo" - ] + "authors": ["max-ghenis", "nicholas-rodelo"] }, { "title": "The UK's extended Energy Price Guarantee", "description": "Analysis by PolicyEngine on the expected effects on income, poverty, and inequality.", "date": "2023-03-05 07:30:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "projected-impact-of-the-uks-extended-energy-price-guarantee.md", "image": "projected-impact-of-the-uks-extended-energy-price-guarantee.png", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ] + "authors": ["nikhil-woodruff", "max-ghenis"] }, { "title": "Breaking down poverty impacts by sex", "description": "PolicyEngine estimates the impact of customizable policy reforms on poverty — overall, by age, and now by sex.", "date": "2023-03-08 07:30:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "breaking-down-us-poverty-impacts-by-sex.md", "image": "breaking-down-poverty-impacts-by-sex.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Breaking down poverty impacts by sex", "description": "PolicyEngine estimates the impact of customisable policy reforms on poverty — overall, by age, and now by sex.", "date": "2023-03-08 07:30:00", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "breaking-down-uk-poverty-impacts-by-sex.md", "image": "breaking-down-poverty-impacts-by-sex.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Analysis of the Spring Budget 2023", "description": "PolicyEngine analysis estimates the impact of the EPG extension and the fuel duty freeze.", "date": "2023-03-15 18:10:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "analysis-of-the-spring-budget-2023.md", "image": "analysis-of-the-spring-budget-2023.jpeg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Automate policy analysis with PolicyEngine's new ChatGPT integration", "description": "Score an economic impact in a few clicks. Write a report in one more.", "date": "2023-03-17 11:00:00", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "automate-policy-analysis-with-policy-engines-new-chatgpt-integration.md", "image": "automate-policy-analysis-with-policy-engines-new-chatgpt-integration.png", - "authors": [ - "nikhil-woodruff", - "chat-gpt" - ] + "authors": ["nikhil-woodruff", "chat-gpt"] }, { "title": "How much should James Medlock donate to GiveDirectly?", "description": "We built a mini-app with the policyengine-us Python package to crunch the implications of a Twitter bet.", "date": "2023-03-23 01:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "medlock-donation-calculator.md", "image": "medlock-donation-calculator.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "FiscalSim and PolicyEngine: Emphasizing collaboration and open-source acknowledgment", "description": "The Center for Growth and Opportunity launches FiscalSim, a US policy-computing web app drawing heavily from PolicyEngine's work.", "date": "2023-03-24 01:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "fiscalsim.md", "image": "fiscalsim.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "Restoring the American Rescue Plan's Earned Income Tax Credit Expansion", "description": "We review how the expansion works and model its impact with PolicyEngine US.", "date": "2023-03-27 01:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "restoring-arpa-eitc.md", "image": "eitc.webp", - "authors": [ - "arthur-wright" - ] + "authors": ["arthur-wright"] }, { "title": "Breaking down policy impacts by wealth decile", "description": "Income isn't everything.", "date": "2023-03-28 09:00:00", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "breaking-down-policy-impacts-by-wealth-decile.md", "image": "breaking-down-policy-impacts-by-wealth-decile.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "The District Child Tax Credit proposal", "description": "Analysis of DC Councilmember Zachary Parker's new legislation.", "date": "2023-04-02 09:00:00", - "tags": [ - "us", - "us-dc", - "policy" - ], + "tags": ["us", "us-dc", "policy"], "filename": "district-child-tax-credit.md", "image": "district-child-tax-credit.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Announcing the addition of Kansas income tax to PolicyEngine", "description": "We've expanded our tax calculator and customizable reform simulator to the Sunflower State.", "date": "2023-04-03 09:00:00", - "tags": [ - "us", - "us-ks", - "policy" - ], + "tags": ["us", "us-ks", "policy"], "filename": "kansas-income-tax.md", "image": "kansas-income-tax.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Revolutionizing policy analysis with AI", "description": "Discover PolicyEngine's new GPT-4 integration and audience modes.", "date": "2023-04-03 16:00:00", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "gpt-analysis.md", "image": "ai-analysis.png", - "authors": [ - "nikhil-woodruff", - "chat-gpt" - ] + "authors": ["nikhil-woodruff", "chat-gpt"] }, { "title": "Introducing California income tax analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the most populous state.", "date": "2023-04-07 09:00:00", - "tags": [ - "us", - "us-ca", - "policy" - ], + "tags": ["us", "us-ca", "policy"], "filename": "california-income-tax.md", "image": "california-income-tax.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "PolicyEngine adds New York Family Assistance (TANF) to US model", "description": "Enhancing analysis of public policy impacts on needy families.", "date": "2023-04-08 09:00:00", - "tags": [ - "us", - "us-ny", - "policy" - ], + "tags": ["us", "us-ny", "policy"], "filename": "new-york-tanf.md", "image": "new-york-tanf.png", - "authors": [ - "max-ghenis", - "donglai-xu", - "lin-tao" - ] + "authors": ["max-ghenis", "donglai-xu", "lin-tao"] }, { "title": "Analysis of the DC Financial Support for Families with Children Amendment Act", "description": "Evaluating Councilmember Zachary Parker's second Child Tax Credit proposal of 2023.", "date": "2023-04-16 09:00:00", - "tags": [ - "us", - "us-dc", - "policy" - ], + "tags": ["us", "us-dc", "policy"], "filename": "dc-financial-support-for-families-with-children.md", "image": "dc-financial-support-for-families-with-children.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Introducing Utah State Income Tax Analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the Beehive State.", "date": "2023-04-17 09:00:00", - "tags": [ - "us", - "us-ut", - "policy" - ], + "tags": ["us", "us-ut", "policy"], "filename": "introducing-utah-state-income-tax-analysis-on-policyengine.md", "image": "introducing-utah-state-income-tax-analysis-on-policyengine.webp", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Building the roots of PolicyEngine Nigeria", "description": "We're expanding PolicyEngine's reach by empowering Nigerians to understand personal income tax policies.", "date": "2023-04-21 09:00:00", - "tags": [ - "ng", - "technical" - ], + "tags": ["ng", "technical"], "filename": "building-the-roots-of-policyengine-nigeria.md", "image": "building-the-roots-of-policyengine-nigeria.webp", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ] + "authors": ["nikhil-woodruff", "max-ghenis"] }, { "title": "Kansas's Flat Tax Proposal — SB169", "description": "We review how the bill works and model its impact with PolicyEngine US.", "date": "2023-04-23 09:00:00", - "tags": [ - "us", - "us-ks", - "policy" - ], + "tags": ["us", "us-ks", "policy"], "filename": "kansas-flat-income-tax-sb-169.md", "image": "kansas-flat-income-tax-sb-169.webp", - "authors": [ - "arthur-wright" - ] + "authors": ["arthur-wright"] }, { "title": "Digital Public Goods Alliance recognizes PolicyEngine as a Digital Public Good", "description": "The UN-endorsed initiative highlights PolicyEngine's open source approach to supporting the Sustainable Development Goals.", "date": "2023-04-26 09:00:00", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "digital-public-goods-alliance-recognizes-policyengine-as-a-digital-public-good.md", "image": "digital-public-goods-alliance-recognizes-policyengine-as-a-digital-public-good.webp", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "How PolicyEngine shaped the outcome of the $1 million bet James Medlock won today", "description": "Our free tax calculator helped determine Balaji Srinivasan's $500,000 payments to Medlock and GiveDirectly.", "date": "2023-05-02 16:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "medlock-wins.md", "image": "medlock-wins.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of Guaranteed Income for the 21st Century", "description": "The proposal from the New School and the Economic Security Project would lower poverty and inequality while expanding cliffs.", "date": "2023-06-08 13:45:00", "filename": "analysis-of-guaranteed-income-for-the-21st-century.md", - "tags": [ - "us", - "featured", - "policy" - ], + "tags": ["us", "featured", "policy"], "image": "analysis-of-guaranteed-income-for-the-21st-century.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of the Working Families Tax Cut Act", "description": "How the proposal to increase the standard deduction would affect households and society.", "date": "2023-06-08 20:00:00", "filename": "malliotakis-steel-working-families-tax-cut-act.md", - "tags": [ - "us", - "featured", - "policy" - ], + "tags": ["us", "featured", "policy"], "image": "malliotakis-steel-working-families-tax-credit-act.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "Unveiling poverty impacts by race and ethnicity", "description": "A new feature from PolicyEngine reveals how customizable tax and benefit reforms affect poverty rates for Black, White, Hispanic, and other Americans.", "date": "2023-06-19 20:00:00", "filename": "poverty-race-ethnicity.md", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "image": "poverty-race-ethnicity.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Scott Winship's individualized Earned Income Tax Credit proposal", "description": "An analysis and note on the value of open-source models.", "date": "2023-07-14 08:00:00", "filename": "winship-individualized-eitc.md", - "tags": [ - "us", - "policy", - "featured" - ], + "tags": ["us", "policy", "featured"], "image": "winship-individualized-eitc.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Dive Into New Mexico's Income Tax Analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the Land of Enchantment.", "date": "2023-08-02 16:00:00", "filename": "new-mexico-income-tax-launch.md", - "tags": [ - "us", - "us-nm", - "featured", - "policy" - ], + "tags": ["us", "us-nm", "featured", "policy"], "image": "new-mexico-income-tax-launch.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "Repealing the Universal Credit two-child limit", "description": "How removing the limit of some benefits to two children would affect the UK in 2023.", "date": "2023-08-07 16:00:00", "filename": "repealing_the_two_child_limit.md", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "two_child_limit.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "New King's College London research uses PolicyEngine", "description": "A ‘Citizens' Economic Council' explores PolicyEngine-scored tax-benefit impacts.", "date": "2023-11-04 09:00:00", "filename": "citizens-economic-council.md", - "tags": [ - "uk", - "impact" - ], + "tags": ["uk", "impact"], "image": "citizens-economic-council.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Autumn Statement 2023 tax-benefit reforms", "description": "Chancellor Jeremy Hunt just announced National Insurance cuts and benefit uprating. We've evaluated these reforms.", "date": "2023-11-22 17:25", "filename": "autumn-statement-2023.md", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "jeremy-hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Autumn 2023 model calibration update", "description": "Evaluating PolicyEngine's model performance with the latest official statistics.", "date": "2023-12-04 09:00:00", "filename": "uk-calibration-2023-q4.ipynb", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "image": "uk-calibration-dec-2023-update.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Preliminary analysis of the Wyden-Smith Child Tax Credit expansion", "description": "PolicyEngine estimates the impact of the reported compromise to expand the Child Tax Credit's refundable component.", "date": "2024-01-11 12:00:00", "filename": "wyden-smith-ctc.md", - "tags": [ - "us", - "impact", - "featured", - "child-tax-credit" - ], + "tags": ["us", "impact", "featured", "child-tax-credit"], "image": "wyden.jpeg", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "Spring Budget 2024 proposals", "description": "PolicyEngine estimates reported likely tax-benefit reforms ahead of the UK Spring Budget.", "date": "2024-03-04 09:00:00", "filename": "spring-budget-2024.ipynb", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "jeremy-hunt-with-budget-box.jpg", - "authors": [ - "anthony-volk", - "nikhil-woodruff" - ] + "authors": ["anthony-volk", "nikhil-woodruff"] }, { "title": "Spring Budget 2024", "description": "PolicyEngine estimates the impact of the UK Spring Budget.", "date": "2024-03-06 09:00:00", "filename": "uk-2024-spring-budget.ipynb", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff", - "anthony-volk" - ] + "authors": ["nikhil-woodruff", "anthony-volk"] }, { "title": "Beta-launch: PolicyEngine's enhanced microdata for policy analysis", "description": "By integrating and calibrating multiple datasets, PolicyEngine makes world-class tax-benefit microsimulation modeling available to anyone.", "date": "2024-03-25 09:00:00", - "tags": [ - "us", - "technical", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "technical", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "enhanced-cps-beta.md", "image": "enhanced-cps-beta.png" }, @@ -1532,14 +940,8 @@ "title": "Child Tax Credit Provisions of the Tax Relief for American Workers and Families Act", "description": "How the Wyden-Smith bipartisan tax package would affect families through 2025.", "date": "2024-03-25 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis"], "filename": "trafwa-ctc.md", "image": "trafwa-ctc.webp" }, @@ -1547,15 +949,8 @@ "title": "Individual income tax provisions of President Biden's 2025 Budget", "description": "PolicyEngine projects the impact of expanding tax credits and raising taxes on high-income filers.", "date": "2024-03-27 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "biden-budget-2025.md", "image": "biden-budget-2025.jpeg" }, @@ -1563,14 +958,8 @@ "title": "PolicyEngine launches state income tax modeling nationwide", "description": "Free, open-source platform now covers all 50 states and D.C., just in time for tax season.", "date": "2024-04-15 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["pavel-makarchuk"], "filename": "state-tax-model-beta.md", "image": "state-tax-model-beta.png" }, @@ -1578,27 +967,17 @@ "title": "PolicyEngine's Spring 2024 update", "description": "How PolicyEngine compares to the latest external forecasts.", "date": "2024-04-16 09:00:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "uk_march_update.png", - "authors": [ - "nikhil-woodruff" - ], + "authors": ["nikhil-woodruff"], "filename": "obr-forecast-update-spring-24.ipynb" }, { "title": "The Triple Lock Plus", "description": "PolicyEngine estimates the impact of the UK government's proposed pension uprating policy reform.", "date": "2024-05-28 09:00:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff"], "filename": "uk-triple-lock-plus.ipynb", "image": "uk-triple-lock-plus.jpg" }, @@ -1606,13 +985,8 @@ "title": "The Liberal Democrat Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-11 16:30:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff"], "filename": "lib-dem-2024-manifesto.md", "image": "lib-dem-manifesto-2024.jpeg" }, @@ -1620,15 +994,8 @@ "title": "The Conservative Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-12 16:30:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff", - "pavel-makarchuk", - "anthony-volk" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff", "pavel-makarchuk", "anthony-volk"], "filename": "conservative-2024-manifesto.md", "image": "conservative-2024-manifesto.png" }, @@ -1636,14 +1003,8 @@ "title": "The Labour Party Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-29 14:00:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff", - "anthony-volk" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff", "anthony-volk"], "filename": "labour-2024-manifesto.md", "image": "labour-2024-manifesto.png" }, @@ -1651,15 +1012,8 @@ "title": "PolicyEngine Powers Niskanen Center's Analysis", "description": "Three new reports from the Niskanen Center think tank demonstrate PolicyEngine's tax and benefit reform model.", "date": "2024-07-12 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "ben-gross" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis", "ben-gross"], "filename": "niskanen-center-analysis.md", "image": "niskanen-center-analysis.jpg" }, @@ -1667,16 +1021,8 @@ "title": "Kamala Harris's LIFT Act Middle Class Tax Credit", "description": "A comprehensive analysis of the Vice President's 2018 proposal.", "date": "2024-07-22 01:00:00", - "tags": [ - "us", - "policy", - "featured", - "2024-election" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured", "2024-election"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "lift-act.md", "image": "lift-act.jpg" }, @@ -1684,16 +1030,8 @@ "title": "Analysis of JD Vance’s Suggested $5,000 Child Tax Credit Expansion", "description": "Impacts of the vice presidential nominee’s reform depend largely on its uncertain refundability.", "date": "2024-08-11 01:00:00", - "tags": [ - "us", - "policy", - "featured", - "2024-election" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured", "2024-election"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "vance-ctc.md", "image": "vance-ctc.jpg" }, @@ -1701,15 +1039,8 @@ "title": "PolicyEngine at the 117th Annual Conference on Taxation", "description": "Exploring AI applications and enhanced data for tax policy analysis.", "date": "2024-08-13 01:00:00", - "tags": [ - "us", - "policy", - "conferences" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "policy", "conferences"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "nta-2024.md", "image": "nta-2024.png" }, @@ -1717,13 +1048,8 @@ "title": "Validation against the Survey of Personal Incomes", "description": "Evaluating PolicyEngine's model performance against the UK SPI.", "date": "2024-08-14 01:00:00", - "tags": [ - "uk", - "technical" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["uk", "technical"], + "authors": ["anthony-volk"], "filename": "uk-spi-validation.ipynb", "image": "uk-spi-validation.png" }, @@ -1731,16 +1057,8 @@ "title": "Kamala Harris’s Child Tax Credit Proposal", "description": "We analyze the Democratic nominee’s proposal to expand the 2021 expansion, giving $6,000 to parents of newborns.", "date": "2024-08-17 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "harris-ctc.md", "image": "harris-ctc.webp" }, @@ -1748,16 +1066,8 @@ "title": "Individual Income Tax Provisions in Minnesota Bill HF1938 (2023)", "description": "The reform signed by Governor Tim Walz expanded credits for low-income families, reduced taxes for middle-income retirees, and raised taxes for high-income filers.", "date": "2024-08-21 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured", - "minnesota" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "featured", "minnesota"], + "authors": ["pavel-makarchuk"], "filename": "mn-hf1938-walz.md", "image": "mn-hf1938-walz.webp" }, @@ -1765,15 +1075,8 @@ "title": "How the Rent Relief Act of 2019 Varies with Income and Location", "description": "We show the impact on different households of the tax credit bill introduced by then-Senator Kamala Harris.", "date": "2024-08-22 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["max-ghenis"], "filename": "rent-relief-act.md", "image": "rent-relief-act.png" }, @@ -1781,16 +1084,8 @@ "title": "How the Oregon Rebate May Affect Poverty Rates", "description": "Our model finds the ballot measure could reduce poverty by between 22% and 35%, without macroeconomic effects.", "date": "2024-09-29 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "us-or" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "us-or"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "oregon-rebate.md", "image": "oregon-rebate.png" }, @@ -1798,15 +1093,8 @@ "title": "Exempting Social Security Benefits from Income Taxation", "description": "PolicyEngine projects that former President Donald Trump’s proposal would cost $1.4 trillion over the budget window.", "date": "2024-10-07 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["david-trimmer"], "filename": "social-security-tax-exemption.md", "image": "social-security-tax-exemption.webp" }, @@ -1814,15 +1102,8 @@ "title": "Labour's reforms to VAT tax on private schools", "description": "PolicyEngine projects Labour's private school tax plan would raise £7.7 billion over five years, mainly affecting wealthier households.", "date": "2024-10-17 01:00:00", - "tags": [ - "uk", - "tax", - "policy", - "vat" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "policy", "vat"], + "authors": ["vahid-ahmadi"], "filename": "school-vat.md", "image": "classroom-2093744.jpg" }, @@ -1830,16 +1111,8 @@ "title": "Levying VAT on private school fees in the Autumn Budget", "description": "PolicyEngine projects the reforms to private school VAT would raise £1.5 billion in 2025.", "date": "2024-10-31 15:00:00", - "tags": [ - "uk", - "tax", - "policy", - "vat", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "policy", "vat", "featured"], + "authors": ["vahid-ahmadi"], "filename": "vat-school-comparison.md", "image": "vat-school-comparison-post.jpg" }, @@ -1847,15 +1120,8 @@ "title": "How PolicyEngine UK models behavioural responses", "description": "PolicyEngine has enhanced its modelling with behavioural responses, including income, substitution and capital gains elasticities.", "date": "2024-11-12 15:00:00", - "tags": [ - "uk", - "policy", - "behavioral-responses", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "behavioral-responses", "featured"], + "authors": ["vahid-ahmadi"], "filename": "behavioural-responses.md", "image": "behavioural-responses.jpg" }, @@ -1863,14 +1129,8 @@ "title": "Benefits uprating 2025/26", "description": "PolicyEngine projects Labour's 1.7% benefits uprating would cost £2.5 billion, mainly benefiting lower-income households.", "date": "2024-10-31 15:00:00", - "tags": [ - "uk", - "benefit", - "inflation" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "benefit", "inflation"], + "authors": ["vahid-ahmadi"], "filename": "Benefit-uprating-25.md", "image": "benefit-uprating-post-pic.jpg" }, @@ -1878,14 +1138,8 @@ "title": "Capital Gains Tax reforms in the Autumn Budget 2024", "description": "PolicyEngine estimates that the UK's 2024 Capital Gains Tax reforms will raise £6.4 billion between 2025-2029.", "date": "2024-11-06 15:00:00", - "tags": [ - "uk", - "tax", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "featured"], + "authors": ["vahid-ahmadi"], "filename": "cgt-autumn-budget.md", "image": "cgt-autumn-budget.jpg" }, @@ -1893,15 +1147,8 @@ "title": "Kamala Harris’s Earned Income Tax Credit Expansion Proposal", "description": "PolicyEngine projects that restoring the American Rescue Plan policy would cost $144 billion (static) or $201 billion (dynamic) over a decade, while lowering poverty by 1.6% in 2025.", "date": "2024-10-24 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "harris-eitc.md", "image": "harris-eitc.webp" }, @@ -1909,15 +1156,8 @@ "title": "Autumn Budget policy choices", "description": "PolicyEngine estimates that four reported tax reforms would raise £23 billion per year", "date": "2024-10-24 16:30:00", - "tags": [ - "uk", - "autumn-budget", - "featured", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "featured", "policy"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-2024-policy-choices.ipynb", "image": "autumn-budget-policy-choices.png" }, @@ -1925,28 +1165,16 @@ "title": "Levying employer National Insurance on pension contributions", "description": "PolicyEngine estimates the now-scrapped Autumn Budget reform would have raised between £10 and £18 billion per year, depending on how employers pass it on to wages.", "date": "2024-10-26 09:00:00", - "tags": [ - "uk", - "autumn-budget", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-2024-employer-nic-pension-contributions.md", "image": "autumn-budget-2024-employer-nic-pension-contributions.png" }, { "title": "Extending the Tax Cuts and Jobs Act", "date": "2024-10-28 00:00:01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "2024-election", - "featured" - ], + "authors": ["david-trimmer"], + "tags": ["us", "2024-election", "featured"], "description": "PolicyEngine projects extending the TCJA individual tax provisions would cost $3.9 trillion over a ten-year budget window.", "filename": "tcja-extension.md", "image": "tcja-extension.jpg" @@ -1955,15 +1183,8 @@ "title": "Employer National Insurance reforms in the Autumn Budget 2024", "description": "PolicyEngine projects the reforms to employer NI would raise £23 billion in 2025 and affect two thirds of people.", "date": "2024-10-30 16:30:00", - "tags": [ - "uk", - "autumn-budget", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-24-employer-ni.md", "image": "autumn-budget-24-employer-ni.png" }, @@ -1971,15 +1192,8 @@ "title": "Fuel duty reforms in the Autumn Budget 2024", "description": "PolicyEngine projects the reforms to fuel duty will cost £2.4 billion in 2025.", "date": "2024-10-30 17:30:00", - "tags": [ - "uk", - "autumn-budget", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-24-fuel-duty.md", "image": "autumn-budget-24-fuel-duty.png" }, @@ -1987,15 +1201,8 @@ "title": "Donald Trump's Economic Agenda", "description": "PolicyEngine projects three provisions of Donald Trump’s tax plan would cost $5.4 trillion over the next ten years.", "date": "2024-10-31 17:30:00", - "tags": [ - "us", - "election", - "donald-trump", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "election", "donald-trump", "featured"], + "authors": ["david-trimmer"], "filename": "trump-2024.md", "image": "trump-2024.webp" }, @@ -2003,18 +1210,8 @@ "title": "How Would Each Presidential Candidate’s Economic Plans Affect Your Household?", "description": "PolicyEngine has created a personalized calculator for the 2024 presidential election’s tax proposals.", "date": "2024-11-03 17:30:00", - "tags": [ - "us", - "election", - "donald-trump", - "kamala-harris", - "featured", - "interactives" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "election", "donald-trump", "kamala-harris", "featured", "interactives"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "introducing-2024-election-calculator.md", "image": "introducing-2024-election-calculator.png" }, @@ -2022,13 +1219,8 @@ "title": "Federal Tax Inflation Adjustments for Tax Year 2025", "description": "PolicyEngine has updated all relevant federal tax parameters based on the latest IRS announcements.", "date": "2024-11-19 09:30:00", - "tags": [ - "us", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "featured"], + "authors": ["david-trimmer"], "filename": "federal-tax-inflation-adjustments-2025.md", "image": "fed_tax_inflation_adjustments.webp" }, @@ -2036,15 +1228,8 @@ "title": "Introducing GiveCalc", "description": "Calculate the true cost of charitable giving.", "date": "2024-12-03 09:30:00", - "tags": [ - "us", - "featured", - "giving" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "featured", "giving"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "givecalc.md", "image": "givecalc.png" }, @@ -2052,14 +1237,8 @@ "title": "Louisiana Transitions to a Flat Tax", "description": "Analysis of the individual tax changes signed into law by Governor Jeff Landry.", "date": "2024-12-10 09:30:00", - "tags": [ - "us", - "featured", - "louisiana" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "featured", "louisiana"], + "authors": ["david-trimmer"], "filename": "louisiana-flat-tax.md", "image": "louisiana-flat-tax.webp" }, @@ -2067,13 +1246,8 @@ "title": "NEO Philanthropy Awards $200,000 Grant to PolicyEngine", "description": "Economic Mobility & Opportunity Fund supports expanding access to policy analysis tools.", "date": "2024-12-18 09:30:00", - "tags": [ - "us", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "featured"], + "authors": ["max-ghenis"], "filename": "neo-philanthropy.md", "image": "neo-philanthropy.png" }, @@ -2081,13 +1255,8 @@ "title": "Nuffield Foundation awards £250k to enhance PolicyEngine UK", "description": "Grant will support expanding and localising tax-benefit microsimulation capabilities.", "date": "2024-12-19 14:00:00", - "tags": [ - "uk", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["uk", "featured"], + "authors": ["max-ghenis"], "filename": "uk-nuffield-grant.md", "image": "uk-nuffield-grant.png" }, @@ -2095,14 +1264,8 @@ "title": "New AI Feature Helps People Understand Their Taxes and Benefits", "description": "We’re applying large language models to clarify complex policy rules.", "date": "2024-12-26 09:00:00", - "tags": [ - "us", - "featured", - "ai" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["us", "featured", "ai"], + "authors": ["anthony-volk"], "filename": "us-household-ai.md", "image": "us-household-ai.png" }, @@ -2110,14 +1273,8 @@ "title": "New AI feature helps people understand their taxes and benefits", "description": "We’re applying large language models to clarify complex policy rules.", "date": "2024-12-26 09:00:00", - "tags": [ - "uk", - "featured", - "ai" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["uk", "featured", "ai"], + "authors": ["anthony-volk"], "filename": "uk-household-ai.md", "image": "uk-household-ai.png" }, @@ -2125,18 +1282,8 @@ "title": "PolicyEngine US Launches Behavioral Responses", "description": "We've expanded our modeling framework to capture how policy changes affect labor supply.", "date": "2024-12-27 09:00:00", - "tags": [ - "us", - "policy", - "behavioral-responses", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff", - "jason-debacker", - "vahid-ahmadi" - ], + "tags": ["us", "policy", "behavioral-responses", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff", "jason-debacker", "vahid-ahmadi"], "filename": "us-behavioral-responses.md", "image": "behavioural-responses.jpg" }, @@ -2144,15 +1291,8 @@ "title": "PolicyEngine UK in 2024: A year in review", "description": "From AI-powered analysis to election impact, we transformed policy research through technology.", "date": "2024-12-28 09:00:00", - "tags": [ - "uk", - "year-in-review", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["uk", "year-in-review", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "uk-year-in-review-2024.md", "image": "year-in-review-2024.png" }, @@ -2160,15 +1300,8 @@ "title": "PolicyEngine US in 2024: A year in review", "description": "From state-level modeling to AI-powered analysis, we expanded the frontier of policy research through technology.", "date": "2024-12-29 09:00:00", - "tags": [ - "us", - "year-in-review", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "year-in-review", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "us-year-in-review-2024.md", "image": "year-in-review-2024.png" }, @@ -2176,14 +1309,8 @@ "title": "Analysis of the Family First Act", "description": "We project that Representative Blake Moore's Child Tax Credit bill would raise revenue and reduce poverty.", "date": "2025-01-17 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["pavel-makarchuk"], "filename": "family-first-act.md", "image": "family-first-act.jpg" }, @@ -2191,15 +1318,8 @@ "title": "The New York Working Families Tax Credit", "description": "A comprehensive analysis of the proposal from New York State Senator Andrew Gounardes.", "date": "2025-01-21 09:00:00", - "tags": [ - "us", - "policy", - "featured", - "us-ny" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "policy", "featured", "us-ny"], + "authors": ["david-trimmer"], "filename": "ny-wftc.md", "image": "ny-wftc.webp" }, @@ -2207,29 +1327,16 @@ "title": "How We're Improving our API in 2025", "description": "PolicyEngine's API target architecture for 2025.", "date": "2025-02-05", - "tags": [ - "technical", - "global" - ], - "authors": [ - "michael-smit" - ], + "tags": ["technical", "global"], + "authors": ["michael-smit"], "filename": "api-v2.md", "image": "api-v2.webp" }, { "title": "The Proposed New York City Child Tax Credit", "date": "2025-02-18 00:00:01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ny-nyc", - "featured", - "child-tax-credit", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ny-nyc", "featured", "child-tax-credit", "policy"], "description": "Analysis of Senate Bill S2238, introduced by Senator Andrew Gounardes.", "filename": "nyc-ctc-s2238.md", "image": "nyc-ctc-s2238.webp" @@ -2238,61 +1345,34 @@ "title": "Kentucky Cuts Income Tax Rate", "description": "Analysis of lowering Kentucky's 4% income tax rate to 3.5%.", "date": "2025-02-26", - "tags": [ - "us", - "us-ky", - "policy", - "featured" - ], + "tags": ["us", "us-ky", "policy", "featured"], "filename": "kentucky-cuts-income-tax-rate.md", "image": "kentucky-cuts-income-tax-rate.webp", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "The Family Income Supplemental Credit (FISC) Act", "description": "Representative Jared Golden’s Child Tax Credit reform would cost $193 billion in 2026 while reducing poverty and inequality.", "date": "2025-03-05", - "tags": [ - "us", - "policy", - "featured" - ], + "tags": ["us", "policy", "featured"], "filename": "fisc-act.md", "image": "jared-golden.jpeg", - "authors": [ - "pavel-makarchuk" - ] + "authors": ["pavel-makarchuk"] }, { "title": "Exempting young children from the two-child limit", "description": "Analysis of the potential impact of limiting the two-child limit to families with children under 5 years old.", "date": "2025-03-06 00:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi", - "pavel-makarchuk" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi", "pavel-makarchuk"], "filename": "young-child-exemption-two-child-limit.md", "image": "young-child-exemption-two-child-limit.jpg" }, { "title": "New York Governor Hochul's Tax Proposals", "date": "2025-03-07", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ny", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ny", "featured", "policy"], "description": "PolicyEngine analyzed several individual income tax policies included in Governor Kathy Hochul's FY2026 budget.", "filename": "ny-hochul-budget.md", "image": "ny-hochul-budget.jpg" @@ -2300,14 +1380,8 @@ { "title": "The impact of Personal Independence Payment, and freezing its level in 2025", "date": "2025-03-11", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy", - "featured" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy", "featured"], "description": "How the disability benefit, and one reform the government is reportedly considering, affect the UK household sector.", "filename": "pip-and-freeze.md", "image": "pip_and_freeze.jpg" @@ -2315,14 +1389,8 @@ { "title": "Analysis of Michigan HB 4170", "date": "2025-03-26", - "authors": [ - "pavel-makarchuk" - ], - "tags": [ - "us", - "policy", - "featured" - ], + "authors": ["pavel-makarchuk"], + "tags": ["us", "policy", "featured"], "description": "We project the bill, which would reduce Michigan’s tax rate from 4.25% to 4.05%, would cost $644 million in 2025.", "filename": "michigan-bill-hb4170.ipynb", "image": "michigan-bill-hb4170.jpg" @@ -2330,15 +1398,8 @@ { "title": "Restricting eligibility for the Personal Independence Payment Daily Living part", "date": "2025-03-18", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ], - "tags": [ - "uk", - "policy", - "featured" - ], + "authors": ["nikhil-woodruff", "max-ghenis"], + "tags": ["uk", "policy", "featured"], "description": "We simulate potential realisations of the Government's new £5 billion reform.", "filename": "uk-pip-reforms.md", "image": "uk-pip-reforms.jpg" @@ -2346,15 +1407,8 @@ { "title": "The Tax Cuts for Workers Act", "date": "2025-06-16", - "authors": [ - "pavel-makarchuk", - "max-ghenis" - ], - "tags": [ - "us", - "policy", - "featured" - ], + "authors": ["pavel-makarchuk", "max-ghenis"], + "tags": ["us", "policy", "featured"], "description": "We simulate the new bill to restore the American Rescue Plan Act’s Earned Income Tax Credit expansion.", "filename": "tax-cuts-for-workers-act.ipynb", "image": "tax-cuts-for-workers-act.png" @@ -2362,15 +1416,8 @@ { "title": "Benefits in PolicyEngine", "date": "2025-05-28 00:00:00", - "authors": [ - "vahid-ahmadi" - ], - "tags": [ - "uk", - "policy", - "featured", - "benefit" - ], + "authors": ["vahid-ahmadi"], + "tags": ["uk", "policy", "featured", "benefit"], "description": "PolicyEngine models different benefit components in the UK, including means-tested and non-means-tested benefits.", "filename": "uk-benefits-post.md", "image": "uk-benefit-post.png" @@ -2378,15 +1425,8 @@ { "title": "Idaho’s New Individual Income Tax Changes", "date": "2025-04-01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-id", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-id", "featured", "policy"], "description": "The lower top marginal rate and larger grocery tax credit will cost the state $225 million in 2025.", "filename": "idaho-2025-tax-change.ipynb", "image": "idaho-2025-tax-change.jpg" @@ -2395,31 +1435,16 @@ "title": "Taxes in PolicyEngine", "description": "PolicyEngine models different tax components in the UK, including direct taxes, indirect taxes, and proposed taxes.", "date": "2025-04-08 00:00:00", - "tags": [ - "uk", - "policy", - "featured", - "tax" - ], - "authors": [ - "vahid-ahmadi", - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured", "tax"], + "authors": ["vahid-ahmadi", "nikhil-woodruff"], "filename": "uk-taxes-post.md", "image": "uk-tax-post.jpg" }, { "title": "Utah Cuts Income Tax Rate and Expands Credits", "date": "2025-05-01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ut", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ut", "featured", "policy"], "description": "Utah’s latest individual income tax changes will lower state revenues by $96 million and raise net income for 62% of residents in 2025.", "filename": "utah-income-tax-changes.ipynb", "image": "utah-income-tax-changes.jpg" @@ -2428,14 +1453,8 @@ "title": "Reform UK's tax-benefit reform proposals", "description": "Nigel Farage has confirmed that Reform UK's manifesto will include four tax-benefit reforms that PolicyEngine estimates would cost £75 billion in 2025-26.", "date": "2025-05-27 19:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "farage-speech-may-2025.ipynb", "image": "farage-speech-may-2025.jpg" }, @@ -2443,14 +1462,8 @@ "title": "Extending the Winter Fuel Allowance", "description": "The government has reversed its Winter Fuel Allowance means testing, expanding eligibility to 9 million pensioners through a £35,000 income threshold.", "date": "2025-06-11 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "wfa-means-test.ipynb", "image": "wfa-repeal.jpeg" }, @@ -2458,14 +1471,8 @@ "title": "How changing the VAT threshold affects UK revenues", "description": "PolicyEngine's new firm microsimulation model estimates revenue and business impacts of VAT thresholds from £70,000 to £120,000.", "date": "2025-09-10 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-vat-thresholds.md", "image": "uk-vat-reeves.jpg" }, @@ -2473,16 +1480,8 @@ "title": "Testing multi-agent AI workflows for policy research", "description": "A multi-agent Claude Code system fared better on distributional analysis than benefit interactions; insights inform our forthcoming plugin.", "date": "2025-10-28", - "tags": [ - "uk", - "us", - "featured", - "technology", - "ai" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "us", "featured", "technology", "ai"], + "authors": ["vahid-ahmadi"], "filename": "multi-agent-workflows-policy-research.md", "image": "multi-agent-workflows-policy-research.png" } diff --git a/app/src/api/householdCalculation.ts b/app/src/api/householdCalculation.ts index 0e718c9bc..097e4b112 100644 --- a/app/src/api/householdCalculation.ts +++ b/app/src/api/householdCalculation.ts @@ -12,13 +12,7 @@ export async function fetchHouseholdCalculation( householdId: string, policyId: string ): Promise { - console.log('[fetchHouseholdCalculation] Called with:'); - console.log(' - countryId:', countryId); - console.log(' - householdId:', householdId); - console.log(' - policyId:', policyId); - const url = `${BASE_URL}/${countryId}/household/${householdId}/policy/${policyId}`; - console.log('[fetchHouseholdCalculation] Fetching URL:', url); const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 240000); // 4-minute timeout @@ -32,44 +26,26 @@ export async function fetchHouseholdCalculation( }); clearTimeout(timeoutId); - console.log( - '[fetchHouseholdCalculation] Response status:', - response.status, - response.statusText - ); if (!response.ok) { - console.error( - '[fetchHouseholdCalculation] Failed with status:', - response.status, - response.statusText - ); throw new Error(`Household calculation failed: ${response.statusText}`); } const data: HouseholdCalculationResponse = await response.json(); - console.log('[fetchHouseholdCalculation] Response data:'); - console.log(' - status:', data.status); - console.log(' - has result?', !!data.result); - console.log(' - error:', data.error); if (data.status === 'error' || !data.result) { - console.error('[fetchHouseholdCalculation] Calculation error:', data.error); throw new Error(data.error || 'Household calculation failed'); } - console.log('[fetchHouseholdCalculation] Returning successful result'); return data.result; } catch (error) { clearTimeout(timeoutId); // Check if it's a timeout error if (error instanceof Error && error.name === 'AbortError') { - console.error('[fetchHouseholdCalculation] Request timed out'); throw new Error('Household calculation timed out after 50 seconds (client-side timeout)'); } - console.error('[fetchHouseholdCalculation] Error occurred:', error); throw error; } } diff --git a/app/src/components/shared/AutumnBudgetBanner.tsx b/app/src/components/shared/AutumnBudgetBanner.tsx index 85c17adca..9b2f0cc81 100644 --- a/app/src/components/shared/AutumnBudgetBanner.tsx +++ b/app/src/components/shared/AutumnBudgetBanner.tsx @@ -233,8 +233,8 @@ export default function AutumnBudgetBanner() { target="_blank" rel="noopener noreferrer" style={{ - flex: '1 1 280px', - maxWidth: '320px', + flex: '1 1 220px', + maxWidth: '260px', minHeight: '80px', backgroundColor: 'rgba(255, 255, 255, 0.95)', borderRadius: '12px', @@ -286,8 +286,8 @@ export default function AutumnBudgetBanner() { target="_blank" rel="noopener noreferrer" style={{ - flex: '1 1 280px', - maxWidth: '320px', + flex: '1 1 220px', + maxWidth: '260px', minHeight: '80px', backgroundColor: 'rgba(255, 255, 255, 0.95)', borderRadius: '12px', @@ -339,8 +339,8 @@ export default function AutumnBudgetBanner() { target="_blank" rel="noopener noreferrer" style={{ - flex: '1 1 280px', - maxWidth: '320px', + flex: '1 1 220px', + maxWidth: '260px', minHeight: '80px', backgroundColor: 'rgba(255, 255, 255, 0.95)', borderRadius: '12px', @@ -384,6 +384,59 @@ export default function AutumnBudgetBanner() { + + {/* Card 4: Mansion Tax */} + + + + Mansion tax + + + Constituency distribution of high-value property sales + + + diff --git a/app/src/data/posts/articles/api-v2.md b/app/src/data/posts/articles/api-v2.md index 00e2425c1..a516ef255 100644 --- a/app/src/data/posts/articles/api-v2.md +++ b/app/src/data/posts/articles/api-v2.md @@ -206,14 +206,12 @@ Assuming we have transitioned both APIs to just do API and delegating all simula Cost was estimated using these usage estimates: - Simulation API - - Cloud Run function using 16GB and 2 CPUs — based on existing app engine configuration. - One minimum instance is hot at all times — reduce cold start time - 100 simulations a day every day all month averaging 15 minutes to run — WAG - Only one concurrent request per function at a time — currently safe limitation. - API compute - - 2 always active servers running the front end API and servicing 1M requests a month (roughly 1,000 requests and hour all month which is a very conservative WAG) - 2 CPU/1G RAM - 80 requests concurrent diff --git a/app/src/data/posts/articles/conservative-2024-manifesto.md b/app/src/data/posts/articles/conservative-2024-manifesto.md index b67fd81c9..009b15249 100644 --- a/app/src/data/posts/articles/conservative-2024-manifesto.md +++ b/app/src/data/posts/articles/conservative-2024-manifesto.md @@ -91,15 +91,15 @@ PolicyEngine estimates that the complete Conservative manifesto would, in 2029: We estimate the Conservatives’ manifesto to be [mostly regressive along income lines](https://legacy.policyengine.org/uk/policy?focus=policyOutput.winnersAndLosers.incomeDecile&reform=58041®ion=uk&timePeriod=2029&baseline=1), with the lowest decile experiencing a 6.4% decrease in disposable income, while those in the highest income bracket would see a 0.3% increase, and those in bracket 9 would experience the greatest relative increase of 1.6%. -![Impact by income decile](/images/posts/conservative-2024-manifesto/decile_impact.png "image_tooltip") +![Impact by income decile](/images/posts/conservative-2024-manifesto/decile_impact.png 'image_tooltip') We also conclude that people in the lowest income deciles are more likely to experience the negative impacts of the proposal, with over 95% of people in the first income decile experiencing a decrease in net income. The majority of people in income deciles above the fifth start to experience net income increases with [overall 46% of the population benefiting](https://legacy.policyengine.org/uk/policy?focus=policyOutput.winnersAndLosers.incomeDecile&reform=58041®ion=uk&timePeriod=2029&baseline=1), in net income terms, and 52% of people experience net income decreases. -![Impacts within income deciles](/images/posts/conservative-2024-manifesto/intra_decile_impact.png "image_tooltip") +![Impacts within income deciles](/images/posts/conservative-2024-manifesto/intra_decile_impact.png 'image_tooltip') Regarding poverty rates, PolicyEngine estimates that the proposed policy changes would [increase the overall poverty rate 5.8%](https://legacy.policyengine.org/uk/policy?focus=policyOutput.povertyImpact.regular.byAge&reform=58041®ion=uk&timePeriod=2029&baseline=1). The percentage of seniors in poverty would increase by 19% to a total of 13.4%, while child and working-age adult poverty rates would increase by 3.5% and 4.6% respectively. -![Poverty rate impacts](/images/posts/conservative-2024-manifesto/poverty_impact.png "image_tooltip") +![Poverty rate impacts](/images/posts/conservative-2024-manifesto/poverty_impact.png 'image_tooltip') ## Conclusion diff --git a/app/src/data/posts/articles/lib-dem-2024-manifesto.md b/app/src/data/posts/articles/lib-dem-2024-manifesto.md index a52a67a15..9435e656d 100644 --- a/app/src/data/posts/articles/lib-dem-2024-manifesto.md +++ b/app/src/data/posts/articles/lib-dem-2024-manifesto.md @@ -76,15 +76,15 @@ PolicyEngine estimates that the combined Liberal Democrat manifesto would, in 20 We also estimate that this level of redistribution would be progressive along income lines, with the lowest income decile seeing a 9% increase in disposable income, and a loss of 2% for the highest income decile. -![Impact by income decile](/images/posts/lib-dem-2024-manifesto/decile_impact.jpeg "image_tooltip") +![Impact by income decile](/images/posts/lib-dem-2024-manifesto/decile_impact.jpeg 'image_tooltip') We also estimate that people in lower income deciles are more likely to be better off under the plans than those in higher deciles, though the lowest decile still has 10% of people worse off under the manifesto policy. -![Impacts within income deciles](/images/posts/lib-dem-2024-manifesto/intra_decile_impact.jpeg "image_tooltip") +![Impacts within income deciles](/images/posts/lib-dem-2024-manifesto/intra_decile_impact.jpeg 'image_tooltip') On poverty rates, PolicyEngine estimates that the manifesto policy would reduce absolute child poverty by a quarter, lowering the number of children in poverty by 1.3m and the number of people in poverty by 2.4m. We also estimate that the Gini index of income inequality would fall by over 3%. -![Poverty rate impacts](/images/posts/lib-dem-2024-manifesto/poverty_impact.jpeg "image_tooltip") +![Poverty rate impacts](/images/posts/lib-dem-2024-manifesto/poverty_impact.jpeg 'image_tooltip') ## Conclusion diff --git a/app/src/data/posts/articles/niskanen-center-analysis.md b/app/src/data/posts/articles/niskanen-center-analysis.md index a7da51540..99901ffc4 100644 --- a/app/src/data/posts/articles/niskanen-center-analysis.md +++ b/app/src/data/posts/articles/niskanen-center-analysis.md @@ -4,7 +4,7 @@ The report, "[Building A Stronger Foundation for American Families](https://www. PolicyEngine's built-in instant interactive data visualizations powerfully illustrate the distributional effects of Niskanen's proposals across income deciles. For example, the chart below unpacks the distributional analysis of two simultaneous reforms–an expansion of the CTC combined with the elimination of the head of household (HoH) filing status, which reduces taxes for single parents compared to single individuals. Policy makers are often looking to find lower costs, and charts like these demonstrate how multivariate changes to the tax-code enable policymakers to balance budgetary concerns with impact. James Medlock, a favorite contributor to online policy discussion, applauded the chart: "Especially for more 'give and take' reforms like this, it's nice to show heterogeneity within deciles," [he wrote](https://x.com/jdcmedlock/status/1772638537059377660). -![](/images/posts/niskanen_center_analysis/ctc_graph.png "image_tooltip") +![](/images/posts/niskanen_center_analysis/ctc_graph.png 'image_tooltip') PolicyEngine also empowers consumers of policy reforms to test the analysis and dig deeper. PolicyEngine's free open source model makes our assumptions transparent and enables anyone to design policy reforms. For example, by clicking [here](https://legacy.policyengine.org/us/policy?focus=policyOutput.policyBreakdown&reform=47843®ion=enhanced_) you can see all component reforms and impacts of Niskanen's preferred policy design. diff --git a/app/src/data/posts/articles/ny-hochul-budget.md b/app/src/data/posts/articles/ny-hochul-budget.md index fdadf7160..c5a7772f4 100644 --- a/app/src/data/posts/articles/ny-hochul-budget.md +++ b/app/src/data/posts/articles/ny-hochul-budget.md @@ -103,7 +103,6 @@ Figures 2 through 5 display the changes in net income and marginal tax rates for For tax year 2025, PolicyEngine projects that these reforms would: - [Cost $4.8 billion](https://legacy.policyengine.org/us/policy?focus=policyOutput.policyBreakdown&household=51448®ion=ny&timePeriod=2025&baseline=2&reform=76580), with the following breakdown: - - Inflation Rebates: [$3.7 billion](https://legacy.policyengine.org/us/policy?focus=policyOutput.policyBreakdown&reform=76266®ion=ny&timePeriod=2025&baseline=2)[^2] - ESCC expansion: [$481 million](https://legacy.policyengine.org/us/policy?focus=policyOutput.policyBreakdown&reform=76581®ion=ny&timePeriod=2025&baseline=2) @@ -141,7 +140,6 @@ Finally, the tax reforms would [decrease income inequality](https://legacy.polic For tax year 2026, PolicyEngine projects that these reforms would: - Cost [$2.1 billion](https://legacy.policyengine.org/us/policy?focus=policyOutput.budgetaryImpact.overall&household=51448®ion=ny&timePeriod=2026&baseline=2&reform=76580), with the following breakdown: - - ESCC expansion: [$821 million](https://legacy.policyengine.org/us/policy?focus=policyOutput.policyBreakdown&reform=76581®ion=ny&timePeriod=2026&baseline=2) - Income tax cuts: [$1.3 billion](https://legacy.policyengine.org/us/policy?focus=policyOutput.budgetaryImpact.overall&household=51448®ion=ny&timePeriod=2026&baseline=2&reform=76590)[^4] diff --git a/app/src/data/posts/articles/rent-relief-act.md b/app/src/data/posts/articles/rent-relief-act.md index e8c7497d1..8b49d24cd 100644 --- a/app/src/data/posts/articles/rent-relief-act.md +++ b/app/src/data/posts/articles/rent-relief-act.md @@ -102,7 +102,7 @@ To illustrate how the Rent Relief Act affects different household types across v **Figure 7: Rent Relief Act Credit for Selected Homes** -![](/images/posts/rent_relief/rent_relief_comparison.png "image_tooltip") +![](/images/posts/rent_relief/rent_relief_comparison.png 'image_tooltip') This chart demonstrates several key features of the Rent Relief Act: diff --git a/app/src/data/posts/articles/uk-mansion-tax-autumn-budget.md b/app/src/data/posts/articles/uk-mansion-tax-autumn-budget.md new file mode 100644 index 000000000..238873951 --- /dev/null +++ b/app/src/data/posts/articles/uk-mansion-tax-autumn-budget.md @@ -0,0 +1,47 @@ +The Times [reports](https://www.thetimes.com/article/b43b7639-6a3b-4180-baa2-b1c249d8a30a?shareToken=2b69490f2c227849a9d6446b1f6c477e) that Chancellor Rachel Reeves plans to raise up to £450 million from a levy on homes worth over £2 million, affecting over 100,000 properties. Earlier speculation suggested a £1.5 million threshold, which would have affected 300,000 homes. + +To illustrate where a mansion tax would have the greatest impact, we mapped 2024 Land Registry sales above these thresholds by parliamentary constituency. Sales data serves as a proxy for the stock of high-value homes; turnover rates vary by area, so these figures show the relative geographic concentration rather than the total number of homes that would be affected. + +## Key findings + +Raising the threshold from £1.5 million to £2 million nearly halves the number of affected properties: + +| Threshold | Sales | Share of all sales | +| :----------- | :----: | :----------------: | +| £1.5 million | 14,820 | 1.7% | +| £2 million | 8,213 | 0.9% | + +Three central London constituencies—Cities of London and Westminster, Kensington and Bayswater, and Chelsea and Fulham—account for 16% of affected properties at the £1.5m threshold and 21% at the £2m threshold. The median constituency saw 10 sales above £1.5m or 6 above £2m. + +London constituencies account for 45-46% of all affected properties. Outside London, the constituencies with the most high-value sales are Runnymede and Weybridge (183), Queen's Park and Maida Vale (166), Esher and Walton (163), Windsor (134), and Chesham and Amersham (127). + +## Interactive map + +Use the toggle to switch between £1.5m and £2m thresholds. + +
+ +The top 10 constituencies account for 30% of sales above £1.5m and 36% above £2m. All are in London or the commuter belt. + +**Top 10 constituencies by share of nationwide high-value sales** + +| Constituency | £1.5m | £2m | +| :------------------------------- | :---: | :--: | +| Cities of London and Westminster | 6.7% | 9.5% | +| Kensington and Bayswater | 5.5% | 7.0% | +| Chelsea and Fulham | 4.2% | 4.6% | +| Hampstead and Highgate | 2.7% | 3.0% | +| Battersea | 2.2% | 1.7% | +| Richmond Park | 2.0% | 1.9% | +| Islington South and Finsbury | 1.7% | 1.7% | +| Hammersmith and Chiswick | 1.7% | 1.6% | +| Holborn and St Pancras | 1.5% | 1.7% | +| Finchley and Golders Green | 1.3% | 1.4% | + +## Methodology + +We identified 2024 property sales exceeding £1.5 million and £2 million from [Land Registry Price Paid Data](https://www.gov.uk/government/statistical-data-sets/price-paid-data-downloads), which includes postcodes for each transaction. We mapped postcodes to parliamentary constituencies using [MySociety's 2025 constituency lookup](https://github.com/mysociety/2025-constituencies), then uprated prices to 2026-27 values using the OBR house price index forecast (+3.56%) from the [October 2024 Economic and Fiscal Outlook](https://obr.uk/efo/economic-and-fiscal-outlook-october-2024/). + +**Limitations**: We use sales as a proxy for housing stock, apply the national house price index uniformly (regional growth may vary), and properties near thresholds may be revalued. + +[Download the constituency dataset (CSV)](/assets/posts/uk-mansion-tax/mansion_tax_constituency_data.csv) | [View code on GitHub](https://github.com/PolicyEngine/uk-mansion-tax) diff --git a/app/src/data/posts/articles/uk-taxes-post.md b/app/src/data/posts/articles/uk-taxes-post.md index a552c8313..f72883cc6 100644 --- a/app/src/data/posts/articles/uk-taxes-post.md +++ b/app/src/data/posts/articles/uk-taxes-post.md @@ -28,14 +28,12 @@ HMRC administers this tax using a band system with different rates for certain i - **Standard income tax components** These are the main rate bands that determine tax payments on different portions of income. The UK uses a system where portions of income are taxed at different rates. - - **Basic rate**: Applied to taxable income between the personal allowance and higher rate threshold at a rate of 20% for 2025, calculated in PolicyEngine as [`basic_rate_earned_income`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/basic_rate_earned_income_tax.py). - **Higher rate**: Applied to taxable income between the higher rate threshold (£37,700 above personal allowance in 2025) and additional rate threshold at a rate of 40% for 2025, calculated in PolicyEngine as [`higher_rate_earned_income`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/higher_rate_earned_income_tax.py). - **Additional rate**: Applied to taxable income over the additional rate threshold (£125,140 in 2025) at a rate of 45% for 2025, calculated in PolicyEngine as [`add_rate_earned_income`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/bracketized_liability/add_rate_earned_income_tax.py). - **Income tax bases** These represent the different sources of income subject to income tax in the UK. Each type has specific rules about deductions, allowances and sometimes different tax rates. - - **Employment income**: Income from employment, including salaries, wages, bonuses and employment benefits. This income type is taxed through the PAYE system and represented by the [`taxable_employment_income`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/bases/taxable_employment_income.py) variable. - **Self-employment income**: Income from self-employment, freelance work or running a business as a sole trader. Self-employed individuals pay income tax on profits after business expenses, calculated as [`taxable_self_employment_income`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/bases/taxable_self_employment_income.py). - **Pension income**: Income from state pensions, workplace pensions and private pensions, calculated as [`taxable_pension_income`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/bases/taxable_pension_income.py) in PolicyEngine. @@ -47,7 +45,6 @@ HMRC administers this tax using a band system with different rates for certain i - **Allowances and reliefs** These are amounts that can be earned tax-free or deductions that reduce taxable income, defined by various parameters and calculated as part of [`allowances`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/variables/gov/hmrc/income_tax/allowances). - - **Personal allowance**: The amount of income that can be earned before paying income tax, set at £12,570 in 2025-26. The UK reduces the personal allowance at a 50% rate when income exceeds £100,000. PolicyEngine represents this in the [`personal_allowance`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/variables/gov/hmrc/income_tax/allowances) variable. - **Marriage allowance**: Allows a spouse or civil partner to transfer 10% of their personal allowance. Only available when the higher earner is a basic rate taxpayer and the lower earner has unused allowance, calculated as [`marriage_allowance`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/allowances/marriage_allowance.py). - **Dividend allowance**: Tax-free allowance for dividend income set at £500 in 2025, defined by the `dividend_allowance` parameter in [`dividend_allowance.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/hmrc/income_tax/allowances/dividend_allowance.yaml). @@ -59,7 +56,6 @@ HMRC administers this tax using a band system with different rates for certain i - **Income tax charges** These are tax charges that withdraw benefits or allowances in specific circumstances, implemented in [`variables/gov/hmrc/income_tax/charges`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/variables/gov/hmrc/income_tax/charges/). - - **Child benefit high income tax charge (HITC)**: A tax charge on high earners who or whose partner receives child benefit. Child benefit rates in 2025 are £26.04 per week for the eldest child and £17.24 per week for each additional child. The HITC withdraws this benefit when income exceeds a threshold, with full withdrawal at a higher threshold, calculated as [`child_benefit_hitc`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/income_tax/charges/child_benefit_hitc.py). PolicyEngine projects that the UK will collect [£322.2 billion](https://gist.github.com/vahid-ahmadi/505f1a571d3e71e594a4565b75380c56) in income tax revenue in 2025, 2.0% less than the OBR's forecast of [£328.7 billion](https://obr.uk/forecasts-in-depth/tax-by-tax-spend-by-spend/income-tax/). Figure 1 shows the distributional impact of this programme. @@ -169,7 +165,6 @@ National Insurance consists of contributions paid by employees, employers and th - **Class 1** (Employees and employers) These are contributions paid on employee earnings above the primary threshold. - - **Primary contributions (employees)**: Paid by employees at 8% on earnings between the primary threshold (£241.73 per week in 2025) and upper earnings limit, with a lower rate above the upper limit. This is deducted via the PAYE system alongside income tax, calculated as [`ni_class_1_employee_primary`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_primary.py). - **Secondary contributions (employers)**: Paid by employers at a flat rate on employee earnings above the secondary threshold. This represents a cost for employers and affects employment costs, calculated as [`ni_class_1_employer`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employer.py). - **Additional rate contributions**: The UK levies a rate of National Insurance on employment income in excess of the upper earnings limit, calculated as [`ni_class_1_employee_additional`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_1/ni_class_1_employee_additional.py). @@ -180,7 +175,6 @@ National Insurance consists of contributions paid by employees, employers and th Optional contributions people can make to fill gaps in their National Insurance record, calculated as [`ni_class_3`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_3/ni_class_3.py). - **Class 4** (Self-employed - percentage-based) Percentage-based contributions paid by self-employed people on their profits. They function similar to income tax with different rates applied to different profit levels, calculated as [`ni_class_4`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4.py). - - **Main rate**: Paid on self-employed profits between the lower profits limit and upper profits limit, calculated as [`ni_class_4_main`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_main.py). - **Additional rate**: Paid on self-employed profits above the upper profits limit, calculated as [`ni_class_4_maximum`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/variables/gov/hmrc/national_insurance/class_4/ni_class_4_maximum.py). @@ -642,14 +636,12 @@ SDLT is a tax paid when purchasing property over certain price thresholds in Eng - **Residential property** These rates apply to homes and residential properties with different structures for different buyer types, defined in [`residential`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/residential/). - - **Main residence rates (including first-time buyer relief)**: Standard rates apply in bands from the nil-rate band (£0) to portions over the highest threshold. For 2025, thresholds are £0, £125,000, £250,000, £925,000, and £1,500,000, with corresponding rates of 0%, 2%, 5%, 10%, and 12%. First-time buyers receive relief with higher nil-rate thresholds and reduced rates up to a maximum property value, defined in property-specific rate files within [`residential`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/residential/). - **Additional property surcharge**: An extra percentage of SDLT is charged on additional residential properties over a threshold, defined in the surcharge parameters within [`residential`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/residential/). - **Rental agreements**: SDLT applies to the net present value of rent over the lease term when exceeding a threshold, defined by residential rent parameters in [`rent.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/residential/rent.yaml). - **Non-residential property** These apply to commercial property purchases like shops, offices and agricultural land, defined in [`non_residential`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/non_residential/). - - **Purchase rates**: Rates apply in bands from the nil-rate band to portions over higher thresholds, defined by non-residential purchase parameters in [`purchase.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/non_residential/purchase.yaml). - **Rental agreements**: SDLT applies to the net present value of commercial lease rent above a threshold, defined by non-residential rent parameters in [`rent.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/hmrc/stamp_duty/non_residential/rent.yaml). @@ -759,7 +751,6 @@ Scotland uses a different property transaction tax than England and Northern Ire - **Residential property** Scotland's residential property transaction tax applies to home purchases with specific rates, defined in [`residential`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/residential/). - - **Standard rates**: Rates apply in bands with thresholds at £0, £145,000, £250,000, £325,000, and £750,000 for 2025, with corresponding rates of 0%, 2%, 5%, 10%, and 12%, defined by the [`rate`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/residential/rate.yaml) parameter. - **First-time buyer relief**: First-time buyers pay no LBTT up to a higher threshold than standard purchases, defined by the [`first_time_buyer_rate`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/residential/first_time_buyer_rate.yaml) parameter. - **Additional dwelling supplement**: A surcharge applies to additional residential properties over a threshold, defined by the [`additional_residence_surcharge`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/residential/additional_residence_surcharge.yaml) parameter. @@ -767,7 +758,6 @@ Scotland uses a different property transaction tax than England and Northern Ire - **Non-residential property** These apply to commercial property transactions in Scotland with distinct rates, defined in [`non_residential.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/non_residential.yaml). - - **Purchase rates**: Rates apply in bands from the nil-rate band to portions over higher thresholds, defined by specific band parameters in [`non_residential.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/non_residential.yaml). - **Rental agreements**: LBTT applies to the net present value of commercial lease rent above a threshold, defined by specific rent parameters in [`rent.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/revenue_scotland/lbtt/rent.yaml). @@ -877,14 +867,12 @@ Wales has its own property transaction tax system. Land Transaction Tax (LTT) is - **Residential property** Wales' residential property transaction tax applies to home purchases with its own rate structure, defined in [`residential`](https://github.com/PolicyEngine/policyengine-uk/tree/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/residential/). - - **Primary residence rates**: Rates apply in bands with thresholds at £0, £180,000, £250,000, £400,000, £750,000, and £1,500,000 for 2025, with corresponding rates of 0%, 3.5%, 5%, 7.5%, 10%, and 12%, defined by the [`primary`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/residential/primary.yaml) parameter. - **Higher rates for additional properties**: A surcharge applies to purchases of additional residential properties, defined by the [`higher_rate`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/residential/higher_rate.yaml) parameter. - **Rental agreements**: LTT applies to the net present value of residential lease rent above thresholds, defined by specific rent parameters in [`rent.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/rent.yaml). - **Non-residential property** These apply to commercial property purchases and leases in Wales with specific rates, defined in [`non_residential.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/non_residential.yaml). - - **Purchase rates**: Rates apply in bands from the nil-rate band to portions over higher thresholds, defined by specific band parameters in [`non_residential.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/non_residential.yaml). - **Rental agreements**: LTT applies to the net present value of commercial lease rent with threshold and rate structures, defined by specific rental parameters in [`rent.yaml`](https://github.com/PolicyEngine/policyengine-uk/blob/master/policyengine_uk/parameters/gov/wra/land_transaction_tax/rent.yaml). diff --git a/app/src/data/posts/postTransformers.ts b/app/src/data/posts/postTransformers.ts index 1c97b3b3e..f1cc6d051 100644 --- a/app/src/data/posts/postTransformers.ts +++ b/app/src/data/posts/postTransformers.ts @@ -50,6 +50,7 @@ const topicLabels: TagLabels = { ai: 'AI', 'april-fools': 'April Fools', 'autumn-budget': 'Autumn Budget', + 'autumn budget': 'Autumn Budget', 'behavioral-responses': 'Behavioral responses', // UK variant: Behavioural responses benefit: 'Benefits', 'child-tax-credit': 'Child Tax Credit', diff --git a/app/src/data/posts/posts.json b/app/src/data/posts/posts.json index 41076924c..4ae86800b 100644 --- a/app/src/data/posts/posts.json +++ b/app/src/data/posts/posts.json @@ -1,59 +1,47 @@ [ + { + "title": "Estimating the constituency distribution of a mansion tax", + "description": "Three central London constituencies account for a fifth of property sales above £2 million. We map the geographic distribution.", + "date": "2025-11-25 12:00:00", + "tags": ["uk", "policy", "tax", "autumn budget", "featured"], + "authors": ["daphne-hansell"], + "filename": "uk-mansion-tax-autumn-budget.md", + "image": "uk-mansion-tax/cover.png", + "hideHeaderImage": false + }, { "title": "Analysing alternative income tax and National Insurance reform options for the UK", "description": "PolicyEngine analysis of alternative tax reform options: raising basic and higher income tax rates, cutting NI, and extending the threshold freeze.", "date": "2025-11-20 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], + "tags": ["uk", "policy", "featured"], "filename": "uk-income-tax-ni-reforms-2025.md", "image": "uk-income-tax-ni-reforms-2025.jpg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "PolicyEngine London event 2025", "description": "PolicyEngine hosted an event in London that presented new updates and capabilities, real-world policy research applications, local area modelling, and how to use AI in policy research.", "date": "2025-11-10", - "tags": [ - "uk", - "event", - "featured" - ], + "tags": ["uk", "event", "featured"], "filename": "policyengine-2-event-report.md", "image": "policyengine-2-event-report.jpeg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "Marginal tax rates in California's proposed billionaire tax", "description": "The 5% tax creates marginal tax rates between 50% and 60% on wealth between $1 billion and $1.1 billion.", "date": "2025-10-25", - "tags": [ - "us" - ], + "tags": ["us"], "filename": "california-billionaire-tax-marginal-rates.md", "image": "california-billionaire-tax-marginal-rates.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Comparing PolicyEngine and official UK poverty rates", "description": "We compare PolicyEngine poverty estimates with official DWP statistics and explain the methodological factors behind the differences.", "date": "2025-10-10 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-poverty-analysis.md", "image": "uk-poverty-analysis.jpg" }, @@ -61,14 +49,8 @@ "title": "How removing the two-child benefit limit would affect the UK", "description": "Removing the two-child limit would cost £2.8 billion in 2026-27 and reduce child poverty by 15.7%.", "date": "2025-10-06 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-two-child-limit.md", "image": "uk-reeves.jpg" }, @@ -76,15 +58,8 @@ "title": "How we used Claude Code to choose our DC office", "description": "We used Claude Code to build an interactive comparison tool for choosing our DC office. The winner: Open Gov Hub. Join us Oct 22 to celebrate!", "date": "2025-10-05", - "tags": [ - "us", - "org", - "ai" - ], - "authors": [ - "max-ghenis", - "daphne-hansell" - ], + "tags": ["us", "org", "ai"], + "authors": ["max-ghenis", "daphne-hansell"], "filename": "dc-office-ai-coding.md", "image": "dc-office-ai-coding.png" }, @@ -92,16 +67,8 @@ "title": "Introducing ACA-Calc: Calculate your household's premium tax credits", "description": "New interactive calculator shows how Affordable Care Act subsidies affect households under current enhanced schedule and original schedule.", "date": "2025-09-30", - "tags": [ - "us", - "policy", - "featured", - "healthcare", - "interactives" - ], - "authors": [ - "daphne-hansell" - ], + "tags": ["us", "policy", "featured", "healthcare", "interactives"], + "authors": ["daphne-hansell"], "filename": "introducing-aca-calc.md", "image": "biden-arpa.png" }, @@ -109,14 +76,8 @@ "title": "How carbon tax and dividend policies affect UK households", "description": "PolicyEngine analysis of £100/200 per tonne carbon taxes with full dividend redistribution shows approximately 71% of UK residents would gain.", "date": "2025-09-30 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-carbon-tax-dividend.md", "image": "uk-carbon-tax.png" }, @@ -124,15 +85,8 @@ "title": "Enhanced Premium Tax Credits: Analyzing Household Impacts of an Extension Beyond 2025", "description": "PolicyEngine analyzes extending the enhanced premium tax credits enacted through the American Rescue Plan Act beyond their 2025 expiration.", "date": "2025-09-30", - "tags": [ - "us", - "policy", - "featured", - "healthcare" - ], - "authors": [ - "daphne-hansell" - ], + "tags": ["us", "policy", "featured", "healthcare"], + "authors": ["daphne-hansell"], "filename": "enhanced-premium-tax-credits-extension.md", "image": "enhanced-premium-tax-credits-extension.jpg" }, @@ -140,163 +94,88 @@ "title": "Event: PolicyEngine 2.0 and the Future of Public Policy Analysis", "description": "Join us on the afternoon of November 3rd in London for an exclusive showcase of PolicyEngine's latest innovations in evidence-based policy analysis, featuring live demos and networking.", "date": "2025-09-12", - "tags": [ - "uk", - "org", - "featured", - "event" - ], + "tags": ["uk", "org", "featured", "event"], "filename": "sep-2025-london-event.md", "image": "sep-2025-london-event.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "PolicyEngine and NBER sign memorandum of understanding for TAXSIM emulator development", "description": "Partnership ensures continuity of tax microsimulation capabilities for the research community through open-source development.", "date": "2025-09-05", - "tags": [ - "us", - "org", - "featured" - ], + "tags": ["us", "org", "featured"], "filename": "policyengine-nber-mou-taxsim.md", "image": "policyengine-nber-mou-taxsim.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "National Science Foundation awards PolicyEngine $300,000 grant", "description": "NSF's Pathways to Enable Open-Source Ecosystems program will support PolicyEngine's work to expand access to policy analysis tools.", "date": "2025-08-18", - "tags": [ - "us", - "uk", - "org", - "featured" - ], + "tags": ["us", "uk", "org", "featured"], "filename": "nsf-pose-phase-1-grant.md", "image": "nsf-official-logo.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of the American Worker Rebate Act of 2025", "description": "The bill would cost $141 billion and benefit 80% of American residents.", "date": "2025-08-13", - "tags": [ - "us", - "tariffs", - "featured" - ], + "tags": ["us", "tariffs", "featured"], "filename": "american-worker-rebate-act.md", "image": "american-worker-rebate-act.jpg", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Enhanced CPS full launch: Comprehensive microdata for policy analysis", "description": "The Enhanced Current Population Survey now includes tip, overtime, and auto loan interest imputations, plus upcoming state and congressional district calibration.", "date": "2025-08-11", - "tags": [ - "us", - "data", - "featured" - ], + "tags": ["us", "data", "featured"], "filename": "enhanced-cps-launch.md", "image": "enhanced-cps-launch.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff", - "ben-ogorek", - "maria-juaristi" - ] + "authors": ["max-ghenis", "nikhil-woodruff", "ben-ogorek", "maria-juaristi"] }, { "title": "Analysis of individual income tax provisions in the final reconciliation bill", "description": "Our simulation projects a reduction in federal revenues of $3.8 trillion from 2026 to 2035 compared to current law.", "date": "2025-07-04", - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "tags": ["us", "policy", "featured", "reconciliation"], "filename": "final-2025-reconciliation-tax.md", "image": "final-2025-reconciliation-tax.png", - "authors": [ - "david-trimmer", - "pavel-makarchuk" - ] + "authors": ["david-trimmer", "pavel-makarchuk"] }, { "title": "Introducing the OBBBA Household Explorer", "description": "New interactive tool reveals household-level impacts of the One Big Beautiful Bill Act.", "date": "2025-07-03", - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "tags": ["us", "policy", "featured", "reconciliation"], "filename": "introducing-obbba-household-explorer.md", "image": "introducing-obbba-household-explorer.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk", - "elena-cura" - ] + "authors": ["max-ghenis", "pavel-makarchuk", "elena-cura"] }, { "title": "The 2025 American Family Act", "description": "The Child Tax Credit expansion would cost the federal government $2.5 trillion over ten years and lower child poverty by 25%.", "date": "2025-06-16", - "tags": [ - "us", - "policy", - "featured", - "child-tax-credit" - ], + "tags": ["us", "policy", "featured", "child-tax-credit"], "filename": "american-family-act-2025.md", "image": "american-family-act-2025.webp", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Childcare programmes in PolicyEngine UK", "description": "This report explains how PolicyEngine models childcare programmes in the UK.", "date": "2025-06-06", - "tags": [ - "uk", - "benefit", - "featured" - ], + "tags": ["uk", "benefit", "featured"], "filename": "uk-childcare-report.md", "image": "uk_childcare_report.jpg", - "authors": [ - "vahid-ahmadi" - ] + "authors": ["vahid-ahmadi"] }, { "title": "Manager's Amendment to H.R.1 - The One Big Beautiful Bill Act", "date": "2025-05-24", - "authors": [ - "pavel-makarchuk", - "david-trimmer", - "max-ghenis" - ], - "tags": [ - "us", - "policy", - "featured", - "reconciliation" - ], + "authors": ["pavel-makarchuk", "david-trimmer", "max-ghenis"], + "tags": ["us", "policy", "featured", "reconciliation"], "description": "We project that individual provisions in the manager's amendment will cost $22 billion over the budget window.", "filename": "managers-amendment-to-hr1.md", "image": "managers-amendment-to-hr1.png" @@ -305,282 +184,169 @@ "title": "Montana Reduces Top Income Tax Rate and Expands EITC", "description": "Montana's latest individual income tax changes will lower state revenues by $245 million and raise net income for an estimated 77% of residents in 2027.", "date": "2025-05-22", - "tags": [ - "us", - "featured", - "us-mt" - ], + "tags": ["us", "featured", "us-mt"], "filename": "montana-tax-cuts-2026.md", "image": "montana-tax-cuts-2026.jpg", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "The SALT Caucus's Proposed Cap", "description": "We project that replacing the SALT cap approved by the Ways and Means Committee with the SALT Caucus proposal would cost $497 billion over the budget window.", "date": "2025-05-15", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "salt-caucus-62k-cap.md", "image": "salt-caucus-62k-cap.png", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "Ways and Means Committee's SALT Cap", "description": "We project that limiting state and local tax deductions to $30,000, phasing down to $10,000 at high incomes, would raise $937 billion over the budget window.", "date": "2025-05-14", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "ways-and-means-salt-cap.md", "image": "ways-and-means-salt-cap.webp", - "authors": [ - "pavel-makarchuk", - "david-trimmer", - "max-ghenis" - ] + "authors": ["pavel-makarchuk", "david-trimmer", "max-ghenis"] }, { "title": "Tax changes in effect in April 2025", "description": "Using PolicyEngine UK, we analyse four tax changes taking effect in April 2025 that will increase taxes by an average of £1,133 per household.", "date": "2025-04-25", - "tags": [ - "uk", - "tax", - "policy", - "featured" - ], + "tags": ["uk", "tax", "policy", "featured"], "filename": "impact-of-tax-changes-2025-2026.md", "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Analyzing Energy Policy with PolicyEngine", "description": "We provide an Earth Day recap of our capabilities in the US and UK.", "date": "2025-04-22", - "tags": [ - "us", - "uk", - "featured" - ], + "tags": ["us", "uk", "featured"], "filename": "earth-day-2025.md", "image": "earth-day-2025.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "What's the SALTernative?", "description": "Introducing PolicyEngine’s free SALT‑AMT calculator — an open‑source web app to model next year’s SALT‑cap sunset, tweak AMT parameters, and see the budget, distributional, and household impacts in seconds.", "date": "2025-04-21", - "tags": [ - "us", - "featured", - "reconciliation" - ], + "tags": ["us", "featured", "reconciliation"], "filename": "introducing-salternative.md", "image": "introducing-salternative.png", - "authors": [ - "pavel-makarchuk", - "max-ghenis" - ] + "authors": ["pavel-makarchuk", "max-ghenis"] }, { "title": "MyFriendBen Launches in North Carolina, Using PolicyEngine API", "description": "Our rules engine powers the open-source multi-benefit screener and its expansion beyond Colorado.", "date": "2025-04-05", - "tags": [ - "us", - "us-nc", - "featured", - "api", - "benefit-access" - ], + "tags": ["us", "us-nc", "featured", "api", "benefit-access"], "filename": "myfriendben-nc.md", "image": "myfriendben-nc.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "New Ways to Give to PolicyEngine", "description": "Exploring state tax credits for charitable giving.", "date": "2025-04-01", - "tags": [ - "us", - "april-fools", - "featured" - ], + "tags": ["us", "april-fools", "featured"], "filename": "april-1st-2025.md", "image": "april-1st-2025.png", - "authors": [ - "daphne-hansell" - ] + "authors": ["daphne-hansell"] }, { "title": "Analysis of the Spring 2025 OBR forecast", "description": "PolicyEngine integrates the new OBR forecasts to provide updated predictions on household income, poverty, and inequality.", "date": "2025-03-26", - "tags": [ - "uk", - "impact", - "featured" - ], + "tags": ["uk", "impact", "featured"], "filename": "obr-forecast-2025.ipynb", "image": "obr-forecast-2025.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "HM Treasury pilots PolicyEngine UK for tax-benefit microsimulation", "description": "The UK government's finance ministry explores PolicyEngine as a potential supplement to existing models.", "date": "2025-03-24", - "tags": [ - "uk", - "impact", - "featured" - ], + "tags": ["uk", "impact", "featured"], "filename": "hmt-policyengine-pilot.md", "image": "analysis-of-the-spring-budget-2023.jpeg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Extending the Income Tax threshold freeze to 2030", "description": "PolicyEngine estimates extending the personal allowance and higher rate threshold freeze would raise £12.2 billion over two years.", "date": "2025-03-25", - "tags": [ - "uk", - "policy", - "featured" - ], + "tags": ["uk", "policy", "featured"], "filename": "income-tax-freeze.md", "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "PolicyEngine's 2022 year in review", "description": "A year of launches, analysis, and building for the future.", "date": "2022-12-30", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "policyengine-2022-year-in-review.md", "image": "policyengine-2022-year-in-review.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "How machine learning tools make PolicyEngine more accurate", "description": "Today, we're launching new survey weights that cut deviations from administrative statistics by 97%.", "date": "2022-03-07", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "how-machine-learning-tools-make-policyengine-more-accurate.md", "image": "how-machine-learning-tools-make-policyengine-more-accurate.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Enhancing the Current Population Survey for policy analysis", "description": "We've used modern data science techniques to make PolicyEngine the UK's most accurate microsimulation model. In 2023, we'll do the same in the US.", "date": "2022-12-28", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "enhancing-the-current-population-survey-for-policy-analysis.md", "image": "enhancing-the-current-population-survey-for-policy-analysis.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "How charitable contributions affect Americans' taxes", "description": "PolicyEngine estimates the tax impact of your donations for free.", "date": "2022-11-29", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "charitable-contributions.md", "image": "charitable-contributions.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Maryland's standard deduction", "description": "PolicyEngine computes the program's impact on Maryland and individual households.", "date": "2022-11-22", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "maryland-standard-deduction.md", "image": "maryland-standard-deduction.png", - "authors": [ - "kevin-foster" - ] + "authors": ["kevin-foster"] }, { "title": "From OpenFisca to PolicyEngine", "description": "OpenFisca has catapulted our progress, and now we've forked it into our own microsimulation framework.", "date": "2022-11-10", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "from-openfisca-to-policyengine.md", "image": "from-openfisca-to-policyengine.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Oregon's Nonrefundable Exemption Credit", "description": "PolicyEngine computes the program's impact on Oregon and individual households.", "date": "2022-11-04", - "tags": [ - "us", - "us-or", - "policy" - ], + "tags": ["us", "us-or", "policy"], "filename": "oregons-nonrefundable-exemption-credit.md", "image": "oregons-nonrefundable-exemption-credit.jpeg", - "authors": [ - "kevin-foster" - ] + "authors": ["kevin-foster"] }, { "title": "Stamp duties in PolicyEngine UK", "date": "2022-09-22", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "The Times reported yesterday that Prime Minister Liz Truss will announce plans to cut Stamp Duty this week. PolicyEngine now supports…", "filename": "stamp-duties-in-policyengine-uk.md", "image": "stamp-duties-in-policyengine-uk.jpg" @@ -588,13 +354,8 @@ { "title": "Prime Minister Liz Truss’s energy bill price cap", "date": "2022-09-16", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the impact in PolicyEngine.", "filename": "prime-minister-liz-trusss-energy-bill-price-cap.md", "image": "prime-minister-liz-trusss-energy-bill-price-cap.jpg" @@ -602,13 +363,8 @@ { "title": "Raising the marriage allowance from 10% to 100%", "date": "2022-08-29", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "See the reform in PolicyEngine.", "filename": "raising-the-marriage-allowance-from-10-to-100.md", "image": "raising-the-marriage-allowance-from-10-to-100.jpg" @@ -616,14 +372,8 @@ { "title": "PolicyEngine launches in Washington state", "date": "2022-08-10", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical", - "us-wa" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical", "us-wa"], "description": "Washingtonians can now compute the impacts of the Working Families Tax Credit and federal reforms.", "filename": "policyengine-launches-in-washington-state.md", "image": "policyengine-launches-in-washington-state.jpg" @@ -631,13 +381,8 @@ { "title": "Electric vehicle tax credits under current law and the Inflation Reduction Act", "date": "2022-08-05", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "Use PolicyEngine US to analyze provisions of the potential reconciliation bill.", "filename": "electric-vehicle-tax-credits-under-current-law-and-the-inflation-reduction-act.md", "image": "electric-vehicle-tax-credits-under-current-law-and-the-inflation-reduction-act.jpg" @@ -645,13 +390,8 @@ { "title": "Rishi Sunak’s proposal to cut the basic rate to 16 percent", "date": "2022-08-01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the interactive simulation on PolicyEngine", "filename": "rishi-sunaks-proposal-to-cut-the-basic-rate-to-16-percent.md", "image": "rishi-sunaks-proposal-to-cut-the-basic-rate-to-16-percent.jpg" @@ -659,13 +399,8 @@ { "title": "The new PolicyEngine US Population Impact page", "date": "2022-07-01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "You design the policy. We compute the poverty, inequality, and budgetary impacts.", "filename": "the-new-policyengine-us-population-impact-page.md", "image": "the-new-policyengine-us-population-impact-page.jpg" @@ -673,13 +408,8 @@ { "title": "PolicyEngine at the BIG Conference and the Beeck Center’s Rules as Code Demo Day", "date": "2022-06-09", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "Register for the BIG Conference June 23–25 and the Rules as Code Demo Day June 28", "filename": "policyengine-at-the-basic-income-guarantee-conference-and-the-beeck-centers-rules-as-code-demo-day.md", "image": "policyengine-at-the-basic-income-guarantee-conference-and-the-beeck-centers-rules-as-code-demo-day.jpg" @@ -687,13 +417,8 @@ { "title": "Impact of the Chancellor’s Cost of Living Support package", "date": "2022-05-26", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the analysis in PolicyEngine UK", "filename": "impact-of-the-chancellors-cost-of-living-support-package.md", "image": "impact-of-the-chancellors-cost-of-living-support-package.jpg" @@ -701,13 +426,8 @@ { "title": "How developers can explore the PolicyEngine API", "date": "2022-04-29", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "global", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["global", "technical"], "description": "The UK API explorer and US API explorer describe variables and policy parameters in our models.", "filename": "how-developers-can-explore-the-policyengine-api.md", "image": "how-developers-can-explore-the-policyengine-api.jpg" @@ -715,13 +435,8 @@ { "title": "Make Everyone a Policymaker", "date": "2021-10-15", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "global", - "impact" - ], + "authors": ["nikhil-woodruff"], + "tags": ["global", "impact"], "description": "Today we're (re)launching PolicyEngine to give the public unprecedented insight into the tax and benefit system.", "filename": "make-everyone-a-policymaker.md", "image": "make-everyone-a-policymaker.webp" @@ -729,13 +444,8 @@ { "title": "Analysing Autumn Budget Universal Credit reforms with PolicyEngine", "date": "2021-10-30", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "See how the reform affects the UK population or your household.", "filename": "analysing-autumn-budget-universal-credit-reforms-with-policyengine.md", "image": "analysing-autumn-budget-universal-credit-reforms-with-policyengine.webp" @@ -743,13 +453,8 @@ { "title": "Income Tax cuts Rishi Sunak is reportedly considering", "date": "2021-12-04", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "Explore the basic rate and additional rate cuts in PolicyEngine.", "filename": "income-tax-cuts-rishi-sunak-is-reportedly-considering.md", "image": "income-tax-cuts-rishi-sunak-is-reportedly-considering.webp" @@ -757,13 +462,8 @@ { "title": "PolicyEngine's 2021 year in review", "date": "2021-12-29", - "authors": [ - "max-ghenis" - ], - "tags": [ - "global", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["global", "impact"], "description": "PolicyEngine's inaugural year was a substantial one for public policy.", "filename": "policyengines-2021-year-in-review.md", "image": "policyengines-2021-year-in-review.webp" @@ -771,13 +471,8 @@ { "title": "The Green Party Manifesto at PolicyFest", "date": "2022-01-26", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy"], "description": "Explore the Green Party Manifesto on PolicyEngine.", "filename": "the-green-party-manifesto-at-policyfest.md", "image": "the-green-party-manifesto-at-policyfest.webp" @@ -785,13 +480,8 @@ { "title": "PolicyEngine arrives stateside", "date": "2022-03-31", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "Today, we're beta-launching PolicyEngine US and several other new features.", "filename": "policyengine-comes-stateside.md", "image": "policyengine-comes-stateside.webp" @@ -799,13 +489,8 @@ { "title": "How PolicyEngine estimates the effects of UK carbon taxes", "date": "2022-04-23", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "By fusing datasets with machine learning, we empower anyone to integrate custom carbon taxes with other tax and benefit reforms.", "filename": "how-policyengine-estimates-the-effects-of-uk-carbon-taxes.md", "image": "how-policyengine-estimates-the-effects-of-uk-carbon-taxes.png" @@ -813,13 +498,8 @@ { "title": "Tax cuts in Prime Minister Truss's Growth Plan 2022", "date": "2022-09-23", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "policy"], "description": "See the impact on the population and on your household in PolicyEngine UK.", "filename": "tax-cuts-in-prime-minister-trusss-growth-plan.md", "image": "tax-cuts-in-prime-minister-trusss-growth-plan.png" @@ -827,13 +507,8 @@ { "title": "How to simulate basic and guaranteed income policies in PolicyEngine US", "date": "2022-09-27", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "From universal basic income to age-dependent means-tested payments, we've got you covered.", "filename": "how-to-simulate-basic-and-guaranteed-income-policies-in-policyengine-us.md", "image": "how-to-simulate-basic-and-guaranteed-income-policies-in-policyengine-us.png" @@ -841,13 +516,8 @@ { "title": "PolicyEngine launches in New York state", "date": "2022-10-21", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "New Yorkers can now estimate their state income taxes alongside federal taxes and benefits — and change the rules, too.", "filename": "policyengine-launches-in-new-york-state.md", "image": "policyengine-launches-in-new-york-state.webp" @@ -855,13 +525,8 @@ { "title": "Computing your Oregon Earned Income Tax Credit in PolicyEngine", "date": "2022-10-24", - "authors": [ - "kevin-foster" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["kevin-foster"], + "tags": ["us", "policy"], "description": "We walk you through it step by step.", "filename": "computing-your-oregon-earned-income-tax-credit.md", "image": "computing-your-oregon-earned-income-tax-credit.png" @@ -869,13 +534,8 @@ { "title": "Estimating your Supplemental Security Income benefits in PolicyEngine", "date": "2022-10-28", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis"], + "tags": ["us", "policy"], "description": "Enter your household information, and our free web app will estimate your SSI — plus other taxes and benefits.", "filename": "estimating-your-supplemental-security-income-benefits-in-policyengine.md", "image": "estimating-your-supplemental-security-income-benefits-in-policyengine.webp" @@ -883,13 +543,8 @@ { "title": "Updating PolicyEngine to reflect SNAP reform in the omnibus bill", "date": "2022-12-23", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["max-ghenis"], + "tags": ["us", "technical"], "description": "A step-by-step guide to syncing our code with the latest legislation.", "filename": "updating-policyengine-to-reflect-snap-reform-in-the-omnibus-bill.md", "image": "updating-policyengine-to-reflect-snap-reform-in-the-omnibus-bill.webp" @@ -897,13 +552,8 @@ { "title": "From idea to impact: scoring a policy reform on the new PolicyEngine UK", "date": "2023-01-12", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "technical"], "description": "A walkthrough of the new app on a UK tax-benefit reform.", "filename": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-uk.md", "image": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-uk.png" @@ -911,13 +561,8 @@ { "title": "From idea to impact: scoring a policy reform on the new PolicyEngine US", "date": "2023-01-12", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "us", - "technical" - ], + "authors": ["nikhil-woodruff"], + "tags": ["us", "technical"], "description": "A walkthrough of the new app on a US tax-benefit reform.", "filename": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-us.md", "image": "from-idea-to-impact-scoring-a-policy-reform-on-the-new-policyengine-us.png" @@ -925,13 +570,8 @@ { "title": "The New PolicyEngine", "date": "2023-01-12 00:00:01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "us", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["us", "impact"], "description": "We're exiting beta with the most accessible tax and benefit model ever built.", "filename": "us-the-new-policyengine.md", "image": "us-the-new-policyengine.png" @@ -939,13 +579,8 @@ { "title": "The New PolicyEngine", "date": "2023-01-12 00:00:01", - "authors": [ - "max-ghenis" - ], - "tags": [ - "uk", - "impact" - ], + "authors": ["max-ghenis"], + "tags": ["uk", "impact"], "description": "We're taking economic policy to the next level with the most accessible tax and benefit model ever built.", "filename": "uk-the-new-policyengine.md", "image": "uk-the-new-policyengine.png" @@ -953,14 +588,8 @@ { "title": "How would reforms affect cliffs?", "date": "2023-02-02 21:00:00", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], - "tags": [ - "us", - "policy" - ], + "authors": ["max-ghenis", "nikhil-woodruff"], + "tags": ["us", "policy"], "description": "We've added a new feature to the US version of PolicyEngine that lets you see how your reforms affect cliffs.", "filename": "how-would-reforms-affect-cliffs.md", "image": "how-would-reforms-affect-cliffs.png" @@ -969,562 +598,341 @@ "title": "Reform UK's Emergency Recovery Plan", "description": "See the UK party's proposed deficit-funded tax cuts in PolicyEngine", "date": "2023-02-09 11:15:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "reform-uks-emergency-recovery-plan.md", "image": "reform-uks-emergency-recovery-plan.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "The Child Tax Credit in 2023", "description": "We review how the program works and compute its impact with PolicyEngine US.", "date": "2023-02-09 00:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "the-child-tax-credit-in-2023.md", "image": "the-child-tax-credit-in-2023.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Restoration of the American Rescue Plan Act's expanded Child Tax Credit", "description": "PolicyEngine computes how the 2021 policy would affect Americans and America in 2023.", "date": "2023-02-10 00:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "restoration-of-the-american-rescue-plan-acts-expanded-child-tax-credit.md", "image": "restoration-of-the-american-rescue-plan-acts-expanded-child-tax-credit.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "OpenFisca wins Edge of Government's Innovation Award", "description": "The success of Rules as Code and its impact on citizens.", "date": "2023-02-15 00:00:00", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "openfisca-wins-edge-of-government-innovation-award.md", "image": "openfisca-wins-edge-of-government-innovation-award.jpeg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Massachusetts Governor Maura Healey's FY 2024 Budget Recommendation", "description": "PolicyEngine estimates the distributional impact of two provisions and the household impact of four provisions.", "date": "2023-03-03 00:00:00", - "tags": [ - "us", - "us-ma", - "policy" - ], + "tags": ["us", "us-ma", "policy"], "filename": "massachusetts-governor-maura-healeys-fy-2024-budget-recommendation.md", "image": "massachusetts-governor-maura-healeys-fy-2024-budget-recommendation.webp", - "authors": [ - "max-ghenis", - "nicholas-rodelo" - ] + "authors": ["max-ghenis", "nicholas-rodelo"] }, { "title": "The UK's extended Energy Price Guarantee", "description": "Analysis by PolicyEngine on the expected effects on income, poverty, and inequality.", "date": "2023-03-05 07:30:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "projected-impact-of-the-uks-extended-energy-price-guarantee.md", "image": "projected-impact-of-the-uks-extended-energy-price-guarantee.png", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ] + "authors": ["nikhil-woodruff", "max-ghenis"] }, { "title": "Breaking down poverty impacts by sex", "description": "PolicyEngine estimates the impact of customizable policy reforms on poverty — overall, by age, and now by sex.", "date": "2023-03-08 07:30:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "breaking-down-us-poverty-impacts-by-sex.md", "image": "breaking-down-poverty-impacts-by-sex.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Breaking down poverty impacts by sex", "description": "PolicyEngine estimates the impact of customisable policy reforms on poverty — overall, by age, and now by sex.", "date": "2023-03-08 07:30:00", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "breaking-down-uk-poverty-impacts-by-sex.md", "image": "breaking-down-poverty-impacts-by-sex.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Analysis of the Spring Budget 2023", "description": "PolicyEngine analysis estimates the impact of the EPG extension and the fuel duty freeze.", "date": "2023-03-15 18:10:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "filename": "analysis-of-the-spring-budget-2023.md", "image": "analysis-of-the-spring-budget-2023.jpeg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Automate policy analysis with PolicyEngine's new ChatGPT integration", "description": "Score an economic impact in a few clicks. Write a report in one more.", "date": "2023-03-17 11:00:00", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "automate-policy-analysis-with-policy-engines-new-chatgpt-integration.md", "image": "automate-policy-analysis-with-policy-engines-new-chatgpt-integration.png", - "authors": [ - "nikhil-woodruff", - "chat-gpt" - ] + "authors": ["nikhil-woodruff", "chat-gpt"] }, { "title": "How much should James Medlock donate to GiveDirectly?", "description": "We built a mini-app with the policyengine-us Python package to crunch the implications of a Twitter bet.", "date": "2023-03-23 01:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "medlock-donation-calculator.md", "image": "medlock-donation-calculator.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "FiscalSim and PolicyEngine: Emphasizing collaboration and open-source acknowledgment", "description": "The Center for Growth and Opportunity launches FiscalSim, a US policy-computing web app drawing heavily from PolicyEngine's work.", "date": "2023-03-24 01:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "fiscalsim.md", "image": "fiscalsim.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "Restoring the American Rescue Plan's Earned Income Tax Credit Expansion", "description": "We review how the expansion works and model its impact with PolicyEngine US.", "date": "2023-03-27 01:00:00", - "tags": [ - "us", - "policy" - ], + "tags": ["us", "policy"], "filename": "restoring-arpa-eitc.md", "image": "eitc.webp", - "authors": [ - "arthur-wright" - ] + "authors": ["arthur-wright"] }, { "title": "Breaking down policy impacts by wealth decile", "description": "Income isn't everything.", "date": "2023-03-28 09:00:00", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "filename": "breaking-down-policy-impacts-by-wealth-decile.md", "image": "breaking-down-policy-impacts-by-wealth-decile.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "The District Child Tax Credit proposal", "description": "Analysis of DC Councilmember Zachary Parker's new legislation.", "date": "2023-04-02 09:00:00", - "tags": [ - "us", - "us-dc", - "policy" - ], + "tags": ["us", "us-dc", "policy"], "filename": "district-child-tax-credit.md", "image": "district-child-tax-credit.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Announcing the addition of Kansas income tax to PolicyEngine", "description": "We've expanded our tax calculator and customizable reform simulator to the Sunflower State.", "date": "2023-04-03 09:00:00", - "tags": [ - "us", - "us-ks", - "policy" - ], + "tags": ["us", "us-ks", "policy"], "filename": "kansas-income-tax.md", "image": "kansas-income-tax.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Revolutionizing policy analysis with AI", "description": "Discover PolicyEngine's new GPT-4 integration and audience modes.", "date": "2023-04-03 16:00:00", - "tags": [ - "global", - "technical" - ], + "tags": ["global", "technical"], "filename": "gpt-analysis.md", "image": "ai-analysis.png", - "authors": [ - "nikhil-woodruff", - "chat-gpt" - ] + "authors": ["nikhil-woodruff", "chat-gpt"] }, { "title": "Introducing California income tax analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the most populous state.", "date": "2023-04-07 09:00:00", - "tags": [ - "us", - "us-ca", - "policy" - ], + "tags": ["us", "us-ca", "policy"], "filename": "california-income-tax.md", "image": "california-income-tax.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "PolicyEngine adds New York Family Assistance (TANF) to US model", "description": "Enhancing analysis of public policy impacts on needy families.", "date": "2023-04-08 09:00:00", - "tags": [ - "us", - "us-ny", - "policy" - ], + "tags": ["us", "us-ny", "policy"], "filename": "new-york-tanf.md", "image": "new-york-tanf.png", - "authors": [ - "max-ghenis", - "donglai-xu", - "lin-tao" - ] + "authors": ["max-ghenis", "donglai-xu", "lin-tao"] }, { "title": "Analysis of the DC Financial Support for Families with Children Amendment Act", "description": "Evaluating Councilmember Zachary Parker's second Child Tax Credit proposal of 2023.", "date": "2023-04-16 09:00:00", - "tags": [ - "us", - "us-dc", - "policy" - ], + "tags": ["us", "us-dc", "policy"], "filename": "dc-financial-support-for-families-with-children.md", "image": "dc-financial-support-for-families-with-children.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Introducing Utah State Income Tax Analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the Beehive State.", "date": "2023-04-17 09:00:00", - "tags": [ - "us", - "us-ut", - "policy" - ], + "tags": ["us", "us-ut", "policy"], "filename": "introducing-utah-state-income-tax-analysis-on-policyengine.md", "image": "introducing-utah-state-income-tax-analysis-on-policyengine.webp", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Building the roots of PolicyEngine Nigeria", "description": "We're expanding PolicyEngine's reach by empowering Nigerians to understand personal income tax policies.", "date": "2023-04-21 09:00:00", - "tags": [ - "ng", - "technical" - ], + "tags": ["ng", "technical"], "filename": "building-the-roots-of-policyengine-nigeria.md", "image": "building-the-roots-of-policyengine-nigeria.webp", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ] + "authors": ["nikhil-woodruff", "max-ghenis"] }, { "title": "Kansas's Flat Tax Proposal — SB169", "description": "We review how the bill works and model its impact with PolicyEngine US.", "date": "2023-04-23 09:00:00", - "tags": [ - "us", - "us-ks", - "policy" - ], + "tags": ["us", "us-ks", "policy"], "filename": "kansas-flat-income-tax-sb-169.md", "image": "kansas-flat-income-tax-sb-169.webp", - "authors": [ - "arthur-wright" - ] + "authors": ["arthur-wright"] }, { "title": "Digital Public Goods Alliance recognizes PolicyEngine as a Digital Public Good", "description": "The UN-endorsed initiative highlights PolicyEngine's open source approach to supporting the Sustainable Development Goals.", "date": "2023-04-26 09:00:00", - "tags": [ - "global", - "impact" - ], + "tags": ["global", "impact"], "filename": "digital-public-goods-alliance-recognizes-policyengine-as-a-digital-public-good.md", "image": "digital-public-goods-alliance-recognizes-policyengine-as-a-digital-public-good.webp", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "How PolicyEngine shaped the outcome of the $1 million bet James Medlock won today", "description": "Our free tax calculator helped determine Balaji Srinivasan's $500,000 payments to Medlock and GiveDirectly.", "date": "2023-05-02 16:00:00", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "filename": "medlock-wins.md", "image": "medlock-wins.png", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of Guaranteed Income for the 21st Century", "description": "The proposal from the New School and the Economic Security Project would lower poverty and inequality while expanding cliffs.", "date": "2023-06-08 13:45:00", "filename": "analysis-of-guaranteed-income-for-the-21st-century.md", - "tags": [ - "us", - "featured", - "policy" - ], + "tags": ["us", "featured", "policy"], "image": "analysis-of-guaranteed-income-for-the-21st-century.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Analysis of the Working Families Tax Cut Act", "description": "How the proposal to increase the standard deduction would affect households and society.", "date": "2023-06-08 20:00:00", "filename": "malliotakis-steel-working-families-tax-cut-act.md", - "tags": [ - "us", - "featured", - "policy" - ], + "tags": ["us", "featured", "policy"], "image": "malliotakis-steel-working-families-tax-credit-act.png", - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ] + "authors": ["max-ghenis", "nikhil-woodruff"] }, { "title": "Unveiling poverty impacts by race and ethnicity", "description": "A new feature from PolicyEngine reveals how customizable tax and benefit reforms affect poverty rates for Black, White, Hispanic, and other Americans.", "date": "2023-06-19 20:00:00", "filename": "poverty-race-ethnicity.md", - "tags": [ - "us", - "technical" - ], + "tags": ["us", "technical"], "image": "poverty-race-ethnicity.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Scott Winship's individualized Earned Income Tax Credit proposal", "description": "An analysis and note on the value of open-source models.", "date": "2023-07-14 08:00:00", "filename": "winship-individualized-eitc.md", - "tags": [ - "us", - "policy", - "featured" - ], + "tags": ["us", "policy", "featured"], "image": "winship-individualized-eitc.jpg", - "authors": [ - "max-ghenis" - ] + "authors": ["max-ghenis"] }, { "title": "Dive Into New Mexico's Income Tax Analysis on PolicyEngine", "description": "Expanding our tax calculator and reform simulator capabilities to the Land of Enchantment.", "date": "2023-08-02 16:00:00", "filename": "new-mexico-income-tax-launch.md", - "tags": [ - "us", - "us-nm", - "featured", - "policy" - ], + "tags": ["us", "us-nm", "featured", "policy"], "image": "new-mexico-income-tax-launch.png", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "Repealing the Universal Credit two-child limit", "description": "How removing the limit of some benefits to two children would affect the UK in 2023.", "date": "2023-08-07 16:00:00", "filename": "repealing_the_two_child_limit.md", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "two_child_limit.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "New King's College London research uses PolicyEngine", "description": "A ‘Citizens' Economic Council' explores PolicyEngine-scored tax-benefit impacts.", "date": "2023-11-04 09:00:00", "filename": "citizens-economic-council.md", - "tags": [ - "uk", - "impact" - ], + "tags": ["uk", "impact"], "image": "citizens-economic-council.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Autumn Statement 2023 tax-benefit reforms", "description": "Chancellor Jeremy Hunt just announced National Insurance cuts and benefit uprating. We've evaluated these reforms.", "date": "2023-11-22 17:25", "filename": "autumn-statement-2023.md", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "jeremy-hunt.jpg", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Autumn 2023 model calibration update", "description": "Evaluating PolicyEngine's model performance with the latest official statistics.", "date": "2023-12-04 09:00:00", "filename": "uk-calibration-2023-q4.ipynb", - "tags": [ - "uk", - "technical" - ], + "tags": ["uk", "technical"], "image": "uk-calibration-dec-2023-update.png", - "authors": [ - "nikhil-woodruff" - ] + "authors": ["nikhil-woodruff"] }, { "title": "Preliminary analysis of the Wyden-Smith Child Tax Credit expansion", "description": "PolicyEngine estimates the impact of the reported compromise to expand the Child Tax Credit's refundable component.", "date": "2024-01-11 12:00:00", "filename": "wyden-smith-ctc.md", - "tags": [ - "us", - "impact", - "featured", - "child-tax-credit" - ], + "tags": ["us", "impact", "featured", "child-tax-credit"], "image": "wyden.jpeg", - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ] + "authors": ["max-ghenis", "pavel-makarchuk"] }, { "title": "Spring Budget 2024 proposals", "description": "PolicyEngine estimates reported likely tax-benefit reforms ahead of the UK Spring Budget.", "date": "2024-03-04 09:00:00", "filename": "spring-budget-2024.ipynb", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "jeremy-hunt-with-budget-box.jpg", - "authors": [ - "anthony-volk", - "nikhil-woodruff" - ] + "authors": ["anthony-volk", "nikhil-woodruff"] }, { "title": "Spring Budget 2024", "description": "PolicyEngine estimates the impact of the UK Spring Budget.", "date": "2024-03-06 09:00:00", "filename": "uk-2024-spring-budget.ipynb", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "uk_budget_box_hunt.jpg", - "authors": [ - "nikhil-woodruff", - "anthony-volk" - ] + "authors": ["nikhil-woodruff", "anthony-volk"] }, { "title": "Beta-launch: PolicyEngine's enhanced microdata for policy analysis", "description": "By integrating and calibrating multiple datasets, PolicyEngine makes world-class tax-benefit microsimulation modeling available to anyone.", "date": "2024-03-25 09:00:00", - "tags": [ - "us", - "technical", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "technical", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "enhanced-cps-beta.md", "image": "enhanced-cps-beta.png" }, @@ -1532,14 +940,8 @@ "title": "Child Tax Credit Provisions of the Tax Relief for American Workers and Families Act", "description": "How the Wyden-Smith bipartisan tax package would affect families through 2025.", "date": "2024-03-25 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis"], "filename": "trafwa-ctc.md", "image": "trafwa-ctc.webp" }, @@ -1547,15 +949,8 @@ "title": "Individual income tax provisions of President Biden's 2025 Budget", "description": "PolicyEngine projects the impact of expanding tax credits and raising taxes on high-income filers.", "date": "2024-03-27 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "biden-budget-2025.md", "image": "biden-budget-2025.jpeg" }, @@ -1563,14 +958,8 @@ "title": "PolicyEngine launches state income tax modeling nationwide", "description": "Free, open-source platform now covers all 50 states and D.C., just in time for tax season.", "date": "2024-04-15 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["pavel-makarchuk"], "filename": "state-tax-model-beta.md", "image": "state-tax-model-beta.png" }, @@ -1578,27 +967,17 @@ "title": "PolicyEngine's Spring 2024 update", "description": "How PolicyEngine compares to the latest external forecasts.", "date": "2024-04-16 09:00:00", - "tags": [ - "uk", - "policy" - ], + "tags": ["uk", "policy"], "image": "uk_march_update.png", - "authors": [ - "nikhil-woodruff" - ], + "authors": ["nikhil-woodruff"], "filename": "obr-forecast-update-spring-24.ipynb" }, { "title": "The Triple Lock Plus", "description": "PolicyEngine estimates the impact of the UK government's proposed pension uprating policy reform.", "date": "2024-05-28 09:00:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff"], "filename": "uk-triple-lock-plus.ipynb", "image": "uk-triple-lock-plus.jpg" }, @@ -1606,13 +985,8 @@ "title": "The Liberal Democrat Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-11 16:30:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff"], "filename": "lib-dem-2024-manifesto.md", "image": "lib-dem-manifesto-2024.jpeg" }, @@ -1620,15 +994,8 @@ "title": "The Conservative Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-12 16:30:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff", - "pavel-makarchuk", - "anthony-volk" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff", "pavel-makarchuk", "anthony-volk"], "filename": "conservative-2024-manifesto.md", "image": "conservative-2024-manifesto.png" }, @@ -1636,14 +1003,8 @@ "title": "The Labour Party Manifesto", "description": "PolicyEngine's comprehensive impact score.", "date": "2024-06-29 14:00:00", - "tags": [ - "uk", - "policy" - ], - "authors": [ - "nikhil-woodruff", - "anthony-volk" - ], + "tags": ["uk", "policy"], + "authors": ["nikhil-woodruff", "anthony-volk"], "filename": "labour-2024-manifesto.md", "image": "labour-2024-manifesto.png" }, @@ -1651,15 +1012,8 @@ "title": "PolicyEngine Powers Niskanen Center's Analysis", "description": "Three new reports from the Niskanen Center think tank demonstrate PolicyEngine's tax and benefit reform model.", "date": "2024-07-12 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "ben-gross" - ], + "tags": ["us", "policy", "featured"], + "authors": ["max-ghenis", "ben-gross"], "filename": "niskanen-center-analysis.md", "image": "niskanen-center-analysis.jpg" }, @@ -1667,16 +1021,8 @@ "title": "Kamala Harris's LIFT Act Middle Class Tax Credit", "description": "A comprehensive analysis of the Vice President's 2018 proposal.", "date": "2024-07-22 01:00:00", - "tags": [ - "us", - "policy", - "featured", - "2024-election" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured", "2024-election"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "lift-act.md", "image": "lift-act.jpg" }, @@ -1684,16 +1030,8 @@ "title": "Analysis of JD Vance’s Suggested $5,000 Child Tax Credit Expansion", "description": "Impacts of the vice presidential nominee’s reform depend largely on its uncertain refundability.", "date": "2024-08-11 01:00:00", - "tags": [ - "us", - "policy", - "featured", - "2024-election" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured", "2024-election"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "vance-ctc.md", "image": "vance-ctc.jpg" }, @@ -1701,15 +1039,8 @@ "title": "PolicyEngine at the 117th Annual Conference on Taxation", "description": "Exploring AI applications and enhanced data for tax policy analysis.", "date": "2024-08-13 01:00:00", - "tags": [ - "us", - "policy", - "conferences" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "policy", "conferences"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "nta-2024.md", "image": "nta-2024.png" }, @@ -1717,13 +1048,8 @@ "title": "Validation against the Survey of Personal Incomes", "description": "Evaluating PolicyEngine's model performance against the UK SPI.", "date": "2024-08-14 01:00:00", - "tags": [ - "uk", - "technical" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["uk", "technical"], + "authors": ["anthony-volk"], "filename": "uk-spi-validation.ipynb", "image": "uk-spi-validation.png" }, @@ -1731,16 +1057,8 @@ "title": "Kamala Harris’s Child Tax Credit Proposal", "description": "We analyze the Democratic nominee’s proposal to expand the 2021 expansion, giving $6,000 to parents of newborns.", "date": "2024-08-17 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "harris-ctc.md", "image": "harris-ctc.webp" }, @@ -1748,16 +1066,8 @@ "title": "Individual Income Tax Provisions in Minnesota Bill HF1938 (2023)", "description": "The reform signed by Governor Tim Walz expanded credits for low-income families, reduced taxes for middle-income retirees, and raised taxes for high-income filers.", "date": "2024-08-21 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured", - "minnesota" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "featured", "minnesota"], + "authors": ["pavel-makarchuk"], "filename": "mn-hf1938-walz.md", "image": "mn-hf1938-walz.webp" }, @@ -1765,15 +1075,8 @@ "title": "How the Rent Relief Act of 2019 Varies with Income and Location", "description": "We show the impact on different households of the tax credit bill introduced by then-Senator Kamala Harris.", "date": "2024-08-22 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["max-ghenis"], "filename": "rent-relief-act.md", "image": "rent-relief-act.png" }, @@ -1781,16 +1084,8 @@ "title": "How the Oregon Rebate May Affect Poverty Rates", "description": "Our model finds the ballot measure could reduce poverty by between 22% and 35%, without macroeconomic effects.", "date": "2024-09-29 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "us-or" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "2024-election", "policy", "us-or"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "oregon-rebate.md", "image": "oregon-rebate.png" }, @@ -1798,15 +1093,8 @@ "title": "Exempting Social Security Benefits from Income Taxation", "description": "PolicyEngine projects that former President Donald Trump’s proposal would cost $1.4 trillion over the budget window.", "date": "2024-10-07 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["david-trimmer"], "filename": "social-security-tax-exemption.md", "image": "social-security-tax-exemption.webp" }, @@ -1814,15 +1102,8 @@ "title": "Labour's reforms to VAT tax on private schools", "description": "PolicyEngine projects Labour's private school tax plan would raise £7.7 billion over five years, mainly affecting wealthier households.", "date": "2024-10-17 01:00:00", - "tags": [ - "uk", - "tax", - "policy", - "vat" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "policy", "vat"], + "authors": ["vahid-ahmadi"], "filename": "school-vat.md", "image": "classroom-2093744.jpg" }, @@ -1830,16 +1111,8 @@ "title": "Levying VAT on private school fees in the Autumn Budget", "description": "PolicyEngine projects the reforms to private school VAT would raise £1.5 billion in 2025.", "date": "2024-10-31 15:00:00", - "tags": [ - "uk", - "tax", - "policy", - "vat", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "policy", "vat", "featured"], + "authors": ["vahid-ahmadi"], "filename": "vat-school-comparison.md", "image": "vat-school-comparison-post.jpg" }, @@ -1847,15 +1120,8 @@ "title": "How PolicyEngine UK models behavioural responses", "description": "PolicyEngine has enhanced its modelling with behavioural responses, including income, substitution and capital gains elasticities.", "date": "2024-11-12 15:00:00", - "tags": [ - "uk", - "policy", - "behavioral-responses", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "behavioral-responses", "featured"], + "authors": ["vahid-ahmadi"], "filename": "behavioural-responses.md", "image": "behavioural-responses.jpg" }, @@ -1863,14 +1129,8 @@ "title": "Benefits uprating 2025/26", "description": "PolicyEngine projects Labour's 1.7% benefits uprating would cost £2.5 billion, mainly benefiting lower-income households.", "date": "2024-10-31 15:00:00", - "tags": [ - "uk", - "benefit", - "inflation" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "benefit", "inflation"], + "authors": ["vahid-ahmadi"], "filename": "Benefit-uprating-25.md", "image": "benefit-uprating-post-pic.jpg" }, @@ -1878,14 +1138,8 @@ "title": "Capital Gains Tax reforms in the Autumn Budget 2024", "description": "PolicyEngine estimates that the UK's 2024 Capital Gains Tax reforms will raise £6.4 billion between 2025-2029.", "date": "2024-11-06 15:00:00", - "tags": [ - "uk", - "tax", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "tax", "featured"], + "authors": ["vahid-ahmadi"], "filename": "cgt-autumn-budget.md", "image": "cgt-autumn-budget.jpg" }, @@ -1893,15 +1147,8 @@ "title": "Kamala Harris’s Earned Income Tax Credit Expansion Proposal", "description": "PolicyEngine projects that restoring the American Rescue Plan policy would cost $144 billion (static) or $201 billion (dynamic) over a decade, while lowering poverty by 1.6% in 2025.", "date": "2024-10-24 01:00:00", - "tags": [ - "us", - "2024-election", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["us", "2024-election", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "harris-eitc.md", "image": "harris-eitc.webp" }, @@ -1909,15 +1156,8 @@ "title": "Autumn Budget policy choices", "description": "PolicyEngine estimates that four reported tax reforms would raise £23 billion per year", "date": "2024-10-24 16:30:00", - "tags": [ - "uk", - "autumn-budget", - "featured", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "featured", "policy"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-2024-policy-choices.ipynb", "image": "autumn-budget-policy-choices.png" }, @@ -1925,28 +1165,16 @@ "title": "Levying employer National Insurance on pension contributions", "description": "PolicyEngine estimates the now-scrapped Autumn Budget reform would have raised between £10 and £18 billion per year, depending on how employers pass it on to wages.", "date": "2024-10-26 09:00:00", - "tags": [ - "uk", - "autumn-budget", - "policy" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-2024-employer-nic-pension-contributions.md", "image": "autumn-budget-2024-employer-nic-pension-contributions.png" }, { "title": "Extending the Tax Cuts and Jobs Act", "date": "2024-10-28 00:00:01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "2024-election", - "featured" - ], + "authors": ["david-trimmer"], + "tags": ["us", "2024-election", "featured"], "description": "PolicyEngine projects extending the TCJA individual tax provisions would cost $3.9 trillion over a ten-year budget window.", "filename": "tcja-extension.md", "image": "tcja-extension.jpg" @@ -1955,15 +1183,8 @@ "title": "Employer National Insurance reforms in the Autumn Budget 2024", "description": "PolicyEngine projects the reforms to employer NI would raise £23 billion in 2025 and affect two thirds of people.", "date": "2024-10-30 16:30:00", - "tags": [ - "uk", - "autumn-budget", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-24-employer-ni.md", "image": "autumn-budget-24-employer-ni.png" }, @@ -1971,15 +1192,8 @@ "title": "Fuel duty reforms in the Autumn Budget 2024", "description": "PolicyEngine projects the reforms to fuel duty will cost £2.4 billion in 2025.", "date": "2024-10-30 17:30:00", - "tags": [ - "uk", - "autumn-budget", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "autumn-budget", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "autumn-budget-24-fuel-duty.md", "image": "autumn-budget-24-fuel-duty.png" }, @@ -1987,15 +1201,8 @@ "title": "Donald Trump's Economic Agenda", "description": "PolicyEngine projects three provisions of Donald Trump’s tax plan would cost $5.4 trillion over the next ten years.", "date": "2024-10-31 17:30:00", - "tags": [ - "us", - "election", - "donald-trump", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "election", "donald-trump", "featured"], + "authors": ["david-trimmer"], "filename": "trump-2024.md", "image": "trump-2024.webp" }, @@ -2003,18 +1210,8 @@ "title": "How Would Each Presidential Candidate’s Economic Plans Affect Your Household?", "description": "PolicyEngine has created a personalized calculator for the 2024 presidential election’s tax proposals.", "date": "2024-11-03 17:30:00", - "tags": [ - "us", - "election", - "donald-trump", - "kamala-harris", - "featured", - "interactives" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "election", "donald-trump", "kamala-harris", "featured", "interactives"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "introducing-2024-election-calculator.md", "image": "introducing-2024-election-calculator.png" }, @@ -2022,13 +1219,8 @@ "title": "Federal Tax Inflation Adjustments for Tax Year 2025", "description": "PolicyEngine has updated all relevant federal tax parameters based on the latest IRS announcements.", "date": "2024-11-19 09:30:00", - "tags": [ - "us", - "featured" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "featured"], + "authors": ["david-trimmer"], "filename": "federal-tax-inflation-adjustments-2025.md", "image": "fed_tax_inflation_adjustments.webp" }, @@ -2036,15 +1228,8 @@ "title": "Introducing GiveCalc", "description": "Calculate the true cost of charitable giving.", "date": "2024-12-03 09:30:00", - "tags": [ - "us", - "featured", - "giving" - ], - "authors": [ - "max-ghenis", - "pavel-makarchuk" - ], + "tags": ["us", "featured", "giving"], + "authors": ["max-ghenis", "pavel-makarchuk"], "filename": "givecalc.md", "image": "givecalc.png" }, @@ -2052,14 +1237,8 @@ "title": "Louisiana Transitions to a Flat Tax", "description": "Analysis of the individual tax changes signed into law by Governor Jeff Landry.", "date": "2024-12-10 09:30:00", - "tags": [ - "us", - "featured", - "louisiana" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "featured", "louisiana"], + "authors": ["david-trimmer"], "filename": "louisiana-flat-tax.md", "image": "louisiana-flat-tax.webp" }, @@ -2067,13 +1246,8 @@ "title": "NEO Philanthropy Awards $200,000 Grant to PolicyEngine", "description": "Economic Mobility & Opportunity Fund supports expanding access to policy analysis tools.", "date": "2024-12-18 09:30:00", - "tags": [ - "us", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["us", "featured"], + "authors": ["max-ghenis"], "filename": "neo-philanthropy.md", "image": "neo-philanthropy.png" }, @@ -2081,13 +1255,8 @@ "title": "Nuffield Foundation awards £250k to enhance PolicyEngine UK", "description": "Grant will support expanding and localising tax-benefit microsimulation capabilities.", "date": "2024-12-19 14:00:00", - "tags": [ - "uk", - "featured" - ], - "authors": [ - "max-ghenis" - ], + "tags": ["uk", "featured"], + "authors": ["max-ghenis"], "filename": "uk-nuffield-grant.md", "image": "uk-nuffield-grant.png" }, @@ -2095,14 +1264,8 @@ "title": "New AI Feature Helps People Understand Their Taxes and Benefits", "description": "We’re applying large language models to clarify complex policy rules.", "date": "2024-12-26 09:00:00", - "tags": [ - "us", - "featured", - "ai" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["us", "featured", "ai"], + "authors": ["anthony-volk"], "filename": "us-household-ai.md", "image": "us-household-ai.png" }, @@ -2110,14 +1273,8 @@ "title": "New AI feature helps people understand their taxes and benefits", "description": "We’re applying large language models to clarify complex policy rules.", "date": "2024-12-26 09:00:00", - "tags": [ - "uk", - "featured", - "ai" - ], - "authors": [ - "anthony-volk" - ], + "tags": ["uk", "featured", "ai"], + "authors": ["anthony-volk"], "filename": "uk-household-ai.md", "image": "uk-household-ai.png" }, @@ -2125,18 +1282,8 @@ "title": "PolicyEngine US Launches Behavioral Responses", "description": "We've expanded our modeling framework to capture how policy changes affect labor supply.", "date": "2024-12-27 09:00:00", - "tags": [ - "us", - "policy", - "behavioral-responses", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff", - "jason-debacker", - "vahid-ahmadi" - ], + "tags": ["us", "policy", "behavioral-responses", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff", "jason-debacker", "vahid-ahmadi"], "filename": "us-behavioral-responses.md", "image": "behavioural-responses.jpg" }, @@ -2144,15 +1291,8 @@ "title": "PolicyEngine UK in 2024: A year in review", "description": "From AI-powered analysis to election impact, we transformed policy research through technology.", "date": "2024-12-28 09:00:00", - "tags": [ - "uk", - "year-in-review", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["uk", "year-in-review", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "uk-year-in-review-2024.md", "image": "year-in-review-2024.png" }, @@ -2160,15 +1300,8 @@ "title": "PolicyEngine US in 2024: A year in review", "description": "From state-level modeling to AI-powered analysis, we expanded the frontier of policy research through technology.", "date": "2024-12-29 09:00:00", - "tags": [ - "us", - "year-in-review", - "featured" - ], - "authors": [ - "max-ghenis", - "nikhil-woodruff" - ], + "tags": ["us", "year-in-review", "featured"], + "authors": ["max-ghenis", "nikhil-woodruff"], "filename": "us-year-in-review-2024.md", "image": "year-in-review-2024.png" }, @@ -2176,14 +1309,8 @@ "title": "Analysis of the Family First Act", "description": "We project that Representative Blake Moore's Child Tax Credit bill would raise revenue and reduce poverty.", "date": "2025-01-17 09:00:00", - "tags": [ - "us", - "policy", - "featured" - ], - "authors": [ - "pavel-makarchuk" - ], + "tags": ["us", "policy", "featured"], + "authors": ["pavel-makarchuk"], "filename": "family-first-act.md", "image": "family-first-act.jpg" }, @@ -2191,15 +1318,8 @@ "title": "The New York Working Families Tax Credit", "description": "A comprehensive analysis of the proposal from New York State Senator Andrew Gounardes.", "date": "2025-01-21 09:00:00", - "tags": [ - "us", - "policy", - "featured", - "us-ny" - ], - "authors": [ - "david-trimmer" - ], + "tags": ["us", "policy", "featured", "us-ny"], + "authors": ["david-trimmer"], "filename": "ny-wftc.md", "image": "ny-wftc.webp" }, @@ -2207,29 +1327,16 @@ "title": "How We're Improving our API in 2025", "description": "PolicyEngine's API target architecture for 2025.", "date": "2025-02-05", - "tags": [ - "technical", - "global" - ], - "authors": [ - "michael-smit" - ], + "tags": ["technical", "global"], + "authors": ["michael-smit"], "filename": "api-v2.md", "image": "api-v2.webp" }, { "title": "The Proposed New York City Child Tax Credit", "date": "2025-02-18 00:00:01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ny-nyc", - "featured", - "child-tax-credit", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ny-nyc", "featured", "child-tax-credit", "policy"], "description": "Analysis of Senate Bill S2238, introduced by Senator Andrew Gounardes.", "filename": "nyc-ctc-s2238.md", "image": "nyc-ctc-s2238.webp" @@ -2238,61 +1345,34 @@ "title": "Kentucky Cuts Income Tax Rate", "description": "Analysis of lowering Kentucky's 4% income tax rate to 3.5%.", "date": "2025-02-26", - "tags": [ - "us", - "us-ky", - "policy", - "featured" - ], + "tags": ["us", "us-ky", "policy", "featured"], "filename": "kentucky-cuts-income-tax-rate.md", "image": "kentucky-cuts-income-tax-rate.webp", - "authors": [ - "david-trimmer" - ] + "authors": ["david-trimmer"] }, { "title": "The Family Income Supplemental Credit (FISC) Act", "description": "Representative Jared Golden’s Child Tax Credit reform would cost $193 billion in 2026 while reducing poverty and inequality.", "date": "2025-03-05", - "tags": [ - "us", - "policy", - "featured" - ], + "tags": ["us", "policy", "featured"], "filename": "fisc-act.md", "image": "jared-golden.jpeg", - "authors": [ - "pavel-makarchuk" - ] + "authors": ["pavel-makarchuk"] }, { "title": "Exempting young children from the two-child limit", "description": "Analysis of the potential impact of limiting the two-child limit to families with children under 5 years old.", "date": "2025-03-06 00:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi", - "pavel-makarchuk" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi", "pavel-makarchuk"], "filename": "young-child-exemption-two-child-limit.md", "image": "young-child-exemption-two-child-limit.jpg" }, { "title": "New York Governor Hochul's Tax Proposals", "date": "2025-03-07", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ny", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ny", "featured", "policy"], "description": "PolicyEngine analyzed several individual income tax policies included in Governor Kathy Hochul's FY2026 budget.", "filename": "ny-hochul-budget.md", "image": "ny-hochul-budget.jpg" @@ -2300,14 +1380,8 @@ { "title": "The impact of Personal Independence Payment, and freezing its level in 2025", "date": "2025-03-11", - "authors": [ - "nikhil-woodruff" - ], - "tags": [ - "uk", - "policy", - "featured" - ], + "authors": ["nikhil-woodruff"], + "tags": ["uk", "policy", "featured"], "description": "How the disability benefit, and one reform the government is reportedly considering, affect the UK household sector.", "filename": "pip-and-freeze.md", "image": "pip_and_freeze.jpg" @@ -2315,14 +1389,8 @@ { "title": "Analysis of Michigan HB 4170", "date": "2025-03-26", - "authors": [ - "pavel-makarchuk" - ], - "tags": [ - "us", - "policy", - "featured" - ], + "authors": ["pavel-makarchuk"], + "tags": ["us", "policy", "featured"], "description": "We project the bill, which would reduce Michigan’s tax rate from 4.25% to 4.05%, would cost $644 million in 2025.", "filename": "michigan-bill-hb4170.ipynb", "image": "michigan-bill-hb4170.jpg" @@ -2330,15 +1398,8 @@ { "title": "Restricting eligibility for the Personal Independence Payment Daily Living part", "date": "2025-03-18", - "authors": [ - "nikhil-woodruff", - "max-ghenis" - ], - "tags": [ - "uk", - "policy", - "featured" - ], + "authors": ["nikhil-woodruff", "max-ghenis"], + "tags": ["uk", "policy", "featured"], "description": "We simulate potential realisations of the Government's new £5 billion reform.", "filename": "uk-pip-reforms.md", "image": "uk-pip-reforms.jpg" @@ -2346,15 +1407,8 @@ { "title": "The Tax Cuts for Workers Act", "date": "2025-06-16", - "authors": [ - "pavel-makarchuk", - "max-ghenis" - ], - "tags": [ - "us", - "policy", - "featured" - ], + "authors": ["pavel-makarchuk", "max-ghenis"], + "tags": ["us", "policy", "featured"], "description": "We simulate the new bill to restore the American Rescue Plan Act’s Earned Income Tax Credit expansion.", "filename": "tax-cuts-for-workers-act.ipynb", "image": "tax-cuts-for-workers-act.png" @@ -2362,15 +1416,8 @@ { "title": "Benefits in PolicyEngine", "date": "2025-05-28 00:00:00", - "authors": [ - "vahid-ahmadi" - ], - "tags": [ - "uk", - "policy", - "featured", - "benefit" - ], + "authors": ["vahid-ahmadi"], + "tags": ["uk", "policy", "featured", "benefit"], "description": "PolicyEngine models different benefit components in the UK, including means-tested and non-means-tested benefits.", "filename": "uk-benefits-post.md", "image": "uk-benefit-post.png" @@ -2378,15 +1425,8 @@ { "title": "Idaho’s New Individual Income Tax Changes", "date": "2025-04-01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-id", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-id", "featured", "policy"], "description": "The lower top marginal rate and larger grocery tax credit will cost the state $225 million in 2025.", "filename": "idaho-2025-tax-change.ipynb", "image": "idaho-2025-tax-change.jpg" @@ -2395,31 +1435,16 @@ "title": "Taxes in PolicyEngine", "description": "PolicyEngine models different tax components in the UK, including direct taxes, indirect taxes, and proposed taxes.", "date": "2025-04-08 00:00:00", - "tags": [ - "uk", - "policy", - "featured", - "tax" - ], - "authors": [ - "vahid-ahmadi", - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured", "tax"], + "authors": ["vahid-ahmadi", "nikhil-woodruff"], "filename": "uk-taxes-post.md", "image": "uk-tax-post.jpg" }, { "title": "Utah Cuts Income Tax Rate and Expands Credits", "date": "2025-05-01", - "authors": [ - "david-trimmer" - ], - "tags": [ - "us", - "us-ut", - "featured", - "policy" - ], + "authors": ["david-trimmer"], + "tags": ["us", "us-ut", "featured", "policy"], "description": "Utah’s latest individual income tax changes will lower state revenues by $96 million and raise net income for 62% of residents in 2025.", "filename": "utah-income-tax-changes.ipynb", "image": "utah-income-tax-changes.jpg" @@ -2428,14 +1453,8 @@ "title": "Reform UK's tax-benefit reform proposals", "description": "Nigel Farage has confirmed that Reform UK's manifesto will include four tax-benefit reforms that PolicyEngine estimates would cost £75 billion in 2025-26.", "date": "2025-05-27 19:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "farage-speech-may-2025.ipynb", "image": "farage-speech-may-2025.jpg" }, @@ -2443,14 +1462,8 @@ "title": "Extending the Winter Fuel Allowance", "description": "The government has reversed its Winter Fuel Allowance means testing, expanding eligibility to 9 million pensioners through a £35,000 income threshold.", "date": "2025-06-11 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "nikhil-woodruff" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["nikhil-woodruff"], "filename": "wfa-means-test.ipynb", "image": "wfa-repeal.jpeg" }, @@ -2458,14 +1471,8 @@ "title": "How changing the VAT threshold affects UK revenues", "description": "PolicyEngine's new firm microsimulation model estimates revenue and business impacts of VAT thresholds from £70,000 to £120,000.", "date": "2025-09-10 11:00:00", - "tags": [ - "uk", - "policy", - "featured" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "policy", "featured"], + "authors": ["vahid-ahmadi"], "filename": "uk-vat-thresholds.md", "image": "uk-vat-reeves.jpg" }, @@ -2473,16 +1480,8 @@ "title": "Testing multi-agent AI workflows for policy research", "description": "A multi-agent Claude Code system fared better on distributional analysis than benefit interactions; insights inform our forthcoming plugin.", "date": "2025-10-28", - "tags": [ - "uk", - "us", - "featured", - "technology", - "ai" - ], - "authors": [ - "vahid-ahmadi" - ], + "tags": ["uk", "us", "featured", "technology", "ai"], + "authors": ["vahid-ahmadi"], "filename": "multi-agent-workflows-policy-research.md", "image": "multi-agent-workflows-policy-research.png" } diff --git a/app/src/docs/ARCHITECTURE-COUNTRY-ID.md b/app/src/docs/ARCHITECTURE-COUNTRY-ID.md index feadbc2a1..9606223fa 100644 --- a/app/src/docs/ARCHITECTURE-COUNTRY-ID.md +++ b/app/src/docs/ARCHITECTURE-COUNTRY-ID.md @@ -20,6 +20,7 @@ This document describes the architecture for country ID management throughout th ``` All country-specific routes are nested under the country ID parameter: + - `/us/reports` - US reports page - `/uk/policies` - UK policies page - `/ca/simulations` - Canada simulations page @@ -31,6 +32,7 @@ All country-specific routes are nested under the country ID parameter: The entry point for all country routes. Validates the country parameter and manages session-scoped state. **Responsibilities**: + 1. Validates `countryId` parameter against allowed countries 2. Redirects to `/` if country is invalid 3. Syncs valid country to `metadata.currentCountry` in Redux @@ -38,6 +40,7 @@ The entry point for all country routes. Validates the country parameter and mana 5. Renders child routes via `` if valid **Flow**: + ``` User navigates to /uk/reports ↓ @@ -61,6 +64,7 @@ Renders child routes A simple hook that reads the country ID directly from URL parameters. **Usage**: + ```tsx function MyComponent() { const country = useCurrentCountry(); // Returns 'us', 'uk', etc. @@ -70,6 +74,7 @@ function MyComponent() { ``` **Implementation**: + ```tsx export function useCurrentCountry() { const { countryId } = useParams<{ countryId: string }>(); @@ -79,6 +84,7 @@ export function useCurrentCountry() { ``` **Key Points**: + - Must be used within routes protected by CountryGuard - Reads directly from URL via `useParams()` - no Redux dependency - Throws error if used outside country routes @@ -88,17 +94,20 @@ export function useCurrentCountry() { While the URL is the source of truth for components, Redux stores a copy for specific internal uses: **metadata.currentCountry**: + - Set by CountryGuard via `setCurrentCountry()` - Used by: - `useFetchMetadata` to determine which country's metadata to load - `clearReport` thunk to set report.countryId **report.countryId**: + - Set by `clearReport` thunk (reads from `metadata.currentCountry`) - Used for validation when submitting reports - Ensures reports are always tied to the correct country **Why not read from Redux?** + - Components should read from URL for simplicity and reliability - Redux copy is for internal coordination only - Avoids sync issues and makes data flow clearer @@ -110,12 +119,14 @@ While the URL is the source of truth for components, Redux stores a copy for spe All ingredient state is **session-scoped** to the current country. When the user navigates between countries, all state is cleared: **Cleared on Country Change**: + - Reports (`report` reducer) - Policies (`policy` reducer) - Simulations (`simulations` reducer) - Populations (`population` reducer) **Example**: + ``` User at /us/reports with US policy + simulation ↓ @@ -152,16 +163,16 @@ Each reducer provides a clear action: ```typescript // Report -clearReport() // Async thunk - also sets countryId +clearReport(); // Async thunk - also sets countryId // Policy -clearAllPolicies() +clearAllPolicies(); // Simulations -clearAllSimulations() +clearAllSimulations(); // Populations -clearAllPopulations() +clearAllPopulations(); ``` ## Metadata Loading @@ -171,20 +182,24 @@ clearAllPopulations() Two guards handle metadata loading: **MetadataGuard** (Blocking): + - Blocks rendering until metadata loads - Shows loading/error pages - Used for routes that require metadata immediately (e.g., report-output) **MetadataLazyLoader** (Non-blocking): + - Triggers metadata fetch but doesn't block rendering - Used for routes that benefit from metadata but can render without it (e.g., reports, policies) **Both guards**: + - Use `useCurrentCountry()` to read country from URL - Call `useFetchMetadata(countryId)` to trigger fetch - Smart caching prevents duplicate fetches **Flow**: + ``` User navigates to /uk/reports ↓ @@ -251,9 +266,7 @@ When adding new country-dependent features: ```tsx function MyComponent() { const country = useCurrentCountry(); - const { data } = useQuery(['reports', country], () => - fetchReports(country) - ); + const { data } = useQuery(['reports', country], () => fetchReports(country)); } ``` @@ -262,10 +275,8 @@ function MyComponent() { ```tsx function MyComponent() { // DON'T DO THIS - URL is source of truth - const country = useSelector(state => state.metadata.currentCountry); - const { data } = useQuery(['reports', country], () => - fetchReports(country) - ); + const country = useSelector((state) => state.metadata.currentCountry); + const { data } = useQuery(['reports', country], () => fetchReports(country)); } ``` @@ -350,6 +361,7 @@ test('given country change then clears all state', async () => { ## Migration Notes Previous implementations may have: + - Hardcoded `'us'` as default country - Used `country || 'us'` fallbacks throughout - Stored country in multiple Redux slices inconsistently @@ -360,6 +372,7 @@ All of these patterns have been replaced with the URL-as-source-of-truth archite ## Related Files ### Core Implementation + - `src/routing/guards/CountryGuard.tsx` - Entry point and state management - `src/hooks/useCurrentCountry.ts` - Hook to read country from URL - `src/reducers/reportReducer.ts` - Report state with clearReport thunk @@ -368,10 +381,12 @@ All of these patterns have been replaced with the URL-as-source-of-truth archite - `src/routing/guards/MetadataLazyLoader.tsx` - Non-blocking metadata loader ### Tests + - `src/tests/unit/routing/guards/CountryGuard.test.tsx` - CountryGuard validation tests - `src/tests/integration/countryNavigation.test.tsx` - Cross-country navigation tests - `src/tests/unit/hooks/useCurrentCountry.test.tsx` - Hook tests (if exists) ### API Layer + - All hooks in `src/hooks/` that make API calls should accept country parameter - No hardcoded country IDs in API calls diff --git a/app/src/hooks/README.md b/app/src/hooks/README.md index fb08ede21..89c7e31bb 100644 --- a/app/src/hooks/README.md +++ b/app/src/hooks/README.md @@ -4,84 +4,84 @@ ### ✅ Query Setup in `app.tsx` -* Integrated `QueryClient` and `QueryClientProvider` at the root of the app: +- Integrated `QueryClient` and `QueryClientProvider` at the root of the app: ```tsx const queryClient = new QueryClient(); - + ; ``` -* This enables query and mutation hooks (`useQuery`, `useMutation`) across the app. +- This enables query and mutation hooks (`useQuery`, `useMutation`) across the app. ### How Query Keys Work TanStack Query uses **query keys** (e.g., `['policies']`) to uniquely identify each piece of cached data. When you run `useQuery({ queryKey: ['policies'], ... })`, the data returned from the server is stored in an internal cache under that key. Later, any component using the same key will automatically use the cached data and only refetch if it's stale or invalidated. When mutations (e.g., `createPolicy`) succeed, we call `queryClient.invalidateQueries(['policies'])`, which marks that key as stale and triggers a refetch — ensuring the UI reflects the latest data without manually syncing state. - - ### ✅ View List Setup with `useQuery` -* Created a query hook for listing policies: +- Created a query hook for listing policies: ```ts - const { data: policies, isLoading, error } = useQuery({ + const { + data: policies, + isLoading, + error, + } = useQuery({ queryKey: ['policies'], queryFn: fetchPoliciesFn, }); ``` -* Which - - * Fetches on mount - * Manages loading and error states - * Caches data with reactivity via `queryKey` - * Refetches automatically when invalidated +- Which - + - Fetches on mount + - Manages loading and error states + - Caches data with reactivity via `queryKey` + - Refetches automatically when invalidated ### ✅ Creation Hook with `useMutation` for use in the creation flow -* Wrote `useCreatePolicy` using TanStack’s mutation hook: +- Wrote `useCreatePolicy` using TanStack’s mutation hook: ```ts const mutation = useMutation({ mutationFn: createPolicy, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['policies'] }); - } + }, }); ``` -* On successful POST: - - * Triggers `invalidateQueries` - * The policies list gets auto-refetched +- On successful POST: + - Triggers `invalidateQueries` + - The policies list gets auto-refetched ## Here's what you need to do for Component Integration ### Create or Update a Policy -* Call the `mutate` function from the existing `useCreatePolicy` hook: +- Call the `mutate` function from the existing `useCreatePolicy` hook: ```ts const { mutate } = useCreatePolicy(); mutate(newPolicyData); ``` -* Why: - * This will send the POST request - * On success, it invalidates the `['policies']` query - * TanStack will automatically refresh the list (via refetch or background revalidation) +- Why: + - This will send the POST request + - On success, it invalidates the `['policies']` query + - TanStack will automatically refresh the list (via refetch or background revalidation) ### No Redux Update Required -* Redux syncing isn’t needed unless another view relies on the updated data before the refetch completes. -* The query will be refetched: - - * Immediately if the list is mounted and `staleTime` allows - * On next window focus - * On remount +- Redux syncing isn’t needed unless another view relies on the updated data before the refetch completes. +- The query will be refetched: + - Immediately if the list is mounted and `staleTime` allows + - On next window focus + - On remount --- @@ -91,4 +91,4 @@ TanStack Query uses **query keys** (e.g., `['policies']`) to uniquely identify e *Reduces the need to manually manage UI state or Redux for most read/write cases. *Avoids stale data issues by invalidating and refetching from the backend when needed. *Provides out-of-the-box devtools and loading/error states. -*Keeps components clean and focused on rendering logic, not side effects. \ No newline at end of file +\*Keeps components clean and focused on rendering logic, not side effects. diff --git a/app/src/libs/calculations/README.md b/app/src/libs/calculations/README.md index 91280e7f3..ecf02793f 100644 --- a/app/src/libs/calculations/README.md +++ b/app/src/libs/calculations/README.md @@ -45,6 +45,7 @@ The calculation system orchestrates policy impact calculations for both househol ### 1. Initiation **Manual Creation (via useCreateReport):** + ```typescript // User creates report → useCreateReport → CalcOrchestrator.startCalculation() const { createReport } = useCreateReport(); @@ -52,6 +53,7 @@ await createReport({ countryId, payload, simulations, populations }); ``` **Direct URL Load (via useStartCalculationOnLoad):** + ```typescript // User loads /report-output/:id → auto-start if needed useStartCalculationOnLoad({ @@ -75,9 +77,7 @@ class CalcOrchestrator { const params = this.buildParams(config); // 3. Start query (triggers strategy execution) - queryClient.prefetchQuery( - calculationQueries.forReport(calcId, metadata, params) - ); + queryClient.prefetchQuery(calculationQueries.forReport(calcId, metadata, params)); // 4. Subscribe to completion this.subscribeToCompletion(calcId, metadata, countryId); @@ -88,6 +88,7 @@ class CalcOrchestrator { ### 3. Strategy Execution **Economy Calculations (Polling):** + ```typescript // EconomyCalcStrategy polls API until complete class EconomyCalcStrategy { @@ -119,6 +120,7 @@ refetchInterval: (query) => { ``` **Household Calculations (Await + Synthetic Progress):** + ```typescript // HouseholdCalcStrategy awaits result (NO polling) class HouseholdCalcStrategy { @@ -142,6 +144,7 @@ class HouseholdCalcStrategy { ### 4. Cache Management **TanStack Query Cache:** + ```typescript // Query key structure calculationKeys = { @@ -160,6 +163,7 @@ interface CalcStatus { ``` **Cache Hydration (Phase 4):** + ```typescript // On page load, hydrate cache from persisted report.output useHydrateCalculationCache({ report, outputType }); @@ -200,6 +204,7 @@ subscribeToCompletion(calcId, metadata, countryId) { **Solution:** Strategy awaits API response, UI shows synthetic progress. **Benefits:** + - Eliminates API hammering - Reduces server load by 99%+ - Better UX with smooth progress animation @@ -211,6 +216,7 @@ subscribeToCompletion(calcId, metadata, countryId) { **Solution:** Strategies are stateless, reused via singleton pattern. **Benefits:** + - Performance optimization (no repeated instantiation) - Simpler code (no state management in strategies) - Thread-safe (no shared mutable state) @@ -220,10 +226,12 @@ subscribeToCompletion(calcId, metadata, countryId) { **Problem:** Direct URL loads showed "idle" forever. **Solution:** Two hooks working together: + - `useHydrateCalculationCache`: Populates cache from persisted data - `useStartCalculationOnLoad`: Auto-starts calculation if needed **Benefits:** + - Instant results for completed reports - Automatic calculation restart when needed - No duplicate calculation starts @@ -233,11 +241,13 @@ subscribeToCompletion(calcId, metadata, countryId) { **Problem:** QueryObserver subscriptions never cleaned up. **Solution:** + - Track unsubscribe function in CalcOrchestrator - Auto-cleanup on complete/error - Manual cleanup on component unmount **Benefits:** + - No memory leaks - Proper resource cleanup - Better long-term stability @@ -245,17 +255,21 @@ subscribeToCompletion(calcId, metadata, countryId) { ## Testing Strategy ### Unit Tests + - Each strategy has dedicated tests - Orchestrator tests verify lifecycle - Hook tests verify state management ### Integration Tests + - Pathway validation tests (10 critical flows) - End-to-end calculation flows - Error handling and edge cases ### Test Fixtures + All mocks and test data in `src/tests/fixtures/`: + - `libs/calculations/` - Strategy and orchestrator fixtures - `hooks/` - Hook test fixtures - `integration/` - End-to-end flow fixtures @@ -267,6 +281,7 @@ All mocks and test data in `src/tests/fixtures/`: **Endpoint:** `GET /{country}/economy/{reform}/over/{baseline}` **Response (Computing):** + ```json { "status": "computing", @@ -277,12 +292,13 @@ All mocks and test data in `src/tests/fixtures/`: ``` **Response (Complete):** + ```json { "status": "ok", "result": { "budget": { "budgetary_impact": 1000000 }, - "earnings": { "total_earnings": 50000000 }, + "earnings": { "total_earnings": 50000000 } // ... more metrics } } @@ -293,6 +309,7 @@ All mocks and test data in `src/tests/fixtures/`: **Endpoint:** `POST /{country}/household` **Request:** + ```json { "policy_id": "1", @@ -304,6 +321,7 @@ All mocks and test data in `src/tests/fixtures/`: ``` **Response (Always Synchronous):** + ```json { "people": { @@ -332,7 +350,7 @@ await orchestrator.startCalculation({ targetType: 'report', countryId: 'us', simulations: { simulation1, simulation2 }, - populations: { household1, geography1 } + populations: { household1, geography1 }, }); ``` @@ -359,8 +377,8 @@ if (status.isComplete) { ```typescript // In ReportOutput.page.tsx useHydrateCalculationCache({ - report, // Report with output field - outputType, // 'economy' | 'household' + report, // Report with output field + outputType, // 'economy' | 'household' }); useStartCalculationOnLoad({ @@ -374,12 +392,14 @@ useStartCalculationOnLoad({ ## Performance Characteristics ### Economy Calculations + - **API Calls:** Polling (1 per second while computing) - **Duration:** 5-30 seconds (server-side processing) - **Progress:** Real-time from API - **Caching:** Results cached indefinitely (staleTime: Infinity) ### Household Calculations + - **API Calls:** Single call (awaits result) - **Duration:** 100-500ms (fast synchronous calculation) - **Progress:** Synthetic (client-side animation) @@ -392,6 +412,7 @@ useStartCalculationOnLoad({ **Cause:** `useCalculationStatus` called before CalcOrchestrator registers the query. **Symptoms:** + ``` No queryFn was passed as an option, and no default queryFn was found. Query key: ["calculations","report",48] @@ -400,6 +421,7 @@ Query key: ["calculations","report",48] **Fix (Phase 9):** Added no-op queryFn that returns a never-resolving Promise. This satisfies TanStack Query requirements while maintaining cache-first behavior. The hook returns idle state until CalcOrchestrator populates the cache with real data. **Technical Details:** + - `queryFn: () => new Promise(() => {})` - Prevents TanStack Query error - `isComputing` only true when `status === 'computing'` (not on `isLoading`) - Synthetic progress disabled for no-op loading state diff --git a/app/src/mocks/UK_Metadata.json b/app/src/mocks/UK_Metadata.json index a4eb5b906..33118000b 100644 --- a/app/src/mocks/UK_Metadata.json +++ b/app/src/mocks/UK_Metadata.json @@ -101,13 +101,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "household_market_income", - "pre_budget_change_household_benefits" - ], - "subtracts": [ - "pre_budget_change_household_tax" - ], + "adds": ["household_market_income", "pre_budget_change_household_benefits"], + "subtracts": ["pre_budget_change_household_tax"], "hidden_input": false }, "pre_budget_change_ons_household_income_decile": { @@ -460,10 +455,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "bi_individual_phaseout", - "bi_household_phaseout" - ], + "adds": ["bi_individual_phaseout", "bi_household_phaseout"], "subtracts": null, "hidden_input": false }, @@ -514,12 +506,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "bi_maximum" - ], - "subtracts": [ - "bi_phaseout" - ], + "adds": ["bi_maximum"], + "subtracts": ["bi_phaseout"], "hidden_input": false }, "cliff_evaluated": { @@ -4858,9 +4846,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "non_residential_property_value" - ], + "adds": ["non_residential_property_value"], "subtracts": null, "hidden_input": false }, @@ -4877,10 +4863,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mortgage_interest_repayment", - "mortgage_capital_repayment" - ], + "adds": ["mortgage_interest_repayment", "mortgage_capital_repayment"], "subtracts": null, "hidden_input": false }, @@ -4897,9 +4880,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "personal_rent" - ], + "adds": ["personal_rent"], "subtracts": null, "hidden_input": false }, @@ -5069,9 +5050,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "personal_rent" - ], + "adds": ["personal_rent"], "subtracts": null, "hidden_input": false }, @@ -5139,11 +5118,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "rent", - "mortgage", - "water_and_sewerage_charges" - ], + "adds": ["rent", "mortgage", "water_and_sewerage_charges"], "subtracts": null, "hidden_input": false }, @@ -5160,9 +5135,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "rent" - ], + "adds": ["rent"], "subtracts": null, "hidden_input": false }, @@ -5196,10 +5169,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "statutory_sick_pay", - "statutory_maternity_pay" - ], + "adds": ["statutory_sick_pay", "statutory_maternity_pay"], "subtracts": null, "hidden_input": false }, @@ -5420,13 +5390,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "household_market_income", - "household_benefits" - ], - "subtracts": [ - "household_tax" - ], + "adds": ["household_market_income", "household_benefits"], + "subtracts": ["household_tax"], "hidden_input": false }, "in_work": { @@ -5510,10 +5475,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "savings_interest_income", - "dividend_income" - ], + "adds": ["savings_interest_income", "dividend_income"], "subtracts": null, "hidden_input": false }, @@ -5666,10 +5628,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "capital_gains_before_response", - "capital_gains_behavioural_response" - ], + "adds": ["capital_gains_before_response", "capital_gains_behavioural_response"], "subtracts": null, "hidden_input": false }, @@ -5761,9 +5720,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "hbai_household_net_income" - ], + "adds": ["hbai_household_net_income"], "subtracts": [ "rent", "water_and_sewerage_charges", @@ -5892,9 +5849,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "weekly_hours" - ], + "adds": ["weekly_hours"], "subtracts": null, "hidden_input": false }, @@ -6329,14 +6284,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "household_market_income", - "household_benefits" - ], - "subtracts": [ - "household_tax", - "housing_costs" - ], + "adds": ["household_market_income", "household_benefits"], + "subtracts": ["household_tax", "housing_costs"], "hidden_input": false }, "hbai_excluded_income_change": { @@ -6518,10 +6467,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "property_wealth", - "corporate_wealth" - ], + "adds": ["property_wealth", "corporate_wealth"], "subtracts": null, "hidden_input": false }, @@ -6538,10 +6484,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "household_land_value", - "corporate_land_value" - ], + "adds": ["household_land_value", "corporate_land_value"], "subtracts": null, "hidden_input": false }, @@ -6558,10 +6501,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "residential_property_value", - "non_residential_property_value" - ], + "adds": ["residential_property_value", "non_residential_property_value"], "subtracts": null, "hidden_input": false }, @@ -6578,10 +6518,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "corporate_sdlt", - "business_rates" - ], + "adds": ["corporate_sdlt", "business_rates"], "subtracts": null, "hidden_input": false }, @@ -6632,10 +6569,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "main_residence_value", - "other_residential_property_value" - ], + "adds": ["main_residence_value", "other_residential_property_value"], "subtracts": null, "hidden_input": false }, @@ -7897,12 +7831,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov_tax" - ], - "subtracts": [ - "gov_spending" - ], + "adds": ["gov_tax"], + "subtracts": ["gov_spending"], "hidden_input": false }, "gov_spending": { @@ -8098,10 +8028,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "lbtt_on_residential_property_rent", - "lbtt_on_non_residential_property_rent" - ], + "adds": ["lbtt_on_residential_property_rent", "lbtt_on_non_residential_property_rent"], "subtracts": null, "hidden_input": false }, @@ -8611,10 +8538,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "rail_subsidy_spending", - "bus_subsidy_spending" - ], + "adds": ["rail_subsidy_spending", "bus_subsidy_spending"], "subtracts": null, "hidden_input": false }, @@ -8648,10 +8572,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "sdlt_on_transactions", - "sdlt_on_rent" - ], + "adds": ["sdlt_on_transactions", "sdlt_on_rent"], "subtracts": null, "hidden_input": false }, @@ -8773,9 +8694,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "child_benefit_respective_amount" - ], + "adds": ["child_benefit_respective_amount"], "subtracts": null, "hidden_input": false }, @@ -8792,12 +8711,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax" - ], - "subtracts": [ - "tax_reported" - ], + "adds": ["tax"], + "subtracts": ["tax_reported"], "hidden_input": false }, "baseline_child_benefit_entitlement": { @@ -8864,9 +8779,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax" - ], + "adds": ["tax"], "subtracts": null, "hidden_input": false }, @@ -8900,12 +8813,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "vat" - ], - "subtracts": [ - "baseline_vat" - ], + "adds": ["vat"], + "subtracts": ["baseline_vat"], "hidden_input": false }, "expected_sdlt": { @@ -9048,9 +8957,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "child_benefit_entitlement" - ], + "adds": ["child_benefit_entitlement"], "subtracts": null, "hidden_input": false }, @@ -9118,10 +9025,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax", - "national_insurance" - ], + "adds": ["income_tax", "national_insurance"], "subtracts": null, "hidden_input": false }, @@ -9138,12 +9042,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "child_benefit" - ], - "subtracts": [ - "CB_HITC" - ], + "adds": ["child_benefit"], + "subtracts": ["CB_HITC"], "hidden_input": false }, "student_loan_repayments": { @@ -9176,10 +9076,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "sdlt_on_residential_property_rent", - "sdlt_on_non_residential_property_rent" - ], + "adds": ["sdlt_on_residential_property_rent", "sdlt_on_non_residential_property_rent"], "subtracts": null, "hidden_input": false }, @@ -9468,10 +9365,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "national_insurance", - "ni_class_1_employer" - ], + "adds": ["national_insurance", "ni_class_1_employer"], "subtracts": null, "hidden_input": false }, @@ -9488,10 +9382,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ni_class_2", - "ni_class_4" - ], + "adds": ["ni_class_2", "ni_class_4"], "subtracts": null, "hidden_input": false }, @@ -9508,9 +9399,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ni_class_1_employer" - ], + "adds": ["ni_class_1_employer"], "subtracts": null, "hidden_input": false }, @@ -9527,9 +9416,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ni_class_1_employee" - ], + "adds": ["ni_class_1_employee"], "subtracts": null, "hidden_input": false }, @@ -9546,12 +9433,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ni_class_1_employee", - "ni_class_2", - "ni_class_3", - "ni_class_4" - ], + "adds": ["ni_class_1_employee", "ni_class_2", "ni_class_3", "ni_class_4"], "subtracts": null, "hidden_input": false }, @@ -9709,10 +9591,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ni_class_1_employee_primary", - "ni_class_1_employee_additional" - ], + "adds": ["ni_class_1_employee_primary", "ni_class_1_employee_additional"], "subtracts": null, "hidden_input": false }, @@ -9831,10 +9710,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "private_pension_income", - "state_pension" - ], + "adds": ["private_pension_income", "state_pension"], "subtracts": null, "hidden_input": false }, @@ -9911,11 +9787,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "earned_taxable_income", - "taxed_savings_income", - "taxed_dividend_income" - ], + "adds": ["earned_taxable_income", "taxed_savings_income", "taxed_dividend_income"], "subtracts": null, "hidden_input": false }, @@ -9949,11 +9821,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "earned_income_tax", - "savings_income_tax", - "dividend_income_tax" - ], + "adds": ["earned_income_tax", "savings_income_tax", "dividend_income_tax"], "subtracts": null, "hidden_input": false }, @@ -10749,9 +10617,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "miscellaneous_income" - ], + "adds": ["miscellaneous_income"], "subtracts": null, "hidden_input": false }, @@ -10836,9 +10702,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "social_security_income" - ], + "adds": ["social_security_income"], "subtracts": null, "hidden_input": false }, @@ -10889,9 +10753,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "private_pension_income" - ], + "adds": ["private_pension_income"], "subtracts": null, "hidden_input": false }, @@ -10925,9 +10787,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "individual_savings_account_interest_income" - ], + "adds": ["individual_savings_account_interest_income"], "subtracts": null, "hidden_input": false }, @@ -11046,9 +10906,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "employment_expenses" - ], + "adds": ["employment_expenses"], "subtracts": null, "hidden_input": false }, @@ -11324,9 +11182,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "maternity_allowance_reported" - ], + "adds": ["maternity_allowance_reported"], "subtracts": null, "hidden_input": false }, @@ -11467,9 +11323,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wtc_entitlement" - ], + "adds": ["wtc_entitlement"], "subtracts": null, "hidden_input": false }, @@ -11520,9 +11374,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_support_entitlement" - ], + "adds": ["income_support_entitlement"], "subtracts": null, "hidden_input": false }, @@ -11641,9 +11493,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "esa_income_reported" - ], + "adds": ["esa_income_reported"], "subtracts": null, "hidden_input": false }, @@ -11784,9 +11634,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "bsp_reported" - ], + "adds": ["bsp_reported"], "subtracts": null, "hidden_input": false }, @@ -11956,9 +11804,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "council_tax_benefit_reported" - ], + "adds": ["council_tax_benefit_reported"], "subtracts": null, "hidden_input": false }, @@ -12119,10 +11965,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "esa_contrib", - "esa_income" - ], + "adds": ["esa_contrib", "esa_income"], "subtracts": null, "hidden_input": false }, @@ -12224,9 +12067,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "esa_contrib_reported" - ], + "adds": ["esa_contrib_reported"], "subtracts": null, "hidden_input": false }, @@ -12243,9 +12084,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "incapacity_benefit_reported" - ], + "adds": ["incapacity_benefit_reported"], "subtracts": null, "hidden_input": false }, @@ -12313,9 +12152,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "iidb_reported" - ], + "adds": ["iidb_reported"], "subtracts": null, "hidden_input": false }, @@ -12485,9 +12322,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "afcs_reported" - ], + "adds": ["afcs_reported"], "subtracts": null, "hidden_input": false }, @@ -12589,12 +12424,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adult_ema", - "child_ema", - "access_fund", - "education_grants" - ], + "adds": ["adult_ema", "child_ema", "access_fund", "education_grants"], "subtracts": null, "hidden_input": false }, @@ -12611,10 +12441,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "jsa_income", - "jsa_contrib" - ], + "adds": ["jsa_income", "jsa_contrib"], "subtracts": null, "hidden_input": false }, @@ -12730,9 +12557,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc_entitlement" - ], + "adds": ["ctc_entitlement"], "subtracts": null, "hidden_input": false }, @@ -12919,9 +12744,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "jsa_contrib_reported" - ], + "adds": ["jsa_contrib_reported"], "subtracts": null, "hidden_input": false }, @@ -13129,12 +12952,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "uc_maximum_amount" - ], - "subtracts": [ - "uc_income_reduction" - ], + "adds": ["uc_maximum_amount"], + "subtracts": ["uc_income_reduction"], "hidden_input": false }, "is_uc_eligible": { @@ -13253,9 +13072,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "uc_individual_child_element" - ], + "adds": ["uc_individual_child_element"], "subtracts": null, "hidden_input": false }, @@ -13735,10 +13552,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dla_sc", - "dla_m" - ], + "adds": ["dla_sc", "dla_m"], "subtracts": null, "hidden_input": false }, @@ -13857,10 +13671,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "guarantee_credit", - "savings_credit" - ], + "adds": ["guarantee_credit", "savings_credit"], "subtracts": null, "hidden_input": false }, @@ -14064,10 +13875,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "standard_minimum_guarantee", - "additional_minimum_guarantee" - ], + "adds": ["standard_minimum_guarantee", "additional_minimum_guarantee"], "subtracts": null, "hidden_input": false }, @@ -14254,10 +14062,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pip_dl", - "pip_m" - ], + "adds": ["pip_dl", "pip_m"], "subtracts": null, "hidden_input": false }, @@ -14597,10 +14402,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ebr_council_tax_rebate", - "ebr_energy_bills_credit" - ], + "adds": ["ebr_council_tax_rebate", "ebr_energy_bills_credit"], "subtracts": null, "hidden_input": false }, @@ -18538,10 +18340,7 @@ "unit": "program", "period": "year", "values": { - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -18554,18 +18353,8 @@ "unit": "program", "period": "year", "values": { - "2015-09-01": [ - "carers_allowance", - "esa_contrib", - "incapacity_benefit", - "sda" - ], - "2015-01-01": [ - "carers_allowance", - "esa_contrib", - "incapacity_benefit", - "sda" - ] + "2015-09-01": ["carers_allowance", "esa_contrib", "incapacity_benefit", "sda"], + "2015-01-01": ["carers_allowance", "esa_contrib", "incapacity_benefit", "sda"] }, "economy": true, "household": true @@ -18633,12 +18422,7 @@ "unit": "program", "period": "year", "values": { - "2014-01-01": [ - "income_support", - "jsa_income", - "esa_income", - "guarantee_credit" - ] + "2014-01-01": ["income_support", "jsa_income", "esa_income", "guarantee_credit"] }, "economy": true, "household": true @@ -18901,10 +18685,7 @@ "unit": "program", "period": "year", "values": { - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -18917,11 +18698,7 @@ "unit": "program", "period": "year", "values": { - "2015-01-01": [ - "working_tax_credit", - "child_tax_credit", - "universal_credit" - ] + "2015-01-01": ["working_tax_credit", "child_tax_credit", "universal_credit"] }, "economy": true, "household": true @@ -22671,10 +22448,7 @@ "unit": "list", "period": "year", "values": { - "0000-01-01": [ - "personal_pension_contributions", - "employee_pension_contributions" - ] + "0000-01-01": ["personal_pension_contributions", "employee_pension_contributions"] }, "economy": true, "household": true @@ -22754,10 +22528,7 @@ "unit": "list", "period": null, "values": { - "0000-01-01": [ - "capped_mcad", - "other_tax_credits" - ] + "0000-01-01": ["capped_mcad", "other_tax_credits"] }, "economy": true, "household": true @@ -23682,11 +23453,7 @@ "unit": "list", "period": "year", "values": { - "0000-01-01": [ - "loss_relief", - "capital_allowances", - "trading_allowance" - ] + "0000-01-01": ["loss_relief", "capital_allowances", "trading_allowance"] }, "economy": true, "household": true @@ -26273,10 +26040,7 @@ "unit": "currency-GBP", "period": null, "values": { - "2002-01-01": [ - "jsa_contrib", - "esa_contrib" - ] + "2002-01-01": ["jsa_contrib", "esa_contrib"] }, "economy": false, "household": true @@ -26310,10 +26074,7 @@ "unit": "currency-GBP", "period": null, "values": { - "2002-01-01": [ - "jsa_contrib", - "esa_contrib" - ] + "2002-01-01": ["jsa_contrib", "esa_contrib"] }, "economy": true, "household": true @@ -26514,10 +26275,7 @@ "unit": "list", "period": null, "values": { - "2002-01-01": [ - "employment_income", - "self_employment_income" - ] + "2002-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -26597,10 +26355,7 @@ "unit": "currency-GBP", "period": null, "values": { - "2002-01-01": [ - "pip", - "dla" - ] + "2002-01-01": ["pip", "dla"] }, "economy": false, "household": true @@ -26645,10 +26400,7 @@ "unit": "currency-GBP", "period": null, "values": { - "2002-01-01": [ - "receives_highest_dla_sc", - "receives_enhanced_pip_dl" - ] + "2002-01-01": ["receives_highest_dla_sc", "receives_enhanced_pip_dl"] }, "economy": false, "household": true @@ -28850,18 +28602,8 @@ "unit": "variable", "period": null, "values": { - "2022-01-01": [ - "pip", - "dla", - "attendance_allowance", - "armed_forces_independence_payment" - ], - "2015-01-01": [ - "pip", - "dla", - "attendance_allowance", - "armed_forces_independence_payment" - ] + "2022-01-01": ["pip", "dla", "attendance_allowance", "armed_forces_independence_payment"], + "2015-01-01": ["pip", "dla", "attendance_allowance", "armed_forces_independence_payment"] }, "economy": false, "household": true @@ -28897,12 +28639,8 @@ "unit": "variable", "period": null, "values": { - "2022-01-01": [ - "winter_fuel_allowance" - ], - "2015-01-01": [ - "winter_fuel_allowance" - ] + "2022-01-01": ["winter_fuel_allowance"], + "2015-01-01": ["winter_fuel_allowance"] }, "economy": false, "household": true @@ -28961,12 +28699,7 @@ "unit": "list", "period": "year", "values": { - "0001-01-01": [ - "A", - "B", - "C", - "D" - ] + "0001-01-01": ["A", "B", "C", "D"] }, "economy": false, "household": true @@ -42602,9 +42335,7 @@ "doc": "An individual. The minimal legal entity on which a legislation might be applied.", "is_person": true, "key": "person", - "roles": { - - } + "roles": {} } }, "variableModules": { @@ -48647,20 +48378,10 @@ "label": "2030" } ], - "datasets": [ - { - - } - ] + "datasets": [{}] }, "current_law_id": 1, - "basicInputs": [ - "brma", - "local_authority", - "region", - "employment_income", - "age" - ], + "basicInputs": ["brma", "local_authority", "region", "employment_income", "age"], "modelled_policies": { "core": { "modelled": [ @@ -48675,29 +48396,20 @@ "Fuel duty", "Council Tax" ], - "not_modelled": [ - "Tax-free childcare", - "VAT" - ] + "not_modelled": ["Tax-free childcare", "VAT"] }, "filtered": { "country": { "SCOTLAND": { - "modelled": [ - "Scottish tax rates" - ], - "not_modelled": [ - "Scottish Child Payment" - ] + "modelled": ["Scottish tax rates"], + "not_modelled": ["Scottish Child Payment"] }, "NORTHERN_IRELAND": { - "modelled": [ - "Domestic rates" - ] + "modelled": ["Domestic rates"] } } } }, "version": "2.39.0" } -} \ No newline at end of file +} diff --git a/app/src/mocks/US_Metadata.json b/app/src/mocks/US_Metadata.json index 2c72ec26f..71688850f 100644 --- a/app/src/mocks/US_Metadata.json +++ b/app/src/mocks/US_Metadata.json @@ -203,9 +203,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax" - ], + "adds": ["income_tax"], "subtracts": null, "hidden_input": false }, @@ -239,9 +237,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "state_income_tax" - ], + "adds": ["state_income_tax"], "subtracts": null, "hidden_input": false }, @@ -496,9 +492,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dividend_income" - ], + "adds": ["dividend_income"], "subtracts": null, "hidden_input": false }, @@ -566,9 +560,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_child_dependent" - ], + "adds": ["is_child_dependent"], "subtracts": null, "hidden_input": false }, @@ -704,10 +696,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "self_employment_tax", - "employee_payroll_tax" - ], + "adds": ["self_employment_tax", "employee_payroll_tax"], "subtracts": null, "hidden_input": false }, @@ -758,9 +747,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_unit_childcare_expenses" - ], + "adds": ["tax_unit_childcare_expenses"], "subtracts": null, "hidden_input": false }, @@ -777,9 +764,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "social_security" - ], + "adds": ["social_security"], "subtracts": null, "hidden_input": false }, @@ -813,11 +798,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "medicaid_cost", - "per_capita_chip", - "aca_ptc" - ], + "adds": ["medicaid_cost", "per_capita_chip", "aca_ptc"], "subtracts": null, "hidden_input": false }, @@ -936,10 +917,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "household_net_income", - "healthcare_benefit_value" - ], + "adds": ["household_net_income", "healthcare_benefit_value"], "subtracts": null, "hidden_input": false }, @@ -1194,9 +1172,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_tax_unit_dependent" - ], + "adds": ["is_tax_unit_dependent"], "subtracts": null, "hidden_input": false }, @@ -1230,9 +1206,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_parent_of_filer_or_spouse" - ], + "adds": ["is_parent_of_filer_or_spouse"], "subtracts": null, "hidden_input": false }, @@ -1283,9 +1257,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_grandparent_of_filer_or_spouse" - ], + "adds": ["is_grandparent_of_filer_or_spouse"], "subtracts": null, "hidden_input": false }, @@ -1545,9 +1517,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_child_dependent" - ], + "adds": ["is_child_dependent"], "subtracts": null, "hidden_input": false }, @@ -2702,9 +2672,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": false, - "adds": [ - "current_pregnancies" - ], + "adds": ["current_pregnancies"], "subtracts": null, "hidden_input": false }, @@ -31940,9 +31908,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_child" - ], + "adds": ["is_child"], "subtracts": null, "hidden_input": false }, @@ -32061,9 +32027,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "investment_in_529_plan_indv" - ], + "adds": ["investment_in_529_plan_indv"], "subtracts": null, "hidden_input": false }, @@ -32438,10 +32402,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "non_deductible_mortgage_interest", - "deductible_mortgage_interest" - ], + "adds": ["non_deductible_mortgage_interest", "deductible_mortgage_interest"], "subtracts": null, "hidden_input": false }, @@ -32543,9 +32504,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "investment_interest_expense" - ], + "adds": ["investment_interest_expense"], "subtracts": null, "hidden_input": false }, @@ -32579,10 +32538,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "deductible_mortgage_interest", - "non_mortgage_interest" - ], + "adds": ["deductible_mortgage_interest", "non_mortgage_interest"], "subtracts": null, "hidden_input": false }, @@ -33012,9 +32968,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "self_employment_tax" - ], + "adds": ["self_employment_tax"], "subtracts": null, "hidden_input": false }, @@ -33379,9 +33333,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "phone_cost" - ], + "adds": ["phone_cost"], "subtracts": null, "hidden_input": false }, @@ -33711,9 +33663,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "heating_expense_person" - ], + "adds": ["heating_expense_person"], "subtracts": null, "hidden_input": false }, @@ -34309,10 +34259,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "health_insurance_premiums_without_medicare_part_b", - "medicare_part_b_premiums" - ], + "adds": ["health_insurance_premiums_without_medicare_part_b", "medicare_part_b_premiums"], "subtracts": null, "hidden_input": false }, @@ -34380,10 +34327,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "health_insurance_premiums", - "other_medical_expenses" - ], + "adds": ["health_insurance_premiums", "other_medical_expenses"], "subtracts": null, "hidden_input": false }, @@ -34468,9 +34412,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "health_insurance_premiums" - ], + "adds": ["health_insurance_premiums"], "subtracts": null, "hidden_input": false }, @@ -34572,9 +34514,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "able_contributions_person" - ], + "adds": ["able_contributions_person"], "subtracts": null, "hidden_input": false }, @@ -34829,10 +34769,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "long_term_capital_gains", - "short_term_capital_gains" - ], + "adds": ["long_term_capital_gains", "short_term_capital_gains"], "subtracts": null, "hidden_input": false }, @@ -34888,9 +34825,7 @@ "household_benefits", "household_refundable_tax_credits" ], - "subtracts": [ - "household_tax_before_refundable_credits" - ], + "subtracts": ["household_tax_before_refundable_credits"], "hidden_input": false }, "household_benefits": { @@ -34957,10 +34892,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax_refundable_credits", - "household_refundable_state_tax_credits" - ], + "adds": ["income_tax_refundable_credits", "household_refundable_state_tax_credits"], "subtracts": null, "hidden_input": false }, @@ -35068,12 +35000,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "household_tax_before_refundable_credits" - ], - "subtracts": [ - "household_refundable_tax_credits" - ], + "adds": ["household_tax_before_refundable_credits"], + "subtracts": ["household_refundable_tax_credits"], "hidden_input": false }, "household_state_tax_before_refundable_credits": { @@ -35319,10 +35247,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "weekly_hours_worked_before_lsr", - "weekly_hours_worked_behavioural_response" - ], + "adds": ["weekly_hours_worked_before_lsr", "weekly_hours_worked_behavioural_response"], "subtracts": null, "hidden_input": false }, @@ -35495,10 +35420,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_exempt_interest_income", - "taxable_interest_income" - ], + "adds": ["tax_exempt_interest_income", "taxable_interest_income"], "subtracts": null, "hidden_input": false }, @@ -35668,10 +35590,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "qualified_dividend_income", - "non_qualified_dividend_income" - ], + "adds": ["qualified_dividend_income", "non_qualified_dividend_income"], "subtracts": null, "hidden_input": false }, @@ -35926,10 +35845,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "short_term_capital_gains", - "long_term_capital_gains" - ], + "adds": ["short_term_capital_gains", "long_term_capital_gains"], "subtracts": null, "hidden_input": false }, @@ -35946,10 +35862,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "long_term_capital_gains_before_response", - "capital_gains_behavioral_response" - ], + "adds": ["long_term_capital_gains_before_response", "capital_gains_behavioral_response"], "subtracts": null, "hidden_input": false }, @@ -36363,10 +36276,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "taxable_retirement_distributions", - "tax_exempt_retirement_distributions" - ], + "adds": ["taxable_retirement_distributions", "tax_exempt_retirement_distributions"], "subtracts": null, "hidden_input": false }, @@ -36383,10 +36293,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_exempt_private_pension_income", - "taxable_private_pension_income" - ], + "adds": ["tax_exempt_private_pension_income", "taxable_private_pension_income"], "subtracts": null, "hidden_input": false }, @@ -36510,10 +36417,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_exempt_public_pension_income", - "taxable_public_pension_income" - ], + "adds": ["tax_exempt_public_pension_income", "taxable_public_pension_income"], "subtracts": null, "hidden_input": false }, @@ -36581,10 +36485,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "taxable_sep_distributions", - "tax_exempt_sep_distributions" - ], + "adds": ["taxable_sep_distributions", "tax_exempt_sep_distributions"], "subtracts": null, "hidden_input": false }, @@ -36601,10 +36502,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_exempt_pension_income", - "taxable_pension_income" - ], + "adds": ["tax_exempt_pension_income", "taxable_pension_income"], "subtracts": null, "hidden_input": false }, @@ -36723,10 +36621,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_exempt_public_pension_income", - "tax_exempt_private_pension_income" - ], + "adds": ["tax_exempt_public_pension_income", "tax_exempt_private_pension_income"], "subtracts": null, "hidden_input": false }, @@ -36743,10 +36638,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "taxable_public_pension_income", - "taxable_private_pension_income" - ], + "adds": ["taxable_public_pension_income", "taxable_private_pension_income"], "subtracts": null, "hidden_input": false }, @@ -37143,11 +37035,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "employee_payroll_tax", - "state_withheld_income_tax", - "income_tax_before_credits" - ], + "adds": ["employee_payroll_tax", "state_withheld_income_tax", "income_tax_before_credits"], "subtracts": null, "hidden_input": false }, @@ -37164,14 +37052,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "spm_unit_market_income", - "spm_unit_benefits" - ], - "subtracts": [ - "spm_unit_taxes", - "spm_unit_spm_expenses" - ], + "adds": ["spm_unit_market_income", "spm_unit_benefits"], + "subtracts": ["spm_unit_taxes", "spm_unit_spm_expenses"], "hidden_input": false }, "in_poverty": { @@ -37204,9 +37086,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "market_income" - ], + "adds": ["market_income"], "subtracts": null, "hidden_input": false }, @@ -37308,9 +37188,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "spm_unit_spm_threshold" - ], + "adds": ["spm_unit_spm_threshold"], "subtracts": null, "hidden_input": false }, @@ -37382,9 +37260,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pell_grant" - ], + "adds": ["pell_grant"], "subtracts": null, "hidden_input": false }, @@ -37843,10 +37719,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "self_employment_income_before_lsr", - "self_employment_income_behavioral_response" - ], + "adds": ["self_employment_income_before_lsr", "self_employment_income_behavioral_response"], "subtracts": null, "hidden_input": false }, @@ -37880,10 +37753,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "employment_income_before_lsr", - "employment_income_behavioral_response" - ], + "adds": ["employment_income_before_lsr", "employment_income_behavioral_response"], "subtracts": null, "hidden_input": false }, @@ -38495,10 +38365,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax", - "state_income_tax" - ], + "adds": ["income_tax", "state_income_tax"], "subtracts": null, "hidden_input": false }, @@ -38566,9 +38433,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_tax_unit_dependent" - ], + "adds": ["is_tax_unit_dependent"], "subtracts": null, "hidden_input": false }, @@ -38670,12 +38535,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax_non_refundable_credits" - ], - "subtracts": [ - "income_tax_unavailable_non_refundable_credits" - ], + "adds": ["income_tax_non_refundable_credits"], + "subtracts": ["income_tax_unavailable_non_refundable_credits"], "hidden_input": false }, "income_tax_unavailable_non_refundable_credits": { @@ -39031,10 +38892,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "non_refundable_american_opportunity_credit", - "lifetime_learning_credit" - ], + "adds": ["non_refundable_american_opportunity_credit", "lifetime_learning_credit"], "subtracts": null, "hidden_input": false }, @@ -39085,12 +38943,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "american_opportunity_credit" - ], - "subtracts": [ - "refundable_american_opportunity_credit" - ], + "adds": ["american_opportunity_credit"], + "subtracts": ["refundable_american_opportunity_credit"], "hidden_input": false }, "refundable_american_opportunity_credit": { @@ -39344,12 +39198,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc" - ], - "subtracts": [ - "refundable_ctc" - ], + "adds": ["ctc"], + "subtracts": ["refundable_ctc"], "hidden_input": false }, "ctc_social_security_tax": { @@ -39450,9 +39300,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc_qualifying_child" - ], + "adds": ["ctc_qualifying_child"], "subtracts": null, "hidden_input": false }, @@ -39469,9 +39317,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc_individual_maximum" - ], + "adds": ["ctc_individual_maximum"], "subtracts": null, "hidden_input": false }, @@ -39488,10 +39334,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc_maximum", - "ctc_arpa_addition" - ], + "adds": ["ctc_maximum", "ctc_arpa_addition"], "subtracts": null, "hidden_input": false }, @@ -39627,10 +39470,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc_child_individual_maximum", - "ctc_adult_individual_maximum" - ], + "adds": ["ctc_child_individual_maximum", "ctc_adult_individual_maximum"], "subtracts": null, "hidden_input": false }, @@ -39766,12 +39606,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ctc_arpa_max_addition" - ], - "subtracts": [ - "ctc_arpa_phase_out" - ], + "adds": ["ctc_arpa_max_addition"], + "subtracts": ["ctc_arpa_phase_out"], "hidden_input": false }, "rrc_caa": { @@ -39821,11 +39657,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "rrc_cares", - "rrc_caa", - "rrc_arpa" - ], + "adds": ["rrc_cares", "rrc_caa", "rrc_arpa"], "subtracts": null, "hidden_input": false }, @@ -39876,9 +39708,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax_before_credits" - ], + "adds": ["income_tax_before_credits"], "subtracts": null, "hidden_input": false }, @@ -40014,9 +39844,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_cdcc_eligible" - ], + "adds": ["is_cdcc_eligible"], "subtracts": null, "hidden_input": false }, @@ -40220,9 +40048,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "savers_credit_person" - ], + "adds": ["savers_credit_person"], "subtracts": null, "hidden_input": false }, @@ -40800,9 +40626,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_unit_size" - ], + "adds": ["tax_unit_size"], "subtracts": null, "hidden_input": false }, @@ -40938,9 +40762,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "partnership_s_corp_income" - ], + "adds": ["partnership_s_corp_income"], "subtracts": null, "hidden_input": false }, @@ -40974,9 +40796,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "rental_income" - ], + "adds": ["rental_income"], "subtracts": null, "hidden_input": false }, @@ -41027,10 +40847,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "employment_income_last_year", - "self_employment_income_last_year" - ], + "adds": ["employment_income_last_year", "self_employment_income_last_year"], "subtracts": null, "hidden_input": false }, @@ -41047,10 +40864,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "employment_income", - "self_employment_income" - ], + "adds": ["employment_income", "self_employment_income"], "subtracts": null, "hidden_input": false }, @@ -41118,9 +40932,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "unemployment_compensation" - ], + "adds": ["unemployment_compensation"], "subtracts": null, "hidden_input": false }, @@ -41171,12 +40983,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "unemployment_compensation" - ], - "subtracts": [ - "taxable_unemployment_compensation" - ], + "adds": ["unemployment_compensation"], + "subtracts": ["taxable_unemployment_compensation"], "hidden_input": false }, "taxable_social_security": { @@ -41209,9 +41017,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "social_security" - ], + "adds": ["social_security"], "subtracts": null, "hidden_input": false }, @@ -41262,12 +41068,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_unit_social_security" - ], - "subtracts": [ - "tax_unit_taxable_social_security" - ], + "adds": ["tax_unit_social_security"], + "subtracts": ["tax_unit_taxable_social_security"], "hidden_input": false }, "tax_unit_taxable_social_security": { @@ -41334,9 +41136,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "self_employment_tax_ald_person" - ], + "adds": ["self_employment_tax_ald_person"], "subtracts": null, "hidden_input": false }, @@ -41472,9 +41272,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "self_employed_pension_contribution_ald_person" - ], + "adds": ["self_employed_pension_contribution_ald_person"], "subtracts": null, "hidden_input": false }, @@ -41559,9 +41357,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "self_employed_health_insurance_ald_person" - ], + "adds": ["self_employed_health_insurance_ald_person"], "subtracts": null, "hidden_input": false }, @@ -41986,9 +41782,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "deductible_interest_expense" - ], + "adds": ["deductible_interest_expense"], "subtracts": null, "hidden_input": false }, @@ -42468,9 +42262,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "irs_employment_income" - ], + "adds": ["irs_employment_income"], "subtracts": null, "hidden_input": false }, @@ -42708,12 +42500,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax" - ], - "subtracts": [ - "aca_ptc" - ], + "adds": ["income_tax"], + "subtracts": ["aca_ptc"], "hidden_input": false }, "income_tax": { @@ -42882,10 +42670,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "amt_lower_base_tax", - "amt_higher_base_tax" - ], + "adds": ["amt_lower_base_tax", "amt_higher_base_tax"], "subtracts": null, "hidden_input": false }, @@ -43026,11 +42811,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "income_tax_main_rates", - "capital_gains_tax", - "alternative_minimum_tax" - ], + "adds": ["income_tax_main_rates", "capital_gains_tax", "alternative_minimum_tax"], "subtracts": null, "hidden_input": false }, @@ -43429,9 +43210,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ssi" - ], + "adds": ["ssi"], "subtracts": null, "hidden_input": false }, @@ -44044,9 +43823,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "aca_ptc" - ], + "adds": ["aca_ptc"], "subtracts": null, "hidden_input": false }, @@ -44114,10 +43891,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "slcsp_age_curve_amount_person", - "slcsp_family_tier_amount" - ], + "adds": ["slcsp_age_curve_amount_person", "slcsp_family_tier_amount"], "subtracts": null, "hidden_input": false }, @@ -44364,9 +44138,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "medicaid_magi" - ], + "adds": ["medicaid_magi"], "subtracts": null, "hidden_input": false }, @@ -44502,9 +44274,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.local.co.denver.dhs.property_tax_relief.amount.renter" - ], + "adds": ["gov.local.co.denver.dhs.property_tax_relief.amount.renter"], "subtracts": null, "hidden_input": false }, @@ -44521,10 +44291,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_denver_homeowner_property_tax_relief", - "co_denver_renter_property_tax_relief" - ], + "adds": ["co_denver_homeowner_property_tax_relief", "co_denver_renter_property_tax_relief"], "subtracts": null, "hidden_input": false }, @@ -44541,9 +44308,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.local.co.denver.dhs.property_tax_relief.amount.homeowner" - ], + "adds": ["gov.local.co.denver.dhs.property_tax_relief.amount.homeowner"], "subtracts": null, "hidden_input": false }, @@ -44662,12 +44427,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nyc_income_tax_before_refundable_credits" - ], - "subtracts": [ - "nyc_refundable_credits" - ], + "adds": ["nyc_income_tax_before_refundable_credits"], + "subtracts": ["nyc_refundable_credits"], "hidden_input": false }, "nyc_eitc": { @@ -44907,9 +44668,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income" - ], + "adds": ["adjusted_gross_income"], "subtracts": null, "hidden_input": false }, @@ -44926,9 +44685,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ny_taxable_income" - ], + "adds": ["ny_taxable_income"], "subtracts": null, "hidden_input": false }, @@ -44996,9 +44753,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nyc_income_tax" - ], + "adds": ["nyc_income_tax"], "subtracts": null, "hidden_input": false }, @@ -45185,9 +44940,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.local.ca.la.dss.expectant_parent_payment.amount" - ], + "adds": ["gov.local.ca.la.dss.expectant_parent_payment.amount"], "subtracts": null, "hidden_input": false }, @@ -45272,12 +45025,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "la_general_relief_base_amount" - ], - "subtracts": [ - "la_general_relief_rent_contribution" - ], + "adds": ["la_general_relief_base_amount"], + "subtracts": ["la_general_relief_rent_contribution"], "hidden_input": false }, "la_general_relief_gross_income": { @@ -45871,9 +45620,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pr_gross_income_person" - ], + "adds": ["pr_gross_income_person"], "subtracts": null, "hidden_input": false }, @@ -46026,9 +45773,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pr_low_income_credit_eligible_person" - ], + "adds": ["pr_low_income_credit_eligible_person"], "subtracts": null, "hidden_input": false }, @@ -46283,12 +46028,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "market_income", - "social_security", - "ssi", - "tanf" - ], + "adds": ["market_income", "social_security", "ssi", "tanf"], "subtracts": null, "hidden_input": false }, @@ -46322,9 +46062,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "hud_hap" - ], + "adds": ["hud_hap"], "subtracts": null, "hidden_input": false }, @@ -46465,10 +46203,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pre_subsidy_rent", - "hud_utility_allowance" - ], + "adds": ["pre_subsidy_rent", "hud_utility_allowance"], "subtracts": null, "hidden_input": false }, @@ -47289,9 +47024,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.usda.csfp.amount" - ], + "adds": ["gov.usda.csfp.amount"], "subtracts": null, "hidden_input": false }, @@ -48296,9 +48029,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "snap_earned_income_person" - ], + "adds": ["snap_earned_income_person"], "subtracts": null, "hidden_input": false }, @@ -48332,13 +48063,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "snap_earned_income", - "snap_unearned_income" - ], - "subtracts": [ - "snap_child_support_gross_income_deduction" - ], + "adds": ["snap_earned_income", "snap_unearned_income"], + "subtracts": ["snap_child_support_gross_income_deduction"], "hidden_input": false }, "snap_gross_income_fpg_ratio": { @@ -48405,9 +48131,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "childcare_expenses" - ], + "adds": ["childcare_expenses"], "subtracts": null, "hidden_input": false }, @@ -49008,12 +48732,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nd_income_tax_before_refundable_credits" - ], - "subtracts": [ - "nd_refundable_credits" - ], + "adds": ["nd_income_tax_before_refundable_credits"], + "subtracts": ["nd_refundable_credits"], "hidden_input": false }, "nd_withheld_income_tax": { @@ -49216,9 +48936,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_ccap_subsidy" - ], + "adds": ["co_ccap_subsidy"], "subtracts": null, "hidden_input": false }, @@ -49371,10 +49089,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "is_child", - "is_pregnant" - ], + "adds": ["is_child", "is_pregnant"], "subtracts": null, "hidden_input": false }, @@ -49612,12 +49327,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_income_tax_before_refundable_credits" - ], - "subtracts": [ - "co_refundable_credits" - ], + "adds": ["co_income_tax_before_refundable_credits"], + "subtracts": ["co_refundable_credits"], "hidden_input": false }, "co_withheld_income_tax": { @@ -49752,9 +49463,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_ctc_eligible_child" - ], + "adds": ["co_ctc_eligible_child"], "subtracts": null, "hidden_input": false }, @@ -49822,9 +49531,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_federal_ctc_child_individual_maximum" - ], + "adds": ["co_federal_ctc_child_individual_maximum"], "subtracts": null, "hidden_input": false }, @@ -49841,10 +49548,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_refundable_ctc", - "co_non_refundable_ctc" - ], + "adds": ["co_refundable_ctc", "co_non_refundable_ctc"], "subtracts": null, "hidden_input": false }, @@ -50082,10 +49786,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_pension_subtraction_indv", - "co_social_security_subtraction_indv" - ], + "adds": ["co_pension_subtraction_indv", "co_social_security_subtraction_indv"], "subtracts": null, "hidden_input": false }, @@ -50238,9 +49939,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "qualified_business_income_deduction" - ], + "adds": ["qualified_business_income_deduction"], "subtracts": null, "hidden_input": false }, @@ -50308,10 +50007,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "snap_earned_income", - "snap_unearned_income" - ], + "adds": ["snap_earned_income", "snap_unearned_income"], "subtracts": null, "hidden_input": false }, @@ -50328,9 +50024,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "co_ccap_child_eligible" - ], + "adds": ["co_ccap_child_eligible"], "subtracts": null, "hidden_input": false }, @@ -50619,12 +50313,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "de_income_tax_before_refundable_credits" - ], - "subtracts": [ - "de_refundable_credits" - ], + "adds": ["de_income_tax_before_refundable_credits"], + "subtracts": ["de_refundable_credits"], "hidden_input": false }, "de_withheld_income_tax": { @@ -50657,13 +50347,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "de_additions", - "adjusted_gross_income_person" - ], - "subtracts": [ - "de_subtractions" - ], + "adds": ["de_additions", "adjusted_gross_income_person"], + "subtracts": ["de_subtractions"], "hidden_input": false }, "de_non_refundable_credits": { @@ -50866,9 +50551,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "de_refundable_eitc_if_claimed" - ], + "adds": ["de_refundable_eitc_if_claimed"], "subtracts": null, "hidden_input": false }, @@ -51310,10 +50993,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "de_base_standard_deduction_indv", - "de_additional_standard_deduction" - ], + "adds": ["de_base_standard_deduction_indv", "de_additional_standard_deduction"], "subtracts": null, "hidden_input": false }, @@ -51415,12 +51095,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ks_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ks_refundable_credits" - ], + "adds": ["ks_income_tax_before_refundable_credits"], + "subtracts": ["ks_refundable_credits"], "hidden_input": false }, "ks_income_tax_before_credits": { @@ -51453,13 +51129,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ks_additions" - ], - "subtracts": [ - "ks_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "ks_additions"], + "subtracts": ["ks_agi_subtractions"], "hidden_input": false }, "ks_agi_subtractions": { @@ -51815,12 +51486,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "me_income_tax_before_refundable_credits" - ], - "subtracts": [ - "me_refundable_credits" - ], + "adds": ["me_income_tax_before_refundable_credits"], + "subtracts": ["me_refundable_credits"], "hidden_input": false }, "me_eitc": { @@ -51992,10 +51659,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "me_property_tax_fairness_credit_countable_rent", - "real_estate_taxes" - ], + "adds": ["me_property_tax_fairness_credit_countable_rent", "real_estate_taxes"], "subtracts": null, "hidden_input": false }, @@ -52186,13 +51850,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "me_additions" - ], - "subtracts": [ - "me_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "me_additions"], + "subtracts": ["me_agi_subtractions"], "hidden_input": false }, "me_pension_income_deduction": { @@ -52225,9 +51884,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "me_personal_exemption_deduction" - ], + "adds": ["me_personal_exemption_deduction"], "subtracts": null, "hidden_input": false }, @@ -52329,12 +51986,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "or_income_tax_before_refundable_credits" - ], - "subtracts": [ - "or_refundable_credits" - ], + "adds": ["or_income_tax_before_refundable_credits"], + "subtracts": ["or_refundable_credits"], "hidden_input": false }, "or_agi": { @@ -52350,13 +52003,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "or_additions" - ], - "subtracts": [ - "or_income_subtractions" - ], + "adds": ["adjusted_gross_income", "or_additions"], + "subtracts": ["or_income_subtractions"], "hidden_input": false }, "or_income_tax_before_refundable_credits": { @@ -52559,13 +52207,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "tax_exempt_interest_income" - ], - "subtracts": [ - "taxable_social_security" - ], + "adds": ["adjusted_gross_income", "tax_exempt_interest_income"], + "subtracts": ["taxable_social_security"], "hidden_input": false }, "or_wfhdc_household_income": { @@ -52964,10 +52607,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "itemized_deductions_less_salt", - "capped_property_taxes" - ], + "adds": ["itemized_deductions_less_salt", "capped_property_taxes"], "subtracts": null, "hidden_input": false }, @@ -52984,13 +52624,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ga_additions" - ], - "subtracts": [ - "ga_subtractions" - ], + "adds": ["adjusted_gross_income", "ga_additions"], + "subtracts": ["ga_subtractions"], "hidden_input": false }, "ga_refundable_credits": { @@ -53074,12 +52709,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ga_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ga_refundable_credits" - ], + "adds": ["ga_income_tax_before_refundable_credits"], + "subtracts": ["ga_refundable_credits"], "hidden_input": false }, "ga_income_tax_before_non_refundable_credits": { @@ -53248,9 +52879,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ga_retirement_exclusion_person" - ], + "adds": ["ga_retirement_exclusion_person"], "subtracts": null, "hidden_input": false }, @@ -53352,9 +52981,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ga_military_retirement_exclusion_person" - ], + "adds": ["ga_military_retirement_exclusion_person"], "subtracts": null, "hidden_input": false }, @@ -53456,12 +53083,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "vt_income_tax_before_refundable_credits" - ], - "subtracts": [ - "vt_refundable_credits" - ], + "adds": ["vt_income_tax_before_refundable_credits"], + "subtracts": ["vt_refundable_credits"], "hidden_input": false }, "vt_eitc": { @@ -53787,13 +53410,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "vt_additions" - ], - "subtracts": [ - "vt_subtractions" - ], + "adds": ["adjusted_gross_income", "vt_additions"], + "subtracts": ["vt_subtractions"], "hidden_input": false }, "vt_additions": { @@ -53809,9 +53427,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_exempt_interest_income" - ], + "adds": ["tax_exempt_interest_income"], "subtracts": null, "hidden_input": false }, @@ -54032,10 +53648,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ct_amt", - "ct_income_tax_after_personal_credits" - ], + "adds": ["ct_amt", "ct_income_tax_after_personal_credits"], "subtracts": null, "hidden_input": false }, @@ -54103,13 +53716,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ct_additions" - ], - "subtracts": [ - "ct_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "ct_additions"], + "subtracts": ["ct_agi_subtractions"], "hidden_input": false }, "ct_income_tax_before_refundable_credits": { @@ -54176,12 +53784,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ct_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ct_refundable_credits" - ], + "adds": ["ct_income_tax_before_refundable_credits"], + "subtracts": ["ct_refundable_credits"], "hidden_input": false }, "ct_personal_credit_rate": { @@ -54677,10 +54281,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ny_main_income_tax", - "ny_supplemental_tax" - ], + "adds": ["ny_main_income_tax", "ny_supplemental_tax"], "subtracts": null, "hidden_input": false }, @@ -54714,12 +54315,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ny_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ny_refundable_credits" - ], + "adds": ["ny_income_tax_before_refundable_credits"], + "subtracts": ["ny_refundable_credits"], "hidden_input": false }, "ny_geothermal_energy_system_credit": { @@ -54939,10 +54536,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ny_ctc_post_2024", - "ny_ctc_pre_2024" - ], + "adds": ["ny_ctc_post_2024", "ny_ctc_pre_2024"], "subtracts": null, "hidden_input": false }, @@ -55146,13 +54740,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ny_additions" - ], - "subtracts": [ - "ny_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "ny_additions"], + "subtracts": ["ny_agi_subtractions"], "hidden_input": false }, "ny_additions": { @@ -55270,12 +54859,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ny_itemized_deductions_max" - ], - "subtracts": [ - "ny_itemized_deductions_reduction" - ], + "adds": ["ny_itemized_deductions_max"], + "subtracts": ["ny_itemized_deductions_reduction"], "hidden_input": false }, "ny_itemized_deductions_max": { @@ -55638,13 +55223,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "va_additions" - ], - "subtracts": [ - "va_subtractions" - ], + "adds": ["adjusted_gross_income", "va_additions"], + "subtracts": ["va_subtractions"], "hidden_input": false }, "va_rebate": { @@ -55694,12 +55274,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "va_income_tax_before_refundable_credits" - ], - "subtracts": [ - "va_refundable_credits" - ], + "adds": ["va_income_tax_before_refundable_credits"], + "subtracts": ["va_refundable_credits"], "hidden_input": false }, "va_subtractions": { @@ -55919,9 +55495,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "va_refundable_eitc_if_claimed" - ], + "adds": ["va_refundable_eitc_if_claimed"], "subtracts": null, "hidden_input": false }, @@ -56074,10 +55648,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "va_personal_exemption", - "va_aged_blind_exemption" - ], + "adds": ["va_personal_exemption", "va_aged_blind_exemption"], "subtracts": null, "hidden_input": false }, @@ -56111,9 +55682,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "va_aged_blind_exemption_person" - ], + "adds": ["va_aged_blind_exemption_person"], "subtracts": null, "hidden_input": false }, @@ -56130,9 +55699,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "va_personal_exemption_person" - ], + "adds": ["va_personal_exemption_person"], "subtracts": null, "hidden_input": false }, @@ -56234,12 +55801,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income" - ], - "subtracts": [ - "tax_unit_taxable_social_security" - ], + "adds": ["adjusted_gross_income"], + "subtracts": ["tax_unit_taxable_social_security"], "hidden_input": false }, "va_age_deduction": { @@ -56731,12 +56294,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ar_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ar_refundable_credits" - ], + "adds": ["ar_income_tax_before_refundable_credits"], + "subtracts": ["ar_refundable_credits"], "hidden_input": false }, "ar_income_tax_before_non_refundable_credits_joint": { @@ -56803,9 +56362,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ar_inflation_relief_credit_person" - ], + "adds": ["ar_inflation_relief_credit_person"], "subtracts": null, "hidden_input": false }, @@ -56945,9 +56502,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ar_capped_retirement_or_disability_benefits_exemption_person" - ], + "adds": ["ar_capped_retirement_or_disability_benefits_exemption_person"], "subtracts": null, "hidden_input": false }, @@ -57151,9 +56706,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ar_post_secondary_education_tuition_deduction_person" - ], + "adds": ["ar_post_secondary_education_tuition_deduction_person"], "subtracts": null, "hidden_input": false }, @@ -57204,9 +56757,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ne_child_care_subsidy" - ], + "adds": ["ne_child_care_subsidy"], "subtracts": null, "hidden_input": false }, @@ -57376,12 +56927,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ne_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ne_refundable_credits" - ], + "adds": ["ne_income_tax_before_refundable_credits"], + "subtracts": ["ne_refundable_credits"], "hidden_input": false }, "ne_nonrefundable_credits": { @@ -57669,13 +57216,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ne_additions" - ], - "subtracts": [ - "ne_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "ne_additions"], + "subtracts": ["ne_agi_subtractions"], "hidden_input": false }, "ne_additions": { @@ -57827,12 +57369,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wa_income_tax_before_refundable_credits" - ], - "subtracts": [ - "wa_refundable_credits" - ], + "adds": ["wa_income_tax_before_refundable_credits"], + "subtracts": ["wa_refundable_credits"], "hidden_input": false }, "wa_income_tax_before_refundable_credits": { @@ -57848,9 +57386,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wa_capital_gains_tax" - ], + "adds": ["wa_capital_gains_tax"], "subtracts": null, "hidden_input": false }, @@ -58003,13 +57539,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "hi_additions", - "adjusted_gross_income" - ], - "subtracts": [ - "hi_subtractions" - ], + "adds": ["hi_additions", "adjusted_gross_income"], + "subtracts": ["hi_subtractions"], "hidden_input": false }, "hi_income_tax_before_non_refundable_credits": { @@ -58059,12 +57590,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "hi_income_tax_before_refundable_credits" - ], - "subtracts": [ - "hi_refundable_credits" - ], + "adds": ["hi_income_tax_before_refundable_credits"], + "subtracts": ["hi_refundable_credits"], "hidden_input": false }, "hi_withheld_income_tax": { @@ -58471,10 +57998,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "investment_interest_expense", - "mortgage_interest" - ], + "adds": ["investment_interest_expense", "mortgage_interest"], "subtracts": null, "hidden_input": false }, @@ -58491,10 +58015,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "state_and_local_sales_or_income_tax", - "real_estate_taxes" - ], + "adds": ["state_and_local_sales_or_income_tax", "real_estate_taxes"], "subtracts": null, "hidden_input": false }, @@ -59225,12 +58746,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nh_income_tax_before_refundable_credits" - ], - "subtracts": [ - "nh_refundable_credits" - ], + "adds": ["nh_income_tax_before_refundable_credits"], + "subtracts": ["nh_refundable_credits"], "hidden_input": false }, "nh_refundable_credits": { @@ -59263,13 +58780,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dividend_income", - "interest_income" - ], - "subtracts": [ - "nh_total_exemptions" - ], + "adds": ["dividend_income", "interest_income"], + "subtracts": ["nh_total_exemptions"], "hidden_input": false }, "nh_base_exemption": { @@ -59613,12 +59125,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mo_income_tax_before_refundable_credits" - ], - "subtracts": [ - "mo_refundable_credits" - ], + "adds": ["mo_income_tax_before_refundable_credits"], + "subtracts": ["mo_refundable_credits"], "hidden_input": false }, "mo_income_tax_before_credits": { @@ -59855,13 +59363,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "nc_additions" - ], - "subtracts": [ - "nc_deductions" - ], + "adds": ["adjusted_gross_income", "nc_additions"], + "subtracts": ["nc_deductions"], "hidden_input": false }, "nc_income_tax": { @@ -60081,9 +59584,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": false, - "adds": [ - "nc_scca_child_age_eligible" - ], + "adds": ["nc_scca_child_age_eligible"], "subtracts": null, "hidden_input": false }, @@ -60406,12 +59907,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "sc_income_tax_before_refundable_credits" - ], - "subtracts": [ - "sc_refundable_credits" - ], + "adds": ["sc_income_tax_before_refundable_credits"], + "subtracts": ["sc_refundable_credits"], "hidden_input": false }, "sc_refundable_credits": { @@ -60648,9 +60145,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "sc_senior_exemption_person" - ], + "adds": ["sc_senior_exemption_person"], "subtracts": null, "hidden_input": false }, @@ -60718,10 +60213,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "sc_military_deduction_indv", - "sc_military_deduction_survivors" - ], + "adds": ["sc_military_deduction_indv", "sc_military_deduction_survivors"], "subtracts": null, "hidden_input": false }, @@ -60789,10 +60281,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "sc_retirement_deduction_indv", - "sc_retirement_deduction_survivors" - ], + "adds": ["sc_retirement_deduction_indv", "sc_retirement_deduction_survivors"], "subtracts": null, "hidden_input": false }, @@ -61426,11 +60915,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "itemized_deductions_less_salt", - "misc_deduction", - "ms_real_estate_tax_deduction" - ], + "adds": ["itemized_deductions_less_salt", "misc_deduction", "ms_real_estate_tax_deduction"], "subtracts": null, "hidden_input": false }, @@ -61660,12 +61145,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_eaedc_standard_assistance" - ], - "subtracts": [ - "ma_eaedc_net_income" - ], + "adds": ["ma_eaedc_standard_assistance"], + "subtracts": ["ma_eaedc_net_income"], "hidden_input": false }, "ma_eaedc": { @@ -61698,9 +61179,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_eaedc_dependent_care_deduction_person" - ], + "adds": ["ma_eaedc_dependent_care_deduction_person"], "subtracts": null, "hidden_input": false }, @@ -61768,10 +61247,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_tcap_gross_unearned_income", - "ma_eaedc_countable_earned_income" - ], + "adds": ["ma_tcap_gross_unearned_income", "ma_eaedc_countable_earned_income"], "subtracts": null, "hidden_input": false }, @@ -62043,9 +61519,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_tafdc_if_claimed" - ], + "adds": ["ma_tafdc_if_claimed"], "subtracts": null, "hidden_input": false }, @@ -62117,10 +61591,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_tafdc_earned_income_after_deductions", - "ma_tafdc_countable_unearned_income" - ], + "adds": ["ma_tafdc_earned_income_after_deductions", "ma_tafdc_countable_unearned_income"], "subtracts": null, "hidden_input": false }, @@ -62137,10 +61608,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_tafdc_countable_earned_income", - "ma_tafdc_countable_unearned_income" - ], + "adds": ["ma_tafdc_countable_earned_income", "ma_tafdc_countable_unearned_income"], "subtracts": null, "hidden_input": false }, @@ -62259,9 +61727,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.states.ma.dta.tcap.deductions.work_related_expenses.amount" - ], + "adds": ["gov.states.ma.dta.tcap.deductions.work_related_expenses.amount"], "subtracts": null, "hidden_input": false }, @@ -62278,9 +61744,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_tafdc_dependent_care_deduction_person" - ], + "adds": ["ma_tafdc_dependent_care_deduction_person"], "subtracts": null, "hidden_input": false }, @@ -62637,12 +62101,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ma_refundable_credits" - ], + "adds": ["ma_income_tax_before_refundable_credits"], + "subtracts": ["ma_refundable_credits"], "hidden_input": false }, "ma_gross_income": { @@ -62913,11 +62373,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_part_a_agi", - "ma_part_b_agi", - "ma_part_c_agi" - ], + "adds": ["ma_part_a_agi", "ma_part_b_agi", "ma_part_c_agi"], "subtracts": null, "hidden_input": false }, @@ -62934,9 +62390,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_part_c_gross_income" - ], + "adds": ["ma_part_c_gross_income"], "subtracts": null, "hidden_input": false }, @@ -62970,10 +62424,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ma_part_a_taxable_dividend_income", - "ma_part_a_taxable_capital_gains_income" - ], + "adds": ["ma_part_a_taxable_dividend_income", "ma_part_a_taxable_capital_gains_income"], "subtracts": null, "hidden_input": false }, @@ -63288,9 +62739,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "irs_gross_income" - ], + "adds": ["irs_gross_income"], "subtracts": null, "hidden_input": false }, @@ -63509,10 +62958,7 @@ "isInputVariable": false, "defaultValue": 0, "adds": "gov.states.mi.tax.income.household_resources", - "subtracts": [ - "health_insurance_premiums", - "above_the_line_deductions" - ], + "subtracts": ["health_insurance_premiums", "above_the_line_deductions"], "hidden_input": false }, "mi_refundable_credits": { @@ -63630,12 +63076,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mi_income_tax_before_refundable_credits" - ], - "subtracts": [ - "mi_refundable_credits" - ], + "adds": ["mi_income_tax_before_refundable_credits"], + "subtracts": ["mi_refundable_credits"], "hidden_input": false }, "mi_income_tax_before_non_refundable_credits": { @@ -63978,10 +63420,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mi_standard_deduction_tier_two", - "mi_standard_deduction_tier_three" - ], + "adds": ["mi_standard_deduction_tier_two", "mi_standard_deduction_tier_three"], "subtracts": null, "hidden_input": false }, @@ -64171,9 +63610,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mi_retirement_benefits_deduction_tier_one_amount" - ], + "adds": ["mi_retirement_benefits_deduction_tier_one_amount"], "subtracts": null, "hidden_input": false }, @@ -64326,13 +63763,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ok_income_tax_before_refundable_credits", - "ok_use_tax" - ], - "subtracts": [ - "ok_refundable_credits" - ], + "adds": ["ok_income_tax_before_refundable_credits", "ok_use_tax"], + "subtracts": ["ok_refundable_credits"], "hidden_input": false }, "ok_agi_subtractions": { @@ -64382,13 +63814,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ok_additions" - ], - "subtracts": [ - "ok_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "ok_additions"], + "subtracts": ["ok_agi_subtractions"], "hidden_input": false }, "ok_income_tax_before_credits": { @@ -64931,9 +64358,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_agi" - ], + "adds": ["oh_agi"], "subtracts": null, "hidden_input": false }, @@ -64984,12 +64409,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_income_tax_before_refundable_credits" - ], - "subtracts": [ - "oh_refundable_credits" - ], + "adds": ["oh_income_tax_before_refundable_credits"], + "subtracts": ["oh_refundable_credits"], "hidden_input": false }, "oh_income_tax_before_refundable_credits": { @@ -65141,9 +64562,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_adoption_credit_person" - ], + "adds": ["oh_adoption_credit_person"], "subtracts": null, "hidden_input": false }, @@ -65228,9 +64647,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_lump_sum_distribution_credit_person" - ], + "adds": ["oh_lump_sum_distribution_credit_person"], "subtracts": null, "hidden_input": false }, @@ -65366,12 +64783,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_agi_person" - ], - "subtracts": [ - "oh_joint_filing_credit_agi_subtractions" - ], + "adds": ["oh_agi_person"], + "subtracts": ["oh_joint_filing_credit_agi_subtractions"], "hidden_input": false }, "oh_retirement_credit": { @@ -65506,9 +64919,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_agi_person" - ], + "adds": ["oh_agi_person"], "subtracts": null, "hidden_input": false }, @@ -65525,13 +64936,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income_person", - "oh_additions" - ], - "subtracts": [ - "oh_deductions" - ], + "adds": ["adjusted_gross_income_person", "oh_additions"], + "subtracts": ["oh_deductions"], "hidden_input": false }, "oh_other_add_backs": { @@ -65666,9 +65072,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "oh_unreimbursed_medical_care_expense_deduction_person" - ], + "adds": ["oh_unreimbursed_medical_care_expense_deduction_person"], "subtracts": null, "hidden_input": false }, @@ -65927,9 +65331,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.states.il.rta.cta.monthly_pass_cost.full_fare" - ], + "adds": ["gov.states.il.rta.cta.monthly_pass_cost.full_fare"], "subtracts": null, "hidden_input": false }, @@ -66031,12 +65433,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "il_total_tax" - ], - "subtracts": [ - "il_refundable_credits" - ], + "adds": ["il_total_tax"], + "subtracts": ["il_refundable_credits"], "hidden_input": false }, "il_use_tax": { @@ -66069,10 +65467,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "il_income_tax_before_refundable_credits", - "il_use_tax" - ], + "adds": ["il_income_tax_before_refundable_credits", "il_use_tax"], "subtracts": null, "hidden_input": false }, @@ -66242,11 +65637,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "il_personal_exemption", - "il_aged_blind_exemption", - "il_dependent_exemption" - ], + "adds": ["il_personal_exemption", "il_aged_blind_exemption", "il_dependent_exemption"], "subtracts": null, "hidden_input": false }, @@ -66430,13 +65821,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "il_base_income_additions" - ], - "subtracts": [ - "il_base_income_subtractions" - ], + "adds": ["adjusted_gross_income", "il_base_income_additions"], + "subtracts": ["il_base_income_subtractions"], "hidden_input": false }, "il_aabd_institutional_status": { @@ -66562,9 +65948,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "il_aabd_person" - ], + "adds": ["il_aabd_person"], "subtracts": null, "hidden_input": false }, @@ -66912,9 +66296,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.states.il.dhs.aabd.payment.grant_amount" - ], + "adds": ["gov.states.il.dhs.aabd.payment.grant_amount"], "subtracts": null, "hidden_input": false }, @@ -67379,10 +66761,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "il_tanf_payment_eligible_child", - "il_tanf_payment_eligible_parent" - ], + "adds": ["il_tanf_payment_eligible_child", "il_tanf_payment_eligible_parent"], "subtracts": null, "hidden_input": false }, @@ -67552,12 +66931,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ut_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ut_refundable_credits" - ], + "adds": ["ut_income_tax_before_refundable_credits"], + "subtracts": ["ut_refundable_credits"], "hidden_input": false }, "ut_income_tax_before_refundable_credits": { @@ -67777,9 +67152,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ut_retirement_credit_max" - ], + "adds": ["ut_retirement_credit_max"], "subtracts": null, "hidden_input": false }, @@ -67881,9 +67254,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ut_personal_exemption_additional_dependent_eligible" - ], + "adds": ["ut_personal_exemption_additional_dependent_eligible"], "subtracts": null, "hidden_input": false }, @@ -67917,9 +67288,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "tax_unit_count_dependents" - ], + "adds": ["tax_unit_count_dependents"], "subtracts": null, "hidden_input": false }, @@ -68021,13 +67390,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ut_total_income" - ], - "subtracts": [ - "ut_subtractions", - "ut_state_tax_refund" - ], + "adds": ["ut_total_income"], + "subtracts": ["ut_subtractions", "ut_state_tax_refund"], "hidden_input": false }, "ut_state_tax_refund": { @@ -68043,9 +67407,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "salt_refund_last_year" - ], + "adds": ["salt_refund_last_year"], "subtracts": null, "hidden_input": false }, @@ -68062,10 +67424,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ut_additions" - ], + "adds": ["adjusted_gross_income", "ut_additions"], "subtracts": null, "hidden_input": false }, @@ -68184,13 +67543,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income_person", - "dc_additions" - ], - "subtracts": [ - "dc_income_subtractions" - ], + "adds": ["adjusted_gross_income_person", "dc_additions"], + "subtracts": ["dc_income_subtractions"], "hidden_input": false }, "dc_withheld_income_tax": { @@ -68240,9 +67594,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dc_taxable_income_indiv" - ], + "adds": ["dc_taxable_income_indiv"], "subtracts": null, "hidden_input": false }, @@ -68259,12 +67611,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dc_agi" - ], - "subtracts": [ - "dc_deduction_indiv" - ], + "adds": ["dc_agi"], + "subtracts": ["dc_deduction_indiv"], "hidden_input": false }, "dc_files_separately": { @@ -68297,12 +67645,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dc_income_tax_before_refundable_credits" - ], - "subtracts": [ - "dc_refundable_credits" - ], + "adds": ["dc_income_tax_before_refundable_credits"], + "subtracts": ["dc_refundable_credits"], "hidden_input": false }, "dc_cdcc": { @@ -68607,10 +67951,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "basic_standard_deduction", - "additional_standard_deduction" - ], + "adds": ["basic_standard_deduction", "additional_standard_deduction"], "subtracts": null, "hidden_input": false }, @@ -69320,9 +68661,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dc_gac_eligible_child" - ], + "adds": ["dc_gac_eligible_child"], "subtracts": null, "hidden_input": false }, @@ -69356,9 +68695,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dc_tanf_gross_unearned_income" - ], + "adds": ["dc_tanf_gross_unearned_income"], "subtracts": null, "hidden_input": false }, @@ -69565,12 +68902,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "spm_unit_size" - ], - "subtracts": [ - "dc_gac_assistance_unit_size" - ], + "adds": ["spm_unit_size"], + "subtracts": ["dc_gac_assistance_unit_size"], "hidden_input": false }, "dc_tanf_countable_income": { @@ -69671,9 +69004,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "dc_tanf_earned_income_after_disregard_person" - ], + "adds": ["dc_tanf_earned_income_after_disregard_person"], "subtracts": null, "hidden_input": false }, @@ -69928,12 +69259,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "al_income_tax_before_refundable_credits" - ], - "subtracts": [ - "al_refundable_credits" - ], + "adds": ["al_income_tax_before_refundable_credits"], + "subtracts": ["al_refundable_credits"], "hidden_input": false }, "al_income_tax_before_non_refundable_credits": { @@ -70051,9 +69378,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "al_retirement_exemption_person" - ], + "adds": ["al_retirement_exemption_person"], "subtracts": null, "hidden_input": false }, @@ -70155,10 +69480,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mortgage_interest", - "investment_interest_expense" - ], + "adds": ["mortgage_interest", "investment_interest_expense"], "subtracts": null, "hidden_input": false }, @@ -70294,12 +69616,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ri_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ri_refundable_credits" - ], + "adds": ["ri_income_tax_before_refundable_credits"], + "subtracts": ["ri_refundable_credits"], "hidden_input": false }, "ri_income_tax_before_non_refundable_credits": { @@ -70349,13 +69667,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ri_additions" - ], - "subtracts": [ - "ri_subtractions" - ], + "adds": ["adjusted_gross_income", "ri_additions"], + "subtracts": ["ri_subtractions"], "hidden_input": false }, "ri_additions": { @@ -70711,14 +70024,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "in_add_backs" - ], - "subtracts": [ - "in_deductions", - "in_exemptions" - ], + "adds": ["adjusted_gross_income", "in_add_backs"], + "subtracts": ["in_deductions", "in_exemptions"], "hidden_input": false }, "in_income_tax_before_refundable_credits": { @@ -70734,10 +70041,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "in_agi_tax", - "in_use_tax" - ], + "adds": ["in_agi_tax", "in_use_tax"], "subtracts": null, "hidden_input": false }, @@ -70754,12 +70058,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "in_income_tax_before_refundable_credits" - ], - "subtracts": [ - "in_refundable_credits" - ], + "adds": ["in_income_tax_before_refundable_credits"], + "subtracts": ["in_refundable_credits"], "hidden_input": false }, "in_refundable_credits": { @@ -70775,10 +70075,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "in_eitc", - "in_unified_elderly_tax_credit" - ], + "adds": ["in_eitc", "in_unified_elderly_tax_credit"], "subtracts": null, "hidden_input": false }, @@ -70920,9 +70217,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "in_is_qualifying_dependent_child" - ], + "adds": ["in_is_qualifying_dependent_child"], "subtracts": null, "hidden_input": false }, @@ -71320,13 +70615,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "id_income_tax_before_refundable_credits", - "id_pbf" - ], - "subtracts": [ - "id_refundable_credits" - ], + "adds": ["id_income_tax_before_refundable_credits", "id_pbf"], + "subtracts": ["id_refundable_credits"], "hidden_input": false }, "id_refundable_credits": { @@ -71427,13 +70717,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "id_additions", - "adjusted_gross_income" - ], - "subtracts": [ - "id_subtractions" - ], + "adds": ["id_additions", "adjusted_gross_income"], + "subtracts": ["id_subtractions"], "hidden_input": false }, "id_withheld_income_tax": { @@ -71891,13 +71176,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "wi_additions" - ], - "subtracts": [ - "wi_income_subtractions" - ], + "adds": ["adjusted_gross_income", "wi_additions"], + "subtracts": ["wi_income_subtractions"], "hidden_input": false }, "wi_withheld_income_tax": { @@ -71964,12 +71244,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wi_income_tax_before_refundable_credits" - ], - "subtracts": [ - "wi_refundable_credits" - ], + "adds": ["wi_income_tax_before_refundable_credits"], + "subtracts": ["wi_refundable_credits"], "hidden_input": false }, "wi_income_tax_before_credits": { @@ -72206,10 +71482,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wi_base_exemption", - "wi_additional_exemption" - ], + "adds": ["wi_base_exemption", "wi_additional_exemption"], "subtracts": null, "hidden_input": false }, @@ -72396,9 +71669,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ca_calworks_child_care" - ], + "adds": ["ca_calworks_child_care"], "subtracts": null, "hidden_input": false }, @@ -72488,9 +71759,7 @@ "ca_mental_health_services_tax", "ca_use_tax" ], - "subtracts": [ - "ca_refundable_credits" - ], + "subtracts": ["ca_refundable_credits"], "hidden_input": false }, "ca_agi_subtractions": { @@ -72557,13 +71826,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "ca_additions" - ], - "subtracts": [ - "ca_agi_subtractions" - ], + "adds": ["adjusted_gross_income", "ca_additions"], + "subtracts": ["ca_agi_subtractions"], "hidden_input": false }, "ca_income_tax_before_refundable_credits": { @@ -72906,9 +72170,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ca_foster_youth_tax_credit_person" - ], + "adds": ["ca_foster_youth_tax_credit_person"], "subtracts": null, "hidden_input": false }, @@ -73150,10 +72412,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": false, - "adds": [ - "ca_care_categorically_eligible", - "ca_care_income_eligible" - ], + "adds": ["ca_care_categorically_eligible", "ca_care_income_eligible"], "subtracts": null, "hidden_input": false }, @@ -73357,10 +72616,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ssi_countable_resources", - "ca_capi_countable_vehicle_value" - ], + "adds": ["ssi_countable_resources", "ca_capi_countable_vehicle_value"], "subtracts": null, "hidden_input": false }, @@ -74253,9 +73509,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ca_calworks_child_care_payment" - ], + "adds": ["ca_calworks_child_care_payment"], "subtracts": null, "hidden_input": false }, @@ -74442,12 +73696,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mn_income_tax_before_refundable_credits" - ], - "subtracts": [ - "mn_refundable_credits" - ], + "adds": ["mn_income_tax_before_refundable_credits"], + "subtracts": ["mn_refundable_credits"], "hidden_input": false }, "mn_niit": { @@ -74990,12 +74240,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nj_property_tax_credit", - "nj_eitc", - "nj_cdcc", - "nj_ctc" - ], + "adds": ["nj_property_tax_credit", "nj_eitc", "nj_cdcc", "nj_ctc"], "subtracts": null, "hidden_input": false }, @@ -75545,9 +74790,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nj_medical_expense_deduction" - ], + "adds": ["nj_medical_expense_deduction"], "subtracts": null, "hidden_input": false }, @@ -75666,13 +74909,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ky_additions", - "adjusted_gross_income_person" - ], - "subtracts": [ - "ky_subtractions" - ], + "adds": ["ky_additions", "adjusted_gross_income_person"], + "subtracts": ["ky_subtractions"], "hidden_input": false }, "ky_income_tax": { @@ -75688,12 +74926,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ky_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ky_refundable_credits" - ], + "adds": ["ky_income_tax_before_refundable_credits"], + "subtracts": ["ky_refundable_credits"], "hidden_input": false }, "ky_taxable_income_indiv": { @@ -76173,12 +75407,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "itemized_deductions_less_salt" - ], - "subtracts": [ - "medical_expense_deduction" - ], + "adds": ["itemized_deductions_less_salt"], + "subtracts": ["medical_expense_deduction"], "hidden_input": false }, "ky_standard_deduction_joint": { @@ -76347,13 +75577,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pa_income_tax_after_forgiveness", - "pa_use_tax" - ], - "subtracts": [ - "pa_refundable_tax_credits" - ], + "adds": ["pa_income_tax_after_forgiveness", "pa_use_tax"], + "subtracts": ["pa_refundable_tax_credits"], "hidden_input": false }, "pa_tax_forgiveness_rate": { @@ -76386,12 +75611,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pa_income_tax_before_forgiveness" - ], - "subtracts": [ - "pa_tax_forgiveness_amount" - ], + "adds": ["pa_income_tax_before_forgiveness"], + "subtracts": ["pa_tax_forgiveness_amount"], "hidden_input": false }, "pa_income_tax_before_forgiveness": { @@ -76492,12 +75713,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "pa_total_taxable_income" - ], - "subtracts": [ - "pa_tax_deductions" - ], + "adds": ["pa_total_taxable_income"], + "subtracts": ["pa_tax_deductions"], "hidden_input": false }, "pa_total_taxable_income": { @@ -76683,13 +75900,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "wv_additions" - ], - "subtracts": [ - "wv_subtractions" - ], + "adds": ["adjusted_gross_income", "wv_additions"], + "subtracts": ["wv_subtractions"], "hidden_input": false }, "wv_income_tax_before_refundable_credits": { @@ -76773,12 +75985,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wv_income_tax_before_refundable_credits" - ], - "subtracts": [ - "wv_refundable_credits" - ], + "adds": ["wv_income_tax_before_refundable_credits"], + "subtracts": ["wv_refundable_credits"], "hidden_input": false }, "wv_cdcc": { @@ -76845,12 +76053,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "assessed_property_value" - ], - "subtracts": [ - "wv_homestead_exemption" - ], + "adds": ["assessed_property_value"], + "subtracts": ["wv_homestead_exemption"], "hidden_input": false }, "wv_homestead_excess_property_tax_credit_eligible": { @@ -76934,11 +76138,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "adjusted_gross_income", - "tax_exempt_interest_income", - "wv_additions" - ], + "adds": ["adjusted_gross_income", "tax_exempt_interest_income", "wv_additions"], "subtracts": null, "hidden_input": false }, @@ -77091,9 +76291,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wv_social_security_benefits_subtraction_person" - ], + "adds": ["wv_social_security_benefits_subtraction_person"], "subtracts": null, "hidden_input": false }, @@ -77161,9 +76359,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wv_senior_citizen_disability_deduction_person" - ], + "adds": ["wv_senior_citizen_disability_deduction_person"], "subtracts": null, "hidden_input": false }, @@ -77197,9 +76393,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "wv_public_pension_subtraction_person" - ], + "adds": ["wv_public_pension_subtraction_person"], "subtracts": null, "hidden_input": false }, @@ -77301,12 +76495,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ia_income_tax_before_refundable_credits" - ], - "subtracts": [ - "ia_refundable_credits" - ], + "adds": ["ia_income_tax_before_refundable_credits"], + "subtracts": ["ia_refundable_credits"], "hidden_input": false }, "ia_reportable_social_security": { @@ -77424,10 +76614,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ia_base_tax_joint", - "ia_amt_joint" - ], + "adds": ["ia_base_tax_joint", "ia_amt_joint"], "subtracts": null, "hidden_input": false }, @@ -77444,10 +76631,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ia_base_tax_indiv", - "ia_amt_indiv" - ], + "adds": ["ia_base_tax_indiv", "ia_amt_indiv"], "subtracts": null, "hidden_input": false }, @@ -78025,12 +77209,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "ia_additions_consolidated" - ], - "subtracts": [ - "ia_subtractions_consolidated" - ], + "adds": ["ia_additions_consolidated"], + "subtracts": ["ia_subtractions_consolidated"], "hidden_input": false }, "ia_taxable_income_consolidated": { @@ -78183,12 +77363,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "az_income_tax_before_refundable_credits" - ], - "subtracts": [ - "az_refundable_credits" - ], + "adds": ["az_income_tax_before_refundable_credits"], + "subtracts": ["az_refundable_credits"], "hidden_input": false }, "az_subtractions": { @@ -79130,9 +78306,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mt_tuition_subtraction_person" - ], + "adds": ["mt_tuition_subtraction_person"], "subtracts": null, "hidden_input": false }, @@ -79166,9 +78340,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mt_disability_income_exclusion_person" - ], + "adds": ["mt_disability_income_exclusion_person"], "subtracts": null, "hidden_input": false }, @@ -79321,12 +78493,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mt_income_tax_before_refundable_credits_joint" - ], - "subtracts": [ - "mt_refundable_credits" - ], + "adds": ["mt_income_tax_before_refundable_credits_joint"], + "subtracts": ["mt_refundable_credits"], "hidden_input": false }, "mt_regular_income_tax_indiv": { @@ -79359,10 +78527,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mt_capital_gains_tax_indiv", - "mt_regular_income_tax_indiv" - ], + "adds": ["mt_capital_gains_tax_indiv", "mt_regular_income_tax_indiv"], "subtracts": null, "hidden_input": false }, @@ -79447,10 +78612,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mt_capital_gains_tax_joint", - "mt_regular_income_tax_joint" - ], + "adds": ["mt_capital_gains_tax_joint", "mt_regular_income_tax_joint"], "subtracts": null, "hidden_input": false }, @@ -79623,9 +78785,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "mt_child_dependent_care_expense_deduction_eligible_child" - ], + "adds": ["mt_child_dependent_care_expense_deduction_eligible_child"], "subtracts": null, "hidden_input": false }, @@ -79846,12 +79006,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "nm_income_tax_before_refundable_credits" - ], - "subtracts": [ - "nm_refundable_credits" - ], + "adds": ["nm_income_tax_before_refundable_credits"], + "subtracts": ["nm_refundable_credits"], "hidden_input": false }, "nm_other_deductions_and_exemptions": { @@ -80547,12 +79703,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_income_tax_before_refundable_credits" - ], - "subtracts": [ - "md_refundable_credits" - ], + "adds": ["md_income_tax_before_refundable_credits"], + "subtracts": ["md_refundable_credits"], "hidden_input": false }, "md_income_tax_before_refundable_credits": { @@ -80653,9 +79805,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_socsec_subtraction_amount" - ], + "adds": ["md_socsec_subtraction_amount"], "subtracts": null, "hidden_input": false }, @@ -80672,9 +79822,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "taxable_social_security" - ], + "adds": ["taxable_social_security"], "subtracts": null, "hidden_input": false }, @@ -80691,9 +79839,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_pension_subtraction_amount" - ], + "adds": ["md_pension_subtraction_amount"], "subtracts": null, "hidden_input": false }, @@ -80778,9 +79924,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_hundred_year_subtraction_person" - ], + "adds": ["md_hundred_year_subtraction_person"], "subtracts": null, "hidden_input": false }, @@ -80899,10 +80043,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_non_refundable_eitc", - "md_refundable_eitc" - ], + "adds": ["md_non_refundable_eitc", "md_refundable_eitc"], "subtracts": null, "hidden_input": false }, @@ -81163,11 +80304,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_aged_dependent_exemption", - "md_aged_exemption", - "md_blind_exemption" - ], + "adds": ["md_aged_dependent_exemption", "md_aged_exemption", "md_blind_exemption"], "subtracts": null, "hidden_input": false }, @@ -81201,10 +80338,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "md_total_personal_exemptions", - "md_aged_blind_exemptions" - ], + "adds": ["md_total_personal_exemptions", "md_aged_blind_exemptions"], "subtracts": null, "hidden_input": false }, @@ -81493,9 +80627,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.states.ak.dor.permanent_fund_dividend" - ], + "adds": ["gov.states.ak.dor.permanent_fund_dividend"], "subtracts": null, "hidden_input": false }, @@ -81512,9 +80644,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.states.ak.dor.energy_relief" - ], + "adds": ["gov.states.ak.dor.energy_relief"], "subtracts": null, "hidden_input": false }, @@ -81531,12 +80661,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "la_income_tax_before_refundable_credits" - ], - "subtracts": [ - "la_refundable_credits" - ], + "adds": ["la_income_tax_before_refundable_credits"], + "subtracts": ["la_refundable_credits"], "hidden_input": false }, "la_agi": { @@ -81756,9 +80882,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "la_school_readiness_tax_credit" - ], + "adds": ["la_school_readiness_tax_credit"], "subtracts": null, "hidden_input": false }, @@ -81792,12 +80916,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "la_school_readiness_tax_credit" - ], - "subtracts": [ - "la_school_readiness_tax_credit_refundable" - ], + "adds": ["la_school_readiness_tax_credit"], + "subtracts": ["la_school_readiness_tax_credit_refundable"], "hidden_input": false }, "la_quality_rating_of_child_care_facility": { @@ -81989,9 +81109,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "la_blind_exemption_person" - ], + "adds": ["la_blind_exemption_person"], "subtracts": null, "hidden_input": false }, @@ -82212,9 +81330,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "per_capita_chip" - ], + "adds": ["per_capita_chip"], "subtracts": null, "hidden_input": false }, @@ -82625,9 +81741,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "market_income" - ], + "adds": ["market_income"], "subtracts": null, "hidden_input": false }, @@ -82780,9 +81894,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": false, - "adds": [ - "takes_up_medicaid_if_eligible" - ], + "adds": ["takes_up_medicaid_if_eligible"], "subtracts": null, "hidden_input": false }, @@ -82816,9 +81928,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "medicaid_cost_if_enrolled" - ], + "adds": ["medicaid_cost_if_enrolled"], "subtracts": null, "hidden_input": false }, @@ -82835,9 +81945,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "medicaid_cost" - ], + "adds": ["medicaid_cost"], "subtracts": null, "hidden_input": false }, @@ -83700,9 +82808,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": false, - "adds": [ - "is_person_demographic_tanf_eligible" - ], + "adds": ["is_person_demographic_tanf_eligible"], "subtracts": null, "hidden_input": false }, @@ -84042,12 +83148,8 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "labor_supply_behavioral_response" - ], - "subtracts": [ - "employment_income_behavioral_response" - ], + "adds": ["labor_supply_behavioral_response"], + "subtracts": ["employment_income_behavioral_response"], "hidden_input": false }, "substitution_elasticity": { @@ -84097,9 +83199,7 @@ "indexInModule": 0, "isInputVariable": false, "defaultValue": 0, - "adds": [ - "gov.simulation.labor_supply_responses.elasticities.income" - ], + "adds": ["gov.simulation.labor_supply_responses.elasticities.income"], "subtracts": null, "hidden_input": false }, @@ -89226,10 +88326,7 @@ "unit": "list", "period": "year", "values": { - "0000-01-01": [ - "CITIZEN", - "LEGAL_PERMANENT_RESIDENT" - ] + "0000-01-01": ["CITIZEN", "LEGAL_PERMANENT_RESIDENT"] }, "economy": true, "household": true @@ -95135,15 +94232,8 @@ "unit": null, "period": null, "values": { - "2023-01-01": [ - "heat_pump", - "heat_pump_water_heater", - "biomass_stove_boiler" - ], - "2006-01-01": [ - "heat_pump", - "heat_pump_water_heater" - ] + "2023-01-01": ["heat_pump", "heat_pump_water_heater", "biomass_stove_boiler"], + "2006-01-01": ["heat_pump", "heat_pump_water_heater"] }, "economy": true, "household": true @@ -95416,11 +94506,7 @@ "unit": "list", "period": "year", "values": { - "2013-01-01": [ - "foreign_tax_credit", - "cdcc", - "non_refundable_american_opportunity_credit" - ] + "2013-01-01": ["foreign_tax_credit", "cdcc", "non_refundable_american_opportunity_credit"] }, "economy": true, "household": true @@ -95569,10 +94655,7 @@ "unit": "list", "period": "year", "values": { - "2013-01-01": [ - "foreign_tax_credit", - "cdcc" - ] + "2013-01-01": ["foreign_tax_credit", "cdcc"] }, "economy": true, "household": true @@ -96837,14 +95920,8 @@ "unit": "list", "period": "year", "values": { - "2018-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ], - "2015-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ] + "2018-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"], + "2015-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"] }, "economy": true, "household": true @@ -97171,12 +96248,8 @@ "unit": "list", "period": "year", "values": { - "2018-01-01": [ - "excess_payroll_tax_withheld" - ], - "2015-01-01": [ - "excess_payroll_tax_withheld" - ] + "2018-01-01": ["excess_payroll_tax_withheld"], + "2015-01-01": ["excess_payroll_tax_withheld"] }, "economy": true, "household": true @@ -97967,9 +97040,7 @@ "unit": "list", "period": "year", "values": { - "2013-01-01": [ - "foreign_tax_credit" - ] + "2013-01-01": ["foreign_tax_credit"] }, "economy": true, "household": true @@ -100230,10 +99301,7 @@ "unit": "list", "period": "year", "values": { - "2013-01-01": [ - "salt_deduction", - "misc_deduction" - ] + "2013-01-01": ["salt_deduction", "misc_deduction"] }, "economy": true, "household": true @@ -103128,10 +102196,7 @@ "unit": "list", "period": "year", "values": { - "2002-01-01": [ - "student_loan_interest_ald", - "puerto_rico_income" - ] + "2002-01-01": ["student_loan_interest_ald", "puerto_rico_income"] }, "economy": true, "household": true @@ -103161,9 +102226,7 @@ "unit": "list", "period": "year", "values": { - "2002-01-01": [ - "taxable_unemployment_compensation" - ] + "2002-01-01": ["taxable_unemployment_compensation"] }, "economy": true, "household": true @@ -104293,14 +103356,8 @@ "unit": "list", "period": "year", "values": { - "2018-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ], - "2015-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ] + "2018-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"], + "2015-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"] }, "economy": true, "household": true @@ -104499,14 +103556,8 @@ "unit": "list", "period": "year", "values": { - "2018-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ], - "2015-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ] + "2018-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"], + "2015-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"] }, "economy": true, "household": true @@ -105190,10 +104241,7 @@ "unit": "list", "period": "year", "values": { - "2013-01-01": [ - "unreimbursed_business_employee_expenses", - "tax_preparation_fees" - ] + "2013-01-01": ["unreimbursed_business_employee_expenses", "tax_preparation_fees"] }, "economy": true, "household": true @@ -105421,10 +104469,7 @@ "unit": "list", "period": "year", "values": { - "2013-01-01": [ - "state_and_local_sales_or_income_tax", - "real_estate_taxes" - ] + "2013-01-01": ["state_and_local_sales_or_income_tax", "real_estate_taxes"] }, "economy": true, "household": true @@ -268992,14 +268037,8 @@ "unit": "list", "period": "year", "values": { - "2018-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ], - "2015-01-01": [ - "CITIZEN", - "NON_CITIZEN_VALID_EAD" - ] + "2018-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"], + "2015-01-01": ["CITIZEN", "NON_CITIZEN_VALID_EAD"] }, "economy": true, "household": true @@ -269421,12 +268460,8 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "co_denver_property_tax_relief" - ], - "2015-01-01": [ - "co_denver_property_tax_relief" - ] + "2023-01-01": ["co_denver_property_tax_relief"], + "2015-01-01": ["co_denver_property_tax_relief"] }, "economy": false, "household": false @@ -269636,16 +268671,8 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "medicaid", - "chip", - "premium_tax_credit" - ], - "2015-01-01": [ - "medicaid", - "chip", - "premium_tax_credit" - ] + "2022-01-01": ["medicaid", "chip", "premium_tax_credit"], + "2015-01-01": ["medicaid", "chip", "premium_tax_credit"] }, "economy": false, "household": false @@ -270011,10 +269038,7 @@ "unit": null, "period": null, "values": { - "1975-01-01": [ - "employment_income", - "self_employment_income" - ] + "1975-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -334392,16 +333416,8 @@ "DEPORTATION_WITHHELD", "PAROLED_ONE_YEAR" ], - "2018-01-01": [ - "DACA_TPS", - "UNDOCUMENTED", - "TPS" - ], - "2015-01-01": [ - "DACA_TPS", - "UNDOCUMENTED", - "TPS" - ] + "2018-01-01": ["DACA_TPS", "UNDOCUMENTED", "TPS"], + "2015-01-01": ["DACA_TPS", "UNDOCUMENTED", "TPS"] }, "economy": true, "household": true @@ -349647,16 +348663,8 @@ "unit": "list", "period": null, "values": { - "2022-01-01": [ - "nyc_cdcc", - "nyc_eitc", - "nyc_school_tax_credit" - ], - "2015-01-01": [ - "nyc_cdcc", - "nyc_eitc", - "nyc_school_tax_credit" - ] + "2022-01-01": ["nyc_cdcc", "nyc_eitc", "nyc_school_tax_credit"], + "2015-01-01": ["nyc_cdcc", "nyc_eitc", "nyc_school_tax_credit"] }, "economy": true, "household": true @@ -350201,14 +349209,8 @@ "unit": "list", "period": null, "values": { - "2022-01-01": [ - "nyc_household_credit", - "nyc_unincorporated_business_credit" - ], - "2015-01-01": [ - "nyc_household_credit", - "nyc_unincorporated_business_credit" - ] + "2022-01-01": ["nyc_household_credit", "nyc_unincorporated_business_credit"], + "2015-01-01": ["nyc_household_credit", "nyc_unincorporated_business_credit"] }, "economy": true, "household": true @@ -353044,16 +352046,8 @@ "unit": "list", "period": "month", "values": { - "2016-12-01": [ - "medicaid", - "snap", - "ssi" - ], - "2015-01-01": [ - "medicaid", - "snap", - "ssi" - ] + "2016-12-01": ["medicaid", "snap", "ssi"], + "2015-01-01": ["medicaid", "snap", "ssi"] }, "economy": false, "household": true @@ -353080,16 +352074,8 @@ "unit": "list", "period": "month", "values": { - "2016-12-01": [ - "head_start", - "fdpir", - "tanf" - ], - "2015-01-01": [ - "head_start", - "fdpir", - "tanf" - ] + "2016-12-01": ["head_start", "fdpir", "tanf"], + "2015-01-01": ["head_start", "fdpir", "tanf"] }, "economy": false, "household": true @@ -353292,14 +352278,8 @@ "pr_compensatory_low_income_credit", "pr_earned_income_credit" ], - "2021-01-01": [ - "pr_low_income_credit", - "pr_compensatory_low_income_credit" - ], - "2015-01-01": [ - "pr_low_income_credit", - "pr_compensatory_low_income_credit" - ] + "2021-01-01": ["pr_low_income_credit", "pr_compensatory_low_income_credit"], + "2015-01-01": ["pr_low_income_credit", "pr_compensatory_low_income_credit"] }, "economy": true, "household": true @@ -362050,10 +361030,7 @@ "unit": "list", "period": "year", "values": { - "2027-01-01": [ - "HI", - "AK" - ], + "2027-01-01": ["HI", "AK"], "2018-01-01": [], "2015-01-01": [] }, @@ -362490,10 +361467,7 @@ "unit": null, "period": null, "values": { - "2009-01-01": [ - "employment_income", - "snap_self_employment_income_after_expense_deduction" - ] + "2009-01-01": ["employment_income", "snap_self_employment_income_after_expense_deduction"] }, "economy": true, "household": true @@ -365062,12 +364036,8 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "NC" - ], - "2015-01-01": [ - "NC" - ] + "2024-01-01": ["NC"], + "2015-01-01": ["NC"] }, "economy": true, "household": true @@ -367037,12 +366007,8 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "NC" - ], - "2015-01-01": [ - "NC" - ] + "2024-01-01": ["NC"], + "2015-01-01": ["NC"] }, "economy": true, "household": true @@ -381484,10 +380450,7 @@ "unit": null, "period": null, "values": { - "2009-01-01": [ - "ssi", - "is_tanf_non_cash_eligible" - ] + "2009-01-01": ["ssi", "is_tanf_non_cash_eligible"] }, "economy": true, "household": true @@ -382684,17 +381647,9 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "nd_mpc" - ], - "2021-01-01": [ - "nd_mpc", - "nd_rtrc" - ], - "2015-01-01": [ - "nd_mpc", - "nd_rtrc" - ] + "2023-01-01": ["nd_mpc"], + "2021-01-01": ["nd_mpc", "nd_rtrc"], + "2015-01-01": ["nd_mpc", "nd_rtrc"] }, "economy": true, "household": true @@ -382793,12 +381748,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "form_4972_lumpsum_distributions" - ], - "2015-01-01": [ - "form_4972_lumpsum_distributions" - ] + "2021-01-01": ["form_4972_lumpsum_distributions"], + "2015-01-01": ["form_4972_lumpsum_distributions"] }, "economy": true, "household": true @@ -384046,10 +382997,7 @@ "unit": "list", "period": null, "values": { - "2010-01-01": [ - "employment_income", - "self_employment_income" - ] + "2010-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -386899,18 +385847,8 @@ "co_income_qualified_senior_housing_credit", "co_sales_tax_refund" ], - "2021-01-01": [ - "co_cdcc", - "co_low_income_cdcc", - "co_eitc", - "co_sales_tax_refund" - ], - "2015-01-01": [ - "co_cdcc", - "co_low_income_cdcc", - "co_eitc", - "co_sales_tax_refund" - ] + "2021-01-01": ["co_cdcc", "co_low_income_cdcc", "co_eitc", "co_sales_tax_refund"], + "2015-01-01": ["co_cdcc", "co_low_income_cdcc", "co_eitc", "co_sales_tax_refund"] }, "economy": true, "household": true @@ -387299,10 +386237,7 @@ "unit": "list", "period": "year", "values": { - "1999-01-01": [ - "adjusted_gross_income", - "tax_exempt_social_security" - ] + "1999-01-01": ["adjusted_gross_income", "tax_exempt_social_security"] }, "economy": true, "household": true @@ -388788,15 +387723,9 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "is_child_dependent" - ], - "2022-01-01": [ - "ctc_qualifying_child" - ], - "2015-01-01": [ - "ctc_qualifying_child" - ] + "2024-01-01": ["is_child_dependent"], + "2022-01-01": ["ctc_qualifying_child"], + "2015-01-01": ["ctc_qualifying_child"] }, "economy": true, "household": true @@ -390327,14 +389256,8 @@ "co_qualified_business_income_deduction_addback", "co_federal_deduction_addback" ], - "2021-01-01": [ - "co_state_addback", - "co_qualified_business_income_deduction_addback" - ], - "2015-01-01": [ - "co_state_addback", - "co_qualified_business_income_deduction_addback" - ] + "2021-01-01": ["co_state_addback", "co_qualified_business_income_deduction_addback"], + "2015-01-01": ["co_state_addback", "co_qualified_business_income_deduction_addback"] }, "economy": true, "household": true @@ -391816,14 +390739,7 @@ "unit": "list", "period": "year", "values": { - "0000-01-01": [ - "ar", - "de", - "ia", - "ky", - "ms", - "mt" - ] + "0000-01-01": ["ar", "de", "ia", "ky", "ms", "mt"] }, "economy": false, "household": false @@ -392283,19 +391199,10 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "de_refundable_eitc" - ], - "2022-01-01": [ - "de_refundable_eitc", - "de_relief_rebate" - ], - "2019-01-01": [ - "de_refundable_eitc" - ], - "2015-01-01": [ - "de_refundable_eitc" - ] + "2023-01-01": ["de_refundable_eitc"], + "2022-01-01": ["de_refundable_eitc", "de_relief_rebate"], + "2019-01-01": ["de_refundable_eitc"], + "2015-01-01": ["de_refundable_eitc"] }, "economy": true, "household": true @@ -392479,14 +391386,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "de_pension_exclusion", - "taxable_social_security" - ], - "2015-01-01": [ - "de_pension_exclusion", - "taxable_social_security" - ] + "2021-01-01": ["de_pension_exclusion", "taxable_social_security"], + "2015-01-01": ["de_pension_exclusion", "taxable_social_security"] }, "economy": true, "household": true @@ -393450,12 +392351,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "ks_refundable_eitc" - ], - "2015-01-01": [ - "ks_refundable_eitc" - ] + "2021-01-01": ["ks_refundable_eitc"], + "2015-01-01": ["ks_refundable_eitc"] }, "economy": true, "household": true @@ -393468,12 +392365,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "ks_cdcc" - ], - "2015-01-01": [ - "ks_cdcc" - ] + "2021-01-01": ["ks_cdcc"], + "2015-01-01": ["ks_cdcc"] }, "economy": true, "household": true @@ -393563,12 +392456,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "ks_fstc" - ], - "2015-01-01": [ - "ks_fstc" - ] + "2021-01-01": ["ks_fstc"], + "2015-01-01": ["ks_fstc"] }, "economy": true, "household": true @@ -395775,17 +394664,9 @@ "unit": "list", "period": null, "values": { - "2024-01-01": [ - "me_non_refundable_child_care_credit" - ], - "2021-01-01": [ - "me_dependent_exemption_credit", - "me_non_refundable_child_care_credit" - ], - "2015-01-01": [ - "me_dependent_exemption_credit", - "me_non_refundable_child_care_credit" - ] + "2024-01-01": ["me_non_refundable_child_care_credit"], + "2021-01-01": ["me_dependent_exemption_credit", "me_non_refundable_child_care_credit"], + "2015-01-01": ["me_dependent_exemption_credit", "me_non_refundable_child_care_credit"] }, "economy": true, "household": true @@ -400477,14 +399358,8 @@ "unit": "list", "period": "year", "values": { - "2019-01-01": [ - "or_exemption_credit", - "or_retirement_credit" - ], - "2015-01-01": [ - "or_exemption_credit", - "or_retirement_credit" - ] + "2019-01-01": ["or_exemption_credit", "or_retirement_credit"], + "2015-01-01": ["or_exemption_credit", "or_retirement_credit"] }, "economy": true, "household": true @@ -402813,14 +401688,8 @@ "unit": "list", "period": "year", "values": { - "2020-01-01": [ - "or_federal_tax_liability_subtraction", - "taxable_social_security" - ], - "2015-01-01": [ - "or_federal_tax_liability_subtraction", - "taxable_social_security" - ] + "2020-01-01": ["or_federal_tax_liability_subtraction", "taxable_social_security"], + "2015-01-01": ["or_federal_tax_liability_subtraction", "taxable_social_security"] }, "economy": true, "household": true @@ -403731,14 +402600,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "ga_cdcc", - "ga_low_income_credit" - ], - "2015-01-01": [ - "ga_cdcc", - "ga_low_income_credit" - ] + "2021-01-01": ["ga_cdcc", "ga_low_income_credit"], + "2015-01-01": ["ga_cdcc", "ga_low_income_credit"] }, "economy": true, "household": true @@ -403920,12 +402783,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "form_4972_lumpsum_distributions" - ], - "2015-01-01": [ - "form_4972_lumpsum_distributions" - ] + "2021-01-01": ["form_4972_lumpsum_distributions"], + "2015-01-01": ["form_4972_lumpsum_distributions"] }, "economy": true, "household": true @@ -406118,25 +404977,10 @@ "unit": "list", "period": null, "values": { - "2025-01-01": [ - "vt_eitc", - "vt_cdcc", - "vt_ctc", - "vt_veteran_tax_credit" - ], - "2022-01-01": [ - "vt_eitc", - "vt_cdcc", - "vt_ctc" - ], - "2021-01-01": [ - "vt_eitc", - "vt_low_income_cdcc" - ], - "2015-01-01": [ - "vt_eitc", - "vt_low_income_cdcc" - ] + "2025-01-01": ["vt_eitc", "vt_cdcc", "vt_ctc", "vt_veteran_tax_credit"], + "2022-01-01": ["vt_eitc", "vt_cdcc", "vt_ctc"], + "2021-01-01": ["vt_eitc", "vt_low_income_cdcc"], + "2015-01-01": ["vt_eitc", "vt_low_income_cdcc"] }, "economy": true, "household": true @@ -412490,12 +411334,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "vt_charitable_contribution_credit" - ], - "2015-01-01": [ - "vt_charitable_contribution_credit" - ] + "2021-01-01": ["vt_charitable_contribution_credit"], + "2015-01-01": ["vt_charitable_contribution_credit"] }, "economy": true, "household": true @@ -419548,12 +418388,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "ct_eitc" - ], - "2015-01-01": [ - "ct_eitc" - ] + "2021-01-01": ["ct_eitc"], + "2015-01-01": ["ct_eitc"] }, "economy": true, "household": true @@ -419782,19 +418618,10 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "ct_property_tax_credit" - ], - "2022-01-01": [ - "ct_property_tax_credit", - "ct_child_tax_rebate" - ], - "2021-01-01": [ - "ct_property_tax_credit" - ], - "2015-01-01": [ - "ct_property_tax_credit" - ] + "2023-01-01": ["ct_property_tax_credit"], + "2022-01-01": ["ct_property_tax_credit", "ct_child_tax_rebate"], + "2021-01-01": ["ct_property_tax_credit"], + "2015-01-01": ["ct_property_tax_credit"] }, "economy": true, "household": true @@ -422257,12 +421084,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "ct_section_179_expense_add_back" - ], - "2015-01-01": [ - "ct_section_179_expense_add_back" - ] + "2021-01-01": ["ct_section_179_expense_add_back"], + "2015-01-01": ["ct_section_179_expense_add_back"] }, "economy": true, "household": true @@ -431254,14 +430077,8 @@ "unit": "list", "period": null, "values": { - "2023-03-22": [ - "employment_income", - "self_employment_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2023-03-22": ["employment_income", "self_employment_income"], + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -431744,12 +430561,8 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "va_refundable_eitc" - ], - "2015-01-01": [ - "va_refundable_eitc" - ] + "2022-01-01": ["va_refundable_eitc"], + "2015-01-01": ["va_refundable_eitc"] }, "economy": true, "household": true @@ -431762,19 +430575,10 @@ "unit": "list", "period": "year", "values": { - "2025-01-01": [ - "va_non_refundable_eitc" - ], - "2023-01-01": [ - "va_non_refundable_eitc", - "va_rebate" - ], - "2021-01-01": [ - "va_non_refundable_eitc" - ], - "2015-01-01": [ - "va_non_refundable_eitc" - ] + "2025-01-01": ["va_non_refundable_eitc"], + "2023-01-01": ["va_non_refundable_eitc", "va_rebate"], + "2021-01-01": ["va_non_refundable_eitc"], + "2015-01-01": ["va_non_refundable_eitc"] }, "economy": true, "household": true @@ -433451,23 +432255,10 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "ar_personal_credits", - "ar_cdcc" - ], - "2022-01-01": [ - "ar_inflation_relief_credit", - "ar_personal_credits", - "ar_cdcc" - ], - "2021-01-01": [ - "ar_personal_credits", - "ar_cdcc" - ], - "2015-01-01": [ - "ar_personal_credits", - "ar_cdcc" - ] + "2024-01-01": ["ar_personal_credits", "ar_cdcc"], + "2022-01-01": ["ar_inflation_relief_credit", "ar_personal_credits", "ar_cdcc"], + "2021-01-01": ["ar_personal_credits", "ar_cdcc"], + "2015-01-01": ["ar_personal_credits", "ar_cdcc"] }, "economy": true, "household": true @@ -433546,12 +432337,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "ar_capped_retirement_or_disability_benefits_exemption_person" - ], - "2015-01-01": [ - "ar_capped_retirement_or_disability_benefits_exemption_person" - ] + "2021-01-01": ["ar_capped_retirement_or_disability_benefits_exemption_person"], + "2015-01-01": ["ar_capped_retirement_or_disability_benefits_exemption_person"] }, "economy": true, "household": true @@ -463957,14 +462744,8 @@ "taxable_public_pension_income", "ne_military_retirement_subtraction" ], - "2021-01-01": [ - "ne_social_security_subtraction", - "ne_military_retirement_subtraction" - ], - "2015-01-01": [ - "ne_social_security_subtraction", - "ne_military_retirement_subtraction" - ] + "2021-01-01": ["ne_social_security_subtraction", "ne_military_retirement_subtraction"], + "2015-01-01": ["ne_social_security_subtraction", "ne_military_retirement_subtraction"] }, "economy": true, "household": true @@ -464131,14 +462912,8 @@ "ne_refundable_ctc", "ne_school_readiness_credit" ], - "2021-01-01": [ - "ne_cdcc_refundable", - "ne_eitc" - ], - "2015-01-01": [ - "ne_cdcc_refundable", - "ne_eitc" - ] + "2021-01-01": ["ne_cdcc_refundable", "ne_eitc"], + "2015-01-01": ["ne_cdcc_refundable", "ne_eitc"] }, "economy": true, "household": true @@ -464541,16 +463316,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "ne_exemptions", - "ne_elderly_disabled_credit", - "ne_cdcc_nonrefundable" - ], - "2015-01-01": [ - "ne_exemptions", - "ne_elderly_disabled_credit", - "ne_cdcc_nonrefundable" - ] + "2021-01-01": ["ne_exemptions", "ne_elderly_disabled_credit", "ne_cdcc_nonrefundable"], + "2015-01-01": ["ne_exemptions", "ne_elderly_disabled_credit", "ne_cdcc_nonrefundable"] }, "economy": true, "household": true @@ -465607,12 +464374,8 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "wa_working_families_tax_credit" - ], - "2015-01-01": [ - "wa_working_families_tax_credit" - ] + "2022-01-01": ["wa_working_families_tax_credit"], + "2015-01-01": ["wa_working_families_tax_credit"] }, "economy": true, "household": true @@ -466668,12 +465431,8 @@ "period": "year", "values": { "2023-01-01": [], - "2021-01-01": [ - "hi_eitc" - ], - "2015-01-01": [ - "hi_eitc" - ] + "2021-01-01": ["hi_eitc"], + "2015-01-01": ["hi_eitc"] }, "economy": true, "household": true @@ -471359,12 +470118,8 @@ "unit": "list", "period": "year", "values": { - "2020-01-01": [ - "mo_property_tax_credit" - ], - "2015-01-01": [ - "mo_property_tax_credit" - ] + "2020-01-01": ["mo_property_tax_credit"], + "2015-01-01": ["mo_property_tax_credit"] }, "economy": true, "household": true @@ -471551,11 +470306,7 @@ "unit": "currency-USD", "period": "year", "values": { - "2008-08-28": [ - "ssi", - "child_support_received", - "tanf_person" - ] + "2008-08-28": ["ssi", "child_support_received", "tanf_person"] }, "economy": true, "household": true @@ -471568,9 +470319,7 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "mo_wftc" - ], + "2023-01-01": ["mo_wftc"], "2020-01-01": [], "2015-01-01": [] }, @@ -472109,14 +470858,8 @@ "unit": "list", "period": "year", "values": { - "2018-01-01": [ - "eitc", - "recovery_rebate_credit" - ], - "2015-01-01": [ - "eitc", - "recovery_rebate_credit" - ] + "2018-01-01": ["eitc", "recovery_rebate_credit"], + "2015-01-01": ["eitc", "recovery_rebate_credit"] }, "economy": true, "household": true @@ -473363,12 +472106,8 @@ "unit": "currency-USD", "period": "year", "values": { - "2017-01-01": [ - "nc_ctc" - ], - "2015-01-01": [ - "nc_ctc" - ] + "2017-01-01": ["nc_ctc"], + "2015-01-01": ["nc_ctc"] }, "economy": true, "household": true @@ -682664,14 +681403,8 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "employment_income", - "self_employment_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2024-01-01": ["employment_income", "self_employment_income"], + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -683047,12 +681780,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "sc_tuition_credit" - ], - "2015-01-01": [ - "sc_tuition_credit" - ] + "2021-01-01": ["sc_tuition_credit"], + "2015-01-01": ["sc_tuition_credit"] }, "economy": true, "household": true @@ -683217,16 +681946,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "sc_cdcc", - "sc_eitc", - "sc_two_wage_earner_credit" - ], - "2015-01-01": [ - "sc_cdcc", - "sc_eitc", - "sc_two_wage_earner_credit" - ] + "2021-01-01": ["sc_cdcc", "sc_eitc", "sc_two_wage_earner_credit"], + "2015-01-01": ["sc_cdcc", "sc_eitc", "sc_two_wage_earner_credit"] }, "economy": true, "household": true @@ -683448,12 +682169,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "sc_state_tax_addback" - ], - "2015-01-01": [ - "sc_state_tax_addback" - ] + "2021-01-01": ["sc_state_tax_addback"], + "2015-01-01": ["sc_state_tax_addback"] }, "economy": true, "household": true @@ -684062,16 +682779,9 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "ms_charitable_contributions_credit", - "ms_cdcc" - ], - "2021-01-01": [ - "ms_charitable_contributions_credit" - ], - "2015-01-01": [ - "ms_charitable_contributions_credit" - ] + "2023-01-01": ["ms_charitable_contributions_credit", "ms_cdcc"], + "2021-01-01": ["ms_charitable_contributions_credit"], + "2015-01-01": ["ms_charitable_contributions_credit"] }, "economy": true, "household": true @@ -685500,14 +684210,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "employment_income", - "self_employment_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2021-01-01": ["employment_income", "self_employment_income"], + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -685906,14 +684610,8 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "spm_unit_cash_assets", - "retirement_distributions" - ], - "2015-01-01": [ - "spm_unit_cash_assets", - "retirement_distributions" - ] + "2022-01-01": ["spm_unit_cash_assets", "retirement_distributions"], + "2015-01-01": ["spm_unit_cash_assets", "retirement_distributions"] }, "economy": true, "household": true @@ -687677,12 +686375,8 @@ "unit": "list", "period": null, "values": { - "2020-01-01": [ - "ma_limited_income_tax_credit" - ], - "2015-01-01": [ - "ma_limited_income_tax_credit" - ] + "2020-01-01": ["ma_limited_income_tax_credit"], + "2015-01-01": ["ma_limited_income_tax_credit"] }, "economy": true, "household": true @@ -687707,12 +686401,8 @@ "unemployment_compensation", "claimed_ma_covid_19_essential_employee_premium_pay_program_2020" ], - "2020-01-01": [ - "unemployment_compensation" - ], - "2015-01-01": [ - "unemployment_compensation" - ] + "2020-01-01": ["unemployment_compensation"], + "2015-01-01": ["unemployment_compensation"] }, "economy": true, "household": true @@ -688784,18 +687474,8 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "ma_eaedc", - "ma_tafdc", - "snap", - "medicaid" - ], - "2015-01-01": [ - "ma_eaedc", - "ma_tafdc", - "snap", - "medicaid" - ] + "2024-01-01": ["ma_eaedc", "ma_tafdc", "snap", "medicaid"], + "2015-01-01": ["ma_eaedc", "ma_tafdc", "snap", "medicaid"] }, "economy": true, "household": true @@ -690393,16 +689073,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "mi_eitc", - "mi_home_heating_credit", - "mi_homestead_property_tax_credit" - ], - "2015-01-01": [ - "mi_eitc", - "mi_home_heating_credit", - "mi_homestead_property_tax_credit" - ] + "2021-01-01": ["mi_eitc", "mi_home_heating_credit", "mi_homestead_property_tax_credit"], + "2015-01-01": ["mi_eitc", "mi_home_heating_credit", "mi_homestead_property_tax_credit"] }, "economy": true, "household": true @@ -692188,12 +690860,8 @@ "unit": "list", "period": "year", "values": { - "2017-01-01": [ - "self_employment_tax_ald" - ], - "2015-01-01": [ - "self_employment_tax_ald" - ] + "2017-01-01": ["self_employment_tax_ald"], + "2015-01-01": ["self_employment_tax_ald"] }, "economy": true, "household": true @@ -693372,16 +692040,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "taxable_interest_income", - "dividend_income", - "capital_gains" - ], - "2015-01-01": [ - "taxable_interest_income", - "dividend_income", - "capital_gains" - ] + "2021-01-01": ["taxable_interest_income", "dividend_income", "capital_gains"], + "2015-01-01": ["taxable_interest_income", "dividend_income", "capital_gains"] }, "economy": true, "household": true @@ -693685,19 +692345,9 @@ "unit": "list", "period": null, "values": { - "2022-01-01": [ - "ok_ptc", - "ok_stc", - "ok_eitc" - ], - "2021-01-01": [ - "ok_ptc", - "ok_stc" - ], - "2015-01-01": [ - "ok_ptc", - "ok_stc" - ] + "2022-01-01": ["ok_ptc", "ok_stc", "ok_eitc"], + "2021-01-01": ["ok_ptc", "ok_stc"], + "2015-01-01": ["ok_ptc", "ok_stc"] }, "economy": true, "household": true @@ -693970,17 +692620,9 @@ "unit": "list", "period": null, "values": { - "2022-01-01": [ - "ok_child_care_child_tax_credit" - ], - "2021-01-01": [ - "ok_child_care_child_tax_credit", - "ok_eitc" - ], - "2015-01-01": [ - "ok_child_care_child_tax_credit", - "ok_eitc" - ] + "2022-01-01": ["ok_child_care_child_tax_credit"], + "2021-01-01": ["ok_child_care_child_tax_credit", "ok_eitc"], + "2015-01-01": ["ok_child_care_child_tax_credit", "ok_eitc"] }, "economy": true, "household": true @@ -701717,18 +700359,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "interest_income", - "dividend_income", - "capital_gains", - "rental_income" - ], - "2015-01-01": [ - "interest_income", - "dividend_income", - "capital_gains", - "rental_income" - ] + "2021-01-01": ["interest_income", "dividend_income", "capital_gains", "rental_income"], + "2015-01-01": ["interest_income", "dividend_income", "capital_gains", "rental_income"] }, "economy": true, "household": true @@ -702079,14 +700711,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "oh_bonus_depreciation_add_back", - "oh_other_add_backs" - ], - "2015-01-01": [ - "oh_bonus_depreciation_add_back", - "oh_other_add_backs" - ] + "2021-01-01": ["oh_bonus_depreciation_add_back", "oh_other_add_backs"], + "2015-01-01": ["oh_bonus_depreciation_add_back", "oh_other_add_backs"] }, "economy": true, "household": true @@ -702667,14 +701293,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "il_k12_education_expense_credit", - "il_property_tax_credit" - ], - "2015-01-01": [ - "il_k12_education_expense_credit", - "il_property_tax_credit" - ] + "2021-01-01": ["il_k12_education_expense_credit", "il_property_tax_credit"], + "2015-01-01": ["il_k12_education_expense_credit", "il_property_tax_credit"] }, "economy": true, "household": true @@ -702922,14 +701542,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "tax_exempt_interest_income", - "il_schedule_m_additions" - ], - "2015-01-01": [ - "tax_exempt_interest_income", - "il_schedule_m_additions" - ] + "2021-01-01": ["tax_exempt_interest_income", "il_schedule_m_additions"], + "2015-01-01": ["tax_exempt_interest_income", "il_schedule_m_additions"] }, "economy": true, "household": true @@ -703782,16 +702396,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "employment_income", - "self_employment_income", - "rental_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income", - "rental_income" - ] + "2021-01-01": ["employment_income", "self_employment_income", "rental_income"], + "2015-01-01": ["employment_income", "self_employment_income", "rental_income"] }, "economy": true, "household": true @@ -719614,12 +718220,8 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "COOK_COUNTY_IL" - ], - "2015-01-01": [ - "COOK_COUNTY_IL" - ] + "2024-01-01": ["COOK_COUNTY_IL"], + "2015-01-01": ["COOK_COUNTY_IL"] }, "economy": true, "household": true @@ -720251,16 +718853,8 @@ "unit": "list", "period": "year", "values": { - "2020-01-01": [ - "employment_income", - "self_employment_income", - "rental_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income", - "rental_income" - ] + "2020-01-01": ["employment_income", "self_employment_income", "rental_income"], + "2015-01-01": ["employment_income", "self_employment_income", "rental_income"] }, "economy": true, "household": true @@ -721408,22 +720002,9 @@ "unit": "list", "period": "year", "values": { - "2025-01-01": [ - "dc_eitc", - "dc_ptc", - "dc_kccatc", - "dc_ctc" - ], - "2021-01-01": [ - "dc_eitc", - "dc_ptc", - "dc_kccatc" - ], - "2015-01-01": [ - "dc_eitc", - "dc_ptc", - "dc_kccatc" - ] + "2025-01-01": ["dc_eitc", "dc_ptc", "dc_kccatc", "dc_ctc"], + "2021-01-01": ["dc_eitc", "dc_ptc", "dc_kccatc"], + "2015-01-01": ["dc_eitc", "dc_ptc", "dc_kccatc"] }, "economy": true, "household": true @@ -722226,12 +720807,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "dc_cdcc" - ], - "2015-01-01": [ - "dc_cdcc" - ] + "2021-01-01": ["dc_cdcc"], + "2015-01-01": ["dc_cdcc"] }, "economy": true, "household": true @@ -722351,12 +720928,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "dc_self_employment_loss_addition" - ], - "2015-01-01": [ - "dc_self_employment_loss_addition" - ] + "2021-01-01": ["dc_self_employment_loss_addition"], + "2015-01-01": ["dc_self_employment_loss_addition"] }, "economy": true, "household": true @@ -732031,14 +730604,8 @@ "unit": "list", "period": "year", "values": { - "2020-01-01": [ - "spm_unit_cash_assets", - "assessed_property_value" - ], - "2015-01-01": [ - "spm_unit_cash_assets", - "assessed_property_value" - ] + "2020-01-01": ["spm_unit_cash_assets", "assessed_property_value"], + "2015-01-01": ["spm_unit_cash_assets", "assessed_property_value"] }, "economy": true, "household": true @@ -732163,11 +730730,7 @@ "unit": "list", "period": "year", "values": { - "1975-01-01": [ - "dc_tanf", - "ssi", - "unemployment_compensation" - ] + "1975-01-01": ["dc_tanf", "ssi", "unemployment_compensation"] }, "economy": true, "household": true @@ -732685,14 +731248,8 @@ "unit": "list", "period": "year", "values": { - "2020-01-01": [ - "employment_income", - "self_employment_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2020-01-01": ["employment_income", "self_employment_income"], + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -733971,16 +732528,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "eitc", - "american_opportunity_credit", - "refundable_ctc" - ], - "2015-01-01": [ - "eitc", - "american_opportunity_credit", - "refundable_ctc" - ] + "2021-01-01": ["eitc", "american_opportunity_credit", "refundable_ctc"], + "2015-01-01": ["eitc", "american_opportunity_credit", "refundable_ctc"] }, "economy": true, "household": true @@ -734910,14 +733459,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "investment_in_529_plan", - "tax_exempt_unemployment_compensation" - ], - "2015-01-01": [ - "investment_in_529_plan", - "tax_exempt_unemployment_compensation" - ] + "2021-01-01": ["investment_in_529_plan", "tax_exempt_unemployment_compensation"], + "2015-01-01": ["investment_in_529_plan", "tax_exempt_unemployment_compensation"] }, "economy": true, "household": true @@ -734963,23 +733506,10 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "ri_eitc", - "ri_property_tax_credit" - ], - "2022-01-01": [ - "ri_eitc", - "ri_property_tax_credit", - "ri_child_tax_rebate" - ], - "2021-01-01": [ - "ri_eitc", - "ri_property_tax_credit" - ], - "2015-01-01": [ - "ri_eitc", - "ri_property_tax_credit" - ] + "2023-01-01": ["ri_eitc", "ri_property_tax_credit"], + "2022-01-01": ["ri_eitc", "ri_property_tax_credit", "ri_child_tax_rebate"], + "2021-01-01": ["ri_eitc", "ri_property_tax_credit"], + "2015-01-01": ["ri_eitc", "ri_property_tax_credit"] }, "economy": true, "household": true @@ -735590,12 +734120,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "ri_cdcc" - ], - "2015-01-01": [ - "ri_cdcc" - ] + "2021-01-01": ["ri_cdcc"], + "2015-01-01": ["ri_cdcc"] }, "economy": true, "household": true @@ -736190,14 +734716,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "in_eitc", - "in_unified_elderly_tax_credit" - ], - "2015-01-01": [ - "in_eitc", - "in_unified_elderly_tax_credit" - ] + "2021-01-01": ["in_eitc", "in_unified_elderly_tax_credit"], + "2015-01-01": ["in_eitc", "in_unified_elderly_tax_credit"] }, "economy": true, "household": true @@ -738684,13 +737204,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "id_grocery_credit", - "id_aged_or_disabled_credit" - ], - "2002-01-01": [ - "id_aged_or_disabled_credit" - ] + "2021-01-01": ["id_grocery_credit", "id_aged_or_disabled_credit"], + "2002-01-01": ["id_aged_or_disabled_credit"] }, "economy": true, "household": true @@ -738808,12 +737323,8 @@ "period": "year", "values": { "2026-01-01": [], - "2018-01-01": [ - "id_ctc" - ], - "2015-01-01": [ - "id_ctc" - ] + "2018-01-01": ["id_ctc"], + "2015-01-01": ["id_ctc"] }, "economy": true, "household": true @@ -740018,14 +738529,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "public_pension_income", - "military_retirement_pay" - ], - "2015-01-01": [ - "public_pension_income", - "military_retirement_pay" - ] + "2021-01-01": ["public_pension_income", "military_retirement_pay"], + "2015-01-01": ["public_pension_income", "military_retirement_pay"] }, "economy": true, "household": true @@ -740490,14 +738995,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "wi_earned_income_credit", - "wi_homestead_credit" - ], - "2015-01-01": [ - "wi_earned_income_credit", - "wi_homestead_credit" - ] + "2021-01-01": ["wi_earned_income_credit", "wi_homestead_credit"], + "2015-01-01": ["wi_earned_income_credit", "wi_homestead_credit"] }, "economy": true, "household": true @@ -743027,12 +741526,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "taxable_social_security" - ], - "2015-01-01": [ - "taxable_social_security" - ] + "2021-01-01": ["taxable_social_security"], + "2015-01-01": ["taxable_social_security"] }, "economy": true, "household": true @@ -743053,20 +741548,9 @@ "unit": "currency-USD", "period": "year", "values": { - "2022-01-01": [ - "ca_foster_youth_tax_credit", - "ca_eitc", - "ca_yctc", - "ca_sf_wftc" - ], - "2021-01-01": [ - "ca_eitc", - "ca_yctc" - ], - "2015-01-01": [ - "ca_eitc", - "ca_yctc" - ] + "2022-01-01": ["ca_foster_youth_tax_credit", "ca_eitc", "ca_yctc", "ca_sf_wftc"], + "2021-01-01": ["ca_eitc", "ca_yctc"], + "2015-01-01": ["ca_eitc", "ca_yctc"] }, "economy": true, "household": true @@ -743087,15 +741571,9 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "cdcc" - ], - "2021-01-01": [ - "ca_federal_capped_cdcc" - ], - "2012-01-01": [ - "cdcc" - ] + "2022-01-01": ["cdcc"], + "2021-01-01": ["ca_federal_capped_cdcc"], + "2012-01-01": ["cdcc"] }, "economy": true, "household": true @@ -744624,16 +743102,8 @@ "unit": "currency-USD", "period": "year", "values": { - "2021-01-01": [ - "ca_exemptions", - "ca_cdcc", - "ca_renter_credit" - ], - "2015-01-01": [ - "ca_exemptions", - "ca_cdcc", - "ca_renter_credit" - ] + "2021-01-01": ["ca_exemptions", "ca_cdcc", "ca_renter_credit"], + "2015-01-01": ["ca_exemptions", "ca_cdcc", "ca_renter_credit"] }, "economy": true, "household": true @@ -748483,18 +746953,8 @@ "unit": "list", "period": null, "values": { - "2022-06-01": [ - "medicaid", - "wic", - "snap", - "ssi" - ], - "2015-01-01": [ - "medicaid", - "wic", - "snap", - "ssi" - ] + "2022-06-01": ["medicaid", "wic", "snap", "ssi"], + "2015-01-01": ["medicaid", "wic", "snap", "ssi"] }, "economy": false, "household": false @@ -748521,14 +746981,8 @@ "unit": "list", "period": null, "values": { - "2022-06-01": [ - "tanf", - "head_start" - ], - "2015-01-01": [ - "tanf", - "head_start" - ] + "2022-06-01": ["tanf", "head_start"], + "2015-01-01": ["tanf", "head_start"] }, "economy": false, "household": false @@ -750124,14 +748578,8 @@ "unit": "list", "period": "month", "values": { - "2017-12-20": [ - "employment_income", - "self_employment_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2017-12-20": ["employment_income", "self_employment_income"], + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": true, "household": true @@ -750288,14 +748736,8 @@ "unit": "list", "period": "year", "values": { - "2022-07-01": [ - "assessed_property_value", - "spm_unit_cash_assets" - ], - "2015-01-01": [ - "assessed_property_value", - "spm_unit_cash_assets" - ] + "2022-07-01": ["assessed_property_value", "spm_unit_cash_assets"], + "2015-01-01": ["assessed_property_value", "spm_unit_cash_assets"] }, "economy": true, "household": true @@ -752271,14 +750713,8 @@ "unit": "list", "period": null, "values": { - "2016-01-01": [ - "medicaid", - "ssi" - ], - "2015-01-01": [ - "medicaid", - "ssi" - ] + "2016-01-01": ["medicaid", "ssi"], + "2015-01-01": ["medicaid", "ssi"] }, "economy": false, "household": false @@ -752435,18 +750871,9 @@ "unit": "list", "period": "year", "values": { - "2023-01-01": [ - "mn_cdcc", - "mn_child_and_working_families_credits" - ], - "2021-01-01": [ - "mn_cdcc", - "mn_wfc" - ], - "2015-01-01": [ - "mn_cdcc", - "mn_wfc" - ] + "2023-01-01": ["mn_cdcc", "mn_child_and_working_families_credits"], + "2021-01-01": ["mn_cdcc", "mn_wfc"], + "2015-01-01": ["mn_cdcc", "mn_wfc"] }, "economy": true, "household": true @@ -754440,12 +752867,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "mn_marriage_credit" - ], - "2015-01-01": [ - "mn_marriage_credit" - ] + "2021-01-01": ["mn_marriage_credit"], + "2015-01-01": ["mn_marriage_credit"] }, "economy": true, "household": true @@ -757104,12 +755527,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "form_4972_lumpsum_distributions" - ], - "2015-01-01": [ - "form_4972_lumpsum_distributions" - ] + "2021-01-01": ["form_4972_lumpsum_distributions"], + "2015-01-01": ["form_4972_lumpsum_distributions"] }, "economy": true, "household": true @@ -758396,14 +756815,8 @@ "unit": "list", "period": null, "values": { - "2023-03-22": [ - "employment_income", - "self_employment_income" - ], - "2015-01-01": [ - "employment_income", - "self_employment_income" - ] + "2023-03-22": ["employment_income", "self_employment_income"], + "2015-01-01": ["employment_income", "self_employment_income"] }, "economy": false, "household": false @@ -759624,12 +758037,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "taxable_social_security" - ], - "2015-01-01": [ - "taxable_social_security" - ] + "2021-01-01": ["taxable_social_security"], + "2015-01-01": ["taxable_social_security"] }, "economy": true, "household": true @@ -762983,10 +761392,7 @@ "unit": "list", "period": "year", "values": { - "1999-01-01": [ - "taxable_ira_distributions", - "taxable_401k_distributions" - ] + "1999-01-01": ["taxable_ira_distributions", "taxable_401k_distributions"] }, "economy": true, "household": true @@ -763093,11 +761499,7 @@ "unit": "list", "period": null, "values": { - "2004-01-01": [ - "pa_total_taxable_income", - "alimony_income", - "tax_exempt_interest_income" - ] + "2004-01-01": ["pa_total_taxable_income", "alimony_income", "tax_exempt_interest_income"] }, "economy": true, "household": true @@ -763144,9 +761546,7 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "pa_cdcc" - ], + "2022-01-01": ["pa_cdcc"], "2021-01-01": [], "2015-01-01": [] }, @@ -764296,14 +762696,8 @@ "unit": "list", "period": "year", "values": { - "2020-01-01": [ - "wv_sctc", - "wv_homestead_excess_property_tax_credit" - ], - "2015-01-01": [ - "wv_sctc", - "wv_homestead_excess_property_tax_credit" - ] + "2020-01-01": ["wv_sctc", "wv_homestead_excess_property_tax_credit"], + "2015-01-01": ["wv_sctc", "wv_homestead_excess_property_tax_credit"] }, "economy": true, "household": true @@ -764372,16 +762766,9 @@ "unit": "list", "period": "year", "values": { - "2024-01-01": [ - "wv_low_income_family_tax_credit", - "wv_cdcc" - ], - "2022-01-01": [ - "wv_low_income_family_tax_credit" - ], - "2015-01-01": [ - "wv_low_income_family_tax_credit" - ] + "2024-01-01": ["wv_low_income_family_tax_credit", "wv_cdcc"], + "2022-01-01": ["wv_low_income_family_tax_credit"], + "2015-01-01": ["wv_low_income_family_tax_credit"] }, "economy": true, "household": true @@ -768206,16 +766593,8 @@ "taxable_income_deductions", "qualified_business_income_deduction" ], - "2021-01-01": [ - "ia_net_income", - "ia_pension_exclusion", - "ia_reportable_social_security" - ], - "2015-01-01": [ - "ia_net_income", - "ia_pension_exclusion", - "ia_reportable_social_security" - ] + "2021-01-01": ["ia_net_income", "ia_pension_exclusion", "ia_reportable_social_security"], + "2015-01-01": ["ia_net_income", "ia_pension_exclusion", "ia_reportable_social_security"] }, "economy": true, "household": true @@ -768236,14 +766615,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "ia_cdcc", - "ia_eitc" - ], - "2015-01-01": [ - "ia_cdcc", - "ia_eitc" - ] + "2021-01-01": ["ia_cdcc", "ia_eitc"], + "2015-01-01": ["ia_cdcc", "ia_eitc"] }, "economy": true, "household": true @@ -768342,12 +766715,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "ia_exemption_credit" - ], - "2015-01-01": [ - "ia_exemption_credit" - ] + "2021-01-01": ["ia_exemption_credit"], + "2015-01-01": ["ia_exemption_credit"] }, "economy": true, "household": true @@ -769680,20 +768049,9 @@ "unit": "list", "period": null, "values": { - "2024-01-01": [ - "ia_qbi_deduction", - "ia_basic_deduction" - ], - "2021-01-01": [ - "ia_fedtax_deduction", - "ia_qbi_deduction", - "ia_basic_deduction" - ], - "2015-01-01": [ - "ia_fedtax_deduction", - "ia_qbi_deduction", - "ia_basic_deduction" - ] + "2024-01-01": ["ia_qbi_deduction", "ia_basic_deduction"], + "2021-01-01": ["ia_fedtax_deduction", "ia_qbi_deduction", "ia_basic_deduction"], + "2015-01-01": ["ia_fedtax_deduction", "ia_qbi_deduction", "ia_basic_deduction"] }, "economy": true, "household": true @@ -770084,14 +768442,8 @@ "unit": "list", "period": "year", "values": { - "2019-01-01": [ - "az_increased_excise_tax_credit", - "az_property_tax_credit" - ], - "2015-01-01": [ - "az_increased_excise_tax_credit", - "az_property_tax_credit" - ] + "2019-01-01": ["az_increased_excise_tax_credit", "az_property_tax_credit"], + "2015-01-01": ["az_increased_excise_tax_credit", "az_property_tax_credit"] }, "economy": true, "household": true @@ -771983,14 +770335,8 @@ "az_dependent_tax_credit", "az_family_tax_credit" ], - "2019-01-01": [ - "az_dependent_tax_credit", - "az_family_tax_credit" - ], - "2015-01-01": [ - "az_dependent_tax_credit", - "az_family_tax_credit" - ] + "2019-01-01": ["az_dependent_tax_credit", "az_family_tax_credit"], + "2015-01-01": ["az_dependent_tax_credit", "az_family_tax_credit"] }, "economy": true, "household": true @@ -773764,12 +772110,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "mt_eitc" - ], - "2015-01-01": [ - "mt_eitc" - ] + "2021-01-01": ["mt_eitc"], + "2015-01-01": ["mt_eitc"] }, "economy": true, "household": true @@ -774488,16 +772830,9 @@ "mt_income_tax_rebate", "mt_property_tax_rebate" ], - "2022-01-01": [ - "mt_capital_gain_credit", - "mt_property_tax_rebate" - ], - "2021-01-01": [ - "mt_capital_gain_credit" - ], - "2015-01-01": [ - "mt_capital_gain_credit" - ] + "2022-01-01": ["mt_capital_gain_credit", "mt_property_tax_rebate"], + "2021-01-01": ["mt_capital_gain_credit"], + "2015-01-01": ["mt_capital_gain_credit"] }, "economy": true, "household": true @@ -774945,9 +773280,7 @@ "mt_tuition_subtraction_person", "mt_disability_income_exclusion_person" ], - "2010-01-01": [ - "mt_disability_income_exclusion_person" - ] + "2010-01-01": ["mt_disability_income_exclusion_person"] }, "economy": true, "household": true @@ -777297,14 +775630,8 @@ "period": "year", "values": { "2024-01-01": [], - "2021-01-01": [ - "mt_child_dependent_care_expense_deduction", - "casualty_loss_deduction" - ], - "2015-01-01": [ - "mt_child_dependent_care_expense_deduction", - "casualty_loss_deduction" - ] + "2021-01-01": ["mt_child_dependent_care_expense_deduction", "casualty_loss_deduction"], + "2015-01-01": ["mt_child_dependent_care_expense_deduction", "casualty_loss_deduction"] }, "economy": true, "household": true @@ -786060,16 +784387,8 @@ "unit": "list", "period": null, "values": { - "2021-01-01": [ - "us_govt_interest", - "investment_in_529_plan", - "military_service_income" - ], - "2015-01-01": [ - "us_govt_interest", - "investment_in_529_plan", - "military_service_income" - ] + "2021-01-01": ["us_govt_interest", "investment_in_529_plan", "military_service_income"], + "2015-01-01": ["us_govt_interest", "investment_in_529_plan", "military_service_income"] }, "economy": true, "household": true @@ -787953,12 +786272,7 @@ "md_montgomery_eitc", "md_ctc" ], - "2015-01-01": [ - "md_refundable_cdcc", - "md_refundable_eitc", - "md_montgomery_eitc", - "md_ctc" - ] + "2015-01-01": ["md_refundable_cdcc", "md_refundable_eitc", "md_montgomery_eitc", "md_ctc"] }, "economy": true, "household": true @@ -788890,16 +787204,8 @@ "md_poverty_line_credit", "md_senior_tax_credit" ], - "2020-01-01": [ - "md_cdcc", - "md_non_refundable_eitc", - "md_poverty_line_credit" - ], - "2015-01-01": [ - "md_cdcc", - "md_non_refundable_eitc", - "md_poverty_line_credit" - ] + "2020-01-01": ["md_cdcc", "md_non_refundable_eitc", "md_poverty_line_credit"], + "2015-01-01": ["md_cdcc", "md_non_refundable_eitc", "md_poverty_line_credit"] }, "economy": true, "household": true @@ -792693,14 +790999,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "la_refundable_cdcc", - "la_eitc" - ], - "2015-01-01": [ - "la_refundable_cdcc", - "la_eitc" - ] + "2021-01-01": ["la_refundable_cdcc", "la_eitc"], + "2015-01-01": ["la_refundable_cdcc", "la_eitc"] }, "economy": true, "household": true @@ -793153,12 +791453,8 @@ "unit": "list", "period": "year", "values": { - "2021-01-01": [ - "la_non_refundable_cdcc" - ], - "2015-01-01": [ - "la_non_refundable_cdcc" - ] + "2021-01-01": ["la_non_refundable_cdcc"], + "2015-01-01": ["la_non_refundable_cdcc"] }, "economy": true, "household": true @@ -793978,15 +792274,9 @@ "unit": "list", "period": "year", "values": { - "2022-01-01": [ - "medical_expense_deduction" - ], - "2021-01-01": [ - "taxable_income_deductions_if_itemizing" - ], - "2015-01-01": [ - "taxable_income_deductions_if_itemizing" - ] + "2022-01-01": ["medical_expense_deduction"], + "2021-01-01": ["taxable_income_deductions_if_itemizing"], + "2015-01-01": ["taxable_income_deductions_if_itemizing"] }, "economy": true, "household": true @@ -805748,20 +804038,8 @@ "unit": "list", "period": "year", "values": { - "2021-09-01": [ - "tanf", - "ssi", - "snap", - "is_homeless", - "was_in_foster_care" - ], - "2015-01-01": [ - "tanf", - "ssi", - "snap", - "is_homeless", - "was_in_foster_care" - ] + "2021-09-01": ["tanf", "ssi", "snap", "is_homeless", "was_in_foster_care"], + "2015-01-01": ["tanf", "ssi", "snap", "is_homeless", "was_in_foster_care"] }, "economy": false, "household": true @@ -866021,9 +864299,7 @@ "doc": "\nA person.\n", "is_person": true, "key": "person", - "roles": { - - } + "roles": {} } }, "variableModules": { @@ -881733,11 +880009,7 @@ ] }, "current_law_id": 2, - "basicInputs": [ - "state_name", - "employment_income", - "age" - ], + "basicInputs": ["state_name", "employment_income", "age"], "modelled_policies": { "core": { "modelled": [ @@ -881754,28 +880026,16 @@ "filtered": { "state_name": { "AL": { - "modelled": [ - "Alabama state income tax" - ], - "not_modelled": [ - "Alabama TANF" - ] + "modelled": ["Alabama state income tax"], + "not_modelled": ["Alabama TANF"] }, "AR": { - "modelled": [ - "Arkansas state income tax" - ], - "not_modelled": [ - "Arkansas TANF" - ] + "modelled": ["Arkansas state income tax"], + "not_modelled": ["Arkansas TANF"] }, "AZ": { - "modelled": [ - "Arizona state income tax" - ], - "not_modelled": [ - "Arizona TANF" - ] + "modelled": ["Arizona state income tax"], + "not_modelled": ["Arizona TANF"] }, "CA": { "modelled": [ @@ -881793,314 +880053,161 @@ ] }, "CT": { - "modelled": [ - "Connecticut state income tax" - ], - "not_modelled": [ - "Connecticut TANF" - ] + "modelled": ["Connecticut state income tax"], + "not_modelled": ["Connecticut TANF"] }, "DC": { - "modelled": [ - "District of Columbia income tax", - "District of Columbia TANF" - ] + "modelled": ["District of Columbia income tax", "District of Columbia TANF"] }, "DE": { - "modelled": [ - "Delaware state income tax" - ], - "not_modelled": [ - "Delaware TANF" - ] + "modelled": ["Delaware state income tax"], + "not_modelled": ["Delaware TANF"] }, "GA": { - "modelled": [ - "Georgia state income tax" - ], - "not_modelled": [ - "Georgia TANF" - ] + "modelled": ["Georgia state income tax"], + "not_modelled": ["Georgia TANF"] }, "HI": { - "modelled": [ - "Hawaii state income tax" - ], - "not_modelled": [ - "Hawaii TANF" - ] + "modelled": ["Hawaii state income tax"], + "not_modelled": ["Hawaii TANF"] }, "IA": { - "modelled": [ - "Iowa state income tax" - ], - "not_modelled": [ - "Iowa TANF" - ] + "modelled": ["Iowa state income tax"], + "not_modelled": ["Iowa TANF"] }, "ID": { - "modelled": [ - "Idaho state income tax" - ], - "not_modelled": [ - "Idaho TANF" - ] + "modelled": ["Idaho state income tax"], + "not_modelled": ["Idaho TANF"] }, "IL": { - "modelled": [ - "Illinois state income tax", - "Illinois TANF" - ] + "modelled": ["Illinois state income tax", "Illinois TANF"] }, "IN": { - "modelled": [ - "Indiana state income tax" - ], - "not_modelled": [ - "Indiana TANF" - ] + "modelled": ["Indiana state income tax"], + "not_modelled": ["Indiana TANF"] }, "KS": { - "modelled": [ - "Kansas state income tax" - ], - "not_modelled": [ - "Kansas TANF" - ] + "modelled": ["Kansas state income tax"], + "not_modelled": ["Kansas TANF"] }, "KY": { - "modelled": [ - "Kentucky state income tax" - ], - "not_modelled": [ - "Kentucky TANF" - ] + "modelled": ["Kentucky state income tax"], + "not_modelled": ["Kentucky TANF"] }, "LA": { - "modelled": [ - "Louisiana state income tax" - ], - "not_modelled": [ - "Louisiana TANF" - ] + "modelled": ["Louisiana state income tax"], + "not_modelled": ["Louisiana TANF"] }, "MA": { - "modelled": [ - "Massachusetts state income tax" - ], - "not_modelled": [ - "Massachusetts TANF" - ] + "modelled": ["Massachusetts state income tax"], + "not_modelled": ["Massachusetts TANF"] }, "MD": { - "modelled": [ - "Maryland state income tax" - ], - "not_modelled": [ - "Maryland TANF" - ] + "modelled": ["Maryland state income tax"], + "not_modelled": ["Maryland TANF"] }, "ME": { - "modelled": [ - "Maine state income tax" - ], - "not_modelled": [ - "Maine TANF" - ] + "modelled": ["Maine state income tax"], + "not_modelled": ["Maine TANF"] }, "MI": { - "modelled": [ - "Michigan state income tax" - ], - "not_modelled": [ - "Michigan TANF" - ] + "modelled": ["Michigan state income tax"], + "not_modelled": ["Michigan TANF"] }, "MN": { - "modelled": [ - "Minnesota state income tax" - ], - "not_modelled": [ - "Minnesota TANF" - ] + "modelled": ["Minnesota state income tax"], + "not_modelled": ["Minnesota TANF"] }, "MO": { - "modelled": [ - "Missouri state income tax" - ], - "not_modelled": [ - "Missouri TANF" - ] + "modelled": ["Missouri state income tax"], + "not_modelled": ["Missouri TANF"] }, "MS": { - "modelled": [ - "Mississippi state income tax" - ], - "not_modelled": [ - "Mississippi TANF" - ] + "modelled": ["Mississippi state income tax"], + "not_modelled": ["Mississippi TANF"] }, "MT": { - "modelled": [ - "Montana state income tax" - ], - "not_modelled": [ - "Montana TANF" - ] + "modelled": ["Montana state income tax"], + "not_modelled": ["Montana TANF"] }, "NC": { - "modelled": [ - "North Carolina state income tax" - ], - "not_modelled": [ - "North Carolina TANF" - ] + "modelled": ["North Carolina state income tax"], + "not_modelled": ["North Carolina TANF"] }, "ND": { - "modelled": [ - "North Dakota state income tax" - ], - "not_modelled": [ - "North Dakota TANF" - ] + "modelled": ["North Dakota state income tax"], + "not_modelled": ["North Dakota TANF"] }, "NE": { - "modelled": [ - "Nebraska state income tax" - ], - "not_modelled": [ - "Nebraska TANF" - ] + "modelled": ["Nebraska state income tax"], + "not_modelled": ["Nebraska TANF"] }, "NH": { - "modelled": [ - "New Hampshire state income tax" - ], - "not_modelled": [ - "New Hampshire TANF" - ] + "modelled": ["New Hampshire state income tax"], + "not_modelled": ["New Hampshire TANF"] }, "NJ": { - "modelled": [ - "New Jersey state income tax" - ], - "not_modelled": [ - "New Jersey TANF" - ] + "modelled": ["New Jersey state income tax"], + "not_modelled": ["New Jersey TANF"] }, "NM": { - "modelled": [ - "New Mexico state income tax" - ], - "not_modelled": [ - "New Mexico TANF" - ] + "modelled": ["New Mexico state income tax"], + "not_modelled": ["New Mexico TANF"] }, "NY": { - "modelled": [ - "New York state and city income tax", - "New York TANF" - ] + "modelled": ["New York state and city income tax", "New York TANF"] }, "OH": { - "modelled": [ - "Ohio state income tax" - ], - "not_modelled": [ - "Ohio TANF" - ] + "modelled": ["Ohio state income tax"], + "not_modelled": ["Ohio TANF"] }, "OK": { - "modelled": [ - "Oklahoma state income tax" - ], - "not_modelled": [ - "Oklahoma TANF" - ] + "modelled": ["Oklahoma state income tax"], + "not_modelled": ["Oklahoma TANF"] }, "OR": { - "modelled": [ - "Oregon state income tax" - ], - "not_modelled": [ - "Oregon TANF" - ] + "modelled": ["Oregon state income tax"], + "not_modelled": ["Oregon TANF"] }, "PA": { - "modelled": [ - "Pennsylvania state income tax" - ], - "not_modelled": [ - "Pennsylvania TANF" - ] + "modelled": ["Pennsylvania state income tax"], + "not_modelled": ["Pennsylvania TANF"] }, "RI": { - "modelled": [ - "Rhode Island state income tax" - ], - "not_modelled": [ - "Rhode Island TANF" - ] + "modelled": ["Rhode Island state income tax"], + "not_modelled": ["Rhode Island TANF"] }, "SC": { - "modelled": [ - "South Carolina state income tax" - ], - "not_modelled": [ - "South Carolina TANF" - ] + "modelled": ["South Carolina state income tax"], + "not_modelled": ["South Carolina TANF"] }, "UT": { - "modelled": [ - "Utah state income tax" - ], - "not_modelled": [ - "Utah TANF" - ] + "modelled": ["Utah state income tax"], + "not_modelled": ["Utah TANF"] }, "VA": { - "modelled": [ - "Virginia state income tax" - ], - "not_modelled": [ - "Virginia TANF" - ] + "modelled": ["Virginia state income tax"], + "not_modelled": ["Virginia TANF"] }, "VT": { - "modelled": [ - "Vermont state income tax" - ], - "not_modelled": [ - "Vermont TANF" - ] + "modelled": ["Vermont state income tax"], + "not_modelled": ["Vermont TANF"] }, "WA": { - "modelled": [ - "Washington state income tax" - ], - "not_modelled": [ - "Washington TANF" - ] + "modelled": ["Washington state income tax"], + "not_modelled": ["Washington TANF"] }, "WI": { - "modelled": [ - "Wisconsin state income tax" - ], - "not_modelled": [ - "Wisconsin TANF" - ] + "modelled": ["Wisconsin state income tax"], + "not_modelled": ["Wisconsin TANF"] }, "WV": { - "modelled": [ - "West Virginia state income tax" - ], - "not_modelled": [ - "West Virginia TANF" - ] + "modelled": ["West Virginia state income tax"], + "not_modelled": ["West Virginia TANF"] } } } }, "version": "1.366.2" } -} \ No newline at end of file +} diff --git a/app/src/mocks/US_household_run.json b/app/src/mocks/US_household_run.json index 6c6f59106..871a2809b 100644 --- a/app/src/mocks/US_household_run.json +++ b/app/src/mocks/US_household_run.json @@ -10,12 +10,7 @@ "is_married": { "2025": true }, - "members": [ - "you", - "your partner", - "your first dependent", - "your second dependent" - ] + "members": ["you", "your partner", "your first dependent", "your second dependent"] } }, "households": { @@ -374,12 +369,7 @@ "medicaid_rating_area": { "2025": null }, - "members": [ - "you", - "your partner", - "your first dependent", - "your second dependent" - ], + "members": ["you", "your partner", "your first dependent", "your second dependent"], "net_worth": { "2025": 0 }, @@ -468,9 +458,7 @@ "marital_unit_weight": { "2025": 0 }, - "members": [ - "your first dependent" - ] + "members": ["your first dependent"] }, "your marital unit": { "marital_unit_id": { @@ -479,10 +467,7 @@ "marital_unit_weight": { "2025": 0 }, - "members": [ - "you", - "your partner" - ] + "members": ["you", "your partner"] }, "your second dependent's marital unit": { "marital_unit_id": { @@ -491,9 +476,7 @@ "marital_unit_weight": { "2025": 0 }, - "members": [ - "your second dependent" - ] + "members": ["your second dependent"] } }, "people": { @@ -9998,9282 +9981,9272 @@ }, "ar_standard_deduction_indiv": { "2025": 0 - }, - "ar_standard_deduction_joint": { - "2025": 0 - }, - "ar_taxable_capital_gains_indiv": { - "2025": 0 - }, - "ar_taxable_capital_gains_joint": { - "2025": 0 - }, - "ar_taxable_income_indiv": { - "2025": 0 - }, - "ar_taxable_income_joint": { - "2025": 0 - }, - "ar_withheld_income_tax": { - "2025": 0 - }, - "assessed_property_value": { - "2025": 0 - }, - "az_aged_exemption": { - "2025": 0 - }, - "az_aged_exemption_eligible_person": { - "2025": 0 - }, - "az_parents_grandparents_exemption": { - "2025": 0 - }, - "az_tanf_eligible_child": { - "2025": false - }, - "az_withheld_income_tax": { - "2025": 0 - }, - "birth_year": { - "2025": 2015 - }, - "business_is_qualified": { - "2025": true - }, - "business_is_sstb": { - "2025": false - }, - "ca_ala_general_assistance_age_eligible": { - "2025": false - }, - "ca_ala_general_assistance_countable_income_person": { - "2025": 0 - }, - "ca_ala_general_assistance_eligible_person": { - "2025": false - }, - "ca_ala_general_assistance_immigration_status_eligible": { - "2025": false - }, - "ca_calworks_child_care_child_age_eligible": { - "2025": false - }, - "ca_calworks_child_care_days_per_month": { - "2025": 0 - }, - "ca_calworks_child_care_factor_category": { - "2025": "STANDARD" - }, - "ca_calworks_child_care_full_time": { - "2025": false - }, - "ca_calworks_child_care_immigration_status_eligible_person": { - "2025": false - }, - "ca_calworks_child_care_payment": { - "2025": 0 - }, - "ca_calworks_child_care_payment_factor": { - "2025": 0 - }, - "ca_calworks_child_care_payment_standard": { - "2025": 0 - }, - "ca_calworks_child_care_provider_category": { - "2025": "CHILD_CARE_CENTER" - }, - "ca_calworks_child_care_time_category": { - "2025": "WEEKLY" - }, - "ca_calworks_child_care_time_coefficient": { - "2025": 0 - }, - "ca_calworks_child_care_weeks_per_month": { - "2025": 0 - }, - "ca_calworks_child_care_welfare_to_work": { - "2025": 0 - }, - "ca_capi_eligible_person": { - "2025": false - }, - "ca_cvrp": { - "2025": 0 - }, - "ca_cvrp_vehicle_rebate_amount": { - "2025": 0 - }, - "ca_ffyp_eligible": { - "2025": false - }, - "ca_foster_care_minor_dependent": { - "2025": false - }, - "ca_foster_youth_tax_credit_eligible_person": { - "2025": false - }, - "ca_foster_youth_tax_credit_person": { - "2025": 0 - }, - "ca_in_home_supportive_services": { - "2025": 0 - }, - "ca_in_medical_care_facility": { - "2025": false - }, - "ca_is_qualifying_child_for_caleitc": { - "2025": false - }, - "ca_la_expectant_parent_payment": { - "2025": 0 - }, - "ca_la_expectant_parent_payment_eligible": { - "2025": false - }, - "ca_la_infant_supplement_eligible_person": { - "2025": false - }, - "ca_riv_general_relief_countable_income_person": { - "2025": 0 - }, - "ca_riv_general_relief_countable_property_value": { - "2025": 0 - }, - "ca_riv_general_relief_earned_income": { - "2025": 0 - }, - "ca_riv_general_relief_earned_income_deductions": { - "2025": 0 - }, - "ca_riv_general_relief_excluded_income": { - "2025": 0 - }, - "ca_riv_general_relief_immigration_status_eligible": { - "2025": false - }, - "ca_riv_general_relief_ineligible_person": { - "2025": false - }, - "ca_riv_general_relief_meets_work_requirements": { - "2025": false - }, - "ca_riv_general_relief_net_earned_income": { - "2025": 0 - }, - "ca_riv_general_relief_unearned_income": { - "2025": 0 - }, - "ca_state_disability_insurance": { - "2025": 0 - }, - "ca_state_supplement_eligible_person": { - "2025": false - }, - "ca_tanf_immigration_status_eligible_person": { - "2025": false - }, - "ca_withheld_income_tax": { - "2025": 0 - }, - "capital_gains": { - "2025": 0 - }, - "capital_gains_behavioral_response": { - "2025": 0 - }, - "capital_gains_elasticity": { - "2025": 0 - }, - "capital_losses": { - "2025": 0 - }, - "care_and_support_costs": { - "2025": 0 - }, - "care_and_support_payments_from_tax_filer": { - "2025": 0 - }, - "care_expenses": { - "2025": 0 - }, - "casualty_loss": { - "2025": 0 - }, - "ccdf_age_group": { - "2025": "INFANT" - }, - "ccdf_duration_of_care": { - "2025": "HOURLY" - }, - "ccdf_market_rate": { - "2025": 0 - }, - "charitable_cash_donations": { - "2025": 0 - }, - "charitable_non_cash_donations": { - "2025": 0 - }, - "child_index": { - "2025": 2 - }, - "child_support_expense": { - "2025": 0 - }, - "child_support_received": { - "2025": 0 - }, - "childcare_days_per_week": { - "2025": 0 - }, - "childcare_hours_per_day": { - "2025": 0 - }, - "childcare_hours_per_week": { - "2025": 0 - }, - "childcare_provider_type_group": { - "2025": "DCC_SACC" - }, - "chip": { - "2025": 0 - }, - "chip_category": { - "2025": "NONE" - }, - "claimed_as_dependent_on_another_return": { - "2025": false - }, - "claimed_ma_covid_19_essential_employee_premium_pay_program_2020": { - "2025": false - }, - "cliff_evaluated": { - "2025": false - }, - "cliff_gap": { - "2025": 0 - }, - "co_ccap_child_eligible": { - "2025": false - }, - "co_chp": { - "2025": 0 - }, - "co_chp_eligible": { - "2025": false - }, - "co_chp_out_of_pocket_maximum": { - "2025": 8013.75 - }, - "co_ctc_eligible_child": { - "2025": false - }, - "co_family_affordability_credit": { - "2025": 0 - }, - "co_federal_ctc_child_individual_maximum": { - "2025": 0 - }, - "co_oap": { - "2025": 0 - }, - "co_oap_eligible": { - "2025": false - }, - "co_pension_subtraction_income": { - "2025": 0 - }, - "co_pension_subtraction_indv": { - "2025": 0 - }, - "co_pension_subtraction_indv_eligible": { - "2025": false - }, - "co_quality_rating_of_child_care_facility": { - "2025": 0 - }, - "co_social_security_subtraction_indv": { - "2025": 0 - }, - "co_social_security_subtraction_indv_eligible": { - "2025": 0 - }, - "co_state_supplement": { - "2025": 0 - }, - "co_state_supplement_eligible": { - "2025": false - }, - "co_withheld_income_tax": { - "2025": 0 - }, - "commodity_supplemental_food_program": { - "2025": 0 - }, - "commodity_supplemental_food_program_eligible": { - "2025": false - }, - "cost_of_attending_college": { - "2025": 0 - }, - "count_529_contribution_beneficiaries": { - "2025": 0 - }, - "count_days_postpartum": { - "2025": "Infinity" - }, - "cps_race": { - "2025": 0 - }, - "csrs_retirement_pay": { - "2025": 0 - }, - "ct_withheld_income_tax": { - "2025": 0 - }, - "ctc_adult_individual_maximum": { - "2025": 0 - }, - "ctc_child_individual_maximum": { - "2025": 2200 - }, - "ctc_child_individual_maximum_arpa": { - "2025": 0 - }, - "ctc_individual_maximum": { - "2025": 2200 - }, - "ctc_qualifying_child": { - "2025": true - }, - "current_pregnancies": { - "2025": 0 - }, - "current_pregnancy_month": { - "2025": 0 - }, - "dc_additions": { - "2025": 0 - }, - "dc_agi": { - "2025": 0 - }, - "dc_ccsp_attending_days_per_month": { - "2025": 0 - }, - "dc_ccsp_child_category": { - "2025": "PRESCHOOL" - }, - "dc_ccsp_childcare_provider_category": { - "2025": "CHILD_CENTER" - }, - "dc_ccsp_eligible_child": { - "2025": false - }, - "dc_ccsp_first_child_copay": { - "2025": 0 - }, - "dc_ccsp_immigration_status_eligible_person": { - "2025": false - }, - "dc_ccsp_is_full_time": { - "2025": false - }, - "dc_ccsp_is_second_youngest_child": { - "2025": false - }, - "dc_ccsp_is_youngest_child": { - "2025": false - }, - "dc_ccsp_maximum_subsidy_amount": { - "2025": 0 - }, - "dc_ccsp_schedule_type": { - "2025": "FULL_TIME_TRADITIONAL" - }, - "dc_ccsp_second_child_copay": { - "2025": 0 - }, - "dc_ctc_eligible_child": { - "2025": false - }, - "dc_deduction_indiv": { - "2025": 0 - }, - "dc_disability_exclusion": { - "2025": 0 - }, - "dc_disabled_exclusion_subtraction": { - "2025": 0 - }, - "dc_gac_countable_unearned_income_person": { - "2025": 0 - }, - "dc_gac_earned_income_after_disregard_person": { - "2025": 0 - }, - "dc_gac_eligible_child": { - "2025": false - }, - "dc_income_subtractions": { - "2025": 0 - }, - "dc_pap_eligible_child": { - "2025": false - }, - "dc_power_head_or_spouse_eligible": { - "2025": false - }, - "dc_self_employment_loss_addition": { - "2025": 0 - }, - "dc_tanf_demographic_eligible_person": { - "2025": false - }, - "dc_tanf_earned_income_after_disregard_person": { - "2025": 0 - }, - "dc_tanf_gross_earned_income": { - "2025": 0 - }, - "dc_tanf_gross_unearned_income": { - "2025": 0 - }, - "dc_tanf_immigration_status_eligible_person": { - "2025": false - }, - "dc_tanf_is_working": { - "2025": false - }, - "dc_tanf_work_requirement_exempt": { - "2025": false - }, - "dc_taxable_income_indiv": { - "2025": 0 - }, - "dc_withheld_income_tax": { - "2025": 0 - }, - "de_additional_standard_deduction": { - "2025": 0 - }, - "de_additions": { - "2025": 0 - }, - "de_agi_indiv": { - "2025": 0 - }, - "de_agi_joint": { - "2025": 0 - }, - "de_base_standard_deduction_indv": { - "2025": 0 - }, - "de_base_standard_deduction_joint": { - "2025": 0 - }, - "de_deduction_indv": { - "2025": 0 - }, - "de_deduction_joint": { - "2025": 0 - }, - "de_elderly_or_disabled_income_exclusion_eligible_person": { - "2025": false - }, - "de_elderly_or_disabled_income_exclusion_indiv": { - "2025": 0 - }, - "de_elderly_or_disabled_income_exclusion_joint": { - "2025": 0 - }, - "de_income_tax_before_non_refundable_credits_indv": { - "2025": 0 - }, - "de_income_tax_before_non_refundable_credits_joint": { - "2025": 0 - }, - "de_itemized_deductions_indv": { - "2025": 0 - }, - "de_itemized_deductions_joint": { - "2025": 0 - }, - "de_pension_exclusion": { - "2025": 0 - }, - "de_pension_exclusion_income": { - "2025": 0 - }, - "de_pre_exclusions_agi": { - "2025": 0 - }, - "de_standard_deduction_indv": { - "2025": 0 - }, - "de_standard_deduction_joint": { - "2025": 0 - }, - "de_subtractions": { - "2025": 0 - }, - "de_taxable_income_indv": { - "2025": 0 - }, - "de_taxable_income_joint": { - "2025": 0 - }, - "de_withheld_income_tax": { - "2025": 0 - }, - "debt_relief": { - "2025": 0 - }, - "deductible_interest_expense": { - "2025": 0 - }, - "deductible_mortgage_interest": { - "2025": 0 - }, - "dependent_care_employer_benefits": { - "2025": 0 - }, - "detailed_occupation_recode": { - "2025": 0 - }, - "disability_benefits": { - "2025": 0 - }, - "dividend_income": { - "2025": 0 - }, - "divorce_year": { - "2025": 2010 - }, - "e00700": { - "2025": 0 - }, - "e01100": { - "2025": 0 - }, - "e01200": { - "2025": 0 - }, - "e02000": { - "2025": 0 - }, - "e03220": { - "2025": 0 - }, - "e03230": { - "2025": 0 - }, - "e03240": { - "2025": 0 - }, - "e03270": { - "2025": 0 - }, - "e03290": { - "2025": 0 - }, - "e03300": { - "2025": 0 - }, - "e03400": { - "2025": 0 - }, - "e03500": { - "2025": 0 - }, - "e07240": { - "2025": 0 - }, - "e07260": { - "2025": 0 - }, - "e07300": { - "2025": 0 - }, - "e09700": { - "2025": 0 - }, - "e09800": { - "2025": 0 - }, - "e09900": { - "2025": 0 - }, - "e11200": { - "2025": 0 - }, - "e18500": { - "2025": 0 - }, - "e19200": { - "2025": 0 - }, - "e19800": { - "2025": 0 - }, - "e20100": { - "2025": 0 - }, - "e20400": { - "2025": 0 - }, - "e24515": { - "2025": 0 - }, - "e24518": { - "2025": 0 - }, - "e26270": { - "2025": 0 - }, - "e27200": { - "2025": 0 - }, - "e32800": { - "2025": 0 - }, - "e58990": { - "2025": 0 - }, - "e62900": { - "2025": 0 - }, - "e87521": { - "2025": 0 - }, - "e87530": { - "2025": 0 - }, - "early_head_start": { - "2025": 0 - }, - "early_withdrawal_penalty": { - "2025": 0 - }, - "earned_income": { - "2025": 0 - }, - "earned_income_last_year": { - "2025": 0 - }, - "educator_expense": { - "2025": 0 - }, - "emp_self_emp_ratio": { - "2025": 1 - }, - "employee_medicare_tax": { - "2025": 0 - }, - "employee_social_security_tax": { - "2025": 0 - }, - "employer_contribution_to_health_insurance_premiums_category": { - "2025": "NONE" - }, - "employer_medicare_tax": { - "2025": 0 - }, - "employer_social_security_tax": { - "2025": 0 - }, - "employment_income": { - "2025": 0 - }, - "employment_income_before_lsr": { - "2025": 0 - }, - "employment_income_behavioral_response": { - "2025": 0 - }, - "employment_income_last_year": { - "2025": 0 - }, - "er_visit_expense": { - "2025": 0 - }, - "estate_income": { - "2025": 0 - }, - "estate_income_would_be_qualified": { - "2025": true - }, - "estate_tax": { - "2025": 0 - }, - "estate_tax_before_credits": { - "2025": 0 - }, - "estate_tax_credit": { - "2025": 0 - }, - "excess_withheld_payroll_tax": { - "2025": 0 - }, - "farm_income": { - "2025": 0 - }, - "farm_operations_income": { - "2025": 0 - }, - "farm_operations_income_would_be_qualified": { - "2025": true - }, - "farm_rent_income": { - "2025": 0 - }, - "farm_rent_income_would_be_qualified": { - "2025": true - }, - "four_year_college_student": { - "2025": false - }, - "fsla_overtime_occupation_exemption_category": { - "2025": "NONE" - }, - "fsla_overtime_premium": { - "2025": 0 - }, - "fsla_overtime_salary_threshold": { - "2025": 151164 - }, - "ga_military_retirement_exclusion_eligible_person": { - "2025": false - }, - "ga_military_retirement_exclusion_person": { - "2025": 0 - }, - "ga_retirement_exclusion_countable_earned_income": { - "2025": 0 - }, - "ga_retirement_exclusion_eligible_person": { - "2025": false - }, - "ga_retirement_exclusion_person": { - "2025": 0 - }, - "ga_retirement_income_exclusion_retirement_income": { - "2025": 0 - }, - "ga_withheld_income_tax": { - "2025": 0 - }, - "gambling_losses": { - "2025": 0 - }, - "gambling_winnings": { - "2025": 0 - }, - "general_assistance": { - "2025": 0 - }, - "general_business_credit": { - "2025": 0 - }, - "gi_cash_assistance": { - "2025": 0 - }, - "has_disabled_spouse": { - "2025": false - }, - "has_esi": { - "2025": false - }, - "has_itin": { - "2025": true - }, - "has_marketplace_health_coverage": { - "2025": true - }, - "has_never_worked": { - "2025": false - }, - "head_start": { - "2025": 0 - }, - "health_insurance_premiums": { - "2025": 0 - }, - "health_insurance_premiums_without_medicare_part_b": { - "2025": 0 - }, - "health_savings_account_payroll_contributions": { - "2025": 0 - }, - "heating_expense_person": { - "2025": 0 - }, - "hi_cdcc_income_floor_eligible": { - "2025": false - }, - "hi_food_excise_credit_child_receiving_public_support": { - "2025": false - }, - "hi_withheld_income_tax": { - "2025": 0 - }, - "home_mortgage_interest": { - "2025": 0 - }, - "hours_worked_last_week": { - "2025": 0 - }, - "ia_alternate_tax_indiv": { - "2025": 0 - }, - "ia_alternate_tax_joint": { - "2025": 0 - }, - "ia_amt_indiv": { - "2025": 0 - }, - "ia_amt_joint": { - "2025": 0 - }, - "ia_base_tax_indiv": { - "2025": 0 - }, - "ia_base_tax_joint": { - "2025": 0 - }, - "ia_basic_deduction_indiv": { - "2025": 0 - }, - "ia_basic_deduction_joint": { - "2025": 0 - }, - "ia_fedtax_deduction": { - "2025": 0 - }, - "ia_gross_income": { - "2025": 0 - }, - "ia_income_adjustments": { - "2025": 0 - }, - "ia_itemized_deductions_indiv": { - "2025": 0 - }, - "ia_itemized_deductions_joint": { - "2025": 0 - }, - "ia_net_income": { - "2025": 0 - }, - "ia_pension_exclusion": { - "2025": 0 - }, - "ia_pension_exclusion_eligible": { - "2025": false - }, - "ia_prorate_fraction": { - "2025": 0 - }, - "ia_qbi_deduction": { - "2025": 0 - }, - "ia_regular_tax_indiv": { - "2025": 0 - }, - "ia_regular_tax_joint": { - "2025": 0 - }, - "ia_standard_deduction_indiv": { - "2025": 0 - }, - "ia_standard_deduction_joint": { - "2025": 0 - }, - "ia_taxable_income_indiv": { - "2025": 0 - }, - "ia_taxable_income_joint": { - "2025": 0 - }, - "ia_withheld_income_tax": { - "2025": 0 - }, - "id_2022_rebate_floor": { - "2025": 0 - }, - "id_aged_or_disabled_credit_eligible_person": { - "2025": false - }, - "id_aged_or_disabled_deduction_eligible_person": { - "2025": false - }, - "id_grocery_credit_aged": { - "2025": 0 - }, - "id_grocery_credit_base": { - "2025": 0 - }, - "id_grocery_credit_qualified_months": { - "2025": 0 - }, - "id_grocery_credit_qualifying_month": { - "2025": false - }, - "id_retirement_benefits_deduction_eligible_person": { - "2025": false - }, - "id_retirement_benefits_deduction_relevant_income": { - "2025": 0 - }, - "id_withheld_income_tax": { - "2025": 0 - }, - "il_aabd_aged_blind_disabled_person": { - "2025": false - }, - "il_aabd_child_care_expense_exemption": { - "2025": 0 - }, - "il_aabd_countable_income": { - "2025": 0 - }, - "il_aabd_countable_unearned_income": { - "2025": 0 - }, - "il_aabd_earned_income_after_exemption_person": { - "2025": 0 - }, - "il_aabd_eligible_person": { - "2025": false - }, - "il_aabd_expense_exemption_person": { - "2025": 0 - }, - "il_aabd_financial_eligible_person": { - "2025": false - }, - "il_aabd_flat_exemption_excess_over_unearned_income": { - "2025": 0 - }, - "il_aabd_grant_amount": { - "2025": 0 - }, - "il_aabd_gross_earned_income": { - "2025": 0 - }, - "il_aabd_gross_unearned_income": { - "2025": 0 - }, - "il_aabd_immigration_status_eligible_person": { - "2025": false - }, - "il_aabd_is_bedfast": { - "2025": false - }, - "il_aabd_need_standard_person": { - "2025": 0 - }, - "il_aabd_non_financial_eligible_person": { - "2025": false - }, - "il_aabd_person": { - "2025": 0 - }, - "il_aabd_personal_allowance": { - "2025": 0 - }, - "il_aabd_shelter_allowance": { - "2025": 0 - }, - "il_aabd_utility_allowance_person": { - "2025": 0 - }, - "il_bap_eligible": { - "2025": false - }, - "il_ccap_eligible_child": { - "2025": false - }, - "il_ccap_immigration_status_eligible_person": { - "2025": false - }, - "il_cta_benefit": { - "2025": 0 - }, - "il_cta_children_reduced_fare_eligible": { - "2025": false - }, - "il_cta_free_ride_benefit": { - "2025": 0 - }, - "il_cta_free_ride_eligible": { - "2025": false - }, - "il_cta_military_service_pass_eligible": { - "2025": false - }, - "il_cta_reduced_fare_benefit": { - "2025": 0 - }, - "il_cta_reduced_fare_eligible": { - "2025": false - }, - "il_cta_rta_reduced_fare_eligible": { - "2025": false - }, - "il_cta_student_reduced_fare_eligible": { - "2025": false - }, - "il_tanf_demographic_eligible_person": { - "2025": false - }, - "il_tanf_eligible_child": { - "2025": false - }, - "il_tanf_gross_earned_income": { - "2025": 0 - }, - "il_tanf_gross_unearned_income": { - "2025": 0 - }, - "il_tanf_immigration_status_eligible_person": { - "2025": false - }, - "il_tanf_initial_employment_deduction_person": { - "2025": 0 - }, - "il_tanf_payment_eligible_child": { - "2025": false - }, - "il_tanf_payment_eligible_parent": { - "2025": false - }, - "il_tanf_payment_eligible_requirements": { - "2025": false - }, - "il_withheld_income_tax": { - "2025": 0 - }, - "illicit_income": { - "2025": 0 - }, - "imaging_expense": { - "2025": 0 - }, - "immigration_status": { - "2025": "CITIZEN" - }, - "immigration_status_str": { - "2025": "CITIZEN" - }, - "in_is_qualifying_dependent_child": { - "2025": false - }, - "in_out_of_home_care_facility": { - "2025": false - }, - "in_withheld_income_tax": { - "2025": 0 - }, - "income_decile": { - "2025": null - }, - "income_elasticity": { - "2025": 0 - }, - "income_elasticity_lsr": { - "2025": 0 - }, - "inpatient_expense": { - "2025": 0 - }, - "interest_income": { - "2025": 0 - }, - "investment_expenses": { - "2025": 0 - }, - "investment_in_529_plan_indv": { - "2025": 0 - }, - "investment_income_elected_form_4952": { - "2025": 0 - }, - "investment_interest_expense": { - "2025": 0 - }, - "irs_employment_income": { - "2025": 0 - }, - "irs_gross_income": { - "2025": 0 - }, - "is_aca_eshi_eligible": { - "2025": false - }, - "is_aca_ptc_eligible": { - "2025": true - }, - "is_aca_ptc_immigration_status_eligible": { - "2025": true - }, - "is_adult": { - "2025": false - }, - "is_adult_for_medicaid": { - "2025": false - }, - "is_adult_for_medicaid_fc": { - "2025": false - }, - "is_adult_for_medicaid_nfc": { - "2025": false - }, - "is_blind": { - "2025": false - }, - "is_breastfeeding": { - "2025": false - }, - "is_ca_cvrp_increased_rebate_eligible": { - "2025": false - }, - "is_ca_cvrp_normal_rebate_eligible": { - "2025": false - }, - "is_ca_medicaid_immigration_status_eligible": { - "2025": false - }, - "is_ccdf_age_eligible": { - "2025": true - }, - "is_ccdf_eligible": { - "2025": false - }, - "is_ccdf_home_based": { - "2025": false - }, - "is_ccdf_reason_for_care_eligible": { - "2025": false - }, - "is_cdcc_eligible": { - "2025": true - }, - "is_child": { - "2025": true - }, - "is_child_dependent": { - "2025": true - }, - "is_child_of_tax_head": { - "2025": true - }, - "is_chip_eligible": { - "2025": false - }, - "is_chip_eligible_child": { - "2025": false - }, - "is_chip_eligible_pregnant": { - "2025": false - }, - "is_chip_eligible_standard_pregnant_person": { - "2025": false - }, - "is_chip_fcep_eligible_person": { - "2025": false - }, - "is_co_denver_dhs_elderly": { - "2025": false - }, - "is_computer_scientist": { - "2025": false - }, - "is_deaf": { - "2025": false - }, - "is_deceased": { - "2025": false - }, - "is_disabled": { - "2025": false - }, - "is_early_head_start_eligible": { - "2025": false - }, - "is_eligible_for_american_opportunity_credit": { - "2025": false - }, - "is_eligible_for_fsla_overtime": { - "2025": true - }, - "is_english_proficient": { - "2025": false - }, - "is_enrolled_in_ccdf": { - "2025": false - }, - "is_executive_administrative_professional": { - "2025": false - }, - "is_farmer_fisher": { - "2025": false - }, - "is_father": { - "2025": false - }, - "is_female": { - "2025": false - }, - "is_full_time_college_student": { - "2025": false - }, - "is_full_time_student": { - "2025": true - }, - "is_fully_disabled_service_connected_veteran": { - "2025": false - }, - "is_grandparent_of_filer_or_spouse": { - "2025": false - }, - "is_head_start_categorically_eligible": { - "2025": false - }, - "is_head_start_eligible": { - "2025": false - }, - "is_head_start_income_eligible": { - "2025": false - }, - "is_hispanic": { - "2025": false - }, - "is_household_head": { - "2025": false - }, - "is_in_foster_care": { - "2025": false - }, - "is_in_foster_care_group_home": { - "2025": false - }, - "is_in_k12_nonpublic_school": { - "2025": false - }, - "is_in_k12_school": { - "2025": true - }, - "is_in_medicaid_medically_needy_category": { - "2025": true - }, - "is_in_secondary_school": { - "2025": false - }, - "is_incapable_of_self_care": { - "2025": false - }, - "is_incarcerated": { - "2025": false - }, - "is_infant_for_medicaid": { - "2025": false - }, - "is_infant_for_medicaid_fc": { - "2025": false - }, - "is_infant_for_medicaid_nfc": { - "2025": false - }, - "is_irs_aged": { - "2025": false - }, - "is_male": { - "2025": true - }, - "is_medicaid_eligible": { - "2025": false - }, - "is_medicaid_immigration_status_eligible": { - "2025": true - }, - "is_medically_needy_for_medicaid": { - "2025": true - }, - "is_medicare_eligible": { - "2025": false - }, - "is_migratory_child": { - "2025": false - }, - "is_military": { - "2025": false - }, - "is_mother": { - "2025": false - }, - "is_older_child_for_medicaid": { - "2025": false - }, - "is_older_child_for_medicaid_fc": { - "2025": false - }, - "is_older_child_for_medicaid_nfc": { - "2025": true - }, - "is_on_cliff": { - "2025": false - }, - "is_optional_senior_or_disabled_asset_eligible": { - "2025": true - }, - "is_optional_senior_or_disabled_for_medicaid": { - "2025": false - }, - "is_optional_senior_or_disabled_income_eligible": { - "2025": true - }, - "is_paid_hourly": { - "2025": false - }, - "is_parent": { - "2025": false - }, - "is_parent_for_medicaid": { - "2025": false - }, - "is_parent_for_medicaid_fc": { - "2025": false - }, - "is_parent_for_medicaid_nfc": { - "2025": false - }, - "is_parent_of_filer_or_spouse": { - "2025": false - }, - "is_permanently_and_totally_disabled": { - "2025": false - }, - "is_permanently_disabled_veteran": { - "2025": false - }, - "is_person_demographic_tanf_eligible": { - "2025": true - }, - "is_pregnant": { - "2025": false - }, - "is_pregnant_for_medicaid": { - "2025": false - }, - "is_pregnant_for_medicaid_fc": { - "2025": false - }, - "is_pregnant_for_medicaid_nfc": { - "2025": false - }, - "is_related_to_head_or_spouse": { - "2025": true - }, - "is_retired": { - "2025": false - }, - "is_runaway_child": { - "2025": false - }, - "is_self_employed": { - "2025": false - }, - "is_senior": { - "2025": false - }, - "is_separated": { - "2025": false - }, - "is_severely_disabled": { - "2025": false - }, - "is_snap_ineligible_student": { - "2025": false - }, - "is_ssi_aged": { - "2025": false - }, - "is_ssi_aged_blind_disabled": { - "2025": false - }, - "is_ssi_blind_or_disabled_working_student_exclusion_eligible": { - "2025": 0 - }, - "is_ssi_disabled": { - "2025": false - }, - "is_ssi_eligible": { - "2025": false - }, - "is_ssi_eligible_individual": { - "2025": false - }, - "is_ssi_eligible_spouse": { - "2025": false - }, - "is_ssi_ineligible_child": { - "2025": true - }, - "is_ssi_ineligible_parent": { - "2025": false - }, - "is_ssi_ineligible_spouse": { - "2025": false - }, - "is_ssi_qualified_noncitizen": { - "2025": false - }, - "is_ssi_recipient_for_medicaid": { - "2025": false - }, - "is_surviving_child_of_disabled_veteran": { - "2025": false - }, - "is_surviving_spouse": { - "2025": false - }, - "is_surviving_spouse_of_disabled_veteran": { - "2025": false - }, - "is_tafdc_related_to_head_or_spouse": { - "2025": true - }, - "is_tax_unit_dependent": { - "2025": true - }, - "is_tax_unit_head": { - "2025": false - }, - "is_tax_unit_head_or_spouse": { - "2025": false - }, - "is_tax_unit_spouse": { - "2025": false - }, - "is_tce_eligible": { - "2025": false - }, - "is_usda_disabled": { - "2025": false - }, - "is_usda_elderly": { - "2025": false - }, - "is_veteran": { - "2025": false - }, - "is_wa_adult": { - "2025": false - }, - "is_wic_at_nutritional_risk": { - "2025": true - }, - "is_wic_eligible": { - "2025": false - }, - "is_young_adult_for_medicaid": { - "2025": false - }, - "is_young_adult_for_medicaid_fc": { - "2025": false - }, - "is_young_adult_for_medicaid_nfc": { - "2025": false - }, - "is_young_child_for_medicaid": { - "2025": false - }, - "is_young_child_for_medicaid_fc": { - "2025": false - }, - "is_young_child_for_medicaid_nfc": { - "2025": false - }, - "keogh_distributions": { - "2025": 0 - }, - "ks_disabled_veteran_exemptions_eligible_person": { - "2025": false - }, - "ks_withheld_income_tax": { - "2025": 0 - }, - "ky_additions": { - "2025": 0 - }, - "ky_aged_personal_tax_credits": { - "2025": 0 - }, - "ky_agi": { - "2025": 0 - }, - "ky_blind_personal_tax_credits": { - "2025": 0 - }, - "ky_deductions_indiv": { - "2025": 0 - }, - "ky_deductions_joint": { - "2025": 0 - }, - "ky_income_tax_before_non_refundable_credits_indiv": { - "2025": 0 - }, - "ky_income_tax_before_non_refundable_credits_joint": { - "2025": 0 - }, - "ky_itemized_deductions_indiv": { - "2025": 0 - }, - "ky_itemized_deductions_joint": { - "2025": 0 - }, - "ky_military_personal_tax_credits": { - "2025": 0 - }, - "ky_pension_income_exclusion": { - "2025": 0 - }, - "ky_pension_income_exclusion_exemption_eligible": { - "2025": false - }, - "ky_personal_tax_credits_indiv": { - "2025": 0 - }, - "ky_personal_tax_credits_joint": { - "2025": 0 - }, - "ky_service_credit_months_post_1997": { - "2025": 0 - }, - "ky_service_credit_months_pre_1998": { - "2025": 0 - }, - "ky_service_credits_percentage_pre_1998": { - "2025": 0 - }, - "ky_standard_deduction_indiv": { - "2025": 0 - }, - "ky_standard_deduction_joint": { - "2025": 0 - }, - "ky_subtractions": { - "2025": 0 - }, - "ky_taxable_income_indiv": { - "2025": 0 - }, - "ky_taxable_income_joint": { - "2025": 0 - }, - "ky_withheld_income_tax": { - "2025": 0 - }, - "la_blind_exemption_person": { - "2025": 0 - }, - "la_disability_income_exemption_person": { - "2025": 0 - }, - "la_general_relief_gross_income": { - "2025": 0 - }, - "la_general_relief_immigration_status_eligible_person": { - "2025": false - }, - "la_quality_rating_of_child_care_facility": { - "2025": 0 - }, - "la_receives_blind_exemption": { - "2025": true - }, - "la_retirement_exemption_person": { - "2025": 0 - }, - "la_school_readiness_credit_eligible_child": { - "2025": false - }, - "la_withheld_income_tax": { - "2025": 0 - }, - "lab_expense": { - "2025": 0 - }, - "labor_supply_behavioral_response": { - "2025": 0 - }, - "long_term_capital_gains": { - "2025": 0 - }, - "long_term_capital_gains_before_response": { - "2025": 0 - }, - "long_term_capital_gains_on_collectibles": { - "2025": 0 - }, - "long_term_capital_gains_on_small_business_stock": { - "2025": 0 - }, - "long_term_health_insurance_premiums": { - "2025": 0 - }, - "ma_covid_19_essential_employee_premium_pay_program": { - "2025": 0 - }, - "ma_eaedc_dependent_care_deduction_person": { - "2025": 0 - }, - "ma_eaedc_earned_income_after_disregard_person": { - "2025": 0 - }, - "ma_eaedc_eligible_dependent": { - "2025": false - }, - "ma_maximum_state_supplement": { - "2025": 0 - }, - "ma_mbta_enrolled_in_applicable_programs": { - "2025": false - }, - "ma_mbta_income_eligible_reduced_fare_eligible": { - "2025": false - }, - "ma_mbta_senior_charlie_card_eligible": { - "2025": false - }, - "ma_mbta_tap_charlie_card_eligible": { - "2025": false - }, - "ma_state_supplement": { - "2025": 0 - }, - "ma_tafdc_age_limit": { - "2025": 0 - }, - "ma_tafdc_child_support_deduction": { - "2025": 0 - }, - "ma_tafdc_clothing_allowance": { - "2025": 0 - }, - "ma_tafdc_countable_earned_income": { - "2025": 0 - }, - "ma_tafdc_dependent_care_deduction_person": { - "2025": 0 - }, - "ma_tafdc_eligible_dependent": { - "2025": false - }, - "ma_tafdc_eligible_infant": { - "2025": false - }, - "ma_tafdc_full_earned_income_disregard_eligible": { - "2025": false - }, - "ma_tafdc_infant_benefit": { - "2025": 0 - }, - "ma_tafdc_partially_disregarded_earned_income": { - "2025": 0 - }, - "ma_tafdc_pregnancy_eligible": { - "2025": false - }, - "ma_tafdc_work_related_expense_deduction": { - "2025": 0 - }, - "ma_tcap_gross_earned_income": { - "2025": 0 - }, - "ma_tcap_gross_unearned_income": { - "2025": 0 - }, - "ma_withheld_income_tax": { - "2025": 0 - }, - "marginal_tax_rate": { - "2025": 0 - }, - "marginal_tax_rate_including_health_benefits": { - "2025": 0 - }, - "marginal_tax_rate_on_capital_gains": { - "2025": 0 - }, - "market_income": { - "2025": 0 - }, - "md_hundred_year_subtraction_eligible": { - "2025": false - }, - "md_hundred_year_subtraction_person": { - "2025": 0 - }, - "md_pension_subtraction_amount": { - "2025": 0 - }, - "md_snap_is_elderly": { - "2025": false - }, - "md_socsec_subtraction_amount": { - "2025": 0 - }, - "md_withheld_income_tax": { - "2025": 0 - }, - "me_dependent_exemption_credit_amount_person": { - "2025": 300 - }, - "me_withheld_income_tax": { - "2025": 0 - }, - "medicaid": { - "2025": 0 - }, - "medicaid_category": { - "2025": "NONE" - }, - "medicaid_cost": { - "2025": 0 - }, - "medicaid_cost_if_enrolled": { - "2025": 0 - }, - "medicaid_enrolled": { - "2025": false - }, - "medicaid_group": { - "2025": "NONE" - }, - "medicaid_income_level": { - "2025": 4.9852257 - }, - "medicaid_take_up_seed": { - "2025": 0 - }, - "medicaid_work_requirement_eligible": { - "2025": true - }, - "medical_out_of_pocket_expenses": { - "2025": 0 - }, - "medicare_part_b_premiums": { - "2025": 0 - }, - "meets_ctc_child_identification_requirements": { - "2025": true - }, - "meets_ctc_identification_requirements": { - "2025": true - }, - "meets_eitc_identification_requirements": { - "2025": true - }, - "meets_snap_abawd_work_requirements": { - "2025": true - }, - "meets_snap_general_work_requirements": { - "2025": true - }, - "meets_ssi_resource_test": { - "2025": true - }, - "meets_wic_categorical_eligibility": { - "2025": false - }, - "mi_disabled_exemption_eligible_person": { - "2025": 0 - }, - "mi_withheld_income_tax": { - "2025": 0 - }, - "military_basic_pay": { - "2025": 0 - }, - "military_retirement_pay": { - "2025": 0 - }, - "military_retirement_pay_survivors": { - "2025": 0 - }, - "military_service_income": { - "2025": 0 - }, - "miscellaneous_income": { - "2025": 0 - }, - "mn_withheld_income_tax": { - "2025": 0 - }, - "mo_adjusted_gross_income": { - "2025": 0 - }, - "mo_income_tax_before_credits": { - "2025": 0 - }, - "mo_income_tax_exempt": { - "2025": 0 - }, - "mo_pension_and_ss_or_ssd_deduction_section_a": { - "2025": 0 - }, - "mo_pension_and_ss_or_ssd_deduction_section_b": { - "2025": 0 - }, - "mo_pension_and_ss_or_ssd_deduction_section_c": { - "2025": 0 - }, - "mo_qualified_health_insurance_premiums": { - "2025": 0 - }, - "mo_taxable_income": { - "2025": 0 - }, - "mo_withheld_income_tax": { - "2025": 0 - }, - "monthly_age": { - "2025": 120 - }, - "monthly_hours_worked": { - "2025": 0 - }, - "months_receiving_social_security_disability": { - "2025": 0 - }, - "mortgage_interest": { - "2025": 0 - }, - "ms_agi": { - "2025": 0 - }, - "ms_agi_adjustments": { - "2025": 0 - }, - "ms_deductions_indiv": { - "2025": 0 - }, - "ms_deductions_joint": { - "2025": 0 - }, - "ms_income_tax_before_credits_indiv": { - "2025": 0 - }, - "ms_income_tax_before_credits_joint": { - "2025": 0 - }, - "ms_itemized_deductions_indiv": { - "2025": 0 - }, - "ms_itemized_deductions_joint": { - "2025": 0 - }, - "ms_national_guard_or_reserve_pay_adjustment": { - "2025": 0 - }, - "ms_pre_deductions_taxable_income_indiv": { - "2025": 0 - }, - "ms_prorate_fraction": { - "2025": 0 - }, - "ms_retirement_income_exemption": { - "2025": 0 - }, - "ms_self_employment_adjustment": { - "2025": 0 - }, - "ms_standard_deduction_indiv": { - "2025": 0 - }, - "ms_standard_deduction_joint": { - "2025": 0 - }, - "ms_taxable_income_indiv": { - "2025": 0 - }, - "ms_taxable_income_joint": { - "2025": 0 - }, - "ms_total_exemptions_indiv": { - "2025": 0 - }, - "ms_total_exemptions_joint": { - "2025": 0 - }, - "ms_withheld_income_tax": { - "2025": 0 - }, - "mt_additions": { - "2025": 0 - }, - "mt_aged_exemption_eligible_person": { - "2025": false - }, - "mt_agi_indiv": { - "2025": 0 - }, - "mt_applicable_ald_deductions": { - "2025": 0 - }, - "mt_capital_gain_credit": { - "2025": 0 - }, - "mt_capital_gains_tax_applicable_threshold_indiv": { - "2025": 0 - }, - "mt_capital_gains_tax_applicable_threshold_joint": { - "2025": 0 - }, - "mt_capital_gains_tax_indiv": { - "2025": 0 - }, - "mt_capital_gains_tax_joint": { - "2025": 0 - }, - "mt_child_dependent_care_expense_deduction": { - "2025": 0 - }, - "mt_child_dependent_care_expense_deduction_eligible_child": { - "2025": false - }, - "mt_deductions_indiv": { - "2025": 0 - }, - "mt_dependent_exemptions_person": { - "2025": 0 - }, - "mt_disability_income_exclusion_eligible_person": { - "2025": false - }, - "mt_disability_income_exclusion_person": { - "2025": 0 - }, - "mt_eitc": { - "2025": 0 - }, - "mt_elderly_homeowner_or_renter_credit": { - "2025": 0 - }, - "mt_elderly_homeowner_or_renter_credit_eligible": { - "2025": false - }, - "mt_elderly_homeowner_or_renter_credit_gross_household_income": { - "2025": 0 - }, - "mt_elderly_homeowner_or_renter_credit_net_household_income": { - "2025": 0 - }, - "mt_federal_income_tax_deduction_for_federal_itemization_indiv": { - "2025": 0 - }, - "mt_federal_income_tax_deduction_indiv": { - "2025": 0 - }, - "mt_income_tax_before_non_refundable_credits_indiv": { - "2025": 0 - }, - "mt_income_tax_before_refundable_credits_indiv": { - "2025": 0 - }, - "mt_income_tax_indiv": { - "2025": 0 - }, - "mt_interest_exemption_eligible_person": { - "2025": false - }, - "mt_interest_exemption_person": { - "2025": 0 - }, - "mt_itemized_deductions_for_federal_itemization_indiv": { - "2025": 0 - }, - "mt_itemized_deductions_for_federal_itemization_joint": { - "2025": 0 - }, - "mt_itemized_deductions_indiv": { - "2025": 0 - }, - "mt_itemized_deductions_joint": { - "2025": 0 - }, - "mt_medical_expense_deduction_indiv": { - "2025": 0 - }, - "mt_medical_expense_deduction_joint": { - "2025": 0 - }, - "mt_misc_deductions": { - "2025": 0 - }, - "mt_non_refundable_credits": { - "2025": 0 - }, - "mt_old_age_subtraction": { - "2025": 0 - }, - "mt_personal_exemptions_indiv": { - "2025": 0 - }, - "mt_personal_exemptions_joint": { - "2025": 0 - }, - "mt_pre_dependent_exemption_taxable_income_indiv": { - "2025": 0 - }, - "mt_refundable_credits": { - "2025": 0 - }, - "mt_refundable_credits_before_renter_credit": { - "2025": 0 - }, - "mt_regular_income_tax_indiv": { - "2025": 0 - }, - "mt_salt_deduction": { - "2025": 0 - }, - "mt_standard_deduction_indiv": { - "2025": 0 - }, - "mt_standard_deduction_joint": { - "2025": 0 - }, - "mt_subtractions": { - "2025": 0 - }, - "mt_taxable_income_indiv": { - "2025": 0 - }, - "mt_taxable_income_joint": { - "2025": 0 - }, - "mt_taxable_social_security": { - "2025": 0 - }, - "mt_tuition_subtraction_person": { - "2025": 0 - }, - "mt_withheld_income_tax": { - "2025": 0 - }, - "nc_military_retirement_deduction_eligible": { - "2025": false - }, - "nc_scca_age_group": { - "2025": 3 - }, - "nc_scca_child_age_eligible": { - "2025": false - }, - "nc_scca_is_school_age": { - "2025": false - }, - "nc_scca_market_rate": { - "2025": 0 - }, - "nc_withheld_income_tax": { - "2025": 0 - }, - "nd_withheld_income_tax": { - "2025": 0 - }, - "ne_child_care_subsidy_eligible_child": { - "2025": false - }, - "ne_child_care_subsidy_eligible_parent": { - "2025": false - }, - "ne_dhhs_has_special_needs": { - "2025": false - }, - "ne_refundable_ctc_eligible_child": { - "2025": false - }, - "ne_school_readiness_credit": { - "2025": 0 - }, - "ne_school_readiness_credit_child_care_worker_rating": { - "2025": 0 - }, - "ne_school_readiness_credit_eligible_worker": { - "2025": false - }, - "ne_withheld_income_tax": { - "2025": 0 - }, - "never_eligible_for_social_security_benefits": { - "2025": false - }, - "nj_additions": { - "2025": 0 - }, - "nj_agi_subtractions": { - "2025": 0 - }, - "nj_eligible_pension_income": { - "2025": 0 - }, - "nj_total_income": { - "2025": 0 - }, - "nj_withheld_income_tax": { - "2025": 0 - }, - "nm_armed_forces_retirement_pay_exemption_person": { - "2025": 0 - }, - "nm_cdcc_eligible_child": { - "2025": false - }, - "nm_withheld_income_tax": { - "2025": 0 - }, - "non_deductible_mortgage_interest": { - "2025": 0 - }, - "non_mortgage_interest": { - "2025": 0 - }, - "non_public_school_tuition": { - "2025": 0 - }, - "non_qualified_dividend_income": { - "2025": 0 - }, - "non_sch_d_capital_gains": { - "2025": 0 - }, - "ny_pension_exclusion": { - "2025": 0 - }, - "ny_withheld_income_tax": { - "2025": 0 - }, - "offered_aca_disqualifying_esi": { - "2025": false - }, - "oh_529_plan_deduction_person": { - "2025": 0 - }, - "oh_additions": { - "2025": 0 - }, - "oh_adoption_credit_person": { - "2025": 0 - }, - "oh_agi_person": { - "2025": 0 - }, - "oh_bonus_depreciation_add_back": { - "2025": 0 - }, - "oh_deductions": { - "2025": 0 - }, - "oh_federal_conformity_deductions": { - "2025": 0 - }, - "oh_has_taken_oh_lump_sum_credits": { - "2025": false - }, - "oh_insured_unreimbursed_medical_care_expense_amount": { - "2025": 0 - }, - "oh_insured_unreimbursed_medical_care_expenses_person": { - "2025": 0 - }, - "oh_joint_filing_credit_agi_subtractions": { - "2025": 0 - }, - "oh_joint_filing_credit_qualifying_income": { - "2025": 0 - }, - "oh_lump_sum_distribution_credit_eligible_person": { - "2025": false - }, - "oh_lump_sum_distribution_credit_person": { - "2025": 0 - }, - "oh_other_add_backs": { - "2025": 0 - }, - "oh_personal_exemptions_eligible_person": { - "2025": false - }, - "oh_section_179_expense_add_back": { - "2025": 0 - }, - "oh_uniformed_services_retirement_income_deduction": { - "2025": 0 - }, - "oh_uninsured_unreimbursed_medical_care_expenses": { - "2025": 0 - }, - "oh_unreimbursed_medical_care_expense_deduction_person": { - "2025": 0 - }, - "oh_withheld_income_tax": { - "2025": 0 - }, - "ok_withheld_income_tax": { - "2025": 0 - }, - "or_retirement_credit_eligible_person": { - "2025": false - }, - "or_withheld_income_tax": { - "2025": 0 - }, - "other_credits": { - "2025": 0 - }, - "other_medical_expenses": { - "2025": 0 - }, - "outpatient_expense": { - "2025": 0 - }, - "over_the_counter_health_expenses": { - "2025": 0 - }, - "own_children_in_household": { - "2025": 0 - }, - "p08000": { - "2025": 0 - }, - "pa_nontaxable_pension_income": { - "2025": 0 - }, - "pa_withheld_income_tax": { - "2025": 0 - }, - "partnership_s_corp_income": { - "2025": 0 - }, - "partnership_s_corp_income_would_be_qualified": { - "2025": true - }, - "payroll_tax_gross_wages": { - "2025": 0 - }, - "pell_grant": { - "2025": 0 - }, - "pell_grant_contribution_from_assets": { - "2025": 0 - }, - "pell_grant_countable_assets": { - "2025": 0 - }, - "pell_grant_dependent_allowances": { - "2025": 7040 - }, - "pell_grant_dependent_available_income": { - "2025": 0 - }, - "pell_grant_dependent_contribution": { - "2025": -3520 - }, - "pell_grant_dependent_other_allowances": { - "2025": 0 - }, - "pell_grant_efc": { - "2025": 0 - }, - "pell_grant_eligibility_type": { - "2025": "INELIGIBLE" - }, - "pell_grant_formula": { - "2025": "A" - }, - "pell_grant_head_allowances": { - "2025": 0 - }, - "pell_grant_head_available_income": { - "2025": 0 - }, - "pell_grant_head_contribution": { - "2025": 0 - }, - "pell_grant_household_type": { - "2025": "DEPENDENT_NOT_SINGLE" - }, - "pell_grant_max_fpg_percent_limit": { - "2025": 1.75 - }, - "pell_grant_min_fpg_percent_limit": { - "2025": 2.75 - }, - "pell_grant_months_in_school": { - "2025": 0 - }, - "pell_grant_sai": { - "2025": -1500 - }, - "pell_grant_simplified_formula_applies": { - "2025": false - }, - "pell_grant_uses_efc": { - "2025": false - }, - "pell_grant_uses_sai": { - "2025": true - }, - "pension_income": { - "2025": 0 - }, - "pension_survivors": { - "2025": 0 - }, - "per_capita_chip": { - "2025": 0 - }, - "person_count": { - "2025": 1 - }, - "person_family_id": { - "2025": 0 - }, - "person_household_id": { - "2025": 0 - }, - "person_id": { - "2025": 3 - }, - "person_in_poverty": { - "2025": false - }, - "person_marital_unit_id": { - "2025": 0 - }, - "person_spm_unit_id": { - "2025": 0 - }, - "person_tax_unit_id": { - "2025": 0 - }, - "person_weight": { - "2025": 0 - }, - "personal_property": { - "2025": 0 - }, - "physician_services_expense": { - "2025": 0 - }, - "pr_agi_person": { - "2025": 0 - }, - "pr_compensatory_low_income_credit": { - "2025": 0 - }, - "pr_earned_income_credit_eligible_person": { - "2025": false - }, - "pr_earned_income_credit_unearned_income": { - "2025": 0 - }, - "pr_eligible_dependent_for_exemption": { - "2025": false - }, - "pr_exemptions_is_eligible_nonstudent": { - "2025": false - }, - "pr_exemptions_is_eligible_student": { - "2025": false - }, - "pr_gross_income_person": { - "2025": 0 - }, - "pr_is_tax_unit_dependent": { - "2025": false - }, - "pr_low_income_credit_eligible_person": { - "2025": false - }, - "pr_retirement_deduction": { - "2025": 0 - }, - "pr_retirement_deduction_eligibility": { - "2025": 0 - }, - "pr_veteran_exemption": { - "2025": 0 - }, - "pre_subsidy_care_expenses": { - "2025": 0 - }, - "pre_subsidy_childcare_expenses": { - "2025": 0 - }, - "pre_subsidy_rent": { - "2025": 0 - }, - "pre_tax_contributions": { - "2025": 0 - }, - "prescription_expense": { - "2025": 0 - }, - "previous_year_income_available": { - "2025": false - }, - "prior_year_minimum_tax_credit": { - "2025": 0 - }, - "private_pension_income": { - "2025": 0 - }, - "public_pension_income": { - "2025": 0 - }, - "qbid_amount": { - "2025": 0 - }, - "qualified_adoption_assistance_expense": { - "2025": 0 - }, - "qualified_bdc_income": { - "2025": 0 - }, - "qualified_business_income": { - "2025": 0 - }, - "qualified_business_income_deduction_person": { - "2025": 0 - }, - "qualified_dividend_income": { - "2025": 0 - }, - "qualified_reit_and_ptp_income": { - "2025": 0 - }, - "qualified_tuition_expenses": { - "2025": 0 - }, - "qualifies_for_elderly_or_disabled_credit": { - "2025": false - }, - "race": { - "2025": "OTHER" - }, - "railroad_benefits": { - "2025": 0 - }, - "real_estate_taxes": { - "2025": 0 - }, - "receives_or_needs_protective_services": { - "2025": false - }, - "receives_wic": { - "2025": false - }, - "relative_capital_gains_mtr_change": { - "2025": 0 - }, - "relative_income_change": { - "2025": 0 - }, - "relative_wage_change": { - "2025": 0 - }, - "rent": { - "2025": 0 - }, - "rental_income": { - "2025": 0 - }, - "rental_income_would_be_qualified": { - "2025": true - }, - "retired_from_federal_government": { - "2025": false - }, - "retired_from_ky_government": { - "2025": false - }, - "retired_on_total_disability": { - "2025": false - }, - "retirement_benefits_from_ss_exempt_employment": { - "2025": 0 - }, - "retirement_distributions": { - "2025": 0 - }, - "ri_withheld_income_tax": { - "2025": 0 - }, - "roth_401k_contributions": { - "2025": 0 - }, - "roth_403b_contributions": { - "2025": 0 - }, - "roth_ira_contributions": { - "2025": 0 - }, - "s_corp_self_employment_income": { - "2025": 0 - }, - "salt_refund_income": { - "2025": 0 - }, - "savers_credit_eligible_person": { - "2025": false - }, - "savers_credit_person": { - "2025": 0 - }, - "savers_credit_qualified_contributions": { - "2025": 0 - }, - "sc_gross_earned_income": { - "2025": 0 - }, - "sc_military_deduction_indv": { - "2025": 0 - }, - "sc_military_deduction_survivors": { - "2025": 0 - }, - "sc_retirement_cap": { - "2025": 0 - }, - "sc_retirement_deduction_indv": { - "2025": 0 - }, - "sc_retirement_deduction_survivors": { - "2025": 0 - }, - "sc_senior_exemption_person": { - "2025": 0 - }, - "sc_tuition_credit": { - "2025": 0 - }, - "sc_tuition_credit_eligible": { - "2025": false - }, - "sc_withheld_income_tax": { - "2025": 0 - }, - "self_employed_health_insurance_ald_person": { - "2025": 0 - }, - "self_employed_health_insurance_premiums": { - "2025": 0 - }, - "self_employed_pension_contribution_ald_person": { - "2025": 0 - }, - "self_employed_pension_contributions": { - "2025": 0 - }, - "self_employment_income": { - "2025": 0 - }, - "self_employment_income_before_lsr": { - "2025": 0 - }, - "self_employment_income_behavioral_response": { - "2025": 0 - }, - "self_employment_income_last_year": { - "2025": 0 - }, - "self_employment_income_would_be_qualified": { - "2025": true - }, - "self_employment_medicare_tax": { - "2025": 0 - }, - "self_employment_social_security_tax": { - "2025": 0 - }, - "self_employment_tax": { - "2025": 0 - }, - "self_employment_tax_ald_person": { - "2025": 0 - }, - "sep_distributions": { - "2025": 0 - }, - "share_of_care_and_support_costs_paid_by_tax_filer": { - "2025": 0 - }, - "short_term_capital_gains": { - "2025": 0 - }, - "slcsp_age_curve_amount_person": { - "2025": 4092 - }, - "snap_countable_earner": { - "2025": false - }, - "snap_excluded_child_earner": { - "2025": true - }, - "social_security": { - "2025": 0 - }, - "social_security_dependents": { - "2025": 0 - }, - "social_security_disability": { - "2025": 0 - }, - "social_security_retirement": { - "2025": 0 - }, - "social_security_survivors": { - "2025": 0 - }, - "social_security_taxable_self_employment_income": { - "2025": 0 - }, - "ssi": { - "2025": 0 - }, - "ssi_amount_if_eligible": { - "2025": 11604 - }, - "ssi_blind_or_disabled_working_student_exclusion": { - "2025": 0 - }, - "ssi_category": { - "2025": "NONE" - }, - "ssi_claim_is_joint": { - "2025": false - }, - "ssi_countable_income": { - "2025": 0 - }, - "ssi_countable_resources": { - "2025": 0 - }, - "ssi_earned_income": { - "2025": 0 - }, - "ssi_earned_income_deemed_from_ineligible_spouse": { - "2025": 0 - }, - "ssi_engaged_in_sga": { - "2025": false - }, - "ssi_income_deemed_from_ineligible_spouse": { - "2025": 0 - }, - "ssi_ineligible_child_allocation": { - "2025": 5796 - }, - "ssi_ineligible_parent_allocation": { - "2025": 0 - }, - "ssi_marital_both_eligible": { - "2025": false - }, - "ssi_marital_earned_income": { - "2025": 0 - }, - "ssi_marital_unearned_income": { - "2025": 0 - }, - "ssi_qualifying_quarters_earnings": { - "2025": 40 - }, - "ssi_reported": { - "2025": 0 - }, - "ssi_unearned_income": { - "2025": 0 - }, - "ssi_unearned_income_deemed_from_ineligible_parent": { - "2025": 0 - }, - "ssi_unearned_income_deemed_from_ineligible_spouse": { - "2025": 0 - }, - "ssn_card_type": { - "2025": "CITIZEN" - }, - "state_income_tax_reported": { - "2025": 0 - }, - "state_or_federal_salary": { - "2025": 0 - }, - "strike_benefits": { - "2025": 0 - }, - "student_loan_interest": { - "2025": 0 - }, - "student_loan_interest_ald": { - "2025": 0 - }, - "student_loan_interest_ald_eligible": { - "2025": false - }, - "student_loan_interest_ald_magi": { - "2025": 0 - }, - "substitution_elasticity": { - "2025": 0 - }, - "substitution_elasticity_lsr": { - "2025": 0 - }, - "takes_up_medicaid_if_eligible": { - "2025": true - }, - "tanf_person": { - "2025": 0 - }, - "tanf_reported": { - "2025": 0 - }, - "tax_exempt_401k_distributions": { - "2025": 0 - }, - "tax_exempt_403b_distributions": { - "2025": 0 - }, - "tax_exempt_interest_income": { - "2025": 0 - }, - "tax_exempt_ira_distributions": { - "2025": 0 - }, - "tax_exempt_pension_income": { - "2025": 0 - }, - "tax_exempt_private_pension_income": { - "2025": 0 - }, - "tax_exempt_public_pension_income": { - "2025": 0 - }, - "tax_exempt_retirement_distributions": { - "2025": 0 - }, - "tax_exempt_sep_distributions": { - "2025": 0 - }, - "tax_exempt_unemployment_compensation": { - "2025": 0 - }, - "tax_preparation_fees": { - "2025": 0 - }, - "taxable_401k_distributions": { - "2025": 0 - }, - "taxable_403b_distributions": { - "2025": 0 - }, - "taxable_earnings_for_social_security": { - "2025": 0 - }, - "taxable_estate_value": { - "2025": 0 - }, - "taxable_federal_pension_income": { - "2025": 0 - }, - "taxable_interest_income": { - "2025": 0 - }, - "taxable_ira_distributions": { - "2025": 0 - }, - "taxable_pension_income": { - "2025": 0 - }, - "taxable_private_pension_income": { - "2025": 0 - }, - "taxable_public_pension_income": { - "2025": 0 - }, - "taxable_retirement_distributions": { - "2025": 0 - }, - "taxable_self_employment_income": { - "2025": 0 - }, - "taxable_sep_distributions": { - "2025": 0 - }, - "taxable_social_security": { - "2025": 0 - }, - "taxable_unemployment_compensation": { - "2025": 0 - }, - "technical_institution_student": { - "2025": false - }, - "tip_income": { - "2025": 0 - }, - "total_disability_payments": { - "2025": 0 - }, - "traditional_401k_contributions": { - "2025": 0 - }, - "traditional_403b_contributions": { - "2025": 0 - }, - "traditional_ira_contributions": { - "2025": 0 - }, - "tx_dart_benefit_person": { - "2025": 0 - }, - "tx_dart_free_ride_benefit": { - "2025": 0 - }, - "tx_dart_free_ride_eligible_young_child": { - "2025": false - }, - "tx_dart_reduced_fare_age_eligible": { - "2025": false - }, - "tx_dart_reduced_fare_benefit": { - "2025": 0 - }, - "tx_dart_reduced_fare_eligible": { - "2025": false - }, - "tx_dart_reduced_fare_program_eligible": { - "2025": false - }, - "unadjusted_basis_qualified_property": { - "2025": 0 - }, - "uncapped_ssi": { - "2025": 0 - }, - "under_12_months_postpartum": { - "2025": false - }, - "under_60_days_postpartum": { - "2025": false - }, - "unemployment_compensation": { - "2025": 0 - }, - "unreimbursed_business_employee_expenses": { - "2025": 0 - }, - "urgent_care_expense": { - "2025": 0 - }, - "us_bonds_for_higher_ed": { - "2025": 0 - }, - "us_govt_interest_person": { - "2025": 0 - }, - "ut_at_home_parent_credit_earned_income_eligible_person": { - "2025": false - }, - "ut_personal_exemption_additional_dependent_eligible": { - "2025": false - }, - "ut_withheld_income_tax": { - "2025": 0 - }, - "va_aged_blind_exemption_person": { - "2025": 0 - }, - "va_agi_less_exemptions_person": { - "2025": 0 - }, - "va_agi_person": { - "2025": 0 - }, - "va_agi_share": { - "2025": 0 - }, - "va_eitc_person": { - "2025": 0 - }, - "va_personal_exemption_person": { - "2025": 0 - }, - "va_withheld_income_tax": { - "2025": 0 - }, - "veterans_benefits": { - "2025": 0 - }, - "vita_eligible": { - "2025": true - }, - "vt_withheld_income_tax": { - "2025": 0 - }, - "w2_wages_from_qualified_business": { - "2025": 0 - }, - "was_in_foster_care": { - "2025": false - }, - "weekly_hours_worked": { - "2025": 40 - }, - "weekly_hours_worked_before_lsr": { - "2025": 40 - }, - "weekly_hours_worked_behavioural_response": { - "2025": 0 - }, - "weekly_hours_worked_behavioural_response_income_elasticity": { - "2025": 0 - }, - "weekly_hours_worked_behavioural_response_substitution_elasticity": { - "2025": 0 - }, - "wi_withheld_income_tax": { - "2025": 0 - }, - "wic": { - "2025": 0 - }, - "wic_category": { - "2025": "NONE" - }, - "wic_category_str": { - "2025": "NONE" - }, - "workers_compensation": { - "2025": 0 - }, - "would_claim_wic": { - "2025": true - }, - "wv_public_pension_subtraction_person": { - "2025": 0 - }, - "wv_senior_citizen_disability_deduction_eligible_person": { - "2025": false - }, - "wv_senior_citizen_disability_deduction_person": { - "2025": 0 - }, - "wv_senior_citizen_disability_deduction_total_modifications": { - "2025": 0 - }, - "wv_social_security_benefits_subtraction_person": { - "2025": 0 - }, - "wv_withheld_income_tax": { - "2025": 0 - }, - "year_deceased": { - "2025": 0 - }, - "year_of_retirement": { - "2025": 0 - }, - "years_in_military": { - "2025": 0 - } + }, + "ar_standard_deduction_joint": { + "2025": 0 + }, + "ar_taxable_capital_gains_indiv": { + "2025": 0 + }, + "ar_taxable_capital_gains_joint": { + "2025": 0 + }, + "ar_taxable_income_indiv": { + "2025": 0 + }, + "ar_taxable_income_joint": { + "2025": 0 + }, + "ar_withheld_income_tax": { + "2025": 0 + }, + "assessed_property_value": { + "2025": 0 + }, + "az_aged_exemption": { + "2025": 0 + }, + "az_aged_exemption_eligible_person": { + "2025": 0 + }, + "az_parents_grandparents_exemption": { + "2025": 0 + }, + "az_tanf_eligible_child": { + "2025": false + }, + "az_withheld_income_tax": { + "2025": 0 + }, + "birth_year": { + "2025": 2015 + }, + "business_is_qualified": { + "2025": true + }, + "business_is_sstb": { + "2025": false + }, + "ca_ala_general_assistance_age_eligible": { + "2025": false + }, + "ca_ala_general_assistance_countable_income_person": { + "2025": 0 + }, + "ca_ala_general_assistance_eligible_person": { + "2025": false + }, + "ca_ala_general_assistance_immigration_status_eligible": { + "2025": false + }, + "ca_calworks_child_care_child_age_eligible": { + "2025": false + }, + "ca_calworks_child_care_days_per_month": { + "2025": 0 + }, + "ca_calworks_child_care_factor_category": { + "2025": "STANDARD" + }, + "ca_calworks_child_care_full_time": { + "2025": false + }, + "ca_calworks_child_care_immigration_status_eligible_person": { + "2025": false + }, + "ca_calworks_child_care_payment": { + "2025": 0 + }, + "ca_calworks_child_care_payment_factor": { + "2025": 0 + }, + "ca_calworks_child_care_payment_standard": { + "2025": 0 + }, + "ca_calworks_child_care_provider_category": { + "2025": "CHILD_CARE_CENTER" + }, + "ca_calworks_child_care_time_category": { + "2025": "WEEKLY" + }, + "ca_calworks_child_care_time_coefficient": { + "2025": 0 + }, + "ca_calworks_child_care_weeks_per_month": { + "2025": 0 + }, + "ca_calworks_child_care_welfare_to_work": { + "2025": 0 + }, + "ca_capi_eligible_person": { + "2025": false + }, + "ca_cvrp": { + "2025": 0 + }, + "ca_cvrp_vehicle_rebate_amount": { + "2025": 0 + }, + "ca_ffyp_eligible": { + "2025": false + }, + "ca_foster_care_minor_dependent": { + "2025": false + }, + "ca_foster_youth_tax_credit_eligible_person": { + "2025": false + }, + "ca_foster_youth_tax_credit_person": { + "2025": 0 + }, + "ca_in_home_supportive_services": { + "2025": 0 + }, + "ca_in_medical_care_facility": { + "2025": false + }, + "ca_is_qualifying_child_for_caleitc": { + "2025": false + }, + "ca_la_expectant_parent_payment": { + "2025": 0 + }, + "ca_la_expectant_parent_payment_eligible": { + "2025": false + }, + "ca_la_infant_supplement_eligible_person": { + "2025": false + }, + "ca_riv_general_relief_countable_income_person": { + "2025": 0 + }, + "ca_riv_general_relief_countable_property_value": { + "2025": 0 + }, + "ca_riv_general_relief_earned_income": { + "2025": 0 + }, + "ca_riv_general_relief_earned_income_deductions": { + "2025": 0 + }, + "ca_riv_general_relief_excluded_income": { + "2025": 0 + }, + "ca_riv_general_relief_immigration_status_eligible": { + "2025": false + }, + "ca_riv_general_relief_ineligible_person": { + "2025": false + }, + "ca_riv_general_relief_meets_work_requirements": { + "2025": false + }, + "ca_riv_general_relief_net_earned_income": { + "2025": 0 + }, + "ca_riv_general_relief_unearned_income": { + "2025": 0 + }, + "ca_state_disability_insurance": { + "2025": 0 + }, + "ca_state_supplement_eligible_person": { + "2025": false + }, + "ca_tanf_immigration_status_eligible_person": { + "2025": false + }, + "ca_withheld_income_tax": { + "2025": 0 + }, + "capital_gains": { + "2025": 0 + }, + "capital_gains_behavioral_response": { + "2025": 0 + }, + "capital_gains_elasticity": { + "2025": 0 + }, + "capital_losses": { + "2025": 0 + }, + "care_and_support_costs": { + "2025": 0 + }, + "care_and_support_payments_from_tax_filer": { + "2025": 0 + }, + "care_expenses": { + "2025": 0 + }, + "casualty_loss": { + "2025": 0 + }, + "ccdf_age_group": { + "2025": "INFANT" + }, + "ccdf_duration_of_care": { + "2025": "HOURLY" + }, + "ccdf_market_rate": { + "2025": 0 + }, + "charitable_cash_donations": { + "2025": 0 + }, + "charitable_non_cash_donations": { + "2025": 0 + }, + "child_index": { + "2025": 2 + }, + "child_support_expense": { + "2025": 0 + }, + "child_support_received": { + "2025": 0 + }, + "childcare_days_per_week": { + "2025": 0 + }, + "childcare_hours_per_day": { + "2025": 0 + }, + "childcare_hours_per_week": { + "2025": 0 + }, + "childcare_provider_type_group": { + "2025": "DCC_SACC" + }, + "chip": { + "2025": 0 + }, + "chip_category": { + "2025": "NONE" + }, + "claimed_as_dependent_on_another_return": { + "2025": false + }, + "claimed_ma_covid_19_essential_employee_premium_pay_program_2020": { + "2025": false + }, + "cliff_evaluated": { + "2025": false + }, + "cliff_gap": { + "2025": 0 + }, + "co_ccap_child_eligible": { + "2025": false + }, + "co_chp": { + "2025": 0 + }, + "co_chp_eligible": { + "2025": false + }, + "co_chp_out_of_pocket_maximum": { + "2025": 8013.75 + }, + "co_ctc_eligible_child": { + "2025": false + }, + "co_family_affordability_credit": { + "2025": 0 + }, + "co_federal_ctc_child_individual_maximum": { + "2025": 0 + }, + "co_oap": { + "2025": 0 + }, + "co_oap_eligible": { + "2025": false + }, + "co_pension_subtraction_income": { + "2025": 0 + }, + "co_pension_subtraction_indv": { + "2025": 0 + }, + "co_pension_subtraction_indv_eligible": { + "2025": false + }, + "co_quality_rating_of_child_care_facility": { + "2025": 0 + }, + "co_social_security_subtraction_indv": { + "2025": 0 + }, + "co_social_security_subtraction_indv_eligible": { + "2025": 0 + }, + "co_state_supplement": { + "2025": 0 + }, + "co_state_supplement_eligible": { + "2025": false + }, + "co_withheld_income_tax": { + "2025": 0 + }, + "commodity_supplemental_food_program": { + "2025": 0 + }, + "commodity_supplemental_food_program_eligible": { + "2025": false + }, + "cost_of_attending_college": { + "2025": 0 + }, + "count_529_contribution_beneficiaries": { + "2025": 0 + }, + "count_days_postpartum": { + "2025": "Infinity" + }, + "cps_race": { + "2025": 0 + }, + "csrs_retirement_pay": { + "2025": 0 + }, + "ct_withheld_income_tax": { + "2025": 0 + }, + "ctc_adult_individual_maximum": { + "2025": 0 + }, + "ctc_child_individual_maximum": { + "2025": 2200 + }, + "ctc_child_individual_maximum_arpa": { + "2025": 0 + }, + "ctc_individual_maximum": { + "2025": 2200 + }, + "ctc_qualifying_child": { + "2025": true + }, + "current_pregnancies": { + "2025": 0 + }, + "current_pregnancy_month": { + "2025": 0 + }, + "dc_additions": { + "2025": 0 + }, + "dc_agi": { + "2025": 0 + }, + "dc_ccsp_attending_days_per_month": { + "2025": 0 + }, + "dc_ccsp_child_category": { + "2025": "PRESCHOOL" + }, + "dc_ccsp_childcare_provider_category": { + "2025": "CHILD_CENTER" + }, + "dc_ccsp_eligible_child": { + "2025": false + }, + "dc_ccsp_first_child_copay": { + "2025": 0 + }, + "dc_ccsp_immigration_status_eligible_person": { + "2025": false + }, + "dc_ccsp_is_full_time": { + "2025": false + }, + "dc_ccsp_is_second_youngest_child": { + "2025": false + }, + "dc_ccsp_is_youngest_child": { + "2025": false + }, + "dc_ccsp_maximum_subsidy_amount": { + "2025": 0 + }, + "dc_ccsp_schedule_type": { + "2025": "FULL_TIME_TRADITIONAL" + }, + "dc_ccsp_second_child_copay": { + "2025": 0 + }, + "dc_ctc_eligible_child": { + "2025": false + }, + "dc_deduction_indiv": { + "2025": 0 + }, + "dc_disability_exclusion": { + "2025": 0 + }, + "dc_disabled_exclusion_subtraction": { + "2025": 0 + }, + "dc_gac_countable_unearned_income_person": { + "2025": 0 + }, + "dc_gac_earned_income_after_disregard_person": { + "2025": 0 + }, + "dc_gac_eligible_child": { + "2025": false + }, + "dc_income_subtractions": { + "2025": 0 + }, + "dc_pap_eligible_child": { + "2025": false + }, + "dc_power_head_or_spouse_eligible": { + "2025": false + }, + "dc_self_employment_loss_addition": { + "2025": 0 + }, + "dc_tanf_demographic_eligible_person": { + "2025": false + }, + "dc_tanf_earned_income_after_disregard_person": { + "2025": 0 + }, + "dc_tanf_gross_earned_income": { + "2025": 0 + }, + "dc_tanf_gross_unearned_income": { + "2025": 0 + }, + "dc_tanf_immigration_status_eligible_person": { + "2025": false + }, + "dc_tanf_is_working": { + "2025": false + }, + "dc_tanf_work_requirement_exempt": { + "2025": false + }, + "dc_taxable_income_indiv": { + "2025": 0 + }, + "dc_withheld_income_tax": { + "2025": 0 + }, + "de_additional_standard_deduction": { + "2025": 0 + }, + "de_additions": { + "2025": 0 + }, + "de_agi_indiv": { + "2025": 0 + }, + "de_agi_joint": { + "2025": 0 + }, + "de_base_standard_deduction_indv": { + "2025": 0 + }, + "de_base_standard_deduction_joint": { + "2025": 0 + }, + "de_deduction_indv": { + "2025": 0 + }, + "de_deduction_joint": { + "2025": 0 + }, + "de_elderly_or_disabled_income_exclusion_eligible_person": { + "2025": false + }, + "de_elderly_or_disabled_income_exclusion_indiv": { + "2025": 0 + }, + "de_elderly_or_disabled_income_exclusion_joint": { + "2025": 0 + }, + "de_income_tax_before_non_refundable_credits_indv": { + "2025": 0 + }, + "de_income_tax_before_non_refundable_credits_joint": { + "2025": 0 + }, + "de_itemized_deductions_indv": { + "2025": 0 + }, + "de_itemized_deductions_joint": { + "2025": 0 + }, + "de_pension_exclusion": { + "2025": 0 + }, + "de_pension_exclusion_income": { + "2025": 0 + }, + "de_pre_exclusions_agi": { + "2025": 0 + }, + "de_standard_deduction_indv": { + "2025": 0 + }, + "de_standard_deduction_joint": { + "2025": 0 + }, + "de_subtractions": { + "2025": 0 + }, + "de_taxable_income_indv": { + "2025": 0 + }, + "de_taxable_income_joint": { + "2025": 0 + }, + "de_withheld_income_tax": { + "2025": 0 + }, + "debt_relief": { + "2025": 0 + }, + "deductible_interest_expense": { + "2025": 0 + }, + "deductible_mortgage_interest": { + "2025": 0 + }, + "dependent_care_employer_benefits": { + "2025": 0 + }, + "detailed_occupation_recode": { + "2025": 0 + }, + "disability_benefits": { + "2025": 0 + }, + "dividend_income": { + "2025": 0 + }, + "divorce_year": { + "2025": 2010 + }, + "e00700": { + "2025": 0 + }, + "e01100": { + "2025": 0 + }, + "e01200": { + "2025": 0 + }, + "e02000": { + "2025": 0 + }, + "e03220": { + "2025": 0 + }, + "e03230": { + "2025": 0 + }, + "e03240": { + "2025": 0 + }, + "e03270": { + "2025": 0 + }, + "e03290": { + "2025": 0 + }, + "e03300": { + "2025": 0 + }, + "e03400": { + "2025": 0 + }, + "e03500": { + "2025": 0 + }, + "e07240": { + "2025": 0 + }, + "e07260": { + "2025": 0 + }, + "e07300": { + "2025": 0 + }, + "e09700": { + "2025": 0 + }, + "e09800": { + "2025": 0 + }, + "e09900": { + "2025": 0 + }, + "e11200": { + "2025": 0 + }, + "e18500": { + "2025": 0 + }, + "e19200": { + "2025": 0 + }, + "e19800": { + "2025": 0 + }, + "e20100": { + "2025": 0 + }, + "e20400": { + "2025": 0 + }, + "e24515": { + "2025": 0 + }, + "e24518": { + "2025": 0 + }, + "e26270": { + "2025": 0 + }, + "e27200": { + "2025": 0 + }, + "e32800": { + "2025": 0 + }, + "e58990": { + "2025": 0 + }, + "e62900": { + "2025": 0 + }, + "e87521": { + "2025": 0 + }, + "e87530": { + "2025": 0 + }, + "early_head_start": { + "2025": 0 + }, + "early_withdrawal_penalty": { + "2025": 0 + }, + "earned_income": { + "2025": 0 + }, + "earned_income_last_year": { + "2025": 0 + }, + "educator_expense": { + "2025": 0 + }, + "emp_self_emp_ratio": { + "2025": 1 + }, + "employee_medicare_tax": { + "2025": 0 + }, + "employee_social_security_tax": { + "2025": 0 + }, + "employer_contribution_to_health_insurance_premiums_category": { + "2025": "NONE" + }, + "employer_medicare_tax": { + "2025": 0 + }, + "employer_social_security_tax": { + "2025": 0 + }, + "employment_income": { + "2025": 0 + }, + "employment_income_before_lsr": { + "2025": 0 + }, + "employment_income_behavioral_response": { + "2025": 0 + }, + "employment_income_last_year": { + "2025": 0 + }, + "er_visit_expense": { + "2025": 0 + }, + "estate_income": { + "2025": 0 + }, + "estate_income_would_be_qualified": { + "2025": true + }, + "estate_tax": { + "2025": 0 + }, + "estate_tax_before_credits": { + "2025": 0 + }, + "estate_tax_credit": { + "2025": 0 + }, + "excess_withheld_payroll_tax": { + "2025": 0 + }, + "farm_income": { + "2025": 0 + }, + "farm_operations_income": { + "2025": 0 + }, + "farm_operations_income_would_be_qualified": { + "2025": true + }, + "farm_rent_income": { + "2025": 0 + }, + "farm_rent_income_would_be_qualified": { + "2025": true + }, + "four_year_college_student": { + "2025": false + }, + "fsla_overtime_occupation_exemption_category": { + "2025": "NONE" + }, + "fsla_overtime_premium": { + "2025": 0 + }, + "fsla_overtime_salary_threshold": { + "2025": 151164 + }, + "ga_military_retirement_exclusion_eligible_person": { + "2025": false + }, + "ga_military_retirement_exclusion_person": { + "2025": 0 + }, + "ga_retirement_exclusion_countable_earned_income": { + "2025": 0 + }, + "ga_retirement_exclusion_eligible_person": { + "2025": false + }, + "ga_retirement_exclusion_person": { + "2025": 0 + }, + "ga_retirement_income_exclusion_retirement_income": { + "2025": 0 + }, + "ga_withheld_income_tax": { + "2025": 0 + }, + "gambling_losses": { + "2025": 0 + }, + "gambling_winnings": { + "2025": 0 + }, + "general_assistance": { + "2025": 0 + }, + "general_business_credit": { + "2025": 0 + }, + "gi_cash_assistance": { + "2025": 0 + }, + "has_disabled_spouse": { + "2025": false + }, + "has_esi": { + "2025": false + }, + "has_itin": { + "2025": true + }, + "has_marketplace_health_coverage": { + "2025": true + }, + "has_never_worked": { + "2025": false + }, + "head_start": { + "2025": 0 + }, + "health_insurance_premiums": { + "2025": 0 + }, + "health_insurance_premiums_without_medicare_part_b": { + "2025": 0 + }, + "health_savings_account_payroll_contributions": { + "2025": 0 + }, + "heating_expense_person": { + "2025": 0 + }, + "hi_cdcc_income_floor_eligible": { + "2025": false + }, + "hi_food_excise_credit_child_receiving_public_support": { + "2025": false + }, + "hi_withheld_income_tax": { + "2025": 0 + }, + "home_mortgage_interest": { + "2025": 0 + }, + "hours_worked_last_week": { + "2025": 0 + }, + "ia_alternate_tax_indiv": { + "2025": 0 + }, + "ia_alternate_tax_joint": { + "2025": 0 + }, + "ia_amt_indiv": { + "2025": 0 + }, + "ia_amt_joint": { + "2025": 0 + }, + "ia_base_tax_indiv": { + "2025": 0 + }, + "ia_base_tax_joint": { + "2025": 0 + }, + "ia_basic_deduction_indiv": { + "2025": 0 + }, + "ia_basic_deduction_joint": { + "2025": 0 + }, + "ia_fedtax_deduction": { + "2025": 0 + }, + "ia_gross_income": { + "2025": 0 + }, + "ia_income_adjustments": { + "2025": 0 + }, + "ia_itemized_deductions_indiv": { + "2025": 0 + }, + "ia_itemized_deductions_joint": { + "2025": 0 + }, + "ia_net_income": { + "2025": 0 + }, + "ia_pension_exclusion": { + "2025": 0 + }, + "ia_pension_exclusion_eligible": { + "2025": false + }, + "ia_prorate_fraction": { + "2025": 0 + }, + "ia_qbi_deduction": { + "2025": 0 + }, + "ia_regular_tax_indiv": { + "2025": 0 + }, + "ia_regular_tax_joint": { + "2025": 0 + }, + "ia_standard_deduction_indiv": { + "2025": 0 + }, + "ia_standard_deduction_joint": { + "2025": 0 + }, + "ia_taxable_income_indiv": { + "2025": 0 + }, + "ia_taxable_income_joint": { + "2025": 0 + }, + "ia_withheld_income_tax": { + "2025": 0 + }, + "id_2022_rebate_floor": { + "2025": 0 + }, + "id_aged_or_disabled_credit_eligible_person": { + "2025": false + }, + "id_aged_or_disabled_deduction_eligible_person": { + "2025": false + }, + "id_grocery_credit_aged": { + "2025": 0 + }, + "id_grocery_credit_base": { + "2025": 0 + }, + "id_grocery_credit_qualified_months": { + "2025": 0 + }, + "id_grocery_credit_qualifying_month": { + "2025": false + }, + "id_retirement_benefits_deduction_eligible_person": { + "2025": false + }, + "id_retirement_benefits_deduction_relevant_income": { + "2025": 0 + }, + "id_withheld_income_tax": { + "2025": 0 + }, + "il_aabd_aged_blind_disabled_person": { + "2025": false + }, + "il_aabd_child_care_expense_exemption": { + "2025": 0 + }, + "il_aabd_countable_income": { + "2025": 0 + }, + "il_aabd_countable_unearned_income": { + "2025": 0 + }, + "il_aabd_earned_income_after_exemption_person": { + "2025": 0 + }, + "il_aabd_eligible_person": { + "2025": false + }, + "il_aabd_expense_exemption_person": { + "2025": 0 + }, + "il_aabd_financial_eligible_person": { + "2025": false + }, + "il_aabd_flat_exemption_excess_over_unearned_income": { + "2025": 0 + }, + "il_aabd_grant_amount": { + "2025": 0 + }, + "il_aabd_gross_earned_income": { + "2025": 0 + }, + "il_aabd_gross_unearned_income": { + "2025": 0 + }, + "il_aabd_immigration_status_eligible_person": { + "2025": false + }, + "il_aabd_is_bedfast": { + "2025": false + }, + "il_aabd_need_standard_person": { + "2025": 0 + }, + "il_aabd_non_financial_eligible_person": { + "2025": false + }, + "il_aabd_person": { + "2025": 0 + }, + "il_aabd_personal_allowance": { + "2025": 0 + }, + "il_aabd_shelter_allowance": { + "2025": 0 + }, + "il_aabd_utility_allowance_person": { + "2025": 0 + }, + "il_bap_eligible": { + "2025": false + }, + "il_ccap_eligible_child": { + "2025": false + }, + "il_ccap_immigration_status_eligible_person": { + "2025": false + }, + "il_cta_benefit": { + "2025": 0 + }, + "il_cta_children_reduced_fare_eligible": { + "2025": false + }, + "il_cta_free_ride_benefit": { + "2025": 0 + }, + "il_cta_free_ride_eligible": { + "2025": false + }, + "il_cta_military_service_pass_eligible": { + "2025": false + }, + "il_cta_reduced_fare_benefit": { + "2025": 0 + }, + "il_cta_reduced_fare_eligible": { + "2025": false + }, + "il_cta_rta_reduced_fare_eligible": { + "2025": false + }, + "il_cta_student_reduced_fare_eligible": { + "2025": false + }, + "il_tanf_demographic_eligible_person": { + "2025": false + }, + "il_tanf_eligible_child": { + "2025": false + }, + "il_tanf_gross_earned_income": { + "2025": 0 + }, + "il_tanf_gross_unearned_income": { + "2025": 0 + }, + "il_tanf_immigration_status_eligible_person": { + "2025": false + }, + "il_tanf_initial_employment_deduction_person": { + "2025": 0 + }, + "il_tanf_payment_eligible_child": { + "2025": false + }, + "il_tanf_payment_eligible_parent": { + "2025": false + }, + "il_tanf_payment_eligible_requirements": { + "2025": false + }, + "il_withheld_income_tax": { + "2025": 0 + }, + "illicit_income": { + "2025": 0 + }, + "imaging_expense": { + "2025": 0 + }, + "immigration_status": { + "2025": "CITIZEN" + }, + "immigration_status_str": { + "2025": "CITIZEN" + }, + "in_is_qualifying_dependent_child": { + "2025": false + }, + "in_out_of_home_care_facility": { + "2025": false + }, + "in_withheld_income_tax": { + "2025": 0 + }, + "income_decile": { + "2025": null + }, + "income_elasticity": { + "2025": 0 + }, + "income_elasticity_lsr": { + "2025": 0 + }, + "inpatient_expense": { + "2025": 0 + }, + "interest_income": { + "2025": 0 + }, + "investment_expenses": { + "2025": 0 + }, + "investment_in_529_plan_indv": { + "2025": 0 + }, + "investment_income_elected_form_4952": { + "2025": 0 + }, + "investment_interest_expense": { + "2025": 0 + }, + "irs_employment_income": { + "2025": 0 + }, + "irs_gross_income": { + "2025": 0 + }, + "is_aca_eshi_eligible": { + "2025": false + }, + "is_aca_ptc_eligible": { + "2025": true + }, + "is_aca_ptc_immigration_status_eligible": { + "2025": true + }, + "is_adult": { + "2025": false + }, + "is_adult_for_medicaid": { + "2025": false + }, + "is_adult_for_medicaid_fc": { + "2025": false + }, + "is_adult_for_medicaid_nfc": { + "2025": false + }, + "is_blind": { + "2025": false + }, + "is_breastfeeding": { + "2025": false + }, + "is_ca_cvrp_increased_rebate_eligible": { + "2025": false + }, + "is_ca_cvrp_normal_rebate_eligible": { + "2025": false + }, + "is_ca_medicaid_immigration_status_eligible": { + "2025": false + }, + "is_ccdf_age_eligible": { + "2025": true + }, + "is_ccdf_eligible": { + "2025": false + }, + "is_ccdf_home_based": { + "2025": false + }, + "is_ccdf_reason_for_care_eligible": { + "2025": false + }, + "is_cdcc_eligible": { + "2025": true + }, + "is_child": { + "2025": true + }, + "is_child_dependent": { + "2025": true + }, + "is_child_of_tax_head": { + "2025": true + }, + "is_chip_eligible": { + "2025": false + }, + "is_chip_eligible_child": { + "2025": false + }, + "is_chip_eligible_pregnant": { + "2025": false + }, + "is_chip_eligible_standard_pregnant_person": { + "2025": false + }, + "is_chip_fcep_eligible_person": { + "2025": false + }, + "is_co_denver_dhs_elderly": { + "2025": false + }, + "is_computer_scientist": { + "2025": false + }, + "is_deaf": { + "2025": false + }, + "is_deceased": { + "2025": false + }, + "is_disabled": { + "2025": false + }, + "is_early_head_start_eligible": { + "2025": false + }, + "is_eligible_for_american_opportunity_credit": { + "2025": false + }, + "is_eligible_for_fsla_overtime": { + "2025": true + }, + "is_english_proficient": { + "2025": false + }, + "is_enrolled_in_ccdf": { + "2025": false + }, + "is_executive_administrative_professional": { + "2025": false + }, + "is_farmer_fisher": { + "2025": false + }, + "is_father": { + "2025": false + }, + "is_female": { + "2025": false + }, + "is_full_time_college_student": { + "2025": false + }, + "is_full_time_student": { + "2025": true + }, + "is_fully_disabled_service_connected_veteran": { + "2025": false + }, + "is_grandparent_of_filer_or_spouse": { + "2025": false + }, + "is_head_start_categorically_eligible": { + "2025": false + }, + "is_head_start_eligible": { + "2025": false + }, + "is_head_start_income_eligible": { + "2025": false + }, + "is_hispanic": { + "2025": false + }, + "is_household_head": { + "2025": false + }, + "is_in_foster_care": { + "2025": false + }, + "is_in_foster_care_group_home": { + "2025": false + }, + "is_in_k12_nonpublic_school": { + "2025": false + }, + "is_in_k12_school": { + "2025": true + }, + "is_in_medicaid_medically_needy_category": { + "2025": true + }, + "is_in_secondary_school": { + "2025": false + }, + "is_incapable_of_self_care": { + "2025": false + }, + "is_incarcerated": { + "2025": false + }, + "is_infant_for_medicaid": { + "2025": false + }, + "is_infant_for_medicaid_fc": { + "2025": false + }, + "is_infant_for_medicaid_nfc": { + "2025": false + }, + "is_irs_aged": { + "2025": false + }, + "is_male": { + "2025": true + }, + "is_medicaid_eligible": { + "2025": false + }, + "is_medicaid_immigration_status_eligible": { + "2025": true + }, + "is_medically_needy_for_medicaid": { + "2025": true + }, + "is_medicare_eligible": { + "2025": false + }, + "is_migratory_child": { + "2025": false + }, + "is_military": { + "2025": false + }, + "is_mother": { + "2025": false + }, + "is_older_child_for_medicaid": { + "2025": false + }, + "is_older_child_for_medicaid_fc": { + "2025": false + }, + "is_older_child_for_medicaid_nfc": { + "2025": true + }, + "is_on_cliff": { + "2025": false + }, + "is_optional_senior_or_disabled_asset_eligible": { + "2025": true + }, + "is_optional_senior_or_disabled_for_medicaid": { + "2025": false + }, + "is_optional_senior_or_disabled_income_eligible": { + "2025": true + }, + "is_paid_hourly": { + "2025": false + }, + "is_parent": { + "2025": false + }, + "is_parent_for_medicaid": { + "2025": false + }, + "is_parent_for_medicaid_fc": { + "2025": false + }, + "is_parent_for_medicaid_nfc": { + "2025": false + }, + "is_parent_of_filer_or_spouse": { + "2025": false + }, + "is_permanently_and_totally_disabled": { + "2025": false + }, + "is_permanently_disabled_veteran": { + "2025": false + }, + "is_person_demographic_tanf_eligible": { + "2025": true + }, + "is_pregnant": { + "2025": false + }, + "is_pregnant_for_medicaid": { + "2025": false + }, + "is_pregnant_for_medicaid_fc": { + "2025": false + }, + "is_pregnant_for_medicaid_nfc": { + "2025": false + }, + "is_related_to_head_or_spouse": { + "2025": true + }, + "is_retired": { + "2025": false + }, + "is_runaway_child": { + "2025": false + }, + "is_self_employed": { + "2025": false + }, + "is_senior": { + "2025": false + }, + "is_separated": { + "2025": false + }, + "is_severely_disabled": { + "2025": false + }, + "is_snap_ineligible_student": { + "2025": false + }, + "is_ssi_aged": { + "2025": false + }, + "is_ssi_aged_blind_disabled": { + "2025": false + }, + "is_ssi_blind_or_disabled_working_student_exclusion_eligible": { + "2025": 0 + }, + "is_ssi_disabled": { + "2025": false + }, + "is_ssi_eligible": { + "2025": false + }, + "is_ssi_eligible_individual": { + "2025": false + }, + "is_ssi_eligible_spouse": { + "2025": false + }, + "is_ssi_ineligible_child": { + "2025": true + }, + "is_ssi_ineligible_parent": { + "2025": false + }, + "is_ssi_ineligible_spouse": { + "2025": false + }, + "is_ssi_qualified_noncitizen": { + "2025": false + }, + "is_ssi_recipient_for_medicaid": { + "2025": false + }, + "is_surviving_child_of_disabled_veteran": { + "2025": false + }, + "is_surviving_spouse": { + "2025": false + }, + "is_surviving_spouse_of_disabled_veteran": { + "2025": false + }, + "is_tafdc_related_to_head_or_spouse": { + "2025": true + }, + "is_tax_unit_dependent": { + "2025": true + }, + "is_tax_unit_head": { + "2025": false + }, + "is_tax_unit_head_or_spouse": { + "2025": false + }, + "is_tax_unit_spouse": { + "2025": false + }, + "is_tce_eligible": { + "2025": false + }, + "is_usda_disabled": { + "2025": false + }, + "is_usda_elderly": { + "2025": false + }, + "is_veteran": { + "2025": false + }, + "is_wa_adult": { + "2025": false + }, + "is_wic_at_nutritional_risk": { + "2025": true + }, + "is_wic_eligible": { + "2025": false + }, + "is_young_adult_for_medicaid": { + "2025": false + }, + "is_young_adult_for_medicaid_fc": { + "2025": false + }, + "is_young_adult_for_medicaid_nfc": { + "2025": false + }, + "is_young_child_for_medicaid": { + "2025": false + }, + "is_young_child_for_medicaid_fc": { + "2025": false + }, + "is_young_child_for_medicaid_nfc": { + "2025": false + }, + "keogh_distributions": { + "2025": 0 + }, + "ks_disabled_veteran_exemptions_eligible_person": { + "2025": false + }, + "ks_withheld_income_tax": { + "2025": 0 + }, + "ky_additions": { + "2025": 0 + }, + "ky_aged_personal_tax_credits": { + "2025": 0 + }, + "ky_agi": { + "2025": 0 + }, + "ky_blind_personal_tax_credits": { + "2025": 0 + }, + "ky_deductions_indiv": { + "2025": 0 + }, + "ky_deductions_joint": { + "2025": 0 + }, + "ky_income_tax_before_non_refundable_credits_indiv": { + "2025": 0 + }, + "ky_income_tax_before_non_refundable_credits_joint": { + "2025": 0 + }, + "ky_itemized_deductions_indiv": { + "2025": 0 + }, + "ky_itemized_deductions_joint": { + "2025": 0 + }, + "ky_military_personal_tax_credits": { + "2025": 0 + }, + "ky_pension_income_exclusion": { + "2025": 0 + }, + "ky_pension_income_exclusion_exemption_eligible": { + "2025": false + }, + "ky_personal_tax_credits_indiv": { + "2025": 0 + }, + "ky_personal_tax_credits_joint": { + "2025": 0 + }, + "ky_service_credit_months_post_1997": { + "2025": 0 + }, + "ky_service_credit_months_pre_1998": { + "2025": 0 + }, + "ky_service_credits_percentage_pre_1998": { + "2025": 0 + }, + "ky_standard_deduction_indiv": { + "2025": 0 + }, + "ky_standard_deduction_joint": { + "2025": 0 + }, + "ky_subtractions": { + "2025": 0 + }, + "ky_taxable_income_indiv": { + "2025": 0 + }, + "ky_taxable_income_joint": { + "2025": 0 + }, + "ky_withheld_income_tax": { + "2025": 0 + }, + "la_blind_exemption_person": { + "2025": 0 + }, + "la_disability_income_exemption_person": { + "2025": 0 + }, + "la_general_relief_gross_income": { + "2025": 0 + }, + "la_general_relief_immigration_status_eligible_person": { + "2025": false + }, + "la_quality_rating_of_child_care_facility": { + "2025": 0 + }, + "la_receives_blind_exemption": { + "2025": true + }, + "la_retirement_exemption_person": { + "2025": 0 + }, + "la_school_readiness_credit_eligible_child": { + "2025": false + }, + "la_withheld_income_tax": { + "2025": 0 + }, + "lab_expense": { + "2025": 0 + }, + "labor_supply_behavioral_response": { + "2025": 0 + }, + "long_term_capital_gains": { + "2025": 0 + }, + "long_term_capital_gains_before_response": { + "2025": 0 + }, + "long_term_capital_gains_on_collectibles": { + "2025": 0 + }, + "long_term_capital_gains_on_small_business_stock": { + "2025": 0 + }, + "long_term_health_insurance_premiums": { + "2025": 0 + }, + "ma_covid_19_essential_employee_premium_pay_program": { + "2025": 0 + }, + "ma_eaedc_dependent_care_deduction_person": { + "2025": 0 + }, + "ma_eaedc_earned_income_after_disregard_person": { + "2025": 0 + }, + "ma_eaedc_eligible_dependent": { + "2025": false + }, + "ma_maximum_state_supplement": { + "2025": 0 + }, + "ma_mbta_enrolled_in_applicable_programs": { + "2025": false + }, + "ma_mbta_income_eligible_reduced_fare_eligible": { + "2025": false + }, + "ma_mbta_senior_charlie_card_eligible": { + "2025": false + }, + "ma_mbta_tap_charlie_card_eligible": { + "2025": false + }, + "ma_state_supplement": { + "2025": 0 + }, + "ma_tafdc_age_limit": { + "2025": 0 + }, + "ma_tafdc_child_support_deduction": { + "2025": 0 + }, + "ma_tafdc_clothing_allowance": { + "2025": 0 + }, + "ma_tafdc_countable_earned_income": { + "2025": 0 + }, + "ma_tafdc_dependent_care_deduction_person": { + "2025": 0 + }, + "ma_tafdc_eligible_dependent": { + "2025": false + }, + "ma_tafdc_eligible_infant": { + "2025": false + }, + "ma_tafdc_full_earned_income_disregard_eligible": { + "2025": false + }, + "ma_tafdc_infant_benefit": { + "2025": 0 + }, + "ma_tafdc_partially_disregarded_earned_income": { + "2025": 0 + }, + "ma_tafdc_pregnancy_eligible": { + "2025": false + }, + "ma_tafdc_work_related_expense_deduction": { + "2025": 0 + }, + "ma_tcap_gross_earned_income": { + "2025": 0 + }, + "ma_tcap_gross_unearned_income": { + "2025": 0 + }, + "ma_withheld_income_tax": { + "2025": 0 + }, + "marginal_tax_rate": { + "2025": 0 + }, + "marginal_tax_rate_including_health_benefits": { + "2025": 0 + }, + "marginal_tax_rate_on_capital_gains": { + "2025": 0 + }, + "market_income": { + "2025": 0 + }, + "md_hundred_year_subtraction_eligible": { + "2025": false + }, + "md_hundred_year_subtraction_person": { + "2025": 0 + }, + "md_pension_subtraction_amount": { + "2025": 0 + }, + "md_snap_is_elderly": { + "2025": false + }, + "md_socsec_subtraction_amount": { + "2025": 0 + }, + "md_withheld_income_tax": { + "2025": 0 + }, + "me_dependent_exemption_credit_amount_person": { + "2025": 300 + }, + "me_withheld_income_tax": { + "2025": 0 + }, + "medicaid": { + "2025": 0 + }, + "medicaid_category": { + "2025": "NONE" + }, + "medicaid_cost": { + "2025": 0 + }, + "medicaid_cost_if_enrolled": { + "2025": 0 + }, + "medicaid_enrolled": { + "2025": false + }, + "medicaid_group": { + "2025": "NONE" + }, + "medicaid_income_level": { + "2025": 4.9852257 + }, + "medicaid_take_up_seed": { + "2025": 0 + }, + "medicaid_work_requirement_eligible": { + "2025": true + }, + "medical_out_of_pocket_expenses": { + "2025": 0 + }, + "medicare_part_b_premiums": { + "2025": 0 + }, + "meets_ctc_child_identification_requirements": { + "2025": true + }, + "meets_ctc_identification_requirements": { + "2025": true + }, + "meets_eitc_identification_requirements": { + "2025": true + }, + "meets_snap_abawd_work_requirements": { + "2025": true + }, + "meets_snap_general_work_requirements": { + "2025": true + }, + "meets_ssi_resource_test": { + "2025": true + }, + "meets_wic_categorical_eligibility": { + "2025": false + }, + "mi_disabled_exemption_eligible_person": { + "2025": 0 + }, + "mi_withheld_income_tax": { + "2025": 0 + }, + "military_basic_pay": { + "2025": 0 + }, + "military_retirement_pay": { + "2025": 0 + }, + "military_retirement_pay_survivors": { + "2025": 0 + }, + "military_service_income": { + "2025": 0 + }, + "miscellaneous_income": { + "2025": 0 + }, + "mn_withheld_income_tax": { + "2025": 0 + }, + "mo_adjusted_gross_income": { + "2025": 0 + }, + "mo_income_tax_before_credits": { + "2025": 0 + }, + "mo_income_tax_exempt": { + "2025": 0 + }, + "mo_pension_and_ss_or_ssd_deduction_section_a": { + "2025": 0 + }, + "mo_pension_and_ss_or_ssd_deduction_section_b": { + "2025": 0 + }, + "mo_pension_and_ss_or_ssd_deduction_section_c": { + "2025": 0 + }, + "mo_qualified_health_insurance_premiums": { + "2025": 0 + }, + "mo_taxable_income": { + "2025": 0 + }, + "mo_withheld_income_tax": { + "2025": 0 + }, + "monthly_age": { + "2025": 120 + }, + "monthly_hours_worked": { + "2025": 0 + }, + "months_receiving_social_security_disability": { + "2025": 0 + }, + "mortgage_interest": { + "2025": 0 + }, + "ms_agi": { + "2025": 0 + }, + "ms_agi_adjustments": { + "2025": 0 + }, + "ms_deductions_indiv": { + "2025": 0 + }, + "ms_deductions_joint": { + "2025": 0 + }, + "ms_income_tax_before_credits_indiv": { + "2025": 0 + }, + "ms_income_tax_before_credits_joint": { + "2025": 0 + }, + "ms_itemized_deductions_indiv": { + "2025": 0 + }, + "ms_itemized_deductions_joint": { + "2025": 0 + }, + "ms_national_guard_or_reserve_pay_adjustment": { + "2025": 0 + }, + "ms_pre_deductions_taxable_income_indiv": { + "2025": 0 + }, + "ms_prorate_fraction": { + "2025": 0 + }, + "ms_retirement_income_exemption": { + "2025": 0 + }, + "ms_self_employment_adjustment": { + "2025": 0 + }, + "ms_standard_deduction_indiv": { + "2025": 0 + }, + "ms_standard_deduction_joint": { + "2025": 0 + }, + "ms_taxable_income_indiv": { + "2025": 0 + }, + "ms_taxable_income_joint": { + "2025": 0 + }, + "ms_total_exemptions_indiv": { + "2025": 0 + }, + "ms_total_exemptions_joint": { + "2025": 0 + }, + "ms_withheld_income_tax": { + "2025": 0 + }, + "mt_additions": { + "2025": 0 + }, + "mt_aged_exemption_eligible_person": { + "2025": false + }, + "mt_agi_indiv": { + "2025": 0 + }, + "mt_applicable_ald_deductions": { + "2025": 0 + }, + "mt_capital_gain_credit": { + "2025": 0 + }, + "mt_capital_gains_tax_applicable_threshold_indiv": { + "2025": 0 + }, + "mt_capital_gains_tax_applicable_threshold_joint": { + "2025": 0 + }, + "mt_capital_gains_tax_indiv": { + "2025": 0 + }, + "mt_capital_gains_tax_joint": { + "2025": 0 + }, + "mt_child_dependent_care_expense_deduction": { + "2025": 0 + }, + "mt_child_dependent_care_expense_deduction_eligible_child": { + "2025": false + }, + "mt_deductions_indiv": { + "2025": 0 + }, + "mt_dependent_exemptions_person": { + "2025": 0 + }, + "mt_disability_income_exclusion_eligible_person": { + "2025": false + }, + "mt_disability_income_exclusion_person": { + "2025": 0 + }, + "mt_eitc": { + "2025": 0 + }, + "mt_elderly_homeowner_or_renter_credit": { + "2025": 0 + }, + "mt_elderly_homeowner_or_renter_credit_eligible": { + "2025": false + }, + "mt_elderly_homeowner_or_renter_credit_gross_household_income": { + "2025": 0 + }, + "mt_elderly_homeowner_or_renter_credit_net_household_income": { + "2025": 0 + }, + "mt_federal_income_tax_deduction_for_federal_itemization_indiv": { + "2025": 0 + }, + "mt_federal_income_tax_deduction_indiv": { + "2025": 0 + }, + "mt_income_tax_before_non_refundable_credits_indiv": { + "2025": 0 + }, + "mt_income_tax_before_refundable_credits_indiv": { + "2025": 0 + }, + "mt_income_tax_indiv": { + "2025": 0 + }, + "mt_interest_exemption_eligible_person": { + "2025": false + }, + "mt_interest_exemption_person": { + "2025": 0 + }, + "mt_itemized_deductions_for_federal_itemization_indiv": { + "2025": 0 + }, + "mt_itemized_deductions_for_federal_itemization_joint": { + "2025": 0 + }, + "mt_itemized_deductions_indiv": { + "2025": 0 + }, + "mt_itemized_deductions_joint": { + "2025": 0 + }, + "mt_medical_expense_deduction_indiv": { + "2025": 0 + }, + "mt_medical_expense_deduction_joint": { + "2025": 0 + }, + "mt_misc_deductions": { + "2025": 0 + }, + "mt_non_refundable_credits": { + "2025": 0 + }, + "mt_old_age_subtraction": { + "2025": 0 + }, + "mt_personal_exemptions_indiv": { + "2025": 0 + }, + "mt_personal_exemptions_joint": { + "2025": 0 + }, + "mt_pre_dependent_exemption_taxable_income_indiv": { + "2025": 0 + }, + "mt_refundable_credits": { + "2025": 0 + }, + "mt_refundable_credits_before_renter_credit": { + "2025": 0 + }, + "mt_regular_income_tax_indiv": { + "2025": 0 + }, + "mt_salt_deduction": { + "2025": 0 + }, + "mt_standard_deduction_indiv": { + "2025": 0 + }, + "mt_standard_deduction_joint": { + "2025": 0 + }, + "mt_subtractions": { + "2025": 0 + }, + "mt_taxable_income_indiv": { + "2025": 0 + }, + "mt_taxable_income_joint": { + "2025": 0 + }, + "mt_taxable_social_security": { + "2025": 0 + }, + "mt_tuition_subtraction_person": { + "2025": 0 + }, + "mt_withheld_income_tax": { + "2025": 0 + }, + "nc_military_retirement_deduction_eligible": { + "2025": false + }, + "nc_scca_age_group": { + "2025": 3 + }, + "nc_scca_child_age_eligible": { + "2025": false + }, + "nc_scca_is_school_age": { + "2025": false + }, + "nc_scca_market_rate": { + "2025": 0 + }, + "nc_withheld_income_tax": { + "2025": 0 + }, + "nd_withheld_income_tax": { + "2025": 0 + }, + "ne_child_care_subsidy_eligible_child": { + "2025": false + }, + "ne_child_care_subsidy_eligible_parent": { + "2025": false + }, + "ne_dhhs_has_special_needs": { + "2025": false + }, + "ne_refundable_ctc_eligible_child": { + "2025": false + }, + "ne_school_readiness_credit": { + "2025": 0 + }, + "ne_school_readiness_credit_child_care_worker_rating": { + "2025": 0 + }, + "ne_school_readiness_credit_eligible_worker": { + "2025": false + }, + "ne_withheld_income_tax": { + "2025": 0 + }, + "never_eligible_for_social_security_benefits": { + "2025": false + }, + "nj_additions": { + "2025": 0 + }, + "nj_agi_subtractions": { + "2025": 0 + }, + "nj_eligible_pension_income": { + "2025": 0 + }, + "nj_total_income": { + "2025": 0 + }, + "nj_withheld_income_tax": { + "2025": 0 + }, + "nm_armed_forces_retirement_pay_exemption_person": { + "2025": 0 + }, + "nm_cdcc_eligible_child": { + "2025": false + }, + "nm_withheld_income_tax": { + "2025": 0 + }, + "non_deductible_mortgage_interest": { + "2025": 0 + }, + "non_mortgage_interest": { + "2025": 0 + }, + "non_public_school_tuition": { + "2025": 0 + }, + "non_qualified_dividend_income": { + "2025": 0 + }, + "non_sch_d_capital_gains": { + "2025": 0 + }, + "ny_pension_exclusion": { + "2025": 0 + }, + "ny_withheld_income_tax": { + "2025": 0 + }, + "offered_aca_disqualifying_esi": { + "2025": false + }, + "oh_529_plan_deduction_person": { + "2025": 0 + }, + "oh_additions": { + "2025": 0 + }, + "oh_adoption_credit_person": { + "2025": 0 + }, + "oh_agi_person": { + "2025": 0 + }, + "oh_bonus_depreciation_add_back": { + "2025": 0 + }, + "oh_deductions": { + "2025": 0 + }, + "oh_federal_conformity_deductions": { + "2025": 0 + }, + "oh_has_taken_oh_lump_sum_credits": { + "2025": false + }, + "oh_insured_unreimbursed_medical_care_expense_amount": { + "2025": 0 + }, + "oh_insured_unreimbursed_medical_care_expenses_person": { + "2025": 0 + }, + "oh_joint_filing_credit_agi_subtractions": { + "2025": 0 + }, + "oh_joint_filing_credit_qualifying_income": { + "2025": 0 + }, + "oh_lump_sum_distribution_credit_eligible_person": { + "2025": false + }, + "oh_lump_sum_distribution_credit_person": { + "2025": 0 + }, + "oh_other_add_backs": { + "2025": 0 + }, + "oh_personal_exemptions_eligible_person": { + "2025": false + }, + "oh_section_179_expense_add_back": { + "2025": 0 + }, + "oh_uniformed_services_retirement_income_deduction": { + "2025": 0 + }, + "oh_uninsured_unreimbursed_medical_care_expenses": { + "2025": 0 + }, + "oh_unreimbursed_medical_care_expense_deduction_person": { + "2025": 0 + }, + "oh_withheld_income_tax": { + "2025": 0 + }, + "ok_withheld_income_tax": { + "2025": 0 + }, + "or_retirement_credit_eligible_person": { + "2025": false + }, + "or_withheld_income_tax": { + "2025": 0 + }, + "other_credits": { + "2025": 0 + }, + "other_medical_expenses": { + "2025": 0 + }, + "outpatient_expense": { + "2025": 0 + }, + "over_the_counter_health_expenses": { + "2025": 0 + }, + "own_children_in_household": { + "2025": 0 + }, + "p08000": { + "2025": 0 + }, + "pa_nontaxable_pension_income": { + "2025": 0 + }, + "pa_withheld_income_tax": { + "2025": 0 + }, + "partnership_s_corp_income": { + "2025": 0 + }, + "partnership_s_corp_income_would_be_qualified": { + "2025": true + }, + "payroll_tax_gross_wages": { + "2025": 0 + }, + "pell_grant": { + "2025": 0 + }, + "pell_grant_contribution_from_assets": { + "2025": 0 + }, + "pell_grant_countable_assets": { + "2025": 0 + }, + "pell_grant_dependent_allowances": { + "2025": 7040 + }, + "pell_grant_dependent_available_income": { + "2025": 0 + }, + "pell_grant_dependent_contribution": { + "2025": -3520 + }, + "pell_grant_dependent_other_allowances": { + "2025": 0 + }, + "pell_grant_efc": { + "2025": 0 + }, + "pell_grant_eligibility_type": { + "2025": "INELIGIBLE" + }, + "pell_grant_formula": { + "2025": "A" + }, + "pell_grant_head_allowances": { + "2025": 0 + }, + "pell_grant_head_available_income": { + "2025": 0 + }, + "pell_grant_head_contribution": { + "2025": 0 + }, + "pell_grant_household_type": { + "2025": "DEPENDENT_NOT_SINGLE" + }, + "pell_grant_max_fpg_percent_limit": { + "2025": 1.75 + }, + "pell_grant_min_fpg_percent_limit": { + "2025": 2.75 + }, + "pell_grant_months_in_school": { + "2025": 0 + }, + "pell_grant_sai": { + "2025": -1500 + }, + "pell_grant_simplified_formula_applies": { + "2025": false + }, + "pell_grant_uses_efc": { + "2025": false + }, + "pell_grant_uses_sai": { + "2025": true + }, + "pension_income": { + "2025": 0 + }, + "pension_survivors": { + "2025": 0 + }, + "per_capita_chip": { + "2025": 0 + }, + "person_count": { + "2025": 1 + }, + "person_family_id": { + "2025": 0 + }, + "person_household_id": { + "2025": 0 + }, + "person_id": { + "2025": 3 + }, + "person_in_poverty": { + "2025": false + }, + "person_marital_unit_id": { + "2025": 0 + }, + "person_spm_unit_id": { + "2025": 0 + }, + "person_tax_unit_id": { + "2025": 0 + }, + "person_weight": { + "2025": 0 + }, + "personal_property": { + "2025": 0 + }, + "physician_services_expense": { + "2025": 0 + }, + "pr_agi_person": { + "2025": 0 + }, + "pr_compensatory_low_income_credit": { + "2025": 0 + }, + "pr_earned_income_credit_eligible_person": { + "2025": false + }, + "pr_earned_income_credit_unearned_income": { + "2025": 0 + }, + "pr_eligible_dependent_for_exemption": { + "2025": false + }, + "pr_exemptions_is_eligible_nonstudent": { + "2025": false + }, + "pr_exemptions_is_eligible_student": { + "2025": false + }, + "pr_gross_income_person": { + "2025": 0 + }, + "pr_is_tax_unit_dependent": { + "2025": false + }, + "pr_low_income_credit_eligible_person": { + "2025": false + }, + "pr_retirement_deduction": { + "2025": 0 + }, + "pr_retirement_deduction_eligibility": { + "2025": 0 + }, + "pr_veteran_exemption": { + "2025": 0 + }, + "pre_subsidy_care_expenses": { + "2025": 0 + }, + "pre_subsidy_childcare_expenses": { + "2025": 0 + }, + "pre_subsidy_rent": { + "2025": 0 + }, + "pre_tax_contributions": { + "2025": 0 + }, + "prescription_expense": { + "2025": 0 + }, + "previous_year_income_available": { + "2025": false + }, + "prior_year_minimum_tax_credit": { + "2025": 0 + }, + "private_pension_income": { + "2025": 0 + }, + "public_pension_income": { + "2025": 0 + }, + "qbid_amount": { + "2025": 0 + }, + "qualified_adoption_assistance_expense": { + "2025": 0 + }, + "qualified_bdc_income": { + "2025": 0 + }, + "qualified_business_income": { + "2025": 0 + }, + "qualified_business_income_deduction_person": { + "2025": 0 + }, + "qualified_dividend_income": { + "2025": 0 + }, + "qualified_reit_and_ptp_income": { + "2025": 0 + }, + "qualified_tuition_expenses": { + "2025": 0 + }, + "qualifies_for_elderly_or_disabled_credit": { + "2025": false + }, + "race": { + "2025": "OTHER" + }, + "railroad_benefits": { + "2025": 0 + }, + "real_estate_taxes": { + "2025": 0 + }, + "receives_or_needs_protective_services": { + "2025": false + }, + "receives_wic": { + "2025": false + }, + "relative_capital_gains_mtr_change": { + "2025": 0 + }, + "relative_income_change": { + "2025": 0 + }, + "relative_wage_change": { + "2025": 0 + }, + "rent": { + "2025": 0 + }, + "rental_income": { + "2025": 0 + }, + "rental_income_would_be_qualified": { + "2025": true + }, + "retired_from_federal_government": { + "2025": false + }, + "retired_from_ky_government": { + "2025": false + }, + "retired_on_total_disability": { + "2025": false + }, + "retirement_benefits_from_ss_exempt_employment": { + "2025": 0 + }, + "retirement_distributions": { + "2025": 0 + }, + "ri_withheld_income_tax": { + "2025": 0 + }, + "roth_401k_contributions": { + "2025": 0 + }, + "roth_403b_contributions": { + "2025": 0 + }, + "roth_ira_contributions": { + "2025": 0 + }, + "s_corp_self_employment_income": { + "2025": 0 + }, + "salt_refund_income": { + "2025": 0 + }, + "savers_credit_eligible_person": { + "2025": false + }, + "savers_credit_person": { + "2025": 0 + }, + "savers_credit_qualified_contributions": { + "2025": 0 + }, + "sc_gross_earned_income": { + "2025": 0 + }, + "sc_military_deduction_indv": { + "2025": 0 + }, + "sc_military_deduction_survivors": { + "2025": 0 + }, + "sc_retirement_cap": { + "2025": 0 + }, + "sc_retirement_deduction_indv": { + "2025": 0 + }, + "sc_retirement_deduction_survivors": { + "2025": 0 + }, + "sc_senior_exemption_person": { + "2025": 0 + }, + "sc_tuition_credit": { + "2025": 0 + }, + "sc_tuition_credit_eligible": { + "2025": false + }, + "sc_withheld_income_tax": { + "2025": 0 + }, + "self_employed_health_insurance_ald_person": { + "2025": 0 + }, + "self_employed_health_insurance_premiums": { + "2025": 0 + }, + "self_employed_pension_contribution_ald_person": { + "2025": 0 + }, + "self_employed_pension_contributions": { + "2025": 0 + }, + "self_employment_income": { + "2025": 0 + }, + "self_employment_income_before_lsr": { + "2025": 0 + }, + "self_employment_income_behavioral_response": { + "2025": 0 + }, + "self_employment_income_last_year": { + "2025": 0 + }, + "self_employment_income_would_be_qualified": { + "2025": true + }, + "self_employment_medicare_tax": { + "2025": 0 + }, + "self_employment_social_security_tax": { + "2025": 0 + }, + "self_employment_tax": { + "2025": 0 + }, + "self_employment_tax_ald_person": { + "2025": 0 + }, + "sep_distributions": { + "2025": 0 + }, + "share_of_care_and_support_costs_paid_by_tax_filer": { + "2025": 0 + }, + "short_term_capital_gains": { + "2025": 0 + }, + "slcsp_age_curve_amount_person": { + "2025": 4092 + }, + "snap_countable_earner": { + "2025": false + }, + "snap_excluded_child_earner": { + "2025": true + }, + "social_security": { + "2025": 0 + }, + "social_security_dependents": { + "2025": 0 + }, + "social_security_disability": { + "2025": 0 + }, + "social_security_retirement": { + "2025": 0 + }, + "social_security_survivors": { + "2025": 0 + }, + "social_security_taxable_self_employment_income": { + "2025": 0 + }, + "ssi": { + "2025": 0 + }, + "ssi_amount_if_eligible": { + "2025": 11604 + }, + "ssi_blind_or_disabled_working_student_exclusion": { + "2025": 0 + }, + "ssi_category": { + "2025": "NONE" + }, + "ssi_claim_is_joint": { + "2025": false + }, + "ssi_countable_income": { + "2025": 0 + }, + "ssi_countable_resources": { + "2025": 0 + }, + "ssi_earned_income": { + "2025": 0 + }, + "ssi_earned_income_deemed_from_ineligible_spouse": { + "2025": 0 + }, + "ssi_engaged_in_sga": { + "2025": false + }, + "ssi_income_deemed_from_ineligible_spouse": { + "2025": 0 + }, + "ssi_ineligible_child_allocation": { + "2025": 5796 + }, + "ssi_ineligible_parent_allocation": { + "2025": 0 + }, + "ssi_marital_both_eligible": { + "2025": false + }, + "ssi_marital_earned_income": { + "2025": 0 + }, + "ssi_marital_unearned_income": { + "2025": 0 + }, + "ssi_qualifying_quarters_earnings": { + "2025": 40 + }, + "ssi_reported": { + "2025": 0 + }, + "ssi_unearned_income": { + "2025": 0 + }, + "ssi_unearned_income_deemed_from_ineligible_parent": { + "2025": 0 + }, + "ssi_unearned_income_deemed_from_ineligible_spouse": { + "2025": 0 + }, + "ssn_card_type": { + "2025": "CITIZEN" + }, + "state_income_tax_reported": { + "2025": 0 + }, + "state_or_federal_salary": { + "2025": 0 + }, + "strike_benefits": { + "2025": 0 + }, + "student_loan_interest": { + "2025": 0 + }, + "student_loan_interest_ald": { + "2025": 0 + }, + "student_loan_interest_ald_eligible": { + "2025": false + }, + "student_loan_interest_ald_magi": { + "2025": 0 + }, + "substitution_elasticity": { + "2025": 0 + }, + "substitution_elasticity_lsr": { + "2025": 0 + }, + "takes_up_medicaid_if_eligible": { + "2025": true + }, + "tanf_person": { + "2025": 0 + }, + "tanf_reported": { + "2025": 0 + }, + "tax_exempt_401k_distributions": { + "2025": 0 + }, + "tax_exempt_403b_distributions": { + "2025": 0 + }, + "tax_exempt_interest_income": { + "2025": 0 + }, + "tax_exempt_ira_distributions": { + "2025": 0 + }, + "tax_exempt_pension_income": { + "2025": 0 + }, + "tax_exempt_private_pension_income": { + "2025": 0 + }, + "tax_exempt_public_pension_income": { + "2025": 0 + }, + "tax_exempt_retirement_distributions": { + "2025": 0 + }, + "tax_exempt_sep_distributions": { + "2025": 0 + }, + "tax_exempt_unemployment_compensation": { + "2025": 0 + }, + "tax_preparation_fees": { + "2025": 0 + }, + "taxable_401k_distributions": { + "2025": 0 + }, + "taxable_403b_distributions": { + "2025": 0 + }, + "taxable_earnings_for_social_security": { + "2025": 0 + }, + "taxable_estate_value": { + "2025": 0 + }, + "taxable_federal_pension_income": { + "2025": 0 + }, + "taxable_interest_income": { + "2025": 0 + }, + "taxable_ira_distributions": { + "2025": 0 + }, + "taxable_pension_income": { + "2025": 0 + }, + "taxable_private_pension_income": { + "2025": 0 + }, + "taxable_public_pension_income": { + "2025": 0 + }, + "taxable_retirement_distributions": { + "2025": 0 + }, + "taxable_self_employment_income": { + "2025": 0 + }, + "taxable_sep_distributions": { + "2025": 0 + }, + "taxable_social_security": { + "2025": 0 + }, + "taxable_unemployment_compensation": { + "2025": 0 + }, + "technical_institution_student": { + "2025": false + }, + "tip_income": { + "2025": 0 + }, + "total_disability_payments": { + "2025": 0 + }, + "traditional_401k_contributions": { + "2025": 0 + }, + "traditional_403b_contributions": { + "2025": 0 + }, + "traditional_ira_contributions": { + "2025": 0 + }, + "tx_dart_benefit_person": { + "2025": 0 + }, + "tx_dart_free_ride_benefit": { + "2025": 0 + }, + "tx_dart_free_ride_eligible_young_child": { + "2025": false + }, + "tx_dart_reduced_fare_age_eligible": { + "2025": false + }, + "tx_dart_reduced_fare_benefit": { + "2025": 0 + }, + "tx_dart_reduced_fare_eligible": { + "2025": false + }, + "tx_dart_reduced_fare_program_eligible": { + "2025": false + }, + "unadjusted_basis_qualified_property": { + "2025": 0 + }, + "uncapped_ssi": { + "2025": 0 + }, + "under_12_months_postpartum": { + "2025": false + }, + "under_60_days_postpartum": { + "2025": false + }, + "unemployment_compensation": { + "2025": 0 + }, + "unreimbursed_business_employee_expenses": { + "2025": 0 + }, + "urgent_care_expense": { + "2025": 0 + }, + "us_bonds_for_higher_ed": { + "2025": 0 + }, + "us_govt_interest_person": { + "2025": 0 + }, + "ut_at_home_parent_credit_earned_income_eligible_person": { + "2025": false + }, + "ut_personal_exemption_additional_dependent_eligible": { + "2025": false + }, + "ut_withheld_income_tax": { + "2025": 0 + }, + "va_aged_blind_exemption_person": { + "2025": 0 + }, + "va_agi_less_exemptions_person": { + "2025": 0 + }, + "va_agi_person": { + "2025": 0 + }, + "va_agi_share": { + "2025": 0 + }, + "va_eitc_person": { + "2025": 0 + }, + "va_personal_exemption_person": { + "2025": 0 + }, + "va_withheld_income_tax": { + "2025": 0 + }, + "veterans_benefits": { + "2025": 0 + }, + "vita_eligible": { + "2025": true + }, + "vt_withheld_income_tax": { + "2025": 0 + }, + "w2_wages_from_qualified_business": { + "2025": 0 + }, + "was_in_foster_care": { + "2025": false + }, + "weekly_hours_worked": { + "2025": 40 + }, + "weekly_hours_worked_before_lsr": { + "2025": 40 + }, + "weekly_hours_worked_behavioural_response": { + "2025": 0 + }, + "weekly_hours_worked_behavioural_response_income_elasticity": { + "2025": 0 + }, + "weekly_hours_worked_behavioural_response_substitution_elasticity": { + "2025": 0 + }, + "wi_withheld_income_tax": { + "2025": 0 + }, + "wic": { + "2025": 0 + }, + "wic_category": { + "2025": "NONE" + }, + "wic_category_str": { + "2025": "NONE" + }, + "workers_compensation": { + "2025": 0 + }, + "would_claim_wic": { + "2025": true + }, + "wv_public_pension_subtraction_person": { + "2025": 0 + }, + "wv_senior_citizen_disability_deduction_eligible_person": { + "2025": false + }, + "wv_senior_citizen_disability_deduction_person": { + "2025": 0 + }, + "wv_senior_citizen_disability_deduction_total_modifications": { + "2025": 0 + }, + "wv_social_security_benefits_subtraction_person": { + "2025": 0 + }, + "wv_withheld_income_tax": { + "2025": 0 + }, + "year_deceased": { + "2025": 0 + }, + "year_of_retirement": { + "2025": 0 + }, + "years_in_military": { + "2025": 0 } - }, - "spm_units": { - "your household": { - "acp": { - "2025": 0 - }, - "bottled_gas_expense": { - "2025": 0 - }, - "broadband_cost": { - "2025": 0 - }, - "broadband_cost_after_lifeline": { - "2025": 0 - }, - "ca_ala_general_assistance": { - "2025": 0 - }, - "ca_ala_general_assistance_base_amount": { - "2025": 0 - }, - "ca_ala_general_assistance_countable_income": { - "2025": 0 - }, - "ca_ala_general_assistance_income_eligible": { - "2025": false - }, - "ca_ala_general_assistance_personal_property_eligible": { - "2025": false - }, - "ca_calworks_child_care": { - "2025": 0 - }, - "ca_calworks_child_care_age_eligible": { - "2025": false - }, - "ca_calworks_child_care_eligible": { - "2025": false - }, - "ca_calworks_child_care_meets_work_requirement": { - "2025": false - }, - "ca_capi": { - "2025": 0 - }, - "ca_capi_countable_vehicle_value": { - "2025": 0 - }, - "ca_capi_eligible": { - "2025": false - }, - "ca_capi_income_eligible": { - "2025": false - }, - "ca_capi_resource_eligible": { - "2025": false - }, - "ca_capi_resources": { - "2025": 0 - }, - "ca_child_care_subsidies": { - "2025": 0 - }, - "ca_riv_general_relief": { - "2025": 0 - }, - "ca_riv_general_relief_budget_unit_size": { - "2025": 0 - }, - "ca_riv_general_relief_countable_income": { - "2025": 0 - }, - "ca_riv_general_relief_countable_vehicle_value": { - "2025": 0 - }, - "ca_riv_general_relief_eligible": { - "2025": false - }, - "ca_riv_general_relief_income_eligible": { - "2025": false - }, - "ca_riv_general_relief_needs_standards": { - "2025": 0 - }, - "ca_riv_general_relief_property_eligible": { - "2025": false - }, - "ca_riv_general_relief_special_needs_amount": { - "2025": 0 - }, - "ca_riv_liheap_countable_income": { - "2025": 0 - }, - "ca_riv_liheap_eligible": { - "2025": false - }, - "ca_riv_share_countable_income": { - "2025": 0 - }, - "ca_riv_share_electricity_emergency_payment": { - "2025": 0 - }, - "ca_riv_share_eligible": { - "2025": false - }, - "ca_riv_share_eligible_for_emergency_payment": { - "2025": false - }, - "ca_riv_share_payment": { - "2025": 0 - }, - "ca_state_supplement": { - "2025": 0 - }, - "ca_state_supplement_aged_blind_disabled_amount": { - "2025": 0 - }, - "ca_state_supplement_aged_disabled_amount": { - "2025": 0 - }, - "ca_state_supplement_aged_disabled_count": { - "2025": 0 - }, - "ca_state_supplement_blind_amount": { - "2025": 0 - }, - "ca_state_supplement_dependent_amount": { - "2025": 0 - }, - "ca_state_supplement_food_allowance": { - "2025": 0 - }, - "ca_state_supplement_food_allowance_eligible": { - "2025": false - }, - "ca_state_supplement_medical_care_facility_amount": { - "2025": 0 - }, - "ca_state_supplement_out_of_home_care_facility_amount": { - "2025": 0 - }, - "ca_state_supplement_payment_standard": { - "2025": 0 - }, - "ca_tanf": { - "2025": 0 - }, - "ca_tanf_applicant_financial_test": { - "2025": false - }, - "ca_tanf_countable_income_applicant": { - "2025": 0 - }, - "ca_tanf_countable_income_recipient": { - "2025": 0 - }, - "ca_tanf_db_unearned_income": { - "2025": 0 - }, - "ca_tanf_earned_income": { - "2025": 0 - }, - "ca_tanf_eligible": { - "2025": false - }, - "ca_tanf_exempt": { - "2025": false - }, - "ca_tanf_financial_eligible": { - "2025": false - }, - "ca_tanf_income_limit": { - "2025": 0 - }, - "ca_tanf_maximum_payment": { - "2025": 0 - }, - "ca_tanf_other_unearned_income": { - "2025": 0 - }, - "ca_tanf_recipient_financial_test": { - "2025": false - }, - "ca_tanf_resources": { - "2025": 0 - }, - "ca_tanf_resources_eligible": { - "2025": false - }, - "ca_tanf_resources_limit": { - "2025": 0 - }, - "ca_tanf_vehicle_value_eligible": { - "2025": false - }, - "ccdf_income": { - "2025": 160275 - }, - "ccdf_income_to_smi_ratio": { - "2025": 1.3384691 - }, - "childcare_expenses": { - "2025": 0 - }, - "co_ccap_add_on_parent_fee": { - "2025": -180 - }, - "co_ccap_base_parent_fee": { - "2025": 18351.625 - }, - "co_ccap_countable_income": { - "2025": 160275 - }, - "co_ccap_eligible": { - "2025": 0 - }, - "co_ccap_eligible_children": { - "2025": 0 - }, - "co_ccap_entry_eligible": { - "2025": false - }, - "co_ccap_entry_income_eligible": { - "2025": false - }, - "co_ccap_fpg_eligible": { - "2025": false - }, - "co_ccap_is_in_entry_process": { - "2025": true - }, - "co_ccap_is_in_re_determination_process": { - "2025": false - }, - "co_ccap_parent_fee": { - "2025": 0 - }, - "co_ccap_re_determination_eligible": { - "2025": false - }, - "co_ccap_re_determination_income_eligible": { - "2025": false - }, - "co_ccap_smi": { - "2025": 114880.5 - }, - "co_ccap_smi_eligible": { - "2025": false - }, - "co_ccap_subsidy": { - "2025": 0 - }, - "co_child_care_subsidies": { - "2025": 0 - }, - "co_denver_homeowner_property_tax_relief": { - "2025": 0 - }, - "co_denver_property_tax_relief": { - "2025": 0 - }, - "co_denver_property_tax_relief_homeowner_eligible": { - "2025": 0 - }, - "co_denver_property_tax_relief_income": { - "2025": 160275 - }, - "co_denver_property_tax_relief_renter_eligible": { - "2025": 0 - }, - "co_denver_renter_property_tax_relief": { - "2025": 0 - }, - "co_tanf": { - "2025": 0 - }, - "co_tanf_count_children": { - "2025": 0 - }, - "co_tanf_countable_earned_income_grant_standard": { - "2025": 0 - }, - "co_tanf_countable_earned_income_need": { - "2025": 0 - }, - "co_tanf_countable_gross_earned_income": { - "2025": 160275 - }, - "co_tanf_countable_gross_unearned_income": { - "2025": 0 - }, - "co_tanf_eligible": { - "2025": false - }, - "co_tanf_grant_standard": { - "2025": 0 - }, - "co_tanf_income_eligible": { - "2025": false - }, - "co_tanf_need_standard": { - "2025": 0 - }, - "coal_expense": { - "2025": 0 - }, - "cooking_fuel_expense": { - "2025": 0 - }, - "count_distinct_utility_expenses": { - "2025": 0 - }, - "dc_ccsp": { - "2025": 0 - }, - "dc_ccsp_asset_eligible": { - "2025": false - }, - "dc_ccsp_assets": { - "2025": 0 - }, - "dc_ccsp_copay": { - "2025": 0 - }, - "dc_ccsp_countable_income": { - "2025": 0 - }, - "dc_ccsp_eligible": { - "2025": false - }, - "dc_ccsp_enrolled": { - "2025": false - }, - "dc_ccsp_income_eligible": { - "2025": false - }, - "dc_ccsp_income_test_waived": { - "2025": false - }, - "dc_ccsp_qualified_activity_eligible": { - "2025": false - }, - "dc_ccsp_qualified_activity_or_need_eligible": { - "2025": false - }, - "dc_ccsp_qualified_need_eligible": { - "2025": false - }, - "dc_gac": { - "2025": 0 - }, - "dc_gac_assistance_unit_size": { - "2025": 0 - }, - "dc_gac_countable_income": { - "2025": 0 - }, - "dc_gac_eligible": { - "2025": false - }, - "dc_gac_income_eligible": { - "2025": false - }, - "dc_gac_standard_payment": { - "2025": 0 - }, - "dc_liheap_eligible": { - "2025": false - }, - "dc_liheap_heating_type": { - "2025": "ELECTRICITY" - }, - "dc_liheap_housing_type": { - "2025": "MULTI_FAMILY" - }, - "dc_liheap_income_level": { - "2025": 0 - }, - "dc_liheap_payment": { - "2025": 0 - }, - "dc_power": { - "2025": 0 - }, - "dc_power_eligible": { - "2025": false - }, - "dc_power_has_disqualifying_benefits": { - "2025": false - }, - "dc_snap_temporary_local_benefit": { - "2025": 0 - }, - "dc_tanf": { - "2025": 0 - }, - "dc_tanf_assistance_unit_size": { - "2025": 0 - }, - "dc_tanf_basic_eligibility_requirements": { - "2025": false - }, - "dc_tanf_childcare_deduction": { - "2025": 0 - }, - "dc_tanf_countable_earned_income": { - "2025": 0 - }, - "dc_tanf_countable_income": { - "2025": 0 - }, - "dc_tanf_countable_resources": { - "2025": 0 - }, - "dc_tanf_countable_unearned_income": { - "2025": 0 - }, - "dc_tanf_eligible": { - "2025": false - }, - "dc_tanf_income_eligible": { - "2025": false - }, - "dc_tanf_meets_work_requirements": { - "2025": false - }, - "dc_tanf_resources_eligible": { - "2025": false - }, - "dc_tanf_standard_payment": { - "2025": 0 - }, - "deep_poverty_gap": { - "2025": 0 - }, - "deep_poverty_line": { - "2025": 0 - }, - "ebb": { - "2025": 0 - }, - "electricity_expense": { - "2025": 0 - }, - "enrolled_in_ebb": { - "2025": false - }, - "experienced_covid_income_loss": { - "2025": false - }, - "fcc_fpg_ratio": { - "2025": 4.9852257 - }, - "fdpir": { - "2025": 0 - }, - "free_school_meals": { - "2025": 0 - }, - "free_school_meals_reported": { - "2025": 0 - }, - "fuel_oil_expense": { - "2025": 0 - }, - "gas_expense": { - "2025": 0 - }, - "has_all_usda_elderly_disabled": { - "2025": false - }, - "has_co_denver_dhs_elderly_disabled": { - "2025": false - }, - "has_heating_cooling_expense": { - "2025": false - }, - "has_phone_expense": { - "2025": false - }, - "has_usda_elderly_disabled": { - "2025": false - }, - "heat_expense_included_in_rent": { - "2025": false - }, - "heating_cooling_expense": { - "2025": 0 - }, - "heating_expense_last_year": { - "2025": 0 - }, - "hhs_smi": { - "2025": 119745.01 - }, - "homeowners_association_fees": { - "2025": 0 - }, - "homeowners_insurance": { - "2025": 0 - }, - "housing_assistance": { - "2025": 0 - }, - "housing_cost": { - "2025": 0 - }, - "housing_designated_welfare": { - "2025": 0 - }, - "hud_adjusted_income": { - "2025": 159315 - }, - "hud_annual_income": { - "2025": 160275 - }, - "hud_especially_low_income_factor": { - "2025": 0.5 - }, - "hud_gross_rent": { - "2025": 0 - }, - "hud_hap": { - "2025": 0 - }, - "hud_income_level": { - "2025": "ESPECIALLY_LOW" - }, - "hud_low_income_factor": { - "2025": 0.8 - }, - "hud_max_subsidy": { - "2025": 0 - }, - "hud_minimum_rent": { - "2025": 25 - }, - "hud_moderate_income_factor": { - "2025": 1 - }, - "hud_ttp": { - "2025": 47794.5 - }, - "hud_ttp_adjusted_income_share": { - "2025": 47794.5 - }, - "hud_ttp_income_share": { - "2025": 16027.5 - }, - "hud_very_low_income_factor": { - "2025": 0.6 - }, - "il_aabd": { - "2025": 0 - }, - "il_aabd_asset_value_eligible": { - "2025": false - }, - "il_aabd_countable_assets": { - "2025": 0 - }, - "il_aabd_countable_vehicle_value": { - "2025": 0 - }, - "il_aabd_institutional_status": { - "2025": "NONE" - }, - "il_aabd_utility_allowance": { - "2025": 0 - }, - "il_aabd_vehicle_is_essential": { - "2025": false - }, - "il_ccap_countable_income": { - "2025": 0 - }, - "il_ccap_eligible": { - "2025": false - }, - "il_ccap_enrolled": { - "2025": false - }, - "il_ccap_income_eligible": { - "2025": false - }, - "il_ccap_parent_meets_working_requirements": { - "2025": false - }, - "il_liheap": { - "2025": 0 - }, - "il_liheap_base_payment": { - "2025": 0 - }, - "il_liheap_crisis_assistance_amount": { - "2025": 0 - }, - "il_liheap_eligible": { - "2025": false - }, - "il_liheap_eligible_for_crisis_assistance": { - "2025": false - }, - "il_liheap_income_eligible": { - "2025": false - }, - "il_tanf": { - "2025": 0 - }, - "il_tanf_assistance_unit_fpg": { - "2025": 0 - }, - "il_tanf_assistance_unit_size": { - "2025": 0 - }, - "il_tanf_childcare_deduction": { - "2025": 0 - }, - "il_tanf_countable_earned_income_for_grant_calculation": { - "2025": 0 - }, - "il_tanf_countable_earned_income_for_initial_eligibility": { - "2025": 0 - }, - "il_tanf_countable_gross_earned_income": { - "2025": 0 - }, - "il_tanf_countable_income_for_grant_calculation": { - "2025": 0 - }, - "il_tanf_countable_income_for_initial_eligibility": { - "2025": 0 - }, - "il_tanf_countable_unearned_income": { - "2025": 0 - }, - "il_tanf_eligible": { - "2025": false - }, - "il_tanf_income_eligible": { - "2025": false - }, - "il_tanf_initial_employment_deduction_fpg": { - "2025": 0 - }, - "il_tanf_non_financial_eligible": { - "2025": false - }, - "il_tanf_payment_level_for_grant_calculation": { - "2025": 0 - }, - "il_tanf_payment_level_for_initial_eligibility": { - "2025": 0 - }, - "in_deep_poverty": { - "2025": false - }, - "in_poverty": { - "2025": false - }, - "is_acp_eligible": { - "2025": false - }, - "is_ccdf_asset_eligible": { - "2025": true - }, - "is_ccdf_continuous_income_eligible": { - "2025": false - }, - "is_ccdf_income_eligible": { - "2025": false - }, - "is_ccdf_initial_income_eligible": { - "2025": false - }, - "is_demographic_tanf_eligible": { - "2025": true - }, - "is_ebb_eligible": { - "2025": false - }, - "is_eligible_for_housing_assistance": { - "2025": true - }, - "is_hud_elderly_disabled_family": { - "2025": false - }, - "is_lifeline_eligible": { - "2025": false - }, - "is_snap_eligible": { - "2025": false - }, - "is_tanf_enrolled": { - "2025": false - }, - "is_tanf_non_cash_eligible": { - "2025": false - }, - "is_tanf_non_cash_hheod": { - "2025": false - }, - "la_general_relief": { - "2025": 0 - }, - "la_general_relief_age_eligible": { - "2025": false - }, - "la_general_relief_base_amount": { - "2025": 0 - }, - "la_general_relief_cash_asset_eligible": { - "2025": false - }, - "la_general_relief_cash_asset_limit": { - "2025": 0 - }, - "la_general_relief_disability_eligible": { - "2025": false - }, - "la_general_relief_eligible": { - "2025": false - }, - "la_general_relief_home_value_eligible": { - "2025": false - }, - "la_general_relief_housing_subsidy": { - "2025": 0 - }, - "la_general_relief_housing_subsidy_base_amount_eligible": { - "2025": false - }, - "la_general_relief_housing_subsidy_eligible": { - "2025": false - }, - "la_general_relief_housing_subsidy_program_eligible": { - "2025": false - }, - "la_general_relief_immigration_status_eligible": { - "2025": false - }, - "la_general_relief_motor_vehicle_value_eligible": { - "2025": false - }, - "la_general_relief_net_income": { - "2025": 0 - }, - "la_general_relief_net_income_eligible": { - "2025": false - }, - "la_general_relief_net_income_limit": { - "2025": 0 - }, - "la_general_relief_personal_property_eligible": { - "2025": false - }, - "la_general_relief_recipient": { - "2025": false - }, - "la_general_relief_rent_contribution": { - "2025": 0 - }, - "lifeline": { - "2025": 0 - }, - "ma_eaedc": { - "2025": 0 - }, - "ma_eaedc_assets_limit_eligible": { - "2025": false - }, - "ma_eaedc_countable_assets": { - "2025": 0 - }, - "ma_eaedc_countable_earned_income": { - "2025": 0 - }, - "ma_eaedc_dependent_care_deduction": { - "2025": 0 - }, - "ma_eaedc_eligible": { - "2025": false - }, - "ma_eaedc_eligible_caretaker_family": { - "2025": false - }, - "ma_eaedc_eligible_disabled_dependent_present": { - "2025": false - }, - "ma_eaedc_eligible_disabled_head_or_spouse": { - "2025": false - }, - "ma_eaedc_eligible_elderly_present": { - "2025": false - }, - "ma_eaedc_financial_eligible": { - "2025": false - }, - "ma_eaedc_if_claimed": { - "2025": 0 - }, - "ma_eaedc_immigration_status_eligible": { - "2025": false - }, - "ma_eaedc_income_eligible": { - "2025": false - }, - "ma_eaedc_living_arrangement": { - "2025": "A" - }, - "ma_eaedc_net_income": { - "2025": 0 - }, - "ma_eaedc_non_financial_eligible": { - "2025": false - }, - "ma_eaedc_standard_assistance": { - "2025": 0 - }, - "ma_liheap": { - "2025": 0 - }, - "ma_liheap_benefit_level": { - "2025": 0 - }, - "ma_liheap_eligible": { - "2025": false - }, - "ma_liheap_eligible_subsidized_housing": { - "2025": false - }, - "ma_liheap_fpg": { - "2025": 0 - }, - "ma_liheap_heating_type": { - "2025": "ELECTRICITY" - }, - "ma_liheap_hecs_eligible": { - "2025": false - }, - "ma_liheap_hecs_payment": { - "2025": 0 - }, - "ma_liheap_income": { - "2025": 0 - }, - "ma_liheap_income_eligible": { - "2025": false - }, - "ma_liheap_standard_payment": { - "2025": 0 - }, - "ma_liheap_state_median_income_threshold": { - "2025": 0 - }, - "ma_liheap_utility_category": { - "2025": "NONE" - }, - "ma_tafdc": { - "2025": 0 - }, - "ma_tafdc_applicable_income_for_financial_eligibility": { - "2025": 0 - }, - "ma_tafdc_applicable_income_grant_amount": { - "2025": 0 - }, - "ma_tafdc_countable_unearned_income": { - "2025": 0 - }, - "ma_tafdc_dependent_care_deduction": { - "2025": 0 - }, - "ma_tafdc_dependent_criteria_eligible": { - "2025": false - }, - "ma_tafdc_earned_income_after_deductions": { - "2025": 0 - }, - "ma_tafdc_eligible": { - "2025": false - }, - "ma_tafdc_exceeds_eaedc": { - "2025": false - }, - "ma_tafdc_financial_eligible": { - "2025": false - }, - "ma_tafdc_if_claimed": { - "2025": 0 - }, - "ma_tafdc_immigration_status_eligible": { - "2025": false - }, - "ma_tafdc_non_financial_eligible": { - "2025": false - }, - "ma_tafdc_payment_standard": { - "2025": 0 - }, - "ma_tafdc_potential_main_benefit": { - "2025": 0 - }, - "md_snap_elderly_present": { - "2025": false - }, - "md_tanf_count_children": { - "2025": 0 - }, - "md_tanf_eligible": { - "2025": false - }, - "md_tanf_gross_earned_income_deduction": { - "2025": 0 - }, - "md_tanf_maximum_benefit": { - "2025": 0 - }, - "meets_ccdf_activity_test": { - "2025": false - }, - "meets_school_meal_categorical_eligibility": { - "2025": false - }, - "meets_snap_asset_test": { - "2025": true - }, - "meets_snap_categorical_eligibility": { - "2025": false - }, - "meets_snap_gross_income_test": { - "2025": false - }, - "meets_snap_net_income_test": { - "2025": false - }, - "meets_snap_work_requirements": { - "2025": true - }, - "meets_tanf_non_cash_asset_test": { - "2025": true - }, - "meets_tanf_non_cash_gross_income_test": { - "2025": false - }, - "meets_tanf_non_cash_net_income_test": { - "2025": true - }, - "meets_wic_income_test": { - "2025": false - }, - "members": [ - "you", - "your partner", - "your first dependent", - "your second dependent" - ], - "metered_gas_expense": { - "2025": 0 - }, - "mo_tanf_income_limit": { - "2025": 0 - }, - "mortgage_payments": { - "2025": 0 - }, - "nc_demographic_tanf_eligible": { - "2025": false - }, - "nc_scca": { - "2025": 0 - }, - "nc_scca_countable_income": { - "2025": 0 - }, - "nc_scca_entry_eligible": { - "2025": false - }, - "nc_scca_entry_income_eligible": { - "2025": false - }, - "nc_scca_fpg_rate": { - "2025": 0 - }, - "nc_scca_has_eligible_child": { - "2025": false - }, - "nc_scca_maximum_payment": { - "2025": 0 - }, - "nc_scca_parent_fee": { - "2025": 0 - }, - "nc_tanf": { - "2025": 0 - }, - "nc_tanf_countable_earned_income": { - "2025": 0 - }, - "nc_tanf_countable_gross_unearned_income": { - "2025": 0 - }, - "nc_tanf_eligible": { - "2025": false - }, - "nc_tanf_household_size": { - "2025": 0 - }, - "nc_tanf_income_eligible": { - "2025": false - }, - "nc_tanf_need_standard": { - "2025": 0 - }, - "nc_tanf_reduced_need_standard": { - "2025": 0 - }, - "ne_child_care_subsidies": { - "2025": 0 - }, - "ne_child_care_subsidy": { - "2025": 0 - }, - "ne_child_care_subsidy_eligible": { - "2025": false - }, - "ne_child_care_subsidy_income_eligible": { - "2025": false - }, - "nj_tanf_countable_gross_unearned_income": { - "2025": 0 - }, - "nj_tanf_countable_resources": { - "2025": 0 - }, - "nj_tanf_gross_earned_income": { - "2025": 0 - }, - "nj_tanf_maximum_allowable_income": { - "2025": 0 - }, - "nj_tanf_maximum_benefit": { - "2025": 0 - }, - "nj_tanf_resources_eligible": { - "2025": false - }, - "ny_tanf": { - "2025": 0 - }, - "ny_tanf_countable_earned_income": { - "2025": 0 - }, - "ny_tanf_countable_gross_unearned_income": { - "2025": 0 - }, - "ny_tanf_countable_resources": { - "2025": 0 - }, - "ny_tanf_eligible": { - "2025": false - }, - "ny_tanf_grant_standard": { - "2025": 0 - }, - "ny_tanf_gross_earned_income": { - "2025": 0 - }, - "ny_tanf_income_eligible": { - "2025": false - }, - "ny_tanf_need_standard": { - "2025": 0 - }, - "ny_tanf_resources_eligible": { - "2025": false - }, - "ok_tanf": { - "2025": 0 - }, - "pa_tanf_age_eligible": { - "2025": false - }, - "pa_tanf_age_eligible_on_pregnant_women_limitation": { - "2025": false - }, - "pa_tanf_countable_resources": { - "2025": 0 - }, - "pa_tanf_resources_eligible": { - "2025": false - }, - "phone_cost": { - "2025": 0 - }, - "phone_expense": { - "2025": 0 - }, - "poverty_gap": { - "2025": 0 - }, - "poverty_line": { - "2025": 0 - }, - "pre_subsidy_electricity_expense": { - "2025": 0 - }, - "receives_housing_assistance": { - "2025": false - }, - "reduced_price_school_meals": { - "2025": 0 - }, - "school_meal_countable_income": { - "2025": 160275 - }, - "school_meal_daily_subsidy": { - "2025": 0.86 - }, - "school_meal_fpg_ratio": { - "2025": 4.9852257 - }, - "school_meal_net_subsidy": { - "2025": 0 - }, - "school_meal_paid_daily_subsidy": { - "2025": 0.86 - }, - "school_meal_tier": { - "2025": "PAID" - }, - "sewage_expense": { - "2025": 0 - }, - "snap": { - "2025": 0 - }, - "snap_assets": { - "2025": 0 - }, - "snap_child_support_deduction": { - "2025": 0 - }, - "snap_child_support_gross_income_deduction": { - "2025": 0 - }, - "snap_deductions": { - "2025": 34677 - }, - "snap_dependent_care_deduction": { - "2025": 0 - }, - "snap_earned_income": { - "2025": 160275 - }, - "snap_earned_income_deduction": { - "2025": 32055 - }, - "snap_earned_income_person": { - "2025": 160275 - }, - "snap_emergency_allotment": { - "2025": 0 - }, - "snap_excess_medical_expense_deduction": { - "2025": 0 - }, - "snap_excess_shelter_expense_deduction": { - "2025": 0 - }, - "snap_expected_contribution": { - "2025": 37679.402 - }, - "snap_fpg": { - "2025": 31437.498 - }, - "snap_gross_income": { - "2025": 160275 - }, - "snap_gross_income_fpg_ratio": { - "2025": 4.985225 - }, - "snap_individual_utility_allowance": { - "2025": 0 - }, - "snap_limited_utility_allowance": { - "2025": 0 - }, - "snap_limited_utility_allowance_by_household_size": { - "2025": false - }, - "snap_max_allotment": { - "2025": 11757 - }, - "snap_min_allotment": { - "2025": 0 - }, - "snap_net_income": { - "2025": 125598 - }, - "snap_net_income_fpg_ratio": { - "2025": 3.9049454 - }, - "snap_net_income_pre_shelter": { - "2025": 125598 - }, - "snap_normal_allotment": { - "2025": 0 - }, - "snap_reported": { - "2025": 0 - }, - "snap_self_employment_expense_deduction": { - "2025": 0 - }, - "snap_self_employment_income_after_expense_deduction": { - "2025": 0 - }, - "snap_self_employment_income_expense": { - "2025": 0 - }, - "snap_standard_deduction": { - "2025": 2622 - }, - "snap_standard_utility_allowance": { - "2025": 0 - }, - "snap_standard_utility_allowance_by_household_size": { - "2025": false - }, - "snap_state_using_standard_utility_allowance": { - "2025": false - }, - "snap_take_up_seed": { - "2025": 0 - }, - "snap_unearned_income": { - "2025": 0 - }, - "snap_unit_size": { - "2025": 4 - }, - "snap_utility_allowance": { - "2025": 0 - }, - "snap_utility_allowance_type": { - "2025": "NONE" - }, - "spm_unit_assets": { - "2025": 0 - }, - "spm_unit_benefits": { - "2025": 0 - }, - "spm_unit_broadband_subsidy": { - "2025": 0 - }, - "spm_unit_broadband_subsidy_reported": { - "2025": 0 - }, - "spm_unit_capped_housing_subsidy": { - "2025": 0 - }, - "spm_unit_capped_housing_subsidy_reported": { - "2025": 0 - }, - "spm_unit_capped_work_childcare_expenses": { - "2025": 0 - }, - "spm_unit_cash_assets": { - "2025": 0 - }, - "spm_unit_ccdf_subsidy": { - "2025": 0 - }, - "spm_unit_count": { - "2025": 1 - }, - "spm_unit_count_adults": { - "2025": 2 - }, - "spm_unit_count_children": { - "2025": 2 - }, - "spm_unit_energy_subsidy": { - "2025": 0 - }, - "spm_unit_energy_subsidy_reported": { - "2025": 0 - }, - "spm_unit_federal_tax": { - "2025": 13758.5 - }, - "spm_unit_federal_tax_reported": { - "2025": 0 - }, - "spm_unit_fpg": { - "2025": 32150 - }, - "spm_unit_id": { - "2025": 0 - }, - "spm_unit_income_decile": { - "2025": null - }, - "spm_unit_is_in_deep_spm_poverty": { - "2025": false - }, - "spm_unit_is_in_spm_poverty": { - "2025": false - }, - "spm_unit_is_married": { - "2025": true - }, - "spm_unit_market_income": { - "2025": 160275 - }, - "spm_unit_net_income": { - "2025": 126926.6 - }, - "spm_unit_net_income_reported": { - "2025": 0 - }, - "spm_unit_oecd_equiv_net_income": { - "2025": 63463.3 - }, - "spm_unit_paycheck_withholdings": { - "2025": 40160.17 - }, - "spm_unit_payroll_tax": { - "2025": 12261.037 - }, - "spm_unit_payroll_tax_reported": { - "2025": 0 - }, - "spm_unit_pell_grant": { - "2025": 0 - }, - "spm_unit_pre_subsidy_childcare_expenses": { - "2025": 0 - }, - "spm_unit_school_lunch_subsidy": { - "2025": 0 - }, - "spm_unit_self_employment_tax": { - "2025": 0 - }, - "spm_unit_size": { - "2025": 4 - }, - "spm_unit_snap": { - "2025": 0 - }, - "spm_unit_spm_expenses": { - "2025": 0 - }, - "spm_unit_spm_threshold": { - "2025": 0 - }, - "spm_unit_state_fips": { - "2025": 6 - }, - "spm_unit_state_tax": { - "2025": 7328.8623 - }, - "spm_unit_state_tax_reported": { - "2025": 0 - }, - "spm_unit_taxes": { - "2025": 33348.4 - }, - "spm_unit_total_ccdf_copay": { - "2025": 128125 - }, - "spm_unit_total_income_reported": { - "2025": 0 - }, - "spm_unit_weight": { - "2025": 0 - }, - "spm_unit_wic": { - "2025": 0 - }, - "spm_unit_wic_reported": { - "2025": 0 - }, - "takes_up_snap_if_eligible": { - "2025": true - }, - "tanf": { - "2025": 0 - }, - "trash_expense": { - "2025": 0 - }, - "tx_tanf_income_limit": { - "2025": 0 - }, - "utility_expense": { - "2025": 0 - }, - "wa_tanf_countable_resources": { - "2025": 0 - }, - "wa_tanf_resources_eligible": { - "2025": false - }, - "water_expense": { - "2025": 0 - }, - "wic_fpg": { - "2025": 32149.998 - } + } + }, + "spm_units": { + "your household": { + "acp": { + "2025": 0 + }, + "bottled_gas_expense": { + "2025": 0 + }, + "broadband_cost": { + "2025": 0 + }, + "broadband_cost_after_lifeline": { + "2025": 0 + }, + "ca_ala_general_assistance": { + "2025": 0 + }, + "ca_ala_general_assistance_base_amount": { + "2025": 0 + }, + "ca_ala_general_assistance_countable_income": { + "2025": 0 + }, + "ca_ala_general_assistance_income_eligible": { + "2025": false + }, + "ca_ala_general_assistance_personal_property_eligible": { + "2025": false + }, + "ca_calworks_child_care": { + "2025": 0 + }, + "ca_calworks_child_care_age_eligible": { + "2025": false + }, + "ca_calworks_child_care_eligible": { + "2025": false + }, + "ca_calworks_child_care_meets_work_requirement": { + "2025": false + }, + "ca_capi": { + "2025": 0 + }, + "ca_capi_countable_vehicle_value": { + "2025": 0 + }, + "ca_capi_eligible": { + "2025": false + }, + "ca_capi_income_eligible": { + "2025": false + }, + "ca_capi_resource_eligible": { + "2025": false + }, + "ca_capi_resources": { + "2025": 0 + }, + "ca_child_care_subsidies": { + "2025": 0 + }, + "ca_riv_general_relief": { + "2025": 0 + }, + "ca_riv_general_relief_budget_unit_size": { + "2025": 0 + }, + "ca_riv_general_relief_countable_income": { + "2025": 0 + }, + "ca_riv_general_relief_countable_vehicle_value": { + "2025": 0 + }, + "ca_riv_general_relief_eligible": { + "2025": false + }, + "ca_riv_general_relief_income_eligible": { + "2025": false + }, + "ca_riv_general_relief_needs_standards": { + "2025": 0 + }, + "ca_riv_general_relief_property_eligible": { + "2025": false + }, + "ca_riv_general_relief_special_needs_amount": { + "2025": 0 + }, + "ca_riv_liheap_countable_income": { + "2025": 0 + }, + "ca_riv_liheap_eligible": { + "2025": false + }, + "ca_riv_share_countable_income": { + "2025": 0 + }, + "ca_riv_share_electricity_emergency_payment": { + "2025": 0 + }, + "ca_riv_share_eligible": { + "2025": false + }, + "ca_riv_share_eligible_for_emergency_payment": { + "2025": false + }, + "ca_riv_share_payment": { + "2025": 0 + }, + "ca_state_supplement": { + "2025": 0 + }, + "ca_state_supplement_aged_blind_disabled_amount": { + "2025": 0 + }, + "ca_state_supplement_aged_disabled_amount": { + "2025": 0 + }, + "ca_state_supplement_aged_disabled_count": { + "2025": 0 + }, + "ca_state_supplement_blind_amount": { + "2025": 0 + }, + "ca_state_supplement_dependent_amount": { + "2025": 0 + }, + "ca_state_supplement_food_allowance": { + "2025": 0 + }, + "ca_state_supplement_food_allowance_eligible": { + "2025": false + }, + "ca_state_supplement_medical_care_facility_amount": { + "2025": 0 + }, + "ca_state_supplement_out_of_home_care_facility_amount": { + "2025": 0 + }, + "ca_state_supplement_payment_standard": { + "2025": 0 + }, + "ca_tanf": { + "2025": 0 + }, + "ca_tanf_applicant_financial_test": { + "2025": false + }, + "ca_tanf_countable_income_applicant": { + "2025": 0 + }, + "ca_tanf_countable_income_recipient": { + "2025": 0 + }, + "ca_tanf_db_unearned_income": { + "2025": 0 + }, + "ca_tanf_earned_income": { + "2025": 0 + }, + "ca_tanf_eligible": { + "2025": false + }, + "ca_tanf_exempt": { + "2025": false + }, + "ca_tanf_financial_eligible": { + "2025": false + }, + "ca_tanf_income_limit": { + "2025": 0 + }, + "ca_tanf_maximum_payment": { + "2025": 0 + }, + "ca_tanf_other_unearned_income": { + "2025": 0 + }, + "ca_tanf_recipient_financial_test": { + "2025": false + }, + "ca_tanf_resources": { + "2025": 0 + }, + "ca_tanf_resources_eligible": { + "2025": false + }, + "ca_tanf_resources_limit": { + "2025": 0 + }, + "ca_tanf_vehicle_value_eligible": { + "2025": false + }, + "ccdf_income": { + "2025": 160275 + }, + "ccdf_income_to_smi_ratio": { + "2025": 1.3384691 + }, + "childcare_expenses": { + "2025": 0 + }, + "co_ccap_add_on_parent_fee": { + "2025": -180 + }, + "co_ccap_base_parent_fee": { + "2025": 18351.625 + }, + "co_ccap_countable_income": { + "2025": 160275 + }, + "co_ccap_eligible": { + "2025": 0 + }, + "co_ccap_eligible_children": { + "2025": 0 + }, + "co_ccap_entry_eligible": { + "2025": false + }, + "co_ccap_entry_income_eligible": { + "2025": false + }, + "co_ccap_fpg_eligible": { + "2025": false + }, + "co_ccap_is_in_entry_process": { + "2025": true + }, + "co_ccap_is_in_re_determination_process": { + "2025": false + }, + "co_ccap_parent_fee": { + "2025": 0 + }, + "co_ccap_re_determination_eligible": { + "2025": false + }, + "co_ccap_re_determination_income_eligible": { + "2025": false + }, + "co_ccap_smi": { + "2025": 114880.5 + }, + "co_ccap_smi_eligible": { + "2025": false + }, + "co_ccap_subsidy": { + "2025": 0 + }, + "co_child_care_subsidies": { + "2025": 0 + }, + "co_denver_homeowner_property_tax_relief": { + "2025": 0 + }, + "co_denver_property_tax_relief": { + "2025": 0 + }, + "co_denver_property_tax_relief_homeowner_eligible": { + "2025": 0 + }, + "co_denver_property_tax_relief_income": { + "2025": 160275 + }, + "co_denver_property_tax_relief_renter_eligible": { + "2025": 0 + }, + "co_denver_renter_property_tax_relief": { + "2025": 0 + }, + "co_tanf": { + "2025": 0 + }, + "co_tanf_count_children": { + "2025": 0 + }, + "co_tanf_countable_earned_income_grant_standard": { + "2025": 0 + }, + "co_tanf_countable_earned_income_need": { + "2025": 0 + }, + "co_tanf_countable_gross_earned_income": { + "2025": 160275 + }, + "co_tanf_countable_gross_unearned_income": { + "2025": 0 + }, + "co_tanf_eligible": { + "2025": false + }, + "co_tanf_grant_standard": { + "2025": 0 + }, + "co_tanf_income_eligible": { + "2025": false + }, + "co_tanf_need_standard": { + "2025": 0 + }, + "coal_expense": { + "2025": 0 + }, + "cooking_fuel_expense": { + "2025": 0 + }, + "count_distinct_utility_expenses": { + "2025": 0 + }, + "dc_ccsp": { + "2025": 0 + }, + "dc_ccsp_asset_eligible": { + "2025": false + }, + "dc_ccsp_assets": { + "2025": 0 + }, + "dc_ccsp_copay": { + "2025": 0 + }, + "dc_ccsp_countable_income": { + "2025": 0 + }, + "dc_ccsp_eligible": { + "2025": false + }, + "dc_ccsp_enrolled": { + "2025": false + }, + "dc_ccsp_income_eligible": { + "2025": false + }, + "dc_ccsp_income_test_waived": { + "2025": false + }, + "dc_ccsp_qualified_activity_eligible": { + "2025": false + }, + "dc_ccsp_qualified_activity_or_need_eligible": { + "2025": false + }, + "dc_ccsp_qualified_need_eligible": { + "2025": false + }, + "dc_gac": { + "2025": 0 + }, + "dc_gac_assistance_unit_size": { + "2025": 0 + }, + "dc_gac_countable_income": { + "2025": 0 + }, + "dc_gac_eligible": { + "2025": false + }, + "dc_gac_income_eligible": { + "2025": false + }, + "dc_gac_standard_payment": { + "2025": 0 + }, + "dc_liheap_eligible": { + "2025": false + }, + "dc_liheap_heating_type": { + "2025": "ELECTRICITY" + }, + "dc_liheap_housing_type": { + "2025": "MULTI_FAMILY" + }, + "dc_liheap_income_level": { + "2025": 0 + }, + "dc_liheap_payment": { + "2025": 0 + }, + "dc_power": { + "2025": 0 + }, + "dc_power_eligible": { + "2025": false + }, + "dc_power_has_disqualifying_benefits": { + "2025": false + }, + "dc_snap_temporary_local_benefit": { + "2025": 0 + }, + "dc_tanf": { + "2025": 0 + }, + "dc_tanf_assistance_unit_size": { + "2025": 0 + }, + "dc_tanf_basic_eligibility_requirements": { + "2025": false + }, + "dc_tanf_childcare_deduction": { + "2025": 0 + }, + "dc_tanf_countable_earned_income": { + "2025": 0 + }, + "dc_tanf_countable_income": { + "2025": 0 + }, + "dc_tanf_countable_resources": { + "2025": 0 + }, + "dc_tanf_countable_unearned_income": { + "2025": 0 + }, + "dc_tanf_eligible": { + "2025": false + }, + "dc_tanf_income_eligible": { + "2025": false + }, + "dc_tanf_meets_work_requirements": { + "2025": false + }, + "dc_tanf_resources_eligible": { + "2025": false + }, + "dc_tanf_standard_payment": { + "2025": 0 + }, + "deep_poverty_gap": { + "2025": 0 + }, + "deep_poverty_line": { + "2025": 0 + }, + "ebb": { + "2025": 0 + }, + "electricity_expense": { + "2025": 0 + }, + "enrolled_in_ebb": { + "2025": false + }, + "experienced_covid_income_loss": { + "2025": false + }, + "fcc_fpg_ratio": { + "2025": 4.9852257 + }, + "fdpir": { + "2025": 0 + }, + "free_school_meals": { + "2025": 0 + }, + "free_school_meals_reported": { + "2025": 0 + }, + "fuel_oil_expense": { + "2025": 0 + }, + "gas_expense": { + "2025": 0 + }, + "has_all_usda_elderly_disabled": { + "2025": false + }, + "has_co_denver_dhs_elderly_disabled": { + "2025": false + }, + "has_heating_cooling_expense": { + "2025": false + }, + "has_phone_expense": { + "2025": false + }, + "has_usda_elderly_disabled": { + "2025": false + }, + "heat_expense_included_in_rent": { + "2025": false + }, + "heating_cooling_expense": { + "2025": 0 + }, + "heating_expense_last_year": { + "2025": 0 + }, + "hhs_smi": { + "2025": 119745.01 + }, + "homeowners_association_fees": { + "2025": 0 + }, + "homeowners_insurance": { + "2025": 0 + }, + "housing_assistance": { + "2025": 0 + }, + "housing_cost": { + "2025": 0 + }, + "housing_designated_welfare": { + "2025": 0 + }, + "hud_adjusted_income": { + "2025": 159315 + }, + "hud_annual_income": { + "2025": 160275 + }, + "hud_especially_low_income_factor": { + "2025": 0.5 + }, + "hud_gross_rent": { + "2025": 0 + }, + "hud_hap": { + "2025": 0 + }, + "hud_income_level": { + "2025": "ESPECIALLY_LOW" + }, + "hud_low_income_factor": { + "2025": 0.8 + }, + "hud_max_subsidy": { + "2025": 0 + }, + "hud_minimum_rent": { + "2025": 25 + }, + "hud_moderate_income_factor": { + "2025": 1 + }, + "hud_ttp": { + "2025": 47794.5 + }, + "hud_ttp_adjusted_income_share": { + "2025": 47794.5 + }, + "hud_ttp_income_share": { + "2025": 16027.5 + }, + "hud_very_low_income_factor": { + "2025": 0.6 + }, + "il_aabd": { + "2025": 0 + }, + "il_aabd_asset_value_eligible": { + "2025": false + }, + "il_aabd_countable_assets": { + "2025": 0 + }, + "il_aabd_countable_vehicle_value": { + "2025": 0 + }, + "il_aabd_institutional_status": { + "2025": "NONE" + }, + "il_aabd_utility_allowance": { + "2025": 0 + }, + "il_aabd_vehicle_is_essential": { + "2025": false + }, + "il_ccap_countable_income": { + "2025": 0 + }, + "il_ccap_eligible": { + "2025": false + }, + "il_ccap_enrolled": { + "2025": false + }, + "il_ccap_income_eligible": { + "2025": false + }, + "il_ccap_parent_meets_working_requirements": { + "2025": false + }, + "il_liheap": { + "2025": 0 + }, + "il_liheap_base_payment": { + "2025": 0 + }, + "il_liheap_crisis_assistance_amount": { + "2025": 0 + }, + "il_liheap_eligible": { + "2025": false + }, + "il_liheap_eligible_for_crisis_assistance": { + "2025": false + }, + "il_liheap_income_eligible": { + "2025": false + }, + "il_tanf": { + "2025": 0 + }, + "il_tanf_assistance_unit_fpg": { + "2025": 0 + }, + "il_tanf_assistance_unit_size": { + "2025": 0 + }, + "il_tanf_childcare_deduction": { + "2025": 0 + }, + "il_tanf_countable_earned_income_for_grant_calculation": { + "2025": 0 + }, + "il_tanf_countable_earned_income_for_initial_eligibility": { + "2025": 0 + }, + "il_tanf_countable_gross_earned_income": { + "2025": 0 + }, + "il_tanf_countable_income_for_grant_calculation": { + "2025": 0 + }, + "il_tanf_countable_income_for_initial_eligibility": { + "2025": 0 + }, + "il_tanf_countable_unearned_income": { + "2025": 0 + }, + "il_tanf_eligible": { + "2025": false + }, + "il_tanf_income_eligible": { + "2025": false + }, + "il_tanf_initial_employment_deduction_fpg": { + "2025": 0 + }, + "il_tanf_non_financial_eligible": { + "2025": false + }, + "il_tanf_payment_level_for_grant_calculation": { + "2025": 0 + }, + "il_tanf_payment_level_for_initial_eligibility": { + "2025": 0 + }, + "in_deep_poverty": { + "2025": false + }, + "in_poverty": { + "2025": false + }, + "is_acp_eligible": { + "2025": false + }, + "is_ccdf_asset_eligible": { + "2025": true + }, + "is_ccdf_continuous_income_eligible": { + "2025": false + }, + "is_ccdf_income_eligible": { + "2025": false + }, + "is_ccdf_initial_income_eligible": { + "2025": false + }, + "is_demographic_tanf_eligible": { + "2025": true + }, + "is_ebb_eligible": { + "2025": false + }, + "is_eligible_for_housing_assistance": { + "2025": true + }, + "is_hud_elderly_disabled_family": { + "2025": false + }, + "is_lifeline_eligible": { + "2025": false + }, + "is_snap_eligible": { + "2025": false + }, + "is_tanf_enrolled": { + "2025": false + }, + "is_tanf_non_cash_eligible": { + "2025": false + }, + "is_tanf_non_cash_hheod": { + "2025": false + }, + "la_general_relief": { + "2025": 0 + }, + "la_general_relief_age_eligible": { + "2025": false + }, + "la_general_relief_base_amount": { + "2025": 0 + }, + "la_general_relief_cash_asset_eligible": { + "2025": false + }, + "la_general_relief_cash_asset_limit": { + "2025": 0 + }, + "la_general_relief_disability_eligible": { + "2025": false + }, + "la_general_relief_eligible": { + "2025": false + }, + "la_general_relief_home_value_eligible": { + "2025": false + }, + "la_general_relief_housing_subsidy": { + "2025": 0 + }, + "la_general_relief_housing_subsidy_base_amount_eligible": { + "2025": false + }, + "la_general_relief_housing_subsidy_eligible": { + "2025": false + }, + "la_general_relief_housing_subsidy_program_eligible": { + "2025": false + }, + "la_general_relief_immigration_status_eligible": { + "2025": false + }, + "la_general_relief_motor_vehicle_value_eligible": { + "2025": false + }, + "la_general_relief_net_income": { + "2025": 0 + }, + "la_general_relief_net_income_eligible": { + "2025": false + }, + "la_general_relief_net_income_limit": { + "2025": 0 + }, + "la_general_relief_personal_property_eligible": { + "2025": false + }, + "la_general_relief_recipient": { + "2025": false + }, + "la_general_relief_rent_contribution": { + "2025": 0 + }, + "lifeline": { + "2025": 0 + }, + "ma_eaedc": { + "2025": 0 + }, + "ma_eaedc_assets_limit_eligible": { + "2025": false + }, + "ma_eaedc_countable_assets": { + "2025": 0 + }, + "ma_eaedc_countable_earned_income": { + "2025": 0 + }, + "ma_eaedc_dependent_care_deduction": { + "2025": 0 + }, + "ma_eaedc_eligible": { + "2025": false + }, + "ma_eaedc_eligible_caretaker_family": { + "2025": false + }, + "ma_eaedc_eligible_disabled_dependent_present": { + "2025": false + }, + "ma_eaedc_eligible_disabled_head_or_spouse": { + "2025": false + }, + "ma_eaedc_eligible_elderly_present": { + "2025": false + }, + "ma_eaedc_financial_eligible": { + "2025": false + }, + "ma_eaedc_if_claimed": { + "2025": 0 + }, + "ma_eaedc_immigration_status_eligible": { + "2025": false + }, + "ma_eaedc_income_eligible": { + "2025": false + }, + "ma_eaedc_living_arrangement": { + "2025": "A" + }, + "ma_eaedc_net_income": { + "2025": 0 + }, + "ma_eaedc_non_financial_eligible": { + "2025": false + }, + "ma_eaedc_standard_assistance": { + "2025": 0 + }, + "ma_liheap": { + "2025": 0 + }, + "ma_liheap_benefit_level": { + "2025": 0 + }, + "ma_liheap_eligible": { + "2025": false + }, + "ma_liheap_eligible_subsidized_housing": { + "2025": false + }, + "ma_liheap_fpg": { + "2025": 0 + }, + "ma_liheap_heating_type": { + "2025": "ELECTRICITY" + }, + "ma_liheap_hecs_eligible": { + "2025": false + }, + "ma_liheap_hecs_payment": { + "2025": 0 + }, + "ma_liheap_income": { + "2025": 0 + }, + "ma_liheap_income_eligible": { + "2025": false + }, + "ma_liheap_standard_payment": { + "2025": 0 + }, + "ma_liheap_state_median_income_threshold": { + "2025": 0 + }, + "ma_liheap_utility_category": { + "2025": "NONE" + }, + "ma_tafdc": { + "2025": 0 + }, + "ma_tafdc_applicable_income_for_financial_eligibility": { + "2025": 0 + }, + "ma_tafdc_applicable_income_grant_amount": { + "2025": 0 + }, + "ma_tafdc_countable_unearned_income": { + "2025": 0 + }, + "ma_tafdc_dependent_care_deduction": { + "2025": 0 + }, + "ma_tafdc_dependent_criteria_eligible": { + "2025": false + }, + "ma_tafdc_earned_income_after_deductions": { + "2025": 0 + }, + "ma_tafdc_eligible": { + "2025": false + }, + "ma_tafdc_exceeds_eaedc": { + "2025": false + }, + "ma_tafdc_financial_eligible": { + "2025": false + }, + "ma_tafdc_if_claimed": { + "2025": 0 + }, + "ma_tafdc_immigration_status_eligible": { + "2025": false + }, + "ma_tafdc_non_financial_eligible": { + "2025": false + }, + "ma_tafdc_payment_standard": { + "2025": 0 + }, + "ma_tafdc_potential_main_benefit": { + "2025": 0 + }, + "md_snap_elderly_present": { + "2025": false + }, + "md_tanf_count_children": { + "2025": 0 + }, + "md_tanf_eligible": { + "2025": false + }, + "md_tanf_gross_earned_income_deduction": { + "2025": 0 + }, + "md_tanf_maximum_benefit": { + "2025": 0 + }, + "meets_ccdf_activity_test": { + "2025": false + }, + "meets_school_meal_categorical_eligibility": { + "2025": false + }, + "meets_snap_asset_test": { + "2025": true + }, + "meets_snap_categorical_eligibility": { + "2025": false + }, + "meets_snap_gross_income_test": { + "2025": false + }, + "meets_snap_net_income_test": { + "2025": false + }, + "meets_snap_work_requirements": { + "2025": true + }, + "meets_tanf_non_cash_asset_test": { + "2025": true + }, + "meets_tanf_non_cash_gross_income_test": { + "2025": false + }, + "meets_tanf_non_cash_net_income_test": { + "2025": true + }, + "meets_wic_income_test": { + "2025": false + }, + "members": ["you", "your partner", "your first dependent", "your second dependent"], + "metered_gas_expense": { + "2025": 0 + }, + "mo_tanf_income_limit": { + "2025": 0 + }, + "mortgage_payments": { + "2025": 0 + }, + "nc_demographic_tanf_eligible": { + "2025": false + }, + "nc_scca": { + "2025": 0 + }, + "nc_scca_countable_income": { + "2025": 0 + }, + "nc_scca_entry_eligible": { + "2025": false + }, + "nc_scca_entry_income_eligible": { + "2025": false + }, + "nc_scca_fpg_rate": { + "2025": 0 + }, + "nc_scca_has_eligible_child": { + "2025": false + }, + "nc_scca_maximum_payment": { + "2025": 0 + }, + "nc_scca_parent_fee": { + "2025": 0 + }, + "nc_tanf": { + "2025": 0 + }, + "nc_tanf_countable_earned_income": { + "2025": 0 + }, + "nc_tanf_countable_gross_unearned_income": { + "2025": 0 + }, + "nc_tanf_eligible": { + "2025": false + }, + "nc_tanf_household_size": { + "2025": 0 + }, + "nc_tanf_income_eligible": { + "2025": false + }, + "nc_tanf_need_standard": { + "2025": 0 + }, + "nc_tanf_reduced_need_standard": { + "2025": 0 + }, + "ne_child_care_subsidies": { + "2025": 0 + }, + "ne_child_care_subsidy": { + "2025": 0 + }, + "ne_child_care_subsidy_eligible": { + "2025": false + }, + "ne_child_care_subsidy_income_eligible": { + "2025": false + }, + "nj_tanf_countable_gross_unearned_income": { + "2025": 0 + }, + "nj_tanf_countable_resources": { + "2025": 0 + }, + "nj_tanf_gross_earned_income": { + "2025": 0 + }, + "nj_tanf_maximum_allowable_income": { + "2025": 0 + }, + "nj_tanf_maximum_benefit": { + "2025": 0 + }, + "nj_tanf_resources_eligible": { + "2025": false + }, + "ny_tanf": { + "2025": 0 + }, + "ny_tanf_countable_earned_income": { + "2025": 0 + }, + "ny_tanf_countable_gross_unearned_income": { + "2025": 0 + }, + "ny_tanf_countable_resources": { + "2025": 0 + }, + "ny_tanf_eligible": { + "2025": false + }, + "ny_tanf_grant_standard": { + "2025": 0 + }, + "ny_tanf_gross_earned_income": { + "2025": 0 + }, + "ny_tanf_income_eligible": { + "2025": false + }, + "ny_tanf_need_standard": { + "2025": 0 + }, + "ny_tanf_resources_eligible": { + "2025": false + }, + "ok_tanf": { + "2025": 0 + }, + "pa_tanf_age_eligible": { + "2025": false + }, + "pa_tanf_age_eligible_on_pregnant_women_limitation": { + "2025": false + }, + "pa_tanf_countable_resources": { + "2025": 0 + }, + "pa_tanf_resources_eligible": { + "2025": false + }, + "phone_cost": { + "2025": 0 + }, + "phone_expense": { + "2025": 0 + }, + "poverty_gap": { + "2025": 0 + }, + "poverty_line": { + "2025": 0 + }, + "pre_subsidy_electricity_expense": { + "2025": 0 + }, + "receives_housing_assistance": { + "2025": false + }, + "reduced_price_school_meals": { + "2025": 0 + }, + "school_meal_countable_income": { + "2025": 160275 + }, + "school_meal_daily_subsidy": { + "2025": 0.86 + }, + "school_meal_fpg_ratio": { + "2025": 4.9852257 + }, + "school_meal_net_subsidy": { + "2025": 0 + }, + "school_meal_paid_daily_subsidy": { + "2025": 0.86 + }, + "school_meal_tier": { + "2025": "PAID" + }, + "sewage_expense": { + "2025": 0 + }, + "snap": { + "2025": 0 + }, + "snap_assets": { + "2025": 0 + }, + "snap_child_support_deduction": { + "2025": 0 + }, + "snap_child_support_gross_income_deduction": { + "2025": 0 + }, + "snap_deductions": { + "2025": 34677 + }, + "snap_dependent_care_deduction": { + "2025": 0 + }, + "snap_earned_income": { + "2025": 160275 + }, + "snap_earned_income_deduction": { + "2025": 32055 + }, + "snap_earned_income_person": { + "2025": 160275 + }, + "snap_emergency_allotment": { + "2025": 0 + }, + "snap_excess_medical_expense_deduction": { + "2025": 0 + }, + "snap_excess_shelter_expense_deduction": { + "2025": 0 + }, + "snap_expected_contribution": { + "2025": 37679.402 + }, + "snap_fpg": { + "2025": 31437.498 + }, + "snap_gross_income": { + "2025": 160275 + }, + "snap_gross_income_fpg_ratio": { + "2025": 4.985225 + }, + "snap_individual_utility_allowance": { + "2025": 0 + }, + "snap_limited_utility_allowance": { + "2025": 0 + }, + "snap_limited_utility_allowance_by_household_size": { + "2025": false + }, + "snap_max_allotment": { + "2025": 11757 + }, + "snap_min_allotment": { + "2025": 0 + }, + "snap_net_income": { + "2025": 125598 + }, + "snap_net_income_fpg_ratio": { + "2025": 3.9049454 + }, + "snap_net_income_pre_shelter": { + "2025": 125598 + }, + "snap_normal_allotment": { + "2025": 0 + }, + "snap_reported": { + "2025": 0 + }, + "snap_self_employment_expense_deduction": { + "2025": 0 + }, + "snap_self_employment_income_after_expense_deduction": { + "2025": 0 + }, + "snap_self_employment_income_expense": { + "2025": 0 + }, + "snap_standard_deduction": { + "2025": 2622 + }, + "snap_standard_utility_allowance": { + "2025": 0 + }, + "snap_standard_utility_allowance_by_household_size": { + "2025": false + }, + "snap_state_using_standard_utility_allowance": { + "2025": false + }, + "snap_take_up_seed": { + "2025": 0 + }, + "snap_unearned_income": { + "2025": 0 + }, + "snap_unit_size": { + "2025": 4 + }, + "snap_utility_allowance": { + "2025": 0 + }, + "snap_utility_allowance_type": { + "2025": "NONE" + }, + "spm_unit_assets": { + "2025": 0 + }, + "spm_unit_benefits": { + "2025": 0 + }, + "spm_unit_broadband_subsidy": { + "2025": 0 + }, + "spm_unit_broadband_subsidy_reported": { + "2025": 0 + }, + "spm_unit_capped_housing_subsidy": { + "2025": 0 + }, + "spm_unit_capped_housing_subsidy_reported": { + "2025": 0 + }, + "spm_unit_capped_work_childcare_expenses": { + "2025": 0 + }, + "spm_unit_cash_assets": { + "2025": 0 + }, + "spm_unit_ccdf_subsidy": { + "2025": 0 + }, + "spm_unit_count": { + "2025": 1 + }, + "spm_unit_count_adults": { + "2025": 2 + }, + "spm_unit_count_children": { + "2025": 2 + }, + "spm_unit_energy_subsidy": { + "2025": 0 + }, + "spm_unit_energy_subsidy_reported": { + "2025": 0 + }, + "spm_unit_federal_tax": { + "2025": 13758.5 + }, + "spm_unit_federal_tax_reported": { + "2025": 0 + }, + "spm_unit_fpg": { + "2025": 32150 + }, + "spm_unit_id": { + "2025": 0 + }, + "spm_unit_income_decile": { + "2025": null + }, + "spm_unit_is_in_deep_spm_poverty": { + "2025": false + }, + "spm_unit_is_in_spm_poverty": { + "2025": false + }, + "spm_unit_is_married": { + "2025": true + }, + "spm_unit_market_income": { + "2025": 160275 + }, + "spm_unit_net_income": { + "2025": 126926.6 + }, + "spm_unit_net_income_reported": { + "2025": 0 + }, + "spm_unit_oecd_equiv_net_income": { + "2025": 63463.3 + }, + "spm_unit_paycheck_withholdings": { + "2025": 40160.17 + }, + "spm_unit_payroll_tax": { + "2025": 12261.037 + }, + "spm_unit_payroll_tax_reported": { + "2025": 0 + }, + "spm_unit_pell_grant": { + "2025": 0 + }, + "spm_unit_pre_subsidy_childcare_expenses": { + "2025": 0 + }, + "spm_unit_school_lunch_subsidy": { + "2025": 0 + }, + "spm_unit_self_employment_tax": { + "2025": 0 + }, + "spm_unit_size": { + "2025": 4 + }, + "spm_unit_snap": { + "2025": 0 + }, + "spm_unit_spm_expenses": { + "2025": 0 + }, + "spm_unit_spm_threshold": { + "2025": 0 + }, + "spm_unit_state_fips": { + "2025": 6 + }, + "spm_unit_state_tax": { + "2025": 7328.8623 + }, + "spm_unit_state_tax_reported": { + "2025": 0 + }, + "spm_unit_taxes": { + "2025": 33348.4 + }, + "spm_unit_total_ccdf_copay": { + "2025": 128125 + }, + "spm_unit_total_income_reported": { + "2025": 0 + }, + "spm_unit_weight": { + "2025": 0 + }, + "spm_unit_wic": { + "2025": 0 + }, + "spm_unit_wic_reported": { + "2025": 0 + }, + "takes_up_snap_if_eligible": { + "2025": true + }, + "tanf": { + "2025": 0 + }, + "trash_expense": { + "2025": 0 + }, + "tx_tanf_income_limit": { + "2025": 0 + }, + "utility_expense": { + "2025": 0 + }, + "wa_tanf_countable_resources": { + "2025": 0 + }, + "wa_tanf_resources_eligible": { + "2025": false + }, + "water_expense": { + "2025": 0 + }, + "wic_fpg": { + "2025": 32149.998 } - }, - "tax_units": { - "your tax unit": { - "able_contributions": { - "2025": 0 - }, - "above_the_line_deductions": { - "2025": 0 - }, - "aca_magi": { - "2025": 160275 - }, - "aca_magi_fraction": { - "2025": 5.13 - }, - "aca_ptc": { - "2025": 8232.818 - }, - "aca_ptc_phase_out_rate": { - "2025": 0.085 - }, - "aca_take_up_seed": { - "2025": 0 - }, - "additional_medicare_tax": { - "2025": 0 - }, - "additional_senior_deduction": { - "2025": 0 - }, - "additional_standard_deduction": { - "2025": 0 - }, - "adjusted_gross_income": { - "2025": 160275 - }, - "adjusted_net_capital_gain": { - "2025": 0 - }, - "advanced_main_air_circulating_fan_expenditures": { - "2025": 0 - }, - "age_head": { - "2025": 40 - }, - "age_spouse": { - "2025": 40 - }, - "aged_blind_count": { - "2025": 0 - }, - "aged_head": { - "2025": false - }, - "aged_spouse": { - "2025": false - }, - "air_sealing_ventilation_expenditures": { - "2025": 0 - }, - "al_agi": { - "2025": 0 - }, - "al_casualty_loss_deduction": { - "2025": 0 - }, - "al_deductions": { - "2025": 0 - }, - "al_dependent_exemption": { - "2025": 0 - }, - "al_federal_income_tax_deduction": { - "2025": 0 - }, - "al_income_tax": { - "2025": 0 - }, - "al_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "al_income_tax_before_refundable_credits": { - "2025": 0 - }, - "al_interest_deduction": { - "2025": 0 - }, - "al_itemized_deductions": { - "2025": 0 - }, - "al_medical_expense_deduction": { - "2025": 0 - }, - "al_misc_deduction": { - "2025": 0 - }, - "al_non_refundable_credits": { - "2025": 0 - }, - "al_personal_exemption": { - "2025": 0 - }, - "al_refundable_credits": { - "2025": 0 - }, - "al_retirement_exemption": { - "2025": 0 - }, - "al_standard_deduction": { - "2025": 0 - }, - "al_taxable_income": { - "2025": 0 - }, - "alimony_expense_ald": { - "2025": 0 - }, - "alternative_minimum_tax": { - "2025": 0 - }, - "american_opportunity_credit": { - "2025": 0 - }, - "amt_base_tax": { - "2025": 6051.5 - }, - "amt_excluded_deductions": { - "2025": 31500 - }, - "amt_form_completed": { - "2025": false - }, - "amt_higher_base_tax": { - "2025": 0 - }, - "amt_income": { - "2025": 160275 - }, - "amt_income_less_exemptions": { - "2025": 23275 - }, - "amt_kiddie_tax_applies": { - "2025": false - }, - "amt_lower_base_tax": { - "2025": 6051.5 - }, - "amt_non_agi_income": { - "2025": 0 - }, - "amt_part_iii_required": { - "2025": false - }, - "amt_separate_addition": { - "2025": 0 - }, - "amt_tax_including_cg": { - "2025": 6051.5 - }, - "ar_additional_tax_credit_for_qualified_individuals": { - "2025": 0 - }, - "ar_agi": { - "2025": 0 - }, - "ar_cdcc": { - "2025": 0 - }, - "ar_files_separately": { - "2025": false - }, - "ar_income_tax": { - "2025": 0 - }, - "ar_income_tax_before_non_refundable_credits_unit": { - "2025": 0 - }, - "ar_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ar_inflation_relief_credit": { - "2025": 0 - }, - "ar_itemized_deductions": { - "2025": 0 - }, - "ar_medical_expense_deduction_indiv": { - "2025": 0 - }, - "ar_medical_expense_deduction_joint": { - "2025": 0 - }, - "ar_misc_deduction_indiv": { - "2025": 0 - }, - "ar_misc_deduction_joint": { - "2025": 0 - }, - "ar_non_refundable_credits": { - "2025": 0 - }, - "ar_personal_credits": { - "2025": 0 - }, - "ar_personal_credits_base": { - "2025": 0 - }, - "ar_post_secondary_education_tuition_deduction": { - "2025": 0 - }, - "ar_refundable_credits": { - "2025": 0 - }, - "ar_retirement_or_disability_benefits_exemption": { - "2025": 0 - }, - "ar_standard_deduction": { - "2025": 0 - }, - "ar_tax_unit_itemizes": { - "2025": false - }, - "ar_taxable_income": { - "2025": 0 - }, - "auto_loan_interest_deduction": { - "2025": 0 - }, - "az_529_college_savings_plan_subtraction": { - "2025": 0 - }, - "az_additions": { - "2025": 0 - }, - "az_agi": { - "2025": 0 - }, - "az_base_standard_deduction": { - "2025": 0 - }, - "az_blind_exemption": { - "2025": 0 - }, - "az_charitable_contributions_credit": { - "2025": 0 - }, - "az_charitable_contributions_to_qualifying_charitable_organizations": { - "2025": 0 - }, - "az_charitable_contributions_to_qualifying_foster_care_organizations": { - "2025": 0 - }, - "az_deductions": { - "2025": 0 - }, - "az_dependent_tax_credit": { - "2025": 0 - }, - "az_exemptions": { - "2025": 0 - }, - "az_family_tax_credit": { - "2025": 0 - }, - "az_family_tax_credit_eligible": { - "2025": false - }, - "az_filing_status": { - "2025": "SINGLE" - }, - "az_income_tax": { - "2025": 0 - }, - "az_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "az_income_tax_before_refundable_credits": { - "2025": 0 - }, - "az_increased_excise_tax_credit": { - "2025": 0 - }, - "az_increased_excise_tax_credit_eligible": { - "2025": false - }, - "az_increased_standard_deduction_for_charitable_contributions": { - "2025": 0 - }, - "az_itemized_deductions": { - "2025": 0 - }, - "az_long_term_capital_gains_subtraction": { - "2025": 0 - }, - "az_military_retirement_subtraction": { - "2025": 0 - }, - "az_non_refundable_credits": { - "2025": 0 - }, - "az_property_tax_credit": { - "2025": 0 - }, - "az_property_tax_credit_eligible": { - "2025": false - }, - "az_property_tax_credit_income": { - "2025": 0 - }, - "az_public_pension_exclusion": { - "2025": 0 - }, - "az_refundable_credits": { - "2025": 0 - }, - "az_standard_deduction": { - "2025": 0 - }, - "az_stillborn_exemption": { - "2025": 0 - }, - "az_subtractions": { - "2025": 0 - }, - "az_taxable_income": { - "2025": 0 - }, - "basic_income": { - "2025": 0 - }, - "basic_income_before_phase_out": { - "2025": 0 - }, - "basic_income_eligible": { - "2025": true - }, - "basic_income_phase_in": { - "2025": 160275 - }, - "basic_income_phase_out": { - "2025": 0 - }, - "basic_standard_deduction": { - "2025": 31500 - }, - "biomass_stove_boiler_expenditures": { - "2025": 0 - }, - "blind_head": { - "2025": false - }, - "blind_spouse": { - "2025": false - }, - "bonus_guaranteed_deduction": { - "2025": 0 - }, - "ca_additions": { - "2025": 0 - }, - "ca_agi": { - "2025": 0 - }, - "ca_agi_subtractions": { - "2025": 0 - }, - "ca_amt": { - "2025": 0 - }, - "ca_amt_exemption": { - "2025": 0 - }, - "ca_amti": { - "2025": 0 - }, - "ca_amti_adjustments": { - "2025": 0 - }, - "ca_cdcc": { - "2025": 0 - }, - "ca_cdcc_rate": { - "2025": 0 - }, - "ca_cdcc_relevant_expenses": { - "2025": 0 - }, - "ca_deductions": { - "2025": 0 - }, - "ca_eitc": { - "2025": 0 - }, - "ca_eitc_eligible": { - "2025": false - }, - "ca_exemptions": { - "2025": 0 - }, - "ca_federal_capped_cdcc": { - "2025": 0 - }, - "ca_federal_cdcc": { - "2025": 0 - }, - "ca_foster_youth_tax_credit": { - "2025": 0 - }, - "ca_income_tax": { - "2025": 0 - }, - "ca_income_tax_before_credits": { - "2025": 0 - }, - "ca_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ca_investment_interest_deduction": { - "2025": 0 - }, - "ca_itemized_deductions": { - "2025": 0 - }, - "ca_itemized_deductions_pre_limitation": { - "2025": 0 - }, - "ca_mental_health_services_tax": { - "2025": 0 - }, - "ca_non_refundable_credits": { - "2025": 0 - }, - "ca_pre_exemption_amti": { - "2025": 0 - }, - "ca_refundable_credits": { - "2025": 0 - }, - "ca_renter_credit": { - "2025": 0 - }, - "ca_sf_wftc": { - "2025": 0 - }, - "ca_standard_deduction": { - "2025": 0 - }, - "ca_taxable_income": { - "2025": 0 - }, - "ca_use_tax": { - "2025": 0 - }, - "ca_yctc": { - "2025": 0 - }, - "capital_gains_28_percent_rate_gain": { - "2025": 0 - }, - "capital_gains_excluded_from_taxable_income": { - "2025": 0 - }, - "capital_gains_tax": { - "2025": 0 - }, - "capped_advanced_main_air_circulating_fan_credit": { - "2025": 0 - }, - "capped_cdcc": { - "2025": 0 - }, - "capped_count_cdcc_eligible": { - "2025": 2 - }, - "capped_electric_heat_pump_clothes_dryer_rebate": { - "2025": 0 - }, - "capped_electric_load_service_center_upgrade_rebate": { - "2025": 0 - }, - "capped_electric_stove_cooktop_range_or_oven_rebate": { - "2025": 0 - }, - "capped_electric_wiring_rebate": { - "2025": 0 - }, - "capped_energy_efficient_central_air_conditioner_credit": { - "2025": 0 - }, - "capped_energy_efficient_door_credit": { - "2025": 0 - }, - "capped_energy_efficient_insulation_credit": { - "2025": 0 - }, - "capped_energy_efficient_roof_credit": { - "2025": 0 - }, - "capped_energy_efficient_window_credit": { - "2025": 0 - }, - "capped_heat_pump_heat_pump_water_heater_biomass_stove_boiler_credit": { - "2025": 0 - }, - "capped_heat_pump_rebate": { - "2025": 0 - }, - "capped_heat_pump_water_heater_rebate": { - "2025": 0 - }, - "capped_home_energy_audit_credit": { - "2025": 0 - }, - "capped_insulation_air_sealing_ventilation_rebate": { - "2025": 0 - }, - "capped_property_taxes": { - "2025": 0 - }, - "capped_qualified_furnace_or_hot_water_boiler_credit": { - "2025": 0 - }, - "casualty_loss_deduction": { - "2025": 0 - }, - "cdcc": { - "2025": 0 - }, - "cdcc_credit_limit": { - "2025": 18158.5 - }, - "cdcc_limit": { - "2025": 6000 - }, - "cdcc_potential": { - "2025": 0 - }, - "cdcc_rate": { - "2025": 0.2 - }, - "cdcc_relevant_expenses": { - "2025": 0 - }, - "charitable_deduction": { - "2025": 0 - }, - "charitable_deduction_for_non_itemizers": { - "2025": 0 - }, - "co_able_contribution_subtraction": { - "2025": 0 - }, - "co_additions": { - "2025": 0 - }, - "co_cdcc": { - "2025": 0 - }, - "co_charitable_contribution_subtraction": { - "2025": 0 - }, - "co_charitable_contribution_subtraction_eligible": { - "2025": false - }, - "co_collegeinvest_subtraction": { - "2025": 0 - }, - "co_ctc": { - "2025": 0 - }, - "co_ctc_eligible_children_count": { - "2025": 0 - }, - "co_eitc": { - "2025": 0 - }, - "co_federal_ctc": { - "2025": 0 - }, - "co_federal_ctc_maximum": { - "2025": 0 - }, - "co_federal_deduction_addback": { - "2025": 0 - }, - "co_federal_deduction_addback_required": { - "2025": false - }, - "co_income_qualified_senior_housing_credit": { - "2025": 0 - }, - "co_income_qualified_senior_housing_credit_eligible": { - "2025": false - }, - "co_income_tax": { - "2025": 0 - }, - "co_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "co_income_tax_before_refundable_credits": { - "2025": 0 - }, - "co_low_income_cdcc": { - "2025": 0 - }, - "co_low_income_cdcc_eligible": { - "2025": false - }, - "co_military_retirement_subtraction": { - "2025": 0 - }, - "co_modified_agi": { - "2025": 0 - }, - "co_non_refundable_credits": { - "2025": 0 - }, - "co_non_refundable_ctc": { - "2025": 0 - }, - "co_pension_subtraction": { - "2025": 0 - }, - "co_property_tax_exemption": { - "2025": 0 - }, - "co_qualified_business_income_deduction_addback": { - "2025": 0 - }, - "co_qualified_business_income_deduction_addback_required": { - "2025": false - }, - "co_refundable_credits": { - "2025": 0 - }, - "co_refundable_ctc": { - "2025": 0 - }, - "co_sales_tax_refund": { - "2025": 0 - }, - "co_sales_tax_refund_eligible": { - "2025": false - }, - "co_state_addback": { - "2025": 0 - }, - "co_subtractions": { - "2025": 0 - }, - "co_taxable_income": { - "2025": 0 - }, - "cohabitating_spouses": { - "2025": false - }, - "count_cdcc_eligible": { - "2025": 2 - }, - "ct_additions": { - "2025": 0 - }, - "ct_agi": { - "2025": 0 - }, - "ct_agi_subtractions": { - "2025": 0 - }, - "ct_amt": { - "2025": 0 - }, - "ct_child_tax_rebate": { - "2025": 0 - }, - "ct_eitc": { - "2025": 0 - }, - "ct_income_tax": { - "2025": 0 - }, - "ct_income_tax_after_amt": { - "2025": 0 - }, - "ct_income_tax_after_personal_credits": { - "2025": 0 - }, - "ct_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ct_income_tax_high_tax_recapture": { - "2025": 0 - }, - "ct_income_tax_low_tax_recapture": { - "2025": 0 - }, - "ct_income_tax_middle_tax_recapture": { - "2025": 0 - }, - "ct_income_tax_phase_out_add_back": { - "2025": 0 - }, - "ct_income_tax_recapture": { - "2025": 0 - }, - "ct_non_refundable_credits": { - "2025": 0 - }, - "ct_pension_annuity_subtraction": { - "2025": 0 - }, - "ct_personal_credit_rate": { - "2025": 0 - }, - "ct_personal_exemptions": { - "2025": 0 - }, - "ct_property_tax_credit": { - "2025": 0 - }, - "ct_property_tax_credit_eligible": { - "2025": false - }, - "ct_refundable_credits": { - "2025": 0 - }, - "ct_section_179_expense_add_back": { - "2025": 0 - }, - "ct_social_security_benefit_adjustment": { - "2025": 0 - }, - "ct_subtractions": { - "2025": 0 - }, - "ct_taxable_income": { - "2025": 0 - }, - "ct_tuition_subtraction": { - "2025": 0 - }, - "ctc": { - "2025": 4400 - }, - "ctc_arpa_addition": { - "2025": 0 - }, - "ctc_arpa_max_addition": { - "2025": 0 - }, - "ctc_arpa_phase_out": { - "2025": 0 - }, - "ctc_arpa_phase_out_cap": { - "2025": 0 - }, - "ctc_arpa_phase_out_threshold": { - "2025": 150000 - }, - "ctc_arpa_uncapped_phase_out": { - "2025": 0 - }, - "ctc_limiting_tax_liability": { - "2025": 18158.5 - }, - "ctc_maximum": { - "2025": 4400 - }, - "ctc_maximum_with_arpa_addition": { - "2025": 4400 - }, - "ctc_phase_in": { - "2025": 23666.25 - }, - "ctc_phase_in_relevant_earnings": { - "2025": 23666.25 - }, - "ctc_phase_out": { - "2025": 0 - }, - "ctc_phase_out_threshold": { - "2025": 400000 - }, - "ctc_qualifying_children": { - "2025": 2 - }, - "ctc_refundable_maximum": { - "2025": 3400 - }, - "ctc_social_security_tax": { - "2025": 12261.037 - }, - "ctc_value": { - "2025": 4400 - }, - "dc_cdcc": { - "2025": 0 - }, - "dc_ctc": { - "2025": 0 - }, - "dc_ctc_capped_children": { - "2025": 0 - }, - "dc_deduction_joint": { - "2025": 0 - }, - "dc_eitc": { - "2025": 0 - }, - "dc_eitc_with_qualifying_child": { - "2025": 0 - }, - "dc_eitc_without_qualifying_child": { - "2025": 0 - }, - "dc_files_separately": { - "2025": false - }, - "dc_income_tax": { - "2025": 0 - }, - "dc_income_tax_before_credits": { - "2025": 0 - }, - "dc_income_tax_before_credits_indiv": { - "2025": 0 - }, - "dc_income_tax_before_credits_joint": { - "2025": 0 - }, - "dc_income_tax_before_refundable_credits": { - "2025": 0 - }, - "dc_itemized_deductions": { - "2025": 0 - }, - "dc_kccatc": { - "2025": 0 - }, - "dc_non_refundable_credits": { - "2025": 0 - }, - "dc_ptc": { - "2025": 0 - }, - "dc_refundable_credits": { - "2025": 0 - }, - "dc_standard_deduction": { - "2025": 0 - }, - "dc_taxable_income": { - "2025": 0 - }, - "dc_taxable_income_joint": { - "2025": 0 - }, - "de_aged_personal_credit": { - "2025": 0 - }, - "de_agi": { - "2025": 0 - }, - "de_capped_real_estate_tax": { - "2025": 0 - }, - "de_cdcc": { - "2025": 0 - }, - "de_claims_refundable_eitc": { - "2025": false - }, - "de_eitc": { - "2025": 0 - }, - "de_files_separately": { - "2025": false - }, - "de_income_tax": { - "2025": 0 - }, - "de_income_tax_before_non_refundable_credits_unit": { - "2025": 0 - }, - "de_income_tax_before_refundable_credits": { - "2025": 0 - }, - "de_income_tax_if_claiming_non_refundable_eitc": { - "2025": 0 - }, - "de_income_tax_if_claiming_refundable_eitc": { - "2025": 0 - }, - "de_itemized_deductions": { - "2025": 0 - }, - "de_itemized_deductions_unit": { - "2025": 0 - }, - "de_non_refundable_credits": { - "2025": 0 - }, - "de_non_refundable_eitc": { - "2025": 0 - }, - "de_non_refundable_eitc_if_claimed": { - "2025": 0 - }, - "de_personal_credit": { - "2025": 0 - }, - "de_refundable_credits": { - "2025": 0 - }, - "de_refundable_eitc": { - "2025": 0 - }, - "de_refundable_eitc_if_claimed": { - "2025": 0 - }, - "de_relief_rebate": { - "2025": 0 - }, - "de_standard_deduction": { - "2025": 0 - }, - "de_tax_unit_itemizes": { - "2025": false - }, - "de_taxable_income": { - "2025": 0 - }, - "disabled_head": { - "2025": false - }, - "disabled_spouse": { - "2025": false - }, - "disabled_tax_unit_head_or_spouse": { - "2025": false - }, - "dividend_income_reduced_by_investment_income": { - "2025": 0 - }, - "domestic_production_ald": { - "2025": 0 - }, - "dwks09": { - "2025": 0 - }, - "dwks10": { - "2025": 0 - }, - "dwks13": { - "2025": 0 - }, - "dwks14": { - "2025": 0 - }, - "dwks19": { - "2025": 0 - }, - "education_credit_phase_out": { - "2025": 0.01375 - }, - "education_tax_credits": { - "2025": 0 - }, - "eitc": { - "2025": 0 - }, - "eitc_agi_limit": { - "2025": 64430.113 - }, - "eitc_child_count": { - "2025": 2 - }, - "eitc_demographic_eligible": { - "2025": true - }, - "eitc_eligible": { - "2025": true - }, - "eitc_investment_income_eligible": { - "2025": true - }, - "eitc_maximum": { - "2025": 7152 - }, - "eitc_phase_in_rate": { - "2025": 0.4 - }, - "eitc_phase_out_rate": { - "2025": 0.2106 - }, - "eitc_phase_out_start": { - "2025": 30470 - }, - "eitc_phased_in": { - "2025": 7152 - }, - "eitc_reduction": { - "2025": 27336.934 - }, - "eitc_relevant_investment_income": { - "2025": 0 - }, - "elderly_disabled_credit": { - "2025": 0 - }, - "elderly_disabled_credit_credit_limit": { - "2025": 18158.5 - }, - "elderly_disabled_credit_potential": { - "2025": 0 - }, - "electric_heat_pump_clothes_dryer_expenditures": { - "2025": 0 - }, - "electric_load_service_center_upgrade_expenditures": { - "2025": 0 - }, - "electric_stove_cooktop_range_or_oven_expenditures": { - "2025": 0 - }, - "electric_wiring_expenditures": { - "2025": 0 - }, - "employee_payroll_tax": { - "2025": 12261.037 - }, - "energy_efficient_central_air_conditioner_expenditures": { - "2025": 0 - }, - "energy_efficient_door_expenditures": { - "2025": 0 - }, - "energy_efficient_home_improvement_credit": { - "2025": 0 - }, - "energy_efficient_home_improvement_credit_credit_limit": { - "2025": 18158.5 - }, - "energy_efficient_home_improvement_credit_potential": { - "2025": 0 - }, - "energy_efficient_insulation_expenditures": { - "2025": 0 - }, - "energy_efficient_roof_expenditures": { - "2025": 0 - }, - "energy_efficient_window_expenditures": { - "2025": 0 - }, - "excess_payroll_tax_withheld": { - "2025": 0 - }, - "exemptions": { - "2025": 0 - }, - "exemptions_count": { - "2025": 4 - }, - "federal_eitc_without_age_minimum": { - "2025": 0 - }, - "federal_state_income_tax": { - "2025": 21087.363 - }, - "filer_adjusted_earnings": { - "2025": 160275 - }, - "filer_meets_ctc_identification_requirements": { - "2025": true - }, - "filer_meets_eitc_identification_requirements": { - "2025": true - }, - "filing_status": { - "2025": "JOINT" - }, - "flat_tax": { - "2025": 0 - }, - "foreign_earned_income_exclusion": { - "2025": 0 - }, - "foreign_tax_credit": { - "2025": 0 - }, - "foreign_tax_credit_credit_limit": { - "2025": 18158.5 - }, - "foreign_tax_credit_potential": { - "2025": 0 - }, - "form_4972_lumpsum_distributions": { - "2025": 0 - }, - "fuel_cell_property_capacity": { - "2025": 0 - }, - "fuel_cell_property_expenditures": { - "2025": 0 - }, - "ga_additional_standard_deduction": { - "2025": 0 - }, - "ga_additions": { - "2025": 0 - }, - "ga_agi": { - "2025": 0 - }, - "ga_cdcc": { - "2025": 0 - }, - "ga_ctc": { - "2025": 0 - }, - "ga_deductions": { - "2025": 0 - }, - "ga_exemptions": { - "2025": 0 - }, - "ga_income_tax": { - "2025": 0 - }, - "ga_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "ga_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ga_investment_in_529_plan_deduction": { - "2025": 0 - }, - "ga_low_income_credit": { - "2025": 0 - }, - "ga_military_retirement_exclusion": { - "2025": 0 - }, - "ga_non_refundable_credits": { - "2025": 0 - }, - "ga_refundable_credits": { - "2025": 0 - }, - "ga_retirement_exclusion": { - "2025": 0 - }, - "ga_standard_deduction": { - "2025": 0 - }, - "ga_subtractions": { - "2025": 0 - }, - "ga_surplus_tax_rebate": { - "2025": 0 - }, - "ga_taxable_income": { - "2025": 0 - }, - "geothermal_heat_pump_property_expenditures": { - "2025": 0 - }, - "greater_age_head_spouse": { - "2025": 40 - }, - "has_qdiv_or_ltcg": { - "2025": false - }, - "head_earned": { - "2025": 158890 - }, - "head_is_dependent_elsewhere": { - "2025": false - }, - "head_is_disabled": { - "2025": false - }, - "head_of_household_eligible": { - "2025": false - }, - "head_spouse_count": { - "2025": 2 - }, - "health_savings_account_ald": { - "2025": 0 - }, - "heat_pump_expenditures": { - "2025": 0 - }, - "heat_pump_water_heater_expenditures": { - "2025": 0 - }, - "heating_expenses": { - "2025": 0 - }, - "hi_additions": { - "2025": 0 - }, - "hi_agi": { - "2025": 0 - }, - "hi_alternative_tax_on_capital_gains": { - "2025": 0 - }, - "hi_alternative_tax_on_capital_gains_eligible": { - "2025": false - }, - "hi_casualty_loss_deduction": { - "2025": 0 - }, - "hi_cdcc": { - "2025": 0 - }, - "hi_cdcc_min_head_spouse_earned": { - "2025": 0 - }, - "hi_deductions": { - "2025": 0 - }, - "hi_dependent_care_benefits": { - "2025": 0 - }, - "hi_disabled_exemptions": { - "2025": 0 - }, - "hi_eitc": { - "2025": 0 - }, - "hi_exemptions": { - "2025": 0 - }, - "hi_food_excise_credit": { - "2025": 0 - }, - "hi_food_excise_credit_minor_child_amount": { - "2025": 0 - }, - "hi_food_excise_credit_minor_child_count": { - "2025": 0 - }, - "hi_food_excise_exemption_amount": { - "2025": 0 - }, - "hi_income_tax": { - "2025": 0 - }, - "hi_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "hi_income_tax_before_refundable_credits": { - "2025": 0 - }, - "hi_interest_deduction": { - "2025": 0 - }, - "hi_itemized_deductions": { - "2025": 0 - }, - "hi_medical_expense_deduction": { - "2025": 0 - }, - "hi_military_pay_exclusion": { - "2025": 0 - }, - "hi_non_refundable_credits": { - "2025": 0 - }, - "hi_reduced_itemized_deductions": { - "2025": 0 - }, - "hi_refundable_credits": { - "2025": 0 - }, - "hi_regular_exemptions": { - "2025": 0 - }, - "hi_salt_deduction": { - "2025": 0 - }, - "hi_standard_deduction": { - "2025": 0 - }, - "hi_subtractions": { - "2025": 0 - }, - "hi_tax_credit_for_low_income_household_renters": { - "2025": 0 - }, - "hi_tax_credit_for_low_income_household_renters_eligible": { - "2025": false - }, - "hi_taxable_income": { - "2025": 0 - }, - "hi_taxable_income_for_alternative_tax": { - "2025": 0 - }, - "hi_total_itemized_deductions": { - "2025": 0 - }, - "high_efficiency_electric_home_rebate": { - "2025": 0 - }, - "high_efficiency_electric_home_rebate_percent_covered": { - "2025": 1 - }, - "home_energy_audit_expenditures": { - "2025": 0 - }, - "household_state_income_tax": { - "2025": 7328.8623 - }, - "ia_additions_consolidated": { - "2025": 0 - }, - "ia_agi": { - "2025": 0 - }, - "ia_alternate_tax_consolidated": { - "2025": 0 - }, - "ia_alternate_tax_eligible": { - "2025": false - }, - "ia_alternate_tax_unit": { - "2025": 0 - }, - "ia_cdcc": { - "2025": 0 - }, - "ia_eitc": { - "2025": 0 - }, - "ia_exemption_credit": { - "2025": 0 - }, - "ia_files_separately": { - "2025": false - }, - "ia_income_tax": { - "2025": 0 - }, - "ia_income_tax_before_credits": { - "2025": 0 - }, - "ia_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ia_income_tax_consolidated": { - "2025": 0 - }, - "ia_income_tax_indiv": { - "2025": 0 - }, - "ia_income_tax_joint": { - "2025": 0 - }, - "ia_is_tax_exempt": { - "2025": false - }, - "ia_itemized_deductions": { - "2025": 0 - }, - "ia_itemized_deductions_unit": { - "2025": 0 - }, - "ia_modified_income": { - "2025": 0 - }, - "ia_non_refundable_credits": { - "2025": 0 - }, - "ia_reduced_tax": { - "2025": 0 - }, - "ia_refundable_credits": { - "2025": 0 - }, - "ia_regular_tax_consolidated": { - "2025": 0 - }, - "ia_reportable_social_security": { - "2025": 0 - }, - "ia_standard_deduction": { - "2025": 0 - }, - "ia_subtractions_consolidated": { - "2025": 0 - }, - "ia_taxable_income": { - "2025": 0 - }, - "ia_taxable_income_consolidated": { - "2025": 0 - }, - "ia_taxable_income_modifications_consolidated": { - "2025": 0 - }, - "id_2022_rebate": { - "2025": 0 - }, - "id_additions": { - "2025": 0 - }, - "id_aged_or_disabled_credit": { - "2025": 0 - }, - "id_aged_or_disabled_deduction": { - "2025": 0 - }, - "id_agi": { - "2025": 0 - }, - "id_capital_gains_deduction": { - "2025": 0 - }, - "id_cdcc_limit": { - "2025": 0 - }, - "id_ctc": { - "2025": 0 - }, - "id_deductions": { - "2025": 0 - }, - "id_grocery_credit": { - "2025": 0 - }, - "id_household_and_dependent_care_expense_deduction": { - "2025": 0 - }, - "id_income_tax": { - "2025": 0 - }, - "id_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "id_income_tax_before_refundable_credits": { - "2025": 0 - }, - "id_income_tax_liable": { - "2025": false - }, - "id_itemized_deductions": { - "2025": 0 - }, - "id_non_refundable_credits": { - "2025": 0 - }, - "id_pbf": { - "2025": 0 - }, - "id_pbf_liable": { - "2025": false - }, - "id_receives_aged_or_disabled_credit": { - "2025": true - }, - "id_refundable_credits": { - "2025": 0 - }, - "id_retirement_benefits_deduction": { - "2025": 0 - }, - "id_salt_deduction": { - "2025": 0 - }, - "id_special_season_rebate": { - "2025": 0 - }, - "id_subtractions": { - "2025": 0 - }, - "id_taxable_income": { - "2025": 0 - }, - "il_aged_blind_exemption": { - "2025": 0 - }, - "il_base_income": { - "2025": 0 - }, - "il_base_income_additions": { - "2025": 0 - }, - "il_base_income_subtractions": { - "2025": 0 - }, - "il_ctc": { - "2025": 0 - }, - "il_dependent_exemption": { - "2025": 0 - }, - "il_eitc": { - "2025": 0 - }, - "il_income_tax": { - "2025": 0 - }, - "il_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "il_income_tax_before_refundable_credits": { - "2025": 0 - }, - "il_is_exemption_eligible": { - "2025": false - }, - "il_k12_education_expense_credit": { - "2025": 0 - }, - "il_non_refundable_credits": { - "2025": 0 - }, - "il_pass_through_entity_tax_credit": { - "2025": 0 - }, - "il_pass_through_withholding": { - "2025": 0 - }, - "il_personal_exemption": { - "2025": 0 - }, - "il_personal_exemption_eligibility_status": { - "2025": "NOT_ELIGIBLE" - }, - "il_property_tax_credit": { - "2025": 0 - }, - "il_refundable_credits": { - "2025": 0 - }, - "il_schedule_m_additions": { - "2025": 0 - }, - "il_schedule_m_subtractions": { - "2025": 0 - }, - "il_taxable_income": { - "2025": 0 - }, - "il_total_exemptions": { - "2025": 0 - }, - "il_total_tax": { - "2025": 0 - }, - "il_use_tax": { - "2025": 0 - }, - "in_add_backs": { - "2025": 0 - }, - "in_additional_exemptions": { - "2025": 0 - }, - "in_adoption_exemption": { - "2025": 0 - }, - "in_aged_blind_exemptions": { - "2025": 0 - }, - "in_aged_low_agi_exemptions": { - "2025": 0 - }, - "in_agi": { - "2025": 0 - }, - "in_agi_tax": { - "2025": 0 - }, - "in_base_exemptions": { - "2025": 0 - }, - "in_bonus_depreciation_add_back": { - "2025": 0 - }, - "in_county_tax": { - "2025": 0 - }, - "in_deductions": { - "2025": 0 - }, - "in_eitc": { - "2025": 0 - }, - "in_eitc_eligible": { - "2025": false - }, - "in_exemptions": { - "2025": 0 - }, - "in_healthcare_sharing_deduction": { - "2025": 0 - }, - "in_homeowners_property_tax_deduction": { - "2025": 0 - }, - "in_income_tax": { - "2025": 0 - }, - "in_income_tax_before_refundable_credits": { - "2025": 0 - }, - "in_military_service_deduction": { - "2025": 0 - }, - "in_nol": { - "2025": 0 - }, - "in_nol_add_back": { - "2025": 0 - }, - "in_nonpublic_school_deduction": { - "2025": 0 - }, - "in_oos_municipal_obligation_interest_add_back": { - "2025": 0 - }, - "in_other_add_backs": { - "2025": 0 - }, - "in_other_deductions": { - "2025": 0 - }, - "in_qualifying_child_count": { - "2025": 0 - }, - "in_refundable_credits": { - "2025": 0 - }, - "in_renters_deduction": { - "2025": 0 - }, - "in_section_179_expense_add_back": { - "2025": 0 - }, - "in_tax_add_back": { - "2025": 0 - }, - "in_unemployment_compensation_deduction": { - "2025": 0 - }, - "in_unified_elderly_tax_credit": { - "2025": 0 - }, - "in_use_tax": { - "2025": 0 - }, - "income_tax": { - "2025": 13758.5 - }, - "income_tax_before_credits": { - "2025": 18158.5 - }, - "income_tax_before_refundable_credits": { - "2025": 13758.5 - }, - "income_tax_capped_non_refundable_credits": { - "2025": 4400 - }, - "income_tax_excluding_ptc": { - "2025": 5525.6816 - }, - "income_tax_main_rates": { - "2025": 18158.5 - }, - "income_tax_non_refundable_credits": { - "2025": 4400 - }, - "income_tax_refundable_credits": { - "2025": 0 - }, - "income_tax_unavailable_non_refundable_credits": { - "2025": 0 - }, - "interest_deduction": { - "2025": 0 - }, - "investment_in_529_plan": { - "2025": 0 - }, - "investment_income_form_4952": { - "2025": 0 - }, - "is_eligible_md_poverty_line_credit": { - "2025": false - }, - "is_ma_income_tax_exempt": { - "2025": false - }, - "itemized_deductions_less_salt": { - "2025": 0 - }, - "itemized_taxable_income_deductions": { - "2025": 9740.635 - }, - "itemized_taxable_income_deductions_reduction": { - "2025": 0 - }, - "k12_tuition_and_fees": { - "2025": 0 - }, - "ks_additions": { - "2025": 0 - }, - "ks_agi": { - "2025": 0 - }, - "ks_agi_subtractions": { - "2025": 0 - }, - "ks_cdcc": { - "2025": 0 - }, - "ks_count_exemptions": { - "2025": 0 - }, - "ks_exemptions": { - "2025": 0 - }, - "ks_fstc": { - "2025": 0 - }, - "ks_income_tax": { - "2025": 0 - }, - "ks_income_tax_before_credits": { - "2025": 0 - }, - "ks_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ks_itemized_deductions": { - "2025": 0 - }, - "ks_non_refundable_credits": { - "2025": 0 - }, - "ks_nonrefundable_eitc": { - "2025": 0 - }, - "ks_refundable_credits": { - "2025": 0 - }, - "ks_refundable_eitc": { - "2025": 0 - }, - "ks_standard_deduction": { - "2025": 0 - }, - "ks_taxable_income": { - "2025": 0 - }, - "ks_total_eitc": { - "2025": 0 - }, - "ky_cdcc": { - "2025": 0 - }, - "ky_family_size_tax_credit": { - "2025": 0 - }, - "ky_family_size_tax_credit_rate": { - "2025": 0 - }, - "ky_files_separately": { - "2025": false - }, - "ky_filing_status": { - "2025": "SINGLE" - }, - "ky_income_tax": { - "2025": 0 - }, - "ky_income_tax_before_non_refundable_credits_unit": { - "2025": 0 - }, - "ky_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ky_itemized_deductions": { - "2025": 0 - }, - "ky_itemized_deductions_unit": { - "2025": 0 - }, - "ky_modified_agi": { - "2025": 0 - }, - "ky_non_refundable_credits": { - "2025": 0 - }, - "ky_personal_tax_credits": { - "2025": 0 - }, - "ky_refundable_credits": { - "2025": 0 - }, - "ky_standard_deduction": { - "2025": 0 - }, - "ky_tax_unit_itemizes": { - "2025": false - }, - "ky_taxable_income": { - "2025": 0 - }, - "ky_tuition_tax_credit": { - "2025": 0 - }, - "ky_tuition_tax_credit_eligible": { - "2025": 0 - }, - "la_aged_exemption": { - "2025": 0 - }, - "la_agi": { - "2025": 0 - }, - "la_agi_exempt_income": { - "2025": 0 - }, - "la_blind_exemption": { - "2025": 0 - }, - "la_dependents_exemption": { - "2025": 0 - }, - "la_eitc": { - "2025": 0 - }, - "la_exemptions": { - "2025": 0 - }, - "la_federal_tax_deduction": { - "2025": 0 - }, - "la_income_tax": { - "2025": 0 - }, - "la_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "la_income_tax_before_refundable_credits": { - "2025": 0 - }, - "la_itemized_deductions": { - "2025": 0 - }, - "la_military_pay_exclusion": { - "2025": 0 - }, - "la_non_refundable_cdcc": { - "2025": 0 - }, - "la_non_refundable_credits": { - "2025": 0 - }, - "la_personal_exemption": { - "2025": 0 - }, - "la_refundable_cdcc": { - "2025": 0 - }, - "la_refundable_credits": { - "2025": 0 - }, - "la_school_readiness_credit": { - "2025": 0 - }, - "la_school_readiness_credit_non_refundable": { - "2025": 0 - }, - "la_school_readiness_credit_refundable": { - "2025": 0 - }, - "la_school_readiness_credit_refundable_eligible": { - "2025": false - }, - "la_standard_deduction": { - "2025": 0 - }, - "la_surviving_spouse_exemption": { - "2025": 0 - }, - "la_taxable_income": { - "2025": 0 - }, - "lifetime_learning_credit": { - "2025": 0 - }, - "lifetime_learning_credit_credit_limit": { - "2025": 18158.5 - }, - "lifetime_learning_credit_potential": { - "2025": 0 - }, - "limited_capital_loss": { - "2025": 0 - }, - "local_income_tax": { - "2025": 0 - }, - "local_sales_tax": { - "2025": 265.18478 - }, - "loss_ald": { - "2025": 0 - }, - "loss_limited_net_capital_gains": { - "2025": 0 - }, - "ma_agi": { - "2025": 0 - }, - "ma_child_and_family_credit": { - "2025": 0 - }, - "ma_child_and_family_credit_or_dependent_care_credit": { - "2025": 0 - }, - "ma_dependent_care_credit": { - "2025": 0 - }, - "ma_eitc": { - "2025": 0 - }, - "ma_gross_income": { - "2025": 0 - }, - "ma_income_tax": { - "2025": 0 - }, - "ma_income_tax_before_credits": { - "2025": 0 - }, - "ma_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ma_income_tax_exemption_threshold": { - "2025": 0 - }, - "ma_limited_income_tax_credit": { - "2025": 0 - }, - "ma_non_refundable_credits": { - "2025": 0 - }, - "ma_part_a_agi": { - "2025": 0 - }, - "ma_part_a_cg_excess_exemption": { - "2025": 0 - }, - "ma_part_a_div_excess_exemption": { - "2025": 0 - }, - "ma_part_a_gross_income": { - "2025": 0 - }, - "ma_part_a_taxable_capital_gains_income": { - "2025": 0 - }, - "ma_part_a_taxable_dividend_income": { - "2025": 0 - }, - "ma_part_a_taxable_income": { - "2025": 0 - }, - "ma_part_b_agi": { - "2025": 0 - }, - "ma_part_b_excess_exemption": { - "2025": 0 - }, - "ma_part_b_gross_income": { - "2025": 0 - }, - "ma_part_b_taxable_income": { - "2025": 0 - }, - "ma_part_b_taxable_income_before_exemption": { - "2025": 0 - }, - "ma_part_b_taxable_income_deductions": { - "2025": 0 - }, - "ma_part_b_taxable_income_exemption": { - "2025": 0 - }, - "ma_part_c_agi": { - "2025": 0 - }, - "ma_part_c_gross_income": { - "2025": 0 - }, - "ma_part_c_taxable_income": { - "2025": 0 - }, - "ma_refundable_credits": { - "2025": 0 - }, - "ma_scb_total_income": { - "2025": 0 - }, - "ma_senior_circuit_breaker": { - "2025": 0 - }, - "md_aged_blind_exemptions": { - "2025": 0 - }, - "md_aged_dependent_exemption": { - "2025": 0 - }, - "md_aged_exemption": { - "2025": 0 - }, - "md_agi": { - "2025": 0 - }, - "md_blind_exemption": { - "2025": 0 - }, - "md_capital_gains_surtax": { - "2025": 0 - }, - "md_capital_gains_surtax_applies": { - "2025": false - }, - "md_cdcc": { - "2025": 0 - }, - "md_ctc": { - "2025": 0 - }, - "md_ctc_eligible": { - "2025": false - }, - "md_deductions": { - "2025": 0 - }, - "md_dependent_care_subtraction": { - "2025": 0 - }, - "md_eitc": { - "2025": 0 - }, - "md_exemptions": { - "2025": 0 - }, - "md_hundred_year_subtraction": { - "2025": 0 - }, - "md_income_tax": { - "2025": 0 - }, - "md_income_tax_before_credits": { - "2025": 0 - }, - "md_income_tax_before_refundable_credits": { - "2025": 0 - }, - "md_itemized_deductions": { - "2025": 0 - }, - "md_local_income_tax_before_credits": { - "2025": 0 - }, - "md_married_or_has_child_non_refundable_eitc": { - "2025": 0 - }, - "md_married_or_has_child_refundable_eitc": { - "2025": 0 - }, - "md_montgomery_eitc": { - "2025": 0 - }, - "md_non_refundable_credits": { - "2025": 0 - }, - "md_non_refundable_eitc": { - "2025": 0 - }, - "md_pension_subtraction": { - "2025": 0 - }, - "md_personal_exemption": { - "2025": 0 - }, - "md_poverty_line_credit": { - "2025": 0 - }, - "md_qualifies_for_unmarried_childless_eitc": { - "2025": false - }, - "md_refundable_cdcc": { - "2025": 0 - }, - "md_refundable_credits": { - "2025": 0 - }, - "md_refundable_eitc": { - "2025": 0 - }, - "md_senior_tax_credit": { - "2025": 0 - }, - "md_senior_tax_credit_eligible": { - "2025": false - }, - "md_socsec_subtraction": { - "2025": 0 - }, - "md_standard_deduction": { - "2025": 0 - }, - "md_tax_unit_earned_income": { - "2025": 0 - }, - "md_taxable_income": { - "2025": 0 - }, - "md_total_additions": { - "2025": 0 - }, - "md_total_personal_exemptions": { - "2025": 0 - }, - "md_total_subtractions": { - "2025": 0 - }, - "md_two_income_subtraction": { - "2025": 0 - }, - "md_unmarried_childless_non_refundable_eitc": { - "2025": 0 - }, - "md_unmarried_childless_refundable_eitc": { - "2025": 0 - }, - "me_additions": { - "2025": 0 - }, - "me_agi": { - "2025": 160275 - }, - "me_agi_subtractions": { - "2025": 0 - }, - "me_child_care_credit": { - "2025": 0 - }, - "me_deduction_phaseout_percentage": { - "2025": 0 - }, - "me_deductions": { - "2025": 31500 - }, - "me_dependent_exemption_credit": { - "2025": 180 - }, - "me_eitc": { - "2025": 0 - }, - "me_exemptions": { - "2025": 10200 - }, - "me_income_tax": { - "2025": 7328.8623 - }, - "me_income_tax_before_credits": { - "2025": 7508.8623 - }, - "me_income_tax_before_refundable_credits": { - "2025": 7508.8623 - }, - "me_itemized_deductions_pre_phaseout": { - "2025": 0 - }, - "me_non_refundable_child_care_credit": { - "2025": 0 - }, - "me_non_refundable_credits": { - "2025": 0 - }, - "me_pension_income_deduction": { - "2025": 0 - }, - "me_personal_exemption_deduction": { - "2025": 10200 - }, - "me_property_tax_fairness_credit": { - "2025": 0 - }, - "me_property_tax_fairness_credit_base_cap": { - "2025": 0 - }, - "me_property_tax_fairness_credit_benefit_base": { - "2025": 3950 - }, - "me_property_tax_fairness_credit_cap": { - "2025": 0 - }, - "me_property_tax_fairness_credit_countable_rent": { - "2025": 0 - }, - "me_property_tax_fairness_credit_countable_rent_property_tax": { - "2025": 0 - }, - "me_property_tax_fairness_credit_eligible": { - "2025": true - }, - "me_property_tax_fairness_credit_veterans_cap": { - "2025": 0 - }, - "me_refundable_child_care_credit": { - "2025": 0 - }, - "me_refundable_credits": { - "2025": 180 - }, - "me_sales_and_property_tax_fairness_credit_income": { - "2025": 160275 - }, - "me_sales_tax_fairness_credit": { - "2025": 0 - }, - "me_sales_tax_fairness_credit_eligible": { - "2025": true - }, - "me_step_4_share_of_child_care_expenses": { - "2025": 0 - }, - "me_taxable_income": { - "2025": 118575 - }, - "medicaid_magi": { - "2025": 160275 - }, - "medical_expense_deduction": { - "2025": 0 - }, - "members": [ - "you", - "your partner", - "your first dependent", - "your second dependent" - ], - "mi_additions": { - "2025": 0 - }, - "mi_allowable_homestead_property_tax_credit": { - "2025": 0 - }, - "mi_alternate_home_heating_credit": { - "2025": 0 - }, - "mi_alternate_home_heating_credit_eligible": { - "2025": false - }, - "mi_eitc": { - "2025": 0 - }, - "mi_exemptions": { - "2025": 0 - }, - "mi_exemptions_count": { - "2025": 0 - }, - "mi_expanded_retirement_benefits_deduction": { - "2025": 0 - }, - "mi_expanded_retirement_benefits_deduction_eligible": { - "2025": false - }, - "mi_home_heating_credit": { - "2025": 0 - }, - "mi_home_heating_credit_eligible_rate": { - "2025": 0 - }, - "mi_homestead_property_tax_credit": { - "2025": 0 - }, - "mi_homestead_property_tax_credit_alternate_senior_amount": { - "2025": 0 - }, - "mi_homestead_property_tax_credit_countable_property_tax": { - "2025": 0 - }, - "mi_homestead_property_tax_credit_eligible": { - "2025": false - }, - "mi_homestead_property_tax_credit_household_resource_exemption": { - "2025": 0 - }, - "mi_homestead_property_tax_credit_pre_alternate_senior_amount": { - "2025": 0 - }, - "mi_household_resources": { - "2025": 0 - }, - "mi_income_tax": { - "2025": 0 - }, - "mi_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "mi_income_tax_before_refundable_credits": { - "2025": 0 - }, - "mi_interest_dividends_capital_gains_deduction": { - "2025": 0 - }, - "mi_interest_dividends_capital_gains_deduction_eligible": { - "2025": false - }, - "mi_is_senior_for_tax": { - "2025": false - }, - "mi_non_refundable_credits": { - "2025": 0 - }, - "mi_pension_benefit": { - "2025": 0 - }, - "mi_personal_exemptions": { - "2025": 0 - }, - "mi_refundable_credits": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_one": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_one_amount": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_one_eligible": { - "2025": false - }, - "mi_retirement_benefits_deduction_tier_three": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_three_eligible": { - "2025": false - }, - "mi_retirement_benefits_deduction_tier_three_ss_exempt_not_retired": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_three_ss_exempt_not_retired_eligible_people": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_three_ss_exempt_retired": { - "2025": 0 - }, - "mi_retirement_benefits_deduction_tier_three_ss_exempt_retired_eligible_people": { - "2025": 0 - }, - "mi_standard_deduction": { - "2025": 0 - }, - "mi_standard_deduction_tier_three": { - "2025": 0 - }, - "mi_standard_deduction_tier_three_eligible": { - "2025": false - }, - "mi_standard_deduction_tier_two": { - "2025": 0 - }, - "mi_standard_deduction_tier_two_eligible": { - "2025": false - }, - "mi_standard_deduction_tier_two_increase_eligible_people": { - "2025": 0 - }, - "mi_standard_home_heating_credit": { - "2025": 0 - }, - "mi_standard_home_heating_credit_eligible": { - "2025": false - }, - "mi_subtractions": { - "2025": 0 - }, - "mi_taxable_income": { - "2025": 0 - }, - "military_disabled_head": { - "2025": false - }, - "military_disabled_spouse": { - "2025": false - }, - "min_head_spouse_earned": { - "2025": 1385 - }, - "misc_deduction": { - "2025": 0 - }, - "mn_additions": { - "2025": 0 - }, - "mn_amt": { - "2025": 0 - }, - "mn_amt_taxable_income": { - "2025": 0 - }, - "mn_basic_tax": { - "2025": 0 - }, - "mn_cdcc": { - "2025": 0 - }, - "mn_cdcc_dependent_count": { - "2025": 0 - }, - "mn_cdcc_eligible": { - "2025": false - }, - "mn_cdcc_phase_out": { - "2025": 0 - }, - "mn_charity_subtraction": { - "2025": 0 - }, - "mn_child_and_working_families_credits": { - "2025": 0 - }, - "mn_deductions": { - "2025": 0 - }, - "mn_elderly_disabled_subtraction": { - "2025": 0 - }, - "mn_exemptions": { - "2025": 0 - }, - "mn_income_tax": { - "2025": 0 - }, - "mn_income_tax_before_credits": { - "2025": 0 - }, - "mn_income_tax_before_refundable_credits": { - "2025": 0 - }, - "mn_itemized_deductions": { - "2025": 0 - }, - "mn_itemizing": { - "2025": false - }, - "mn_marriage_credit": { - "2025": 0 - }, - "mn_niit": { - "2025": 0 - }, - "mn_non_refundable_credits": { - "2025": 0 - }, - "mn_public_pension_subtraction": { - "2025": 0 - }, - "mn_refundable_credits": { - "2025": 0 - }, - "mn_social_security_subtraction": { - "2025": 0 - }, - "mn_standard_deduction": { - "2025": 0 - }, - "mn_subtractions": { - "2025": 0 - }, - "mn_taxable_income": { - "2025": 0 - }, - "mn_wfc": { - "2025": 0 - }, - "mn_wfc_eligible": { - "2025": false - }, - "mo_business_income_deduction": { - "2025": 0 - }, - "mo_federal_income_tax_deduction": { - "2025": 0 - }, - "mo_income_tax": { - "2025": 0 - }, - "mo_income_tax_before_refundable_credits": { - "2025": 0 - }, - "mo_itemized_deductions": { - "2025": 0 - }, - "mo_net_state_income_taxes": { - "2025": 0 - }, - "mo_non_refundable_credits": { - "2025": 0 - }, - "mo_pension_and_ss_or_ssd_deduction": { - "2025": 0 - }, - "mo_property_tax_credit": { - "2025": 0 - }, - "mo_ptc_gross_income": { - "2025": 0 - }, - "mo_ptc_income_offset": { - "2025": 0 - }, - "mo_ptc_net_income": { - "2025": 0 - }, - "mo_ptc_taxunit_eligible": { - "2025": 0 - }, - "mo_refundable_credits": { - "2025": 0 - }, - "mo_wftc": { - "2025": 0 - }, - "ms_aged_exemption": { - "2025": 0 - }, - "ms_blind_exemption": { - "2025": 0 - }, - "ms_cdcc": { - "2025": 0 - }, - "ms_cdcc_eligible": { - "2025": false - }, - "ms_charitable_contributions_credit": { - "2025": 0 - }, - "ms_charitable_contributions_to_qualifying_foster_care_organizations": { - "2025": 0 - }, - "ms_dependents_exemption": { - "2025": 0 - }, - "ms_files_separately": { - "2025": false - }, - "ms_income_tax": { - "2025": 0 - }, - "ms_income_tax_before_credits_unit": { - "2025": 0 - }, - "ms_itemized_deductions": { - "2025": 0 - }, - "ms_itemized_deductions_unit": { - "2025": 0 - }, - "ms_non_refundable_credits": { - "2025": 0 - }, - "ms_real_estate_tax_deduction": { - "2025": 0 - }, - "ms_refundable_credits": { - "2025": 0 - }, - "ms_regular_exemption": { - "2025": 0 - }, - "ms_standard_deduction": { - "2025": 0 - }, - "ms_tax_unit_itemizes": { - "2025": false - }, - "ms_taxable_income": { - "2025": 0 - }, - "ms_total_exemptions": { - "2025": 0 - }, - "mt_agi_joint": { - "2025": 0 - }, - "mt_child_dependent_care_expense_deduction_eligible_children": { - "2025": 0 - }, - "mt_disability_income_exclusion": { - "2025": 0 - }, - "mt_federal_income_tax_deduction_for_federal_itemization": { - "2025": 0 - }, - "mt_federal_income_tax_deduction_unit": { - "2025": 0 - }, - "mt_files_separately": { - "2025": false - }, - "mt_income_tax": { - "2025": 0 - }, - "mt_income_tax_before_non_refundable_credits_joint": { - "2025": 0 - }, - "mt_income_tax_before_refundable_credits_joint": { - "2025": 0 - }, - "mt_income_tax_before_refundable_credits_unit": { - "2025": 0 - }, - "mt_income_tax_joint": { - "2025": 0 - }, - "mt_income_tax_rebate": { - "2025": 0 - }, - "mt_interest_exemption": { - "2025": 0 - }, - "mt_itemized_deductions": { - "2025": 0 - }, - "mt_property_tax_rebate": { - "2025": 0 - }, - "mt_regular_income_tax_joint": { - "2025": 0 - }, - "mt_standard_deduction": { - "2025": 0 - }, - "mt_tax_unit_itemizes": { - "2025": false - }, - "mt_taxable_income": { - "2025": 0 - }, - "mt_tuition_subtraction": { - "2025": 0 - }, - "nc_additions": { - "2025": 0 - }, - "nc_child_deduction": { - "2025": 0 - }, - "nc_ctc": { - "2025": 0 - }, - "nc_deductions": { - "2025": 0 - }, - "nc_income_tax": { - "2025": 0 - }, - "nc_income_tax_before_credits": { - "2025": 0 - }, - "nc_itemized_deductions": { - "2025": 0 - }, - "nc_military_retirement_deduction": { - "2025": 0 - }, - "nc_non_refundable_credits": { - "2025": 0 - }, - "nc_standard_deduction": { - "2025": 0 - }, - "nc_standard_or_itemized_deductions": { - "2025": 0 - }, - "nc_taxable_income": { - "2025": 0 - }, - "nc_use_tax": { - "2025": 0 - }, - "nd_additions": { - "2025": 0 - }, - "nd_income_tax": { - "2025": 0 - }, - "nd_income_tax_before_credits": { - "2025": 0 - }, - "nd_income_tax_before_refundable_credits": { - "2025": 0 - }, - "nd_ltcg_subtraction": { - "2025": 0 - }, - "nd_mpc": { - "2025": 0 - }, - "nd_non_refundable_credits": { - "2025": 0 - }, - "nd_qdiv_subtraction": { - "2025": 0 - }, - "nd_refundable_credits": { - "2025": 0 - }, - "nd_rtrc": { - "2025": 0 - }, - "nd_subtractions": { - "2025": 0 - }, - "nd_taxable_income": { - "2025": 0 - }, - "ne_additions": { - "2025": 0 - }, - "ne_agi": { - "2025": 0 - }, - "ne_agi_subtractions": { - "2025": 0 - }, - "ne_base_standard_deduction": { - "2025": 0 - }, - "ne_cdcc_nonrefundable": { - "2025": 0 - }, - "ne_cdcc_refundable": { - "2025": 0 - }, - "ne_cdcc_refundable_eligible": { - "2025": false - }, - "ne_eitc": { - "2025": 0 - }, - "ne_elderly_disabled_credit": { - "2025": 0 - }, - "ne_exemptions": { - "2025": 0 - }, - "ne_income_tax": { - "2025": 0 - }, - "ne_income_tax_before_credits": { - "2025": 0 - }, - "ne_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ne_itemized_deductions": { - "2025": 0 - }, - "ne_military_retirement_subtraction": { - "2025": 0 - }, - "ne_non_refundable_credits": { - "2025": 0 - }, - "ne_refundable_credits": { - "2025": 0 - }, - "ne_refundable_ctc": { - "2025": 0 - }, - "ne_refundable_ctc_income_eligible": { - "2025": false - }, - "ne_refundable_ctc_total_household_income": { - "2025": 0 - }, - "ne_social_security_subtraction": { - "2025": 0 - }, - "ne_standard_deduction": { - "2025": 0 - }, - "ne_taxable_income": { - "2025": 0 - }, - "net_capital_gain": { - "2025": 0 - }, - "net_capital_gains": { - "2025": 0 - }, - "net_investment_income": { - "2025": 0 - }, - "net_investment_income_tax": { - "2025": 0 - }, - "new_clean_vehicle_battery_capacity": { - "2025": 0 - }, - "new_clean_vehicle_battery_components_made_in_north_america": { - "2025": 0 - }, - "new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country": { - "2025": 0 - }, - "new_clean_vehicle_classification": { - "2025": "OTHER" - }, - "new_clean_vehicle_credit": { - "2025": 0 - }, - "new_clean_vehicle_credit_credit_limit": { - "2025": 0 - }, - "new_clean_vehicle_credit_eligible": { - "2025": false - }, - "new_clean_vehicle_credit_potential": { - "2025": 0 - }, - "new_clean_vehicle_msrp": { - "2025": 0 - }, - "nh_base_exemption": { - "2025": 0 - }, - "nh_blind_exemption": { - "2025": 0 - }, - "nh_disabled_exemption": { - "2025": 0 - }, - "nh_education_tax_credit": { - "2025": 0 - }, - "nh_income_tax": { - "2025": 0 - }, - "nh_income_tax_before_refundable_credits": { - "2025": 0 - }, - "nh_old_age_exemption": { - "2025": 0 - }, - "nh_refundable_credits": { - "2025": 0 - }, - "nh_taxable_income": { - "2025": 0 - }, - "nh_total_exemptions": { - "2025": 0 - }, - "nj_agi": { - "2025": 0 - }, - "nj_blind_or_disabled_exemption": { - "2025": 0 - }, - "nj_cdcc": { - "2025": 0 - }, - "nj_childless_eitc_age_eligible": { - "2025": false - }, - "nj_ctc": { - "2025": 0 - }, - "nj_ctc_eligible": { - "2025": false - }, - "nj_dependents_attending_college_exemption": { - "2025": 0 - }, - "nj_dependents_exemption": { - "2025": 0 - }, - "nj_eitc": { - "2025": 0 - }, - "nj_eitc_income_eligible": { - "2025": false - }, - "nj_income_tax": { - "2025": 0 - }, - "nj_income_tax_before_refundable_credits": { - "2025": 0 - }, - "nj_main_income_tax": { - "2025": 0 - }, - "nj_medical_expense_deduction": { - "2025": 0 - }, - "nj_non_refundable_credits": { - "2025": 0 - }, - "nj_other_retirement_income_exclusion": { - "2025": 0 - }, - "nj_other_retirement_special_exclusion": { - "2025": 0 - }, - "nj_pension_retirement_exclusion": { - "2025": 0 - }, - "nj_potential_property_tax_deduction": { - "2025": 0 - }, - "nj_property_tax_credit": { - "2025": 0 - }, - "nj_property_tax_credit_eligible": { - "2025": false - }, - "nj_property_tax_deduction": { - "2025": 0 - }, - "nj_property_tax_deduction_eligible": { - "2025": false - }, - "nj_refundable_credits": { - "2025": 0 - }, - "nj_regular_exemption": { - "2025": 0 - }, - "nj_retirement_exclusion_fraction": { - "2025": 0 - }, - "nj_senior_exemption": { - "2025": 0 - }, - "nj_taking_property_tax_deduction": { - "2025": false - }, - "nj_taxable_income": { - "2025": 0 - }, - "nj_taxable_income_before_property_tax_deduction": { - "2025": 0 - }, - "nj_total_deductions": { - "2025": 0 - }, - "nj_total_exemptions": { - "2025": 0 - }, - "nm_2021_income_rebate": { - "2025": 0 - }, - "nm_additional_2021_income_rebate": { - "2025": 0 - }, - "nm_additions": { - "2025": 0 - }, - "nm_aged_blind_exemption": { - "2025": 0 - }, - "nm_cdcc": { - "2025": 0 - }, - "nm_cdcc_eligible": { - "2025": false - }, - "nm_cdcc_max_amount": { - "2025": 0 - }, - "nm_ctc": { - "2025": 0 - }, - "nm_deduction_for_certain_dependents": { - "2025": 0 - }, - "nm_deduction_for_certain_dependents_eligible": { - "2025": false - }, - "nm_deductions": { - "2025": 0 - }, - "nm_eitc": { - "2025": 0 - }, - "nm_eitc_demographic_eligible": { - "2025": false - }, - "nm_eitc_eligible": { - "2025": false - }, - "nm_exemptions": { - "2025": 0 - }, - "nm_hundred_year_exemption": { - "2025": 0 - }, - "nm_income_tax": { - "2025": 0 - }, - "nm_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "nm_income_tax_before_refundable_credits": { - "2025": 0 - }, - "nm_itemized_deductions": { - "2025": 0 - }, - "nm_low_and_middle_income_exemption": { - "2025": 0 - }, - "nm_low_income_comprehensive_tax_rebate": { - "2025": 0 - }, - "nm_low_income_comprehensive_tax_rebate_exemptions": { - "2025": 0 - }, - "nm_medical_care_expense_deduction": { - "2025": 0 - }, - "nm_medical_expense_credit": { - "2025": 0 - }, - "nm_medical_expense_exemption": { - "2025": 0 - }, - "nm_modified_gross_income": { - "2025": 0 - }, - "nm_net_capital_gains_deduction": { - "2025": 0 - }, - "nm_non_refundable_credits": { - "2025": 0 - }, - "nm_other_deductions_and_exemptions": { - "2025": 0 - }, - "nm_property_tax_rebate": { - "2025": 0 - }, - "nm_property_tax_rebate_eligible": { - "2025": false - }, - "nm_refundable_credits": { - "2025": 0 - }, - "nm_salt_add_back": { - "2025": 0 - }, - "nm_social_security_income_exemption": { - "2025": 0 - }, - "nm_supplemental_2021_income_rebate": { - "2025": 0 - }, - "nm_taxable_income": { - "2025": 0 - }, - "non_refundable_american_opportunity_credit": { - "2025": 0 - }, - "non_refundable_american_opportunity_credit_credit_limit": { - "2025": 18158.5 - }, - "non_refundable_american_opportunity_credit_potential": { - "2025": 0 - }, - "non_refundable_ctc": { - "2025": 4400 - }, - "ny_additional_ctc": { - "2025": 0 - }, - "ny_additions": { - "2025": 0 - }, - "ny_agi": { - "2025": 0 - }, - "ny_agi_subtractions": { - "2025": 0 - }, - "ny_allowable_college_tuition_expenses": { - "2025": 0 - }, - "ny_cdcc": { - "2025": 0 - }, - "ny_cdcc_max": { - "2025": 0 - }, - "ny_cdcc_rate": { - "2025": 0 - }, - "ny_college_tuition_credit": { - "2025": 0 - }, - "ny_college_tuition_credit_eligible": { - "2025": false - }, - "ny_college_tuition_deduction": { - "2025": 0 - }, - "ny_ctc": { - "2025": 0 - }, - "ny_ctc_post_2024": { - "2025": 0 - }, - "ny_ctc_post_2024_base": { - "2025": 0 - }, - "ny_ctc_post_2024_eligible": { - "2025": false - }, - "ny_ctc_post_2024_phase_out": { - "2025": 0 - }, - "ny_ctc_pre_2024": { - "2025": 0 - }, - "ny_ctc_pre_2024_eligible": { - "2025": false - }, - "ny_deductions": { - "2025": 0 - }, - "ny_eitc": { - "2025": 0 - }, - "ny_exemptions": { - "2025": 0 - }, - "ny_geothermal_energy_system_credit": { - "2025": 0 - }, - "ny_household_credit": { - "2025": 0 - }, - "ny_income_tax": { - "2025": 0 - }, - "ny_income_tax_before_credits": { - "2025": 0 - }, - "ny_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ny_inflation_refund_credit": { - "2025": 0 - }, - "ny_itemized_deductions": { - "2025": 0 - }, - "ny_itemized_deductions_higher_incremental_reduction": { - "2025": 0 - }, - "ny_itemized_deductions_incremental_reduction": { - "2025": 0 - }, - "ny_itemized_deductions_lower_incremental_reduction": { - "2025": 0 - }, - "ny_itemized_deductions_max": { - "2025": 0 - }, - "ny_itemized_deductions_reduction": { - "2025": 0 - }, - "ny_itemized_deductions_reduction_applies": { - "2025": false - }, - "ny_itemized_deductions_reduction_based_on_charitable_deduction": { - "2025": 0 - }, - "ny_itemized_deductions_reduction_based_on_charitable_deduction_applies": { - "2025": false - }, - "ny_itemizes": { - "2025": false - }, - "ny_main_income_tax": { - "2025": 0 - }, - "ny_non_refundable_credits": { - "2025": 0 - }, - "ny_qualified_geothermal_energy_system_expenditures": { - "2025": 0 - }, - "ny_qualified_solar_energy_systems_equipment_expenditures": { - "2025": 0 - }, - "ny_real_property_tax_credit": { - "2025": 0 - }, - "ny_refundable_credits": { - "2025": 0 - }, - "ny_solar_energy_systems_equipment_credit": { - "2025": 0 - }, - "ny_standard_deduction": { - "2025": 0 - }, - "ny_supplemental_eitc": { - "2025": 0 - }, - "ny_supplemental_tax": { - "2025": 0 - }, - "ny_taxable_income": { - "2025": 0 - }, - "nyc_cdcc": { - "2025": 0 - }, - "nyc_cdcc_age_restricted_expenses": { - "2025": 0 - }, - "nyc_cdcc_applicable_percentage": { - "2025": 0 - }, - "nyc_cdcc_eligible": { - "2025": false - }, - "nyc_cdcc_share_qualifying_childcare_expenses": { - "2025": 0 - }, - "nyc_eitc": { - "2025": 0 - }, - "nyc_household_credit": { - "2025": 0 - }, - "nyc_income_tax": { - "2025": 0 - }, - "nyc_income_tax_before_credits": { - "2025": 0 - }, - "nyc_income_tax_before_refundable_credits": { - "2025": 0 - }, - "nyc_non_refundable_credits": { - "2025": 0 - }, - "nyc_refundable_credits": { - "2025": 0 - }, - "nyc_school_credit_income": { - "2025": 0 - }, - "nyc_school_tax_credit": { - "2025": 0 - }, - "nyc_school_tax_credit_fixed_amount": { - "2025": 0 - }, - "nyc_school_tax_credit_fixed_amount_eligible": { - "2025": false - }, - "nyc_school_tax_credit_rate_reduction_amount": { - "2025": 0 - }, - "nyc_school_tax_credit_rate_reduction_amount_eligible": { - "2025": false - }, - "nyc_taxable_income": { - "2025": 0 - }, - "nyc_unincorporated_business_credit": { - "2025": 0 - }, - "oh_529_plan_deduction": { - "2025": 0 - }, - "oh_adoption_credit": { - "2025": 0 - }, - "oh_agi": { - "2025": 0 - }, - "oh_cdcc": { - "2025": 0 - }, - "oh_eitc": { - "2025": 0 - }, - "oh_exemption_credit": { - "2025": 0 - }, - "oh_income_tax": { - "2025": 0 - }, - "oh_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "oh_income_tax_before_refundable_credits": { - "2025": 0 - }, - "oh_income_tax_exempt": { - "2025": false - }, - "oh_insured_unreimbursed_medical_care_expenses": { - "2025": 0 - }, - "oh_joint_filing_credit": { - "2025": 0 - }, - "oh_joint_filing_credit_eligible": { - "2025": false - }, - "oh_lump_sum_distribution_credit": { - "2025": 0 - }, - "oh_lump_sum_distribution_credit_eligible": { - "2025": false - }, - "oh_lump_sum_retirement_credit": { - "2025": 0 - }, - "oh_lump_sum_retirement_credit_eligible": { - "2025": false - }, - "oh_modified_agi": { - "2025": 0 - }, - "oh_non_public_school_credits": { - "2025": 0 - }, - "oh_non_refundable_credits": { - "2025": 0 - }, - "oh_partial_non_refundable_credits": { - "2025": 0 - }, - "oh_pension_based_retirement_income_credit": { - "2025": 0 - }, - "oh_pension_based_retirement_income_credit_eligible": { - "2025": false - }, - "oh_personal_exemptions": { - "2025": 0 - }, - "oh_refundable_credits": { - "2025": 0 - }, - "oh_retirement_credit": { - "2025": 0 - }, - "oh_senior_citizen_credit": { - "2025": 0 - }, - "oh_tax_before_joint_filing_credit": { - "2025": 0 - }, - "oh_taxable_income": { - "2025": 0 - }, - "oh_unreimbursed_medical_care_expense_deduction": { - "2025": 0 - }, - "ok_additions": { - "2025": 0 - }, - "ok_adjustments": { - "2025": 0 - }, - "ok_agi": { - "2025": 0 - }, - "ok_agi_subtractions": { - "2025": 0 - }, - "ok_child_care_child_tax_credit": { - "2025": 0 - }, - "ok_count_exemptions": { - "2025": 0 - }, - "ok_eitc": { - "2025": 0 - }, - "ok_exemptions": { - "2025": 0 - }, - "ok_federal_eitc": { - "2025": 0 - }, - "ok_federal_eitc_demographic_eligible": { - "2025": false - }, - "ok_federal_eitc_eligible": { - "2025": false - }, - "ok_federal_eitc_investment_income_eligible": { - "2025": false - }, - "ok_federal_eitc_maximum": { - "2025": 0 - }, - "ok_federal_eitc_phase_in_rate": { - "2025": 0 - }, - "ok_federal_eitc_phase_out_rate": { - "2025": 0 - }, - "ok_federal_eitc_phase_out_start": { - "2025": 0 - }, - "ok_federal_eitc_phased_in": { - "2025": 0 - }, - "ok_federal_eitc_reduction": { - "2025": 0 - }, - "ok_gross_income": { - "2025": 0 - }, - "ok_income_tax": { - "2025": 0 - }, - "ok_income_tax_before_credits": { - "2025": 0 - }, - "ok_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ok_itemized_deductions": { - "2025": 0 - }, - "ok_military_retirement_exclusion": { - "2025": 0 - }, - "ok_non_refundable_credits": { - "2025": 0 - }, - "ok_pension_subtraction": { - "2025": 0 - }, - "ok_ptc": { - "2025": 0 - }, - "ok_refundable_credits": { - "2025": 0 - }, - "ok_standard_deduction": { - "2025": 0 - }, - "ok_stc": { - "2025": 0 - }, - "ok_taxable_income": { - "2025": 0 - }, - "ok_use_tax": { - "2025": 0 - }, - "older_spouse_birth_year": { - "2025": 1985 - }, - "or_additions": { - "2025": 0 - }, - "or_agi": { - "2025": 0 - }, - "or_cdcc_relevant_expenses": { - "2025": 0 - }, - "or_ctc": { - "2025": 0 - }, - "or_deductions": { - "2025": 0 - }, - "or_disabled_child_dependent_exemptions": { - "2025": 0 - }, - "or_eitc": { - "2025": 0 - }, - "or_exemption_credit": { - "2025": 0 - }, - "or_federal_pension_subtraction": { - "2025": 0 - }, - "or_federal_tax_liability_subtraction": { - "2025": 0 - }, - "or_income_subtractions": { - "2025": 0 - }, - "or_income_tax": { - "2025": 0 - }, - "or_income_tax_before_credits": { - "2025": 0 - }, - "or_income_tax_before_refundable_credits": { - "2025": 0 - }, - "or_itemized_deductions": { - "2025": 0 - }, - "or_kicker": { - "2025": 0 - }, - "or_non_refundable_credits": { - "2025": 0 - }, - "or_refundable_credits": { - "2025": 0 - }, - "or_regular_exemptions": { - "2025": 0 - }, - "or_retirement_credit": { - "2025": 0 - }, - "or_retirement_credit_household_income": { - "2025": 0 - }, - "or_severely_disabled_exemptions": { - "2025": 0 - }, - "or_standard_deduction": { - "2025": 0 - }, - "or_tax_before_credits_in_prior_year": { - "2025": 0 - }, - "or_taxable_income": { - "2025": 0 - }, - "or_wfhdc_eligibility_category": { - "2025": "NONE" - }, - "or_wfhdc_eligible": { - "2025": false - }, - "or_wfhdc_employment_eligible": { - "2025": false - }, - "or_wfhdc_has_qualified_individual_eligible": { - "2025": false - }, - "or_wfhdc_household_income": { - "2025": 0 - }, - "or_wfhdc_household_size_eligible": { - "2025": false - }, - "or_wfhdc_income_category": { - "2025": 0 - }, - "or_wfhdc_income_eligible": { - "2025": false - }, - "or_working_family_household_and_dependent_care_credit": { - "2025": 0 - }, - "other_net_gain": { - "2025": 0 - }, - "overtime_income_deduction": { - "2025": 0 - }, - "overtime_income_deduction_ssn_requirement_met": { - "2025": true - }, - "pa_adjusted_taxable_income": { - "2025": 0 - }, - "pa_cdcc": { - "2025": 0 - }, - "pa_eligibility_income": { - "2025": 0 - }, - "pa_income_tax": { - "2025": 0 - }, - "pa_income_tax_after_forgiveness": { - "2025": 0 - }, - "pa_income_tax_before_forgiveness": { - "2025": 0 - }, - "pa_refundable_tax_credits": { - "2025": 0 - }, - "pa_tax_deductions": { - "2025": 0 - }, - "pa_tax_forgiveness_amount": { - "2025": 0 - }, - "pa_tax_forgiveness_rate": { - "2025": 0 - }, - "pa_total_taxable_income": { - "2025": 0 - }, - "pa_use_tax": { - "2025": 0 - }, - "pell_grant_calculation_method": { - "2025": "SAI" - }, - "pell_grant_dependents_in_college": { - "2025": 0 - }, - "pell_grant_head_assets": { - "2025": 0 - }, - "pell_grant_primary_income": { - "2025": 0 - }, - "positive_agi": { - "2025": 160275 - }, - "positive_gross_income": { - "2025": 160275 - }, - "pr_agi": { - "2025": 0 - }, - "pr_casualty_loss_deduction": { - "2025": 0 - }, - "pr_charitable_deduction": { - "2025": 0 - }, - "pr_dependents_exemption": { - "2025": 0 - }, - "pr_earned_income_credit": { - "2025": 0 - }, - "pr_earned_income_credit_eligible": { - "2025": true - }, - "pr_education_deduction": { - "2025": 0 - }, - "pr_education_deduction_beneficiary_count": { - "2025": 0 - }, - "pr_gross_income": { - "2025": 0 - }, - "pr_low_income_credit": { - "2025": 0 - }, - "pr_low_income_credit_eligible": { - "2025": false - }, - "pr_low_income_credit_eligible_people": { - "2025": 0 - }, - "pr_medical_expense_deduction": { - "2025": 0 - }, - "pr_mortgage_deduction": { - "2025": 0 - }, - "pr_personal_exemption": { - "2025": 0 - }, - "pr_refundable_credits": { - "2025": 0 - }, - "pr_refundable_ctc": { - "2025": 4400 - }, - "pr_refundable_ctc_social_security_tax": { - "2025": 12261.037 - }, - "premium_tax_credit": { - "2025": 8232.819 - }, - "prior_energy_efficient_home_improvement_credits": { - "2025": 0 - }, - "prior_energy_efficient_window_credits": { - "2025": 0 - }, - "property_sales_net_capital_gain": { - "2025": 0 - }, - "puerto_rico_income": { - "2025": 0 - }, - "purchased_qualifying_new_clean_vehicle": { - "2025": false - }, - "purchased_qualifying_used_clean_vehicle": { - "2025": false - }, - "qualified_battery_storage_technology_expenditures": { - "2025": 0 - }, - "qualified_business_income_deduction": { - "2025": 0 - }, - "qualified_furnace_or_hot_water_boiler_expenditures": { - "2025": 0 - }, - "qualified_retirement_penalty": { - "2025": 0 - }, - "recapture_of_investment_credit": { - "2025": 0 - }, - "recovery_rebate_credit": { - "2025": 0 - }, - "refundable_american_opportunity_credit": { - "2025": 0 - }, - "refundable_ctc": { - "2025": 0 - }, - "refundable_payroll_tax_credit": { - "2025": 0 - }, - "regular_tax_before_credits": { - "2025": 18158.5 - }, - "rent_is_shared_with_another_tax_unit": { - "2025": false - }, - "rents": { - "2025": false - }, - "reported_salt": { - "2025": 9740.635 - }, - "residential_clean_energy_credit": { - "2025": 0 - }, - "residential_clean_energy_credit_credit_limit": { - "2025": 18158.5 - }, - "residential_clean_energy_credit_potential": { - "2025": 0 - }, - "residential_efficiency_electrification_rebate": { - "2025": 0 - }, - "residential_efficiency_electrification_retrofit_energy_savings": { - "2025": 0 - }, - "residential_efficiency_electrification_retrofit_expenditures": { - "2025": 0 - }, - "ri_additions": { - "2025": 0 - }, - "ri_agi": { - "2025": 0 - }, - "ri_cdcc": { - "2025": 0 - }, - "ri_child_tax_rebate": { - "2025": 0 - }, - "ri_child_tax_rebate_eligible": { - "2025": false - }, - "ri_eitc": { - "2025": 0 - }, - "ri_exemptions": { - "2025": 0 - }, - "ri_income_tax": { - "2025": 0 - }, - "ri_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "ri_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ri_non_refundable_credits": { - "2025": 0 - }, - "ri_property_tax_credit": { - "2025": 0 - }, - "ri_property_tax_credit_eligible": { - "2025": false - }, - "ri_property_tax_household_income": { - "2025": 0 - }, - "ri_refundable_credits": { - "2025": 0 - }, - "ri_retirement_income_subtraction": { - "2025": 0 - }, - "ri_retirement_income_subtraction_eligible": { - "2025": false - }, - "ri_social_security_modification": { - "2025": 0 - }, - "ri_social_security_modification_eligible": { - "2025": false - }, - "ri_standard_deduction": { - "2025": 0 - }, - "ri_standard_deduction_applicable_percentage": { - "2025": 0 - }, - "ri_subtractions": { - "2025": 0 - }, - "ri_taxable_income": { - "2025": 0 - }, - "ri_tuition_saving_program_contribution_subtraction": { - "2025": 0 - }, - "rrc_arpa": { - "2025": 0 - }, - "rrc_caa": { - "2025": 0 - }, - "rrc_cares": { - "2025": 0 - }, - "salt": { - "2025": 9740.635 - }, - "salt_cap": { - "2025": 40000 - }, - "salt_deduction": { - "2025": 9740.635 - }, - "salt_refund_last_year": { - "2025": 0 - }, - "savers_credit": { - "2025": 0 - }, - "savers_credit_credit_limit": { - "2025": 18158.5 - }, - "savers_credit_potential": { - "2025": 0 - }, - "sc_additions": { - "2025": 0 - }, - "sc_cdcc": { - "2025": 0 - }, - "sc_dependent_exemption": { - "2025": 0 - }, - "sc_eitc": { - "2025": 0 - }, - "sc_income_tax": { - "2025": 0 - }, - "sc_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "sc_income_tax_before_refundable_credits": { - "2025": 0 - }, - "sc_military_deduction": { - "2025": 0 - }, - "sc_net_capital_gain_deduction": { - "2025": 0 - }, - "sc_non_refundable_credits": { - "2025": 0 - }, - "sc_refundable_credits": { - "2025": 0 - }, - "sc_retirement_deduction": { - "2025": 0 - }, - "sc_senior_exemption": { - "2025": 0 - }, - "sc_state_tax_addback": { - "2025": 0 - }, - "sc_subtractions": { - "2025": 0 - }, - "sc_taxable_income": { - "2025": 0 - }, - "sc_two_wage_earner_credit": { - "2025": 0 - }, - "sc_young_child_deduction": { - "2025": 0 - }, - "section_22_income": { - "2025": 0 - }, - "self_employed_health_insurance_ald": { - "2025": 0 - }, - "self_employed_pension_contribution_ald": { - "2025": 0 - }, - "self_employment_tax_ald": { - "2025": 0 - }, - "separate_filer_itemizes": { - "2025": false - }, - "slcsp": { - "2025": 21856.193 - }, - "slcsp_age_curve_applies": { - "2025": true - }, - "slcsp_family_tier_amount": { - "2025": 0 - }, - "slcsp_family_tier_applies": { - "2025": false - }, - "slcsp_family_tier_category": { - "2025": "INDIVIDUAL_AGE_RATED" - }, - "slcsp_family_tier_multiplier": { - "2025": 0 - }, - "small_wind_energy_property_expenditures": { - "2025": 0 - }, - "solar_electric_property_expenditures": { - "2025": 0 - }, - "solar_water_heating_property_expenditures": { - "2025": 0 - }, - "specified_possession_income": { - "2025": 0 - }, - "spouse_earned": { - "2025": 1385 - }, - "spouse_is_dependent_elsewhere": { - "2025": false - }, - "spouse_is_disabled": { - "2025": false - }, - "spouse_separate_adjusted_gross_income": { - "2025": 0 - }, - "spouse_separate_tax_unit_size": { - "2025": 0 - }, - "standard_deduction": { - "2025": 31500 - }, - "state_agi": { - "2025": 160275 - }, - "state_and_local_sales_or_income_tax": { - "2025": 9740.635 - }, - "state_cdcc": { - "2025": 0 - }, - "state_ctc": { - "2025": 0 - }, - "state_eitc": { - "2025": 0 - }, - "state_filing_status_if_married_filing_separately_on_same_return": { - "2025": "SEPARATE" - }, - "state_income_tax": { - "2025": 7328.8623 - }, - "state_income_tax_before_refundable_credits": { - "2025": 7508.8623 - }, - "state_itemized_deductions": { - "2025": 0 - }, - "state_non_refundable_credits": { - "2025": 0 - }, - "state_property_tax_credit": { - "2025": 0 - }, - "state_refundable_credits": { - "2025": 180 - }, - "state_sales_tax": { - "2025": 1325.924 - }, - "state_sales_tax_income_bracket": { - "2025": 13 - }, - "state_standard_deduction": { - "2025": 31500 - }, - "state_taxable_income": { - "2025": 118575 - }, - "state_withheld_income_tax": { - "2025": 9740.635 - }, - "surviving_spouse_eligible": { - "2025": false - }, - "takes_up_aca_if_eligible": { - "2025": true - }, - "takes_up_dc_ptc": { - "2025": true - }, - "takes_up_eitc": { - "2025": true - }, - "tax_exempt_social_security": { - "2025": 0 - }, - "tax_liability_if_itemizing": { - "2025": 18545.559 - }, - "tax_liability_if_not_itemizing": { - "2025": 13758.5 - }, - "tax_unit_child_dependents": { - "2025": 2 - }, - "tax_unit_childcare_expenses": { - "2025": 0 - }, - "tax_unit_children": { - "2025": 2 - }, - "tax_unit_combined_income_for_social_security_taxability": { - "2025": 160275 - }, - "tax_unit_count": { - "2025": 1 - }, - "tax_unit_count_dependents": { - "2025": 2 - }, - "tax_unit_dependents": { - "2025": 2 - }, - "tax_unit_earned_income": { - "2025": 160275 - }, - "tax_unit_earned_income_last_year": { - "2025": 0 - }, - "tax_unit_fpg": { - "2025": 32150 - }, - "tax_unit_grandparents": { - "2025": 0 - }, - "tax_unit_household_id": { - "2025": 0 - }, - "tax_unit_id": { - "2025": 0 - }, - "tax_unit_income_ami_ratio": { - "2025": 0 - }, - "tax_unit_is_filer": { - "2025": 1 - }, - "tax_unit_is_joint": { - "2025": true - }, - "tax_unit_itemizes": { - "2025": false - }, - "tax_unit_married": { - "2025": true - }, - "tax_unit_medicaid_income_level": { - "2025": 4.9852257 - }, - "tax_unit_parents": { - "2025": 0 - }, - "tax_unit_partnership_s_corp_income": { - "2025": 0 - }, - "tax_unit_rental_income": { - "2025": 0 - }, - "tax_unit_size": { - "2025": 4 - }, - "tax_unit_social_security": { - "2025": 0 - }, - "tax_unit_ss_combined_income_excess": { - "2025": 128275 - }, - "tax_unit_ssi": { - "2025": 0 - }, - "tax_unit_state": { - "2025": "ME" - }, - "tax_unit_stillborn_children": { - "2025": 0 - }, - "tax_unit_taxable_social_security": { - "2025": 0 - }, - "tax_unit_taxable_unemployment_compensation": { - "2025": 0 - }, - "tax_unit_unemployment_compensation": { - "2025": 0 - }, - "tax_unit_weight": { - "2025": 0 - }, - "taxable_income": { - "2025": 128775 - }, - "taxable_income_deductions": { - "2025": 31500 - }, - "taxable_income_deductions_if_itemizing": { - "2025": 9740.635 - }, - "taxable_income_deductions_if_not_itemizing": { - "2025": 31500 - }, - "taxable_income_less_qbid": { - "2025": 128775 - }, - "taxable_ss_magi": { - "2025": 160275 - }, - "taxable_uc_agi": { - "2025": 160275 - }, - "taxpayer_has_itin": { - "2025": true - }, - "taxsim_age1": { - "2025": 10 - }, - "taxsim_age2": { - "2025": 12 - }, - "taxsim_age3": { - "2025": 0 - }, - "taxsim_childcare": { - "2025": 0 - }, - "taxsim_dep13": { - "2025": 2 - }, - "taxsim_dep17": { - "2025": 2 - }, - "taxsim_dep18": { - "2025": 2 - }, - "taxsim_depx": { - "2025": 2 - }, - "taxsim_dividends": { - "2025": 0 - }, - "taxsim_fiitax": { - "2025": 13758.5 - }, - "taxsim_gssi": { - "2025": 0 - }, - "taxsim_intrec": { - "2025": 0 - }, - "taxsim_ltcg": { - "2025": 0 - }, - "taxsim_mstat": { - "2025": 2 - }, - "taxsim_page": { - "2025": 40 - }, - "taxsim_pbusinc": { - "2025": 0 - }, - "taxsim_pensions": { - "2025": 0 - }, - "taxsim_pprofinc": { - "2025": 0 - }, - "taxsim_psemp": { - "2025": 0 - }, - "taxsim_pui": { - "2025": 0 - }, - "taxsim_pwages": { - "2025": 158890 - }, - "taxsim_sage": { - "2025": 40 - }, - "taxsim_sbusinc": { - "2025": 0 - }, - "taxsim_scorp": { - "2025": 0 - }, - "taxsim_siitax": { - "2025": 7328.8623 - }, - "taxsim_sprofinc": { - "2025": 0 - }, - "taxsim_ssemp": { - "2025": 0 - }, - "taxsim_state": { - "2025": 0 - }, - "taxsim_stcg": { - "2025": 0 - }, - "taxsim_swages": { - "2025": 1385 - }, - "taxsim_taxsimid": { - "2025": 0 - }, - "taxsim_tfica": { - "2025": 12261.037 - }, - "taxsim_ui": { - "2025": 0 - }, - "taxsim_v10": { - "2025": 160275 - }, - "taxsim_v11": { - "2025": 0 - }, - "taxsim_v12": { - "2025": 0 - }, - "taxsim_v18": { - "2025": 128775 - }, - "taxsim_v25": { - "2025": 0 - }, - "taxsim_year": { - "2025": 2025 - }, - "tip_income_deduction": { - "2025": 0 - }, - "tip_income_deduction_ssn_requirement_met": { - "2025": true - }, - "total_itemized_taxable_income_deductions": { - "2025": 9740.635 - }, - "total_misc_deductions": { - "2025": 0 - }, - "tuition_and_fees": { - "2025": 0 - }, - "tuition_and_fees_deduction": { - "2025": 0 - }, - "tuition_and_fees_deduction_eligible": { - "2025": true - }, - "unrecaptured_section_1250_gain": { - "2025": 0 - }, - "unreported_payroll_tax": { - "2025": 0 - }, - "us_govt_interest": { - "2025": 0 - }, - "used_clean_vehicle_credit": { - "2025": 0 - }, - "used_clean_vehicle_credit_credit_limit": { - "2025": 0 - }, - "used_clean_vehicle_credit_eligible": { - "2025": false - }, - "used_clean_vehicle_credit_potential": { - "2025": 0 - }, - "used_clean_vehicle_sale_price": { - "2025": 0 - }, - "ut_additions": { - "2025": 0 - }, - "ut_at_home_parent_credit": { - "2025": 0 - }, - "ut_at_home_parent_credit_agi_eligible": { - "2025": false - }, - "ut_claims_retirement_credit": { - "2025": false - }, - "ut_ctc": { - "2025": 0 - }, - "ut_eitc": { - "2025": 0 - }, - "ut_federal_deductions_for_taxpayer_credit": { - "2025": 0 - }, - "ut_income_tax": { - "2025": 0 - }, - "ut_income_tax_before_credits": { - "2025": 0 - }, - "ut_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "ut_income_tax_before_refundable_credits": { - "2025": 0 - }, - "ut_income_tax_exempt": { - "2025": false - }, - "ut_non_refundable_credits": { - "2025": 0 - }, - "ut_personal_exemption": { - "2025": 0 - }, - "ut_personal_exemption_additional_dependents": { - "2025": 0 - }, - "ut_refundable_credits": { - "2025": 0 - }, - "ut_retirement_credit": { - "2025": 0 - }, - "ut_retirement_credit_max": { - "2025": 0 - }, - "ut_ss_benefits_credit": { - "2025": 0 - }, - "ut_ss_benefits_credit_max": { - "2025": 0 - }, - "ut_state_tax_refund": { - "2025": 0 - }, - "ut_subtractions": { - "2025": 0 - }, - "ut_taxable_income": { - "2025": 0 - }, - "ut_taxpayer_credit": { - "2025": 0 - }, - "ut_taxpayer_credit_max": { - "2025": 0 - }, - "ut_taxpayer_credit_phase_out_income": { - "2025": 0 - }, - "ut_taxpayer_credit_reduction": { - "2025": 0 - }, - "ut_total_dependents": { - "2025": 0 - }, - "ut_total_income": { - "2025": 0 - }, - "utilities_included_in_rent": { - "2025": false - }, - "va_additions": { - "2025": 0 - }, - "va_age_deduction": { - "2025": 0 - }, - "va_age_deduction_agi": { - "2025": 0 - }, - "va_aged_blind_exemption": { - "2025": 0 - }, - "va_agi": { - "2025": 0 - }, - "va_capped_state_and_local_sales_or_income_tax": { - "2025": 9740.635 - }, - "va_child_dependent_care_deduction_cdcc_limit": { - "2025": 0 - }, - "va_child_dependent_care_expense_deduction": { - "2025": 0 - }, - "va_claims_refundable_eitc": { - "2025": false - }, - "va_deductions": { - "2025": 0 - }, - "va_disability_income_subtraction": { - "2025": 0 - }, - "va_eitc": { - "2025": 0 - }, - "va_federal_state_employees_subtraction": { - "2025": 0 - }, - "va_income_tax": { - "2025": 0 - }, - "va_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "va_income_tax_before_refundable_credits": { - "2025": 0 - }, - "va_income_tax_if_claiming_non_refundable_eitc": { - "2025": 0 - }, - "va_income_tax_if_claiming_refundable_eitc": { - "2025": 0 - }, - "va_itemized_deductions": { - "2025": 0 - }, - "va_low_income_tax_credit": { - "2025": 0 - }, - "va_low_income_tax_credit_agi_eligible": { - "2025": false - }, - "va_low_income_tax_credit_eligible": { - "2025": false - }, - "va_military_basic_pay_subtraction": { - "2025": 0 - }, - "va_military_benefit_subtraction": { - "2025": 0 - }, - "va_must_file": { - "2025": 0 - }, - "va_national_guard_subtraction": { - "2025": 0 - }, - "va_non_refundable_credits": { - "2025": 0 - }, - "va_non_refundable_eitc": { - "2025": 0 - }, - "va_non_refundable_eitc_if_claimed": { - "2025": 0 - }, - "va_personal_exemption": { - "2025": 0 - }, - "va_rebate": { - "2025": 0 - }, - "va_reduced_itemized_deductions": { - "2025": 0 - }, - "va_refundable_credits": { - "2025": 0 - }, - "va_refundable_eitc": { - "2025": 0 - }, - "va_refundable_eitc_if_claimed": { - "2025": 0 - }, - "va_spouse_tax_adjustment": { - "2025": 0 - }, - "va_spouse_tax_adjustment_eligible": { - "2025": false - }, - "va_standard_deduction": { - "2025": 0 - }, - "va_subtractions": { - "2025": 0 - }, - "va_taxable_income": { - "2025": 0 - }, - "va_total_exemptions": { - "2025": 0 - }, - "vt_additions": { - "2025": 0 - }, - "vt_agi": { - "2025": 0 - }, - "vt_amt": { - "2025": 0 - }, - "vt_capital_gains_exclusion": { - "2025": 0 - }, - "vt_cdcc": { - "2025": 0 - }, - "vt_charitable_contribution_credit": { - "2025": 0 - }, - "vt_child_care_contributions": { - "2025": 0 - }, - "vt_csrs_retirement_pay_exclusion": { - "2025": 0 - }, - "vt_ctc": { - "2025": 0 - }, - "vt_eitc": { - "2025": 0 - }, - "vt_elderly_or_disabled_credit": { - "2025": 0 - }, - "vt_income_tax": { - "2025": 0 - }, - "vt_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "vt_income_tax_before_refundable_credits": { - "2025": 0 - }, - "vt_low_income_cdcc": { - "2025": 0 - }, - "vt_low_income_cdcc_eligible": { - "2025": false - }, - "vt_medical_expense_deduction": { - "2025": 0 - }, - "vt_military_retirement_cap_based_exemption": { - "2025": 0 - }, - "vt_military_retirement_income_based_exemption": { - "2025": 0 - }, - "vt_military_retirement_pay_exclusion": { - "2025": 0 - }, - "vt_non_refundable_credits": { - "2025": 0 - }, - "vt_normal_income_tax": { - "2025": 0 - }, - "vt_percentage_capital_gains_exclusion": { - "2025": 0 - }, - "vt_personal_exemptions": { - "2025": 0 - }, - "vt_refundable_credits": { - "2025": 0 - }, - "vt_renter_credit": { - "2025": 0 - }, - "vt_renter_credit_countable_tax_exempt_ss": { - "2025": 0 - }, - "vt_renter_credit_income": { - "2025": 0 - }, - "vt_retirement_income_exemption": { - "2025": 0 - }, - "vt_retirement_income_exemption_eligible": { - "2025": false - }, - "vt_standard_deduction": { - "2025": 0 - }, - "vt_subtractions": { - "2025": 0 - }, - "vt_taxable_income": { - "2025": 0 - }, - "vt_veteran_tax_credit": { - "2025": 0 - }, - "wa_capital_gains_tax": { - "2025": 0 - }, - "wa_income_tax": { - "2025": 0 - }, - "wa_income_tax_before_refundable_credits": { - "2025": 0 - }, - "wa_refundable_credits": { - "2025": 0 - }, - "wa_working_families_tax_credit": { - "2025": 0 - }, - "wagering_losses_deduction": { - "2025": 0 - }, - "wi_additional_exemption": { - "2025": 0 - }, - "wi_additions": { - "2025": 0 - }, - "wi_agi": { - "2025": 0 - }, - "wi_base_exemption": { - "2025": 0 - }, - "wi_capital_gain_loss_addition": { - "2025": 0 - }, - "wi_capital_gain_loss_subtraction": { - "2025": 0 - }, - "wi_capital_loss": { - "2025": 0 - }, - "wi_childcare_expense_credit": { - "2025": 0 - }, - "wi_childcare_expense_subtraction": { - "2025": 0 - }, - "wi_earned_income_credit": { - "2025": 0 - }, - "wi_exemption": { - "2025": 0 - }, - "wi_homestead_credit": { - "2025": 0 - }, - "wi_homestead_eligible": { - "2025": false - }, - "wi_homestead_income": { - "2025": 0 - }, - "wi_homestead_property_tax": { - "2025": 0 - }, - "wi_income_subtractions": { - "2025": 0 - }, - "wi_income_tax": { - "2025": 0 - }, - "wi_income_tax_before_credits": { - "2025": 0 - }, - "wi_income_tax_before_refundable_credits": { - "2025": 0 - }, - "wi_itemized_deduction_credit": { - "2025": 0 - }, - "wi_married_couple_credit": { - "2025": 0 - }, - "wi_non_refundable_credits": { - "2025": 0 - }, - "wi_property_tax_credit": { - "2025": 0 - }, - "wi_refundable_credits": { - "2025": 0 - }, - "wi_retirement_income_subtraction": { - "2025": 0 - }, - "wi_retirement_income_subtraction_agi_eligible": { - "2025": false - }, - "wi_standard_deduction": { - "2025": 0 - }, - "wi_taxable_income": { - "2025": 0 - }, - "wi_unemployment_compensation_subtraction": { - "2025": 0 - }, - "wv_additions": { - "2025": 0 - }, - "wv_agi": { - "2025": 0 - }, - "wv_cdcc": { - "2025": 0 - }, - "wv_gross_household_income": { - "2025": 0 - }, - "wv_homestead_excess_property_tax_credit": { - "2025": 0 - }, - "wv_homestead_excess_property_tax_credit_eligible": { - "2025": false - }, - "wv_homestead_exemption": { - "2025": 0 - }, - "wv_income_tax": { - "2025": 0 - }, - "wv_income_tax_before_non_refundable_credits": { - "2025": 0 - }, - "wv_income_tax_before_refundable_credits": { - "2025": 0 - }, - "wv_low_income_earned_income_exclusion": { - "2025": 0 - }, - "wv_low_income_earned_income_exclusion_eligible": { - "2025": false - }, - "wv_low_income_family_tax_credit": { - "2025": 0 - }, - "wv_low_income_family_tax_credit_agi": { - "2025": 0 - }, - "wv_low_income_family_tax_credit_eligible": { - "2025": false - }, - "wv_low_income_family_tax_credit_fpg": { - "2025": 0 - }, - "wv_non_refundable_credits": { - "2025": 0 - }, - "wv_personal_exemption": { - "2025": 0 - }, - "wv_public_pension_subtraction": { - "2025": 0 - }, - "wv_refundable_credits": { - "2025": 0 - }, - "wv_sctc": { - "2025": 0 - }, - "wv_sctc_eligible": { - "2025": false - }, - "wv_senior_citizen_disability_deduction": { - "2025": 0 - }, - "wv_social_security_benefits_subtraction": { - "2025": 0 - }, - "wv_social_security_benefits_subtraction_eligible": { - "2025": false - }, - "wv_subtractions": { - "2025": 0 - }, - "wv_taxable_income": { - "2025": 0 - }, - "wv_taxable_property_value": { - "2025": 0 - } + } + }, + "tax_units": { + "your tax unit": { + "able_contributions": { + "2025": 0 + }, + "above_the_line_deductions": { + "2025": 0 + }, + "aca_magi": { + "2025": 160275 + }, + "aca_magi_fraction": { + "2025": 5.13 + }, + "aca_ptc": { + "2025": 8232.818 + }, + "aca_ptc_phase_out_rate": { + "2025": 0.085 + }, + "aca_take_up_seed": { + "2025": 0 + }, + "additional_medicare_tax": { + "2025": 0 + }, + "additional_senior_deduction": { + "2025": 0 + }, + "additional_standard_deduction": { + "2025": 0 + }, + "adjusted_gross_income": { + "2025": 160275 + }, + "adjusted_net_capital_gain": { + "2025": 0 + }, + "advanced_main_air_circulating_fan_expenditures": { + "2025": 0 + }, + "age_head": { + "2025": 40 + }, + "age_spouse": { + "2025": 40 + }, + "aged_blind_count": { + "2025": 0 + }, + "aged_head": { + "2025": false + }, + "aged_spouse": { + "2025": false + }, + "air_sealing_ventilation_expenditures": { + "2025": 0 + }, + "al_agi": { + "2025": 0 + }, + "al_casualty_loss_deduction": { + "2025": 0 + }, + "al_deductions": { + "2025": 0 + }, + "al_dependent_exemption": { + "2025": 0 + }, + "al_federal_income_tax_deduction": { + "2025": 0 + }, + "al_income_tax": { + "2025": 0 + }, + "al_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "al_income_tax_before_refundable_credits": { + "2025": 0 + }, + "al_interest_deduction": { + "2025": 0 + }, + "al_itemized_deductions": { + "2025": 0 + }, + "al_medical_expense_deduction": { + "2025": 0 + }, + "al_misc_deduction": { + "2025": 0 + }, + "al_non_refundable_credits": { + "2025": 0 + }, + "al_personal_exemption": { + "2025": 0 + }, + "al_refundable_credits": { + "2025": 0 + }, + "al_retirement_exemption": { + "2025": 0 + }, + "al_standard_deduction": { + "2025": 0 + }, + "al_taxable_income": { + "2025": 0 + }, + "alimony_expense_ald": { + "2025": 0 + }, + "alternative_minimum_tax": { + "2025": 0 + }, + "american_opportunity_credit": { + "2025": 0 + }, + "amt_base_tax": { + "2025": 6051.5 + }, + "amt_excluded_deductions": { + "2025": 31500 + }, + "amt_form_completed": { + "2025": false + }, + "amt_higher_base_tax": { + "2025": 0 + }, + "amt_income": { + "2025": 160275 + }, + "amt_income_less_exemptions": { + "2025": 23275 + }, + "amt_kiddie_tax_applies": { + "2025": false + }, + "amt_lower_base_tax": { + "2025": 6051.5 + }, + "amt_non_agi_income": { + "2025": 0 + }, + "amt_part_iii_required": { + "2025": false + }, + "amt_separate_addition": { + "2025": 0 + }, + "amt_tax_including_cg": { + "2025": 6051.5 + }, + "ar_additional_tax_credit_for_qualified_individuals": { + "2025": 0 + }, + "ar_agi": { + "2025": 0 + }, + "ar_cdcc": { + "2025": 0 + }, + "ar_files_separately": { + "2025": false + }, + "ar_income_tax": { + "2025": 0 + }, + "ar_income_tax_before_non_refundable_credits_unit": { + "2025": 0 + }, + "ar_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ar_inflation_relief_credit": { + "2025": 0 + }, + "ar_itemized_deductions": { + "2025": 0 + }, + "ar_medical_expense_deduction_indiv": { + "2025": 0 + }, + "ar_medical_expense_deduction_joint": { + "2025": 0 + }, + "ar_misc_deduction_indiv": { + "2025": 0 + }, + "ar_misc_deduction_joint": { + "2025": 0 + }, + "ar_non_refundable_credits": { + "2025": 0 + }, + "ar_personal_credits": { + "2025": 0 + }, + "ar_personal_credits_base": { + "2025": 0 + }, + "ar_post_secondary_education_tuition_deduction": { + "2025": 0 + }, + "ar_refundable_credits": { + "2025": 0 + }, + "ar_retirement_or_disability_benefits_exemption": { + "2025": 0 + }, + "ar_standard_deduction": { + "2025": 0 + }, + "ar_tax_unit_itemizes": { + "2025": false + }, + "ar_taxable_income": { + "2025": 0 + }, + "auto_loan_interest_deduction": { + "2025": 0 + }, + "az_529_college_savings_plan_subtraction": { + "2025": 0 + }, + "az_additions": { + "2025": 0 + }, + "az_agi": { + "2025": 0 + }, + "az_base_standard_deduction": { + "2025": 0 + }, + "az_blind_exemption": { + "2025": 0 + }, + "az_charitable_contributions_credit": { + "2025": 0 + }, + "az_charitable_contributions_to_qualifying_charitable_organizations": { + "2025": 0 + }, + "az_charitable_contributions_to_qualifying_foster_care_organizations": { + "2025": 0 + }, + "az_deductions": { + "2025": 0 + }, + "az_dependent_tax_credit": { + "2025": 0 + }, + "az_exemptions": { + "2025": 0 + }, + "az_family_tax_credit": { + "2025": 0 + }, + "az_family_tax_credit_eligible": { + "2025": false + }, + "az_filing_status": { + "2025": "SINGLE" + }, + "az_income_tax": { + "2025": 0 + }, + "az_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "az_income_tax_before_refundable_credits": { + "2025": 0 + }, + "az_increased_excise_tax_credit": { + "2025": 0 + }, + "az_increased_excise_tax_credit_eligible": { + "2025": false + }, + "az_increased_standard_deduction_for_charitable_contributions": { + "2025": 0 + }, + "az_itemized_deductions": { + "2025": 0 + }, + "az_long_term_capital_gains_subtraction": { + "2025": 0 + }, + "az_military_retirement_subtraction": { + "2025": 0 + }, + "az_non_refundable_credits": { + "2025": 0 + }, + "az_property_tax_credit": { + "2025": 0 + }, + "az_property_tax_credit_eligible": { + "2025": false + }, + "az_property_tax_credit_income": { + "2025": 0 + }, + "az_public_pension_exclusion": { + "2025": 0 + }, + "az_refundable_credits": { + "2025": 0 + }, + "az_standard_deduction": { + "2025": 0 + }, + "az_stillborn_exemption": { + "2025": 0 + }, + "az_subtractions": { + "2025": 0 + }, + "az_taxable_income": { + "2025": 0 + }, + "basic_income": { + "2025": 0 + }, + "basic_income_before_phase_out": { + "2025": 0 + }, + "basic_income_eligible": { + "2025": true + }, + "basic_income_phase_in": { + "2025": 160275 + }, + "basic_income_phase_out": { + "2025": 0 + }, + "basic_standard_deduction": { + "2025": 31500 + }, + "biomass_stove_boiler_expenditures": { + "2025": 0 + }, + "blind_head": { + "2025": false + }, + "blind_spouse": { + "2025": false + }, + "bonus_guaranteed_deduction": { + "2025": 0 + }, + "ca_additions": { + "2025": 0 + }, + "ca_agi": { + "2025": 0 + }, + "ca_agi_subtractions": { + "2025": 0 + }, + "ca_amt": { + "2025": 0 + }, + "ca_amt_exemption": { + "2025": 0 + }, + "ca_amti": { + "2025": 0 + }, + "ca_amti_adjustments": { + "2025": 0 + }, + "ca_cdcc": { + "2025": 0 + }, + "ca_cdcc_rate": { + "2025": 0 + }, + "ca_cdcc_relevant_expenses": { + "2025": 0 + }, + "ca_deductions": { + "2025": 0 + }, + "ca_eitc": { + "2025": 0 + }, + "ca_eitc_eligible": { + "2025": false + }, + "ca_exemptions": { + "2025": 0 + }, + "ca_federal_capped_cdcc": { + "2025": 0 + }, + "ca_federal_cdcc": { + "2025": 0 + }, + "ca_foster_youth_tax_credit": { + "2025": 0 + }, + "ca_income_tax": { + "2025": 0 + }, + "ca_income_tax_before_credits": { + "2025": 0 + }, + "ca_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ca_investment_interest_deduction": { + "2025": 0 + }, + "ca_itemized_deductions": { + "2025": 0 + }, + "ca_itemized_deductions_pre_limitation": { + "2025": 0 + }, + "ca_mental_health_services_tax": { + "2025": 0 + }, + "ca_non_refundable_credits": { + "2025": 0 + }, + "ca_pre_exemption_amti": { + "2025": 0 + }, + "ca_refundable_credits": { + "2025": 0 + }, + "ca_renter_credit": { + "2025": 0 + }, + "ca_sf_wftc": { + "2025": 0 + }, + "ca_standard_deduction": { + "2025": 0 + }, + "ca_taxable_income": { + "2025": 0 + }, + "ca_use_tax": { + "2025": 0 + }, + "ca_yctc": { + "2025": 0 + }, + "capital_gains_28_percent_rate_gain": { + "2025": 0 + }, + "capital_gains_excluded_from_taxable_income": { + "2025": 0 + }, + "capital_gains_tax": { + "2025": 0 + }, + "capped_advanced_main_air_circulating_fan_credit": { + "2025": 0 + }, + "capped_cdcc": { + "2025": 0 + }, + "capped_count_cdcc_eligible": { + "2025": 2 + }, + "capped_electric_heat_pump_clothes_dryer_rebate": { + "2025": 0 + }, + "capped_electric_load_service_center_upgrade_rebate": { + "2025": 0 + }, + "capped_electric_stove_cooktop_range_or_oven_rebate": { + "2025": 0 + }, + "capped_electric_wiring_rebate": { + "2025": 0 + }, + "capped_energy_efficient_central_air_conditioner_credit": { + "2025": 0 + }, + "capped_energy_efficient_door_credit": { + "2025": 0 + }, + "capped_energy_efficient_insulation_credit": { + "2025": 0 + }, + "capped_energy_efficient_roof_credit": { + "2025": 0 + }, + "capped_energy_efficient_window_credit": { + "2025": 0 + }, + "capped_heat_pump_heat_pump_water_heater_biomass_stove_boiler_credit": { + "2025": 0 + }, + "capped_heat_pump_rebate": { + "2025": 0 + }, + "capped_heat_pump_water_heater_rebate": { + "2025": 0 + }, + "capped_home_energy_audit_credit": { + "2025": 0 + }, + "capped_insulation_air_sealing_ventilation_rebate": { + "2025": 0 + }, + "capped_property_taxes": { + "2025": 0 + }, + "capped_qualified_furnace_or_hot_water_boiler_credit": { + "2025": 0 + }, + "casualty_loss_deduction": { + "2025": 0 + }, + "cdcc": { + "2025": 0 + }, + "cdcc_credit_limit": { + "2025": 18158.5 + }, + "cdcc_limit": { + "2025": 6000 + }, + "cdcc_potential": { + "2025": 0 + }, + "cdcc_rate": { + "2025": 0.2 + }, + "cdcc_relevant_expenses": { + "2025": 0 + }, + "charitable_deduction": { + "2025": 0 + }, + "charitable_deduction_for_non_itemizers": { + "2025": 0 + }, + "co_able_contribution_subtraction": { + "2025": 0 + }, + "co_additions": { + "2025": 0 + }, + "co_cdcc": { + "2025": 0 + }, + "co_charitable_contribution_subtraction": { + "2025": 0 + }, + "co_charitable_contribution_subtraction_eligible": { + "2025": false + }, + "co_collegeinvest_subtraction": { + "2025": 0 + }, + "co_ctc": { + "2025": 0 + }, + "co_ctc_eligible_children_count": { + "2025": 0 + }, + "co_eitc": { + "2025": 0 + }, + "co_federal_ctc": { + "2025": 0 + }, + "co_federal_ctc_maximum": { + "2025": 0 + }, + "co_federal_deduction_addback": { + "2025": 0 + }, + "co_federal_deduction_addback_required": { + "2025": false + }, + "co_income_qualified_senior_housing_credit": { + "2025": 0 + }, + "co_income_qualified_senior_housing_credit_eligible": { + "2025": false + }, + "co_income_tax": { + "2025": 0 + }, + "co_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "co_income_tax_before_refundable_credits": { + "2025": 0 + }, + "co_low_income_cdcc": { + "2025": 0 + }, + "co_low_income_cdcc_eligible": { + "2025": false + }, + "co_military_retirement_subtraction": { + "2025": 0 + }, + "co_modified_agi": { + "2025": 0 + }, + "co_non_refundable_credits": { + "2025": 0 + }, + "co_non_refundable_ctc": { + "2025": 0 + }, + "co_pension_subtraction": { + "2025": 0 + }, + "co_property_tax_exemption": { + "2025": 0 + }, + "co_qualified_business_income_deduction_addback": { + "2025": 0 + }, + "co_qualified_business_income_deduction_addback_required": { + "2025": false + }, + "co_refundable_credits": { + "2025": 0 + }, + "co_refundable_ctc": { + "2025": 0 + }, + "co_sales_tax_refund": { + "2025": 0 + }, + "co_sales_tax_refund_eligible": { + "2025": false + }, + "co_state_addback": { + "2025": 0 + }, + "co_subtractions": { + "2025": 0 + }, + "co_taxable_income": { + "2025": 0 + }, + "cohabitating_spouses": { + "2025": false + }, + "count_cdcc_eligible": { + "2025": 2 + }, + "ct_additions": { + "2025": 0 + }, + "ct_agi": { + "2025": 0 + }, + "ct_agi_subtractions": { + "2025": 0 + }, + "ct_amt": { + "2025": 0 + }, + "ct_child_tax_rebate": { + "2025": 0 + }, + "ct_eitc": { + "2025": 0 + }, + "ct_income_tax": { + "2025": 0 + }, + "ct_income_tax_after_amt": { + "2025": 0 + }, + "ct_income_tax_after_personal_credits": { + "2025": 0 + }, + "ct_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ct_income_tax_high_tax_recapture": { + "2025": 0 + }, + "ct_income_tax_low_tax_recapture": { + "2025": 0 + }, + "ct_income_tax_middle_tax_recapture": { + "2025": 0 + }, + "ct_income_tax_phase_out_add_back": { + "2025": 0 + }, + "ct_income_tax_recapture": { + "2025": 0 + }, + "ct_non_refundable_credits": { + "2025": 0 + }, + "ct_pension_annuity_subtraction": { + "2025": 0 + }, + "ct_personal_credit_rate": { + "2025": 0 + }, + "ct_personal_exemptions": { + "2025": 0 + }, + "ct_property_tax_credit": { + "2025": 0 + }, + "ct_property_tax_credit_eligible": { + "2025": false + }, + "ct_refundable_credits": { + "2025": 0 + }, + "ct_section_179_expense_add_back": { + "2025": 0 + }, + "ct_social_security_benefit_adjustment": { + "2025": 0 + }, + "ct_subtractions": { + "2025": 0 + }, + "ct_taxable_income": { + "2025": 0 + }, + "ct_tuition_subtraction": { + "2025": 0 + }, + "ctc": { + "2025": 4400 + }, + "ctc_arpa_addition": { + "2025": 0 + }, + "ctc_arpa_max_addition": { + "2025": 0 + }, + "ctc_arpa_phase_out": { + "2025": 0 + }, + "ctc_arpa_phase_out_cap": { + "2025": 0 + }, + "ctc_arpa_phase_out_threshold": { + "2025": 150000 + }, + "ctc_arpa_uncapped_phase_out": { + "2025": 0 + }, + "ctc_limiting_tax_liability": { + "2025": 18158.5 + }, + "ctc_maximum": { + "2025": 4400 + }, + "ctc_maximum_with_arpa_addition": { + "2025": 4400 + }, + "ctc_phase_in": { + "2025": 23666.25 + }, + "ctc_phase_in_relevant_earnings": { + "2025": 23666.25 + }, + "ctc_phase_out": { + "2025": 0 + }, + "ctc_phase_out_threshold": { + "2025": 400000 + }, + "ctc_qualifying_children": { + "2025": 2 + }, + "ctc_refundable_maximum": { + "2025": 3400 + }, + "ctc_social_security_tax": { + "2025": 12261.037 + }, + "ctc_value": { + "2025": 4400 + }, + "dc_cdcc": { + "2025": 0 + }, + "dc_ctc": { + "2025": 0 + }, + "dc_ctc_capped_children": { + "2025": 0 + }, + "dc_deduction_joint": { + "2025": 0 + }, + "dc_eitc": { + "2025": 0 + }, + "dc_eitc_with_qualifying_child": { + "2025": 0 + }, + "dc_eitc_without_qualifying_child": { + "2025": 0 + }, + "dc_files_separately": { + "2025": false + }, + "dc_income_tax": { + "2025": 0 + }, + "dc_income_tax_before_credits": { + "2025": 0 + }, + "dc_income_tax_before_credits_indiv": { + "2025": 0 + }, + "dc_income_tax_before_credits_joint": { + "2025": 0 + }, + "dc_income_tax_before_refundable_credits": { + "2025": 0 + }, + "dc_itemized_deductions": { + "2025": 0 + }, + "dc_kccatc": { + "2025": 0 + }, + "dc_non_refundable_credits": { + "2025": 0 + }, + "dc_ptc": { + "2025": 0 + }, + "dc_refundable_credits": { + "2025": 0 + }, + "dc_standard_deduction": { + "2025": 0 + }, + "dc_taxable_income": { + "2025": 0 + }, + "dc_taxable_income_joint": { + "2025": 0 + }, + "de_aged_personal_credit": { + "2025": 0 + }, + "de_agi": { + "2025": 0 + }, + "de_capped_real_estate_tax": { + "2025": 0 + }, + "de_cdcc": { + "2025": 0 + }, + "de_claims_refundable_eitc": { + "2025": false + }, + "de_eitc": { + "2025": 0 + }, + "de_files_separately": { + "2025": false + }, + "de_income_tax": { + "2025": 0 + }, + "de_income_tax_before_non_refundable_credits_unit": { + "2025": 0 + }, + "de_income_tax_before_refundable_credits": { + "2025": 0 + }, + "de_income_tax_if_claiming_non_refundable_eitc": { + "2025": 0 + }, + "de_income_tax_if_claiming_refundable_eitc": { + "2025": 0 + }, + "de_itemized_deductions": { + "2025": 0 + }, + "de_itemized_deductions_unit": { + "2025": 0 + }, + "de_non_refundable_credits": { + "2025": 0 + }, + "de_non_refundable_eitc": { + "2025": 0 + }, + "de_non_refundable_eitc_if_claimed": { + "2025": 0 + }, + "de_personal_credit": { + "2025": 0 + }, + "de_refundable_credits": { + "2025": 0 + }, + "de_refundable_eitc": { + "2025": 0 + }, + "de_refundable_eitc_if_claimed": { + "2025": 0 + }, + "de_relief_rebate": { + "2025": 0 + }, + "de_standard_deduction": { + "2025": 0 + }, + "de_tax_unit_itemizes": { + "2025": false + }, + "de_taxable_income": { + "2025": 0 + }, + "disabled_head": { + "2025": false + }, + "disabled_spouse": { + "2025": false + }, + "disabled_tax_unit_head_or_spouse": { + "2025": false + }, + "dividend_income_reduced_by_investment_income": { + "2025": 0 + }, + "domestic_production_ald": { + "2025": 0 + }, + "dwks09": { + "2025": 0 + }, + "dwks10": { + "2025": 0 + }, + "dwks13": { + "2025": 0 + }, + "dwks14": { + "2025": 0 + }, + "dwks19": { + "2025": 0 + }, + "education_credit_phase_out": { + "2025": 0.01375 + }, + "education_tax_credits": { + "2025": 0 + }, + "eitc": { + "2025": 0 + }, + "eitc_agi_limit": { + "2025": 64430.113 + }, + "eitc_child_count": { + "2025": 2 + }, + "eitc_demographic_eligible": { + "2025": true + }, + "eitc_eligible": { + "2025": true + }, + "eitc_investment_income_eligible": { + "2025": true + }, + "eitc_maximum": { + "2025": 7152 + }, + "eitc_phase_in_rate": { + "2025": 0.4 + }, + "eitc_phase_out_rate": { + "2025": 0.2106 + }, + "eitc_phase_out_start": { + "2025": 30470 + }, + "eitc_phased_in": { + "2025": 7152 + }, + "eitc_reduction": { + "2025": 27336.934 + }, + "eitc_relevant_investment_income": { + "2025": 0 + }, + "elderly_disabled_credit": { + "2025": 0 + }, + "elderly_disabled_credit_credit_limit": { + "2025": 18158.5 + }, + "elderly_disabled_credit_potential": { + "2025": 0 + }, + "electric_heat_pump_clothes_dryer_expenditures": { + "2025": 0 + }, + "electric_load_service_center_upgrade_expenditures": { + "2025": 0 + }, + "electric_stove_cooktop_range_or_oven_expenditures": { + "2025": 0 + }, + "electric_wiring_expenditures": { + "2025": 0 + }, + "employee_payroll_tax": { + "2025": 12261.037 + }, + "energy_efficient_central_air_conditioner_expenditures": { + "2025": 0 + }, + "energy_efficient_door_expenditures": { + "2025": 0 + }, + "energy_efficient_home_improvement_credit": { + "2025": 0 + }, + "energy_efficient_home_improvement_credit_credit_limit": { + "2025": 18158.5 + }, + "energy_efficient_home_improvement_credit_potential": { + "2025": 0 + }, + "energy_efficient_insulation_expenditures": { + "2025": 0 + }, + "energy_efficient_roof_expenditures": { + "2025": 0 + }, + "energy_efficient_window_expenditures": { + "2025": 0 + }, + "excess_payroll_tax_withheld": { + "2025": 0 + }, + "exemptions": { + "2025": 0 + }, + "exemptions_count": { + "2025": 4 + }, + "federal_eitc_without_age_minimum": { + "2025": 0 + }, + "federal_state_income_tax": { + "2025": 21087.363 + }, + "filer_adjusted_earnings": { + "2025": 160275 + }, + "filer_meets_ctc_identification_requirements": { + "2025": true + }, + "filer_meets_eitc_identification_requirements": { + "2025": true + }, + "filing_status": { + "2025": "JOINT" + }, + "flat_tax": { + "2025": 0 + }, + "foreign_earned_income_exclusion": { + "2025": 0 + }, + "foreign_tax_credit": { + "2025": 0 + }, + "foreign_tax_credit_credit_limit": { + "2025": 18158.5 + }, + "foreign_tax_credit_potential": { + "2025": 0 + }, + "form_4972_lumpsum_distributions": { + "2025": 0 + }, + "fuel_cell_property_capacity": { + "2025": 0 + }, + "fuel_cell_property_expenditures": { + "2025": 0 + }, + "ga_additional_standard_deduction": { + "2025": 0 + }, + "ga_additions": { + "2025": 0 + }, + "ga_agi": { + "2025": 0 + }, + "ga_cdcc": { + "2025": 0 + }, + "ga_ctc": { + "2025": 0 + }, + "ga_deductions": { + "2025": 0 + }, + "ga_exemptions": { + "2025": 0 + }, + "ga_income_tax": { + "2025": 0 + }, + "ga_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "ga_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ga_investment_in_529_plan_deduction": { + "2025": 0 + }, + "ga_low_income_credit": { + "2025": 0 + }, + "ga_military_retirement_exclusion": { + "2025": 0 + }, + "ga_non_refundable_credits": { + "2025": 0 + }, + "ga_refundable_credits": { + "2025": 0 + }, + "ga_retirement_exclusion": { + "2025": 0 + }, + "ga_standard_deduction": { + "2025": 0 + }, + "ga_subtractions": { + "2025": 0 + }, + "ga_surplus_tax_rebate": { + "2025": 0 + }, + "ga_taxable_income": { + "2025": 0 + }, + "geothermal_heat_pump_property_expenditures": { + "2025": 0 + }, + "greater_age_head_spouse": { + "2025": 40 + }, + "has_qdiv_or_ltcg": { + "2025": false + }, + "head_earned": { + "2025": 158890 + }, + "head_is_dependent_elsewhere": { + "2025": false + }, + "head_is_disabled": { + "2025": false + }, + "head_of_household_eligible": { + "2025": false + }, + "head_spouse_count": { + "2025": 2 + }, + "health_savings_account_ald": { + "2025": 0 + }, + "heat_pump_expenditures": { + "2025": 0 + }, + "heat_pump_water_heater_expenditures": { + "2025": 0 + }, + "heating_expenses": { + "2025": 0 + }, + "hi_additions": { + "2025": 0 + }, + "hi_agi": { + "2025": 0 + }, + "hi_alternative_tax_on_capital_gains": { + "2025": 0 + }, + "hi_alternative_tax_on_capital_gains_eligible": { + "2025": false + }, + "hi_casualty_loss_deduction": { + "2025": 0 + }, + "hi_cdcc": { + "2025": 0 + }, + "hi_cdcc_min_head_spouse_earned": { + "2025": 0 + }, + "hi_deductions": { + "2025": 0 + }, + "hi_dependent_care_benefits": { + "2025": 0 + }, + "hi_disabled_exemptions": { + "2025": 0 + }, + "hi_eitc": { + "2025": 0 + }, + "hi_exemptions": { + "2025": 0 + }, + "hi_food_excise_credit": { + "2025": 0 + }, + "hi_food_excise_credit_minor_child_amount": { + "2025": 0 + }, + "hi_food_excise_credit_minor_child_count": { + "2025": 0 + }, + "hi_food_excise_exemption_amount": { + "2025": 0 + }, + "hi_income_tax": { + "2025": 0 + }, + "hi_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "hi_income_tax_before_refundable_credits": { + "2025": 0 + }, + "hi_interest_deduction": { + "2025": 0 + }, + "hi_itemized_deductions": { + "2025": 0 + }, + "hi_medical_expense_deduction": { + "2025": 0 + }, + "hi_military_pay_exclusion": { + "2025": 0 + }, + "hi_non_refundable_credits": { + "2025": 0 + }, + "hi_reduced_itemized_deductions": { + "2025": 0 + }, + "hi_refundable_credits": { + "2025": 0 + }, + "hi_regular_exemptions": { + "2025": 0 + }, + "hi_salt_deduction": { + "2025": 0 + }, + "hi_standard_deduction": { + "2025": 0 + }, + "hi_subtractions": { + "2025": 0 + }, + "hi_tax_credit_for_low_income_household_renters": { + "2025": 0 + }, + "hi_tax_credit_for_low_income_household_renters_eligible": { + "2025": false + }, + "hi_taxable_income": { + "2025": 0 + }, + "hi_taxable_income_for_alternative_tax": { + "2025": 0 + }, + "hi_total_itemized_deductions": { + "2025": 0 + }, + "high_efficiency_electric_home_rebate": { + "2025": 0 + }, + "high_efficiency_electric_home_rebate_percent_covered": { + "2025": 1 + }, + "home_energy_audit_expenditures": { + "2025": 0 + }, + "household_state_income_tax": { + "2025": 7328.8623 + }, + "ia_additions_consolidated": { + "2025": 0 + }, + "ia_agi": { + "2025": 0 + }, + "ia_alternate_tax_consolidated": { + "2025": 0 + }, + "ia_alternate_tax_eligible": { + "2025": false + }, + "ia_alternate_tax_unit": { + "2025": 0 + }, + "ia_cdcc": { + "2025": 0 + }, + "ia_eitc": { + "2025": 0 + }, + "ia_exemption_credit": { + "2025": 0 + }, + "ia_files_separately": { + "2025": false + }, + "ia_income_tax": { + "2025": 0 + }, + "ia_income_tax_before_credits": { + "2025": 0 + }, + "ia_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ia_income_tax_consolidated": { + "2025": 0 + }, + "ia_income_tax_indiv": { + "2025": 0 + }, + "ia_income_tax_joint": { + "2025": 0 + }, + "ia_is_tax_exempt": { + "2025": false + }, + "ia_itemized_deductions": { + "2025": 0 + }, + "ia_itemized_deductions_unit": { + "2025": 0 + }, + "ia_modified_income": { + "2025": 0 + }, + "ia_non_refundable_credits": { + "2025": 0 + }, + "ia_reduced_tax": { + "2025": 0 + }, + "ia_refundable_credits": { + "2025": 0 + }, + "ia_regular_tax_consolidated": { + "2025": 0 + }, + "ia_reportable_social_security": { + "2025": 0 + }, + "ia_standard_deduction": { + "2025": 0 + }, + "ia_subtractions_consolidated": { + "2025": 0 + }, + "ia_taxable_income": { + "2025": 0 + }, + "ia_taxable_income_consolidated": { + "2025": 0 + }, + "ia_taxable_income_modifications_consolidated": { + "2025": 0 + }, + "id_2022_rebate": { + "2025": 0 + }, + "id_additions": { + "2025": 0 + }, + "id_aged_or_disabled_credit": { + "2025": 0 + }, + "id_aged_or_disabled_deduction": { + "2025": 0 + }, + "id_agi": { + "2025": 0 + }, + "id_capital_gains_deduction": { + "2025": 0 + }, + "id_cdcc_limit": { + "2025": 0 + }, + "id_ctc": { + "2025": 0 + }, + "id_deductions": { + "2025": 0 + }, + "id_grocery_credit": { + "2025": 0 + }, + "id_household_and_dependent_care_expense_deduction": { + "2025": 0 + }, + "id_income_tax": { + "2025": 0 + }, + "id_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "id_income_tax_before_refundable_credits": { + "2025": 0 + }, + "id_income_tax_liable": { + "2025": false + }, + "id_itemized_deductions": { + "2025": 0 + }, + "id_non_refundable_credits": { + "2025": 0 + }, + "id_pbf": { + "2025": 0 + }, + "id_pbf_liable": { + "2025": false + }, + "id_receives_aged_or_disabled_credit": { + "2025": true + }, + "id_refundable_credits": { + "2025": 0 + }, + "id_retirement_benefits_deduction": { + "2025": 0 + }, + "id_salt_deduction": { + "2025": 0 + }, + "id_special_season_rebate": { + "2025": 0 + }, + "id_subtractions": { + "2025": 0 + }, + "id_taxable_income": { + "2025": 0 + }, + "il_aged_blind_exemption": { + "2025": 0 + }, + "il_base_income": { + "2025": 0 + }, + "il_base_income_additions": { + "2025": 0 + }, + "il_base_income_subtractions": { + "2025": 0 + }, + "il_ctc": { + "2025": 0 + }, + "il_dependent_exemption": { + "2025": 0 + }, + "il_eitc": { + "2025": 0 + }, + "il_income_tax": { + "2025": 0 + }, + "il_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "il_income_tax_before_refundable_credits": { + "2025": 0 + }, + "il_is_exemption_eligible": { + "2025": false + }, + "il_k12_education_expense_credit": { + "2025": 0 + }, + "il_non_refundable_credits": { + "2025": 0 + }, + "il_pass_through_entity_tax_credit": { + "2025": 0 + }, + "il_pass_through_withholding": { + "2025": 0 + }, + "il_personal_exemption": { + "2025": 0 + }, + "il_personal_exemption_eligibility_status": { + "2025": "NOT_ELIGIBLE" + }, + "il_property_tax_credit": { + "2025": 0 + }, + "il_refundable_credits": { + "2025": 0 + }, + "il_schedule_m_additions": { + "2025": 0 + }, + "il_schedule_m_subtractions": { + "2025": 0 + }, + "il_taxable_income": { + "2025": 0 + }, + "il_total_exemptions": { + "2025": 0 + }, + "il_total_tax": { + "2025": 0 + }, + "il_use_tax": { + "2025": 0 + }, + "in_add_backs": { + "2025": 0 + }, + "in_additional_exemptions": { + "2025": 0 + }, + "in_adoption_exemption": { + "2025": 0 + }, + "in_aged_blind_exemptions": { + "2025": 0 + }, + "in_aged_low_agi_exemptions": { + "2025": 0 + }, + "in_agi": { + "2025": 0 + }, + "in_agi_tax": { + "2025": 0 + }, + "in_base_exemptions": { + "2025": 0 + }, + "in_bonus_depreciation_add_back": { + "2025": 0 + }, + "in_county_tax": { + "2025": 0 + }, + "in_deductions": { + "2025": 0 + }, + "in_eitc": { + "2025": 0 + }, + "in_eitc_eligible": { + "2025": false + }, + "in_exemptions": { + "2025": 0 + }, + "in_healthcare_sharing_deduction": { + "2025": 0 + }, + "in_homeowners_property_tax_deduction": { + "2025": 0 + }, + "in_income_tax": { + "2025": 0 + }, + "in_income_tax_before_refundable_credits": { + "2025": 0 + }, + "in_military_service_deduction": { + "2025": 0 + }, + "in_nol": { + "2025": 0 + }, + "in_nol_add_back": { + "2025": 0 + }, + "in_nonpublic_school_deduction": { + "2025": 0 + }, + "in_oos_municipal_obligation_interest_add_back": { + "2025": 0 + }, + "in_other_add_backs": { + "2025": 0 + }, + "in_other_deductions": { + "2025": 0 + }, + "in_qualifying_child_count": { + "2025": 0 + }, + "in_refundable_credits": { + "2025": 0 + }, + "in_renters_deduction": { + "2025": 0 + }, + "in_section_179_expense_add_back": { + "2025": 0 + }, + "in_tax_add_back": { + "2025": 0 + }, + "in_unemployment_compensation_deduction": { + "2025": 0 + }, + "in_unified_elderly_tax_credit": { + "2025": 0 + }, + "in_use_tax": { + "2025": 0 + }, + "income_tax": { + "2025": 13758.5 + }, + "income_tax_before_credits": { + "2025": 18158.5 + }, + "income_tax_before_refundable_credits": { + "2025": 13758.5 + }, + "income_tax_capped_non_refundable_credits": { + "2025": 4400 + }, + "income_tax_excluding_ptc": { + "2025": 5525.6816 + }, + "income_tax_main_rates": { + "2025": 18158.5 + }, + "income_tax_non_refundable_credits": { + "2025": 4400 + }, + "income_tax_refundable_credits": { + "2025": 0 + }, + "income_tax_unavailable_non_refundable_credits": { + "2025": 0 + }, + "interest_deduction": { + "2025": 0 + }, + "investment_in_529_plan": { + "2025": 0 + }, + "investment_income_form_4952": { + "2025": 0 + }, + "is_eligible_md_poverty_line_credit": { + "2025": false + }, + "is_ma_income_tax_exempt": { + "2025": false + }, + "itemized_deductions_less_salt": { + "2025": 0 + }, + "itemized_taxable_income_deductions": { + "2025": 9740.635 + }, + "itemized_taxable_income_deductions_reduction": { + "2025": 0 + }, + "k12_tuition_and_fees": { + "2025": 0 + }, + "ks_additions": { + "2025": 0 + }, + "ks_agi": { + "2025": 0 + }, + "ks_agi_subtractions": { + "2025": 0 + }, + "ks_cdcc": { + "2025": 0 + }, + "ks_count_exemptions": { + "2025": 0 + }, + "ks_exemptions": { + "2025": 0 + }, + "ks_fstc": { + "2025": 0 + }, + "ks_income_tax": { + "2025": 0 + }, + "ks_income_tax_before_credits": { + "2025": 0 + }, + "ks_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ks_itemized_deductions": { + "2025": 0 + }, + "ks_non_refundable_credits": { + "2025": 0 + }, + "ks_nonrefundable_eitc": { + "2025": 0 + }, + "ks_refundable_credits": { + "2025": 0 + }, + "ks_refundable_eitc": { + "2025": 0 + }, + "ks_standard_deduction": { + "2025": 0 + }, + "ks_taxable_income": { + "2025": 0 + }, + "ks_total_eitc": { + "2025": 0 + }, + "ky_cdcc": { + "2025": 0 + }, + "ky_family_size_tax_credit": { + "2025": 0 + }, + "ky_family_size_tax_credit_rate": { + "2025": 0 + }, + "ky_files_separately": { + "2025": false + }, + "ky_filing_status": { + "2025": "SINGLE" + }, + "ky_income_tax": { + "2025": 0 + }, + "ky_income_tax_before_non_refundable_credits_unit": { + "2025": 0 + }, + "ky_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ky_itemized_deductions": { + "2025": 0 + }, + "ky_itemized_deductions_unit": { + "2025": 0 + }, + "ky_modified_agi": { + "2025": 0 + }, + "ky_non_refundable_credits": { + "2025": 0 + }, + "ky_personal_tax_credits": { + "2025": 0 + }, + "ky_refundable_credits": { + "2025": 0 + }, + "ky_standard_deduction": { + "2025": 0 + }, + "ky_tax_unit_itemizes": { + "2025": false + }, + "ky_taxable_income": { + "2025": 0 + }, + "ky_tuition_tax_credit": { + "2025": 0 + }, + "ky_tuition_tax_credit_eligible": { + "2025": 0 + }, + "la_aged_exemption": { + "2025": 0 + }, + "la_agi": { + "2025": 0 + }, + "la_agi_exempt_income": { + "2025": 0 + }, + "la_blind_exemption": { + "2025": 0 + }, + "la_dependents_exemption": { + "2025": 0 + }, + "la_eitc": { + "2025": 0 + }, + "la_exemptions": { + "2025": 0 + }, + "la_federal_tax_deduction": { + "2025": 0 + }, + "la_income_tax": { + "2025": 0 + }, + "la_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "la_income_tax_before_refundable_credits": { + "2025": 0 + }, + "la_itemized_deductions": { + "2025": 0 + }, + "la_military_pay_exclusion": { + "2025": 0 + }, + "la_non_refundable_cdcc": { + "2025": 0 + }, + "la_non_refundable_credits": { + "2025": 0 + }, + "la_personal_exemption": { + "2025": 0 + }, + "la_refundable_cdcc": { + "2025": 0 + }, + "la_refundable_credits": { + "2025": 0 + }, + "la_school_readiness_credit": { + "2025": 0 + }, + "la_school_readiness_credit_non_refundable": { + "2025": 0 + }, + "la_school_readiness_credit_refundable": { + "2025": 0 + }, + "la_school_readiness_credit_refundable_eligible": { + "2025": false + }, + "la_standard_deduction": { + "2025": 0 + }, + "la_surviving_spouse_exemption": { + "2025": 0 + }, + "la_taxable_income": { + "2025": 0 + }, + "lifetime_learning_credit": { + "2025": 0 + }, + "lifetime_learning_credit_credit_limit": { + "2025": 18158.5 + }, + "lifetime_learning_credit_potential": { + "2025": 0 + }, + "limited_capital_loss": { + "2025": 0 + }, + "local_income_tax": { + "2025": 0 + }, + "local_sales_tax": { + "2025": 265.18478 + }, + "loss_ald": { + "2025": 0 + }, + "loss_limited_net_capital_gains": { + "2025": 0 + }, + "ma_agi": { + "2025": 0 + }, + "ma_child_and_family_credit": { + "2025": 0 + }, + "ma_child_and_family_credit_or_dependent_care_credit": { + "2025": 0 + }, + "ma_dependent_care_credit": { + "2025": 0 + }, + "ma_eitc": { + "2025": 0 + }, + "ma_gross_income": { + "2025": 0 + }, + "ma_income_tax": { + "2025": 0 + }, + "ma_income_tax_before_credits": { + "2025": 0 + }, + "ma_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ma_income_tax_exemption_threshold": { + "2025": 0 + }, + "ma_limited_income_tax_credit": { + "2025": 0 + }, + "ma_non_refundable_credits": { + "2025": 0 + }, + "ma_part_a_agi": { + "2025": 0 + }, + "ma_part_a_cg_excess_exemption": { + "2025": 0 + }, + "ma_part_a_div_excess_exemption": { + "2025": 0 + }, + "ma_part_a_gross_income": { + "2025": 0 + }, + "ma_part_a_taxable_capital_gains_income": { + "2025": 0 + }, + "ma_part_a_taxable_dividend_income": { + "2025": 0 + }, + "ma_part_a_taxable_income": { + "2025": 0 + }, + "ma_part_b_agi": { + "2025": 0 + }, + "ma_part_b_excess_exemption": { + "2025": 0 + }, + "ma_part_b_gross_income": { + "2025": 0 + }, + "ma_part_b_taxable_income": { + "2025": 0 + }, + "ma_part_b_taxable_income_before_exemption": { + "2025": 0 + }, + "ma_part_b_taxable_income_deductions": { + "2025": 0 + }, + "ma_part_b_taxable_income_exemption": { + "2025": 0 + }, + "ma_part_c_agi": { + "2025": 0 + }, + "ma_part_c_gross_income": { + "2025": 0 + }, + "ma_part_c_taxable_income": { + "2025": 0 + }, + "ma_refundable_credits": { + "2025": 0 + }, + "ma_scb_total_income": { + "2025": 0 + }, + "ma_senior_circuit_breaker": { + "2025": 0 + }, + "md_aged_blind_exemptions": { + "2025": 0 + }, + "md_aged_dependent_exemption": { + "2025": 0 + }, + "md_aged_exemption": { + "2025": 0 + }, + "md_agi": { + "2025": 0 + }, + "md_blind_exemption": { + "2025": 0 + }, + "md_capital_gains_surtax": { + "2025": 0 + }, + "md_capital_gains_surtax_applies": { + "2025": false + }, + "md_cdcc": { + "2025": 0 + }, + "md_ctc": { + "2025": 0 + }, + "md_ctc_eligible": { + "2025": false + }, + "md_deductions": { + "2025": 0 + }, + "md_dependent_care_subtraction": { + "2025": 0 + }, + "md_eitc": { + "2025": 0 + }, + "md_exemptions": { + "2025": 0 + }, + "md_hundred_year_subtraction": { + "2025": 0 + }, + "md_income_tax": { + "2025": 0 + }, + "md_income_tax_before_credits": { + "2025": 0 + }, + "md_income_tax_before_refundable_credits": { + "2025": 0 + }, + "md_itemized_deductions": { + "2025": 0 + }, + "md_local_income_tax_before_credits": { + "2025": 0 + }, + "md_married_or_has_child_non_refundable_eitc": { + "2025": 0 + }, + "md_married_or_has_child_refundable_eitc": { + "2025": 0 + }, + "md_montgomery_eitc": { + "2025": 0 + }, + "md_non_refundable_credits": { + "2025": 0 + }, + "md_non_refundable_eitc": { + "2025": 0 + }, + "md_pension_subtraction": { + "2025": 0 + }, + "md_personal_exemption": { + "2025": 0 + }, + "md_poverty_line_credit": { + "2025": 0 + }, + "md_qualifies_for_unmarried_childless_eitc": { + "2025": false + }, + "md_refundable_cdcc": { + "2025": 0 + }, + "md_refundable_credits": { + "2025": 0 + }, + "md_refundable_eitc": { + "2025": 0 + }, + "md_senior_tax_credit": { + "2025": 0 + }, + "md_senior_tax_credit_eligible": { + "2025": false + }, + "md_socsec_subtraction": { + "2025": 0 + }, + "md_standard_deduction": { + "2025": 0 + }, + "md_tax_unit_earned_income": { + "2025": 0 + }, + "md_taxable_income": { + "2025": 0 + }, + "md_total_additions": { + "2025": 0 + }, + "md_total_personal_exemptions": { + "2025": 0 + }, + "md_total_subtractions": { + "2025": 0 + }, + "md_two_income_subtraction": { + "2025": 0 + }, + "md_unmarried_childless_non_refundable_eitc": { + "2025": 0 + }, + "md_unmarried_childless_refundable_eitc": { + "2025": 0 + }, + "me_additions": { + "2025": 0 + }, + "me_agi": { + "2025": 160275 + }, + "me_agi_subtractions": { + "2025": 0 + }, + "me_child_care_credit": { + "2025": 0 + }, + "me_deduction_phaseout_percentage": { + "2025": 0 + }, + "me_deductions": { + "2025": 31500 + }, + "me_dependent_exemption_credit": { + "2025": 180 + }, + "me_eitc": { + "2025": 0 + }, + "me_exemptions": { + "2025": 10200 + }, + "me_income_tax": { + "2025": 7328.8623 + }, + "me_income_tax_before_credits": { + "2025": 7508.8623 + }, + "me_income_tax_before_refundable_credits": { + "2025": 7508.8623 + }, + "me_itemized_deductions_pre_phaseout": { + "2025": 0 + }, + "me_non_refundable_child_care_credit": { + "2025": 0 + }, + "me_non_refundable_credits": { + "2025": 0 + }, + "me_pension_income_deduction": { + "2025": 0 + }, + "me_personal_exemption_deduction": { + "2025": 10200 + }, + "me_property_tax_fairness_credit": { + "2025": 0 + }, + "me_property_tax_fairness_credit_base_cap": { + "2025": 0 + }, + "me_property_tax_fairness_credit_benefit_base": { + "2025": 3950 + }, + "me_property_tax_fairness_credit_cap": { + "2025": 0 + }, + "me_property_tax_fairness_credit_countable_rent": { + "2025": 0 + }, + "me_property_tax_fairness_credit_countable_rent_property_tax": { + "2025": 0 + }, + "me_property_tax_fairness_credit_eligible": { + "2025": true + }, + "me_property_tax_fairness_credit_veterans_cap": { + "2025": 0 + }, + "me_refundable_child_care_credit": { + "2025": 0 + }, + "me_refundable_credits": { + "2025": 180 + }, + "me_sales_and_property_tax_fairness_credit_income": { + "2025": 160275 + }, + "me_sales_tax_fairness_credit": { + "2025": 0 + }, + "me_sales_tax_fairness_credit_eligible": { + "2025": true + }, + "me_step_4_share_of_child_care_expenses": { + "2025": 0 + }, + "me_taxable_income": { + "2025": 118575 + }, + "medicaid_magi": { + "2025": 160275 + }, + "medical_expense_deduction": { + "2025": 0 + }, + "members": ["you", "your partner", "your first dependent", "your second dependent"], + "mi_additions": { + "2025": 0 + }, + "mi_allowable_homestead_property_tax_credit": { + "2025": 0 + }, + "mi_alternate_home_heating_credit": { + "2025": 0 + }, + "mi_alternate_home_heating_credit_eligible": { + "2025": false + }, + "mi_eitc": { + "2025": 0 + }, + "mi_exemptions": { + "2025": 0 + }, + "mi_exemptions_count": { + "2025": 0 + }, + "mi_expanded_retirement_benefits_deduction": { + "2025": 0 + }, + "mi_expanded_retirement_benefits_deduction_eligible": { + "2025": false + }, + "mi_home_heating_credit": { + "2025": 0 + }, + "mi_home_heating_credit_eligible_rate": { + "2025": 0 + }, + "mi_homestead_property_tax_credit": { + "2025": 0 + }, + "mi_homestead_property_tax_credit_alternate_senior_amount": { + "2025": 0 + }, + "mi_homestead_property_tax_credit_countable_property_tax": { + "2025": 0 + }, + "mi_homestead_property_tax_credit_eligible": { + "2025": false + }, + "mi_homestead_property_tax_credit_household_resource_exemption": { + "2025": 0 + }, + "mi_homestead_property_tax_credit_pre_alternate_senior_amount": { + "2025": 0 + }, + "mi_household_resources": { + "2025": 0 + }, + "mi_income_tax": { + "2025": 0 + }, + "mi_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "mi_income_tax_before_refundable_credits": { + "2025": 0 + }, + "mi_interest_dividends_capital_gains_deduction": { + "2025": 0 + }, + "mi_interest_dividends_capital_gains_deduction_eligible": { + "2025": false + }, + "mi_is_senior_for_tax": { + "2025": false + }, + "mi_non_refundable_credits": { + "2025": 0 + }, + "mi_pension_benefit": { + "2025": 0 + }, + "mi_personal_exemptions": { + "2025": 0 + }, + "mi_refundable_credits": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_one": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_one_amount": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_one_eligible": { + "2025": false + }, + "mi_retirement_benefits_deduction_tier_three": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_three_eligible": { + "2025": false + }, + "mi_retirement_benefits_deduction_tier_three_ss_exempt_not_retired": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_three_ss_exempt_not_retired_eligible_people": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_three_ss_exempt_retired": { + "2025": 0 + }, + "mi_retirement_benefits_deduction_tier_three_ss_exempt_retired_eligible_people": { + "2025": 0 + }, + "mi_standard_deduction": { + "2025": 0 + }, + "mi_standard_deduction_tier_three": { + "2025": 0 + }, + "mi_standard_deduction_tier_three_eligible": { + "2025": false + }, + "mi_standard_deduction_tier_two": { + "2025": 0 + }, + "mi_standard_deduction_tier_two_eligible": { + "2025": false + }, + "mi_standard_deduction_tier_two_increase_eligible_people": { + "2025": 0 + }, + "mi_standard_home_heating_credit": { + "2025": 0 + }, + "mi_standard_home_heating_credit_eligible": { + "2025": false + }, + "mi_subtractions": { + "2025": 0 + }, + "mi_taxable_income": { + "2025": 0 + }, + "military_disabled_head": { + "2025": false + }, + "military_disabled_spouse": { + "2025": false + }, + "min_head_spouse_earned": { + "2025": 1385 + }, + "misc_deduction": { + "2025": 0 + }, + "mn_additions": { + "2025": 0 + }, + "mn_amt": { + "2025": 0 + }, + "mn_amt_taxable_income": { + "2025": 0 + }, + "mn_basic_tax": { + "2025": 0 + }, + "mn_cdcc": { + "2025": 0 + }, + "mn_cdcc_dependent_count": { + "2025": 0 + }, + "mn_cdcc_eligible": { + "2025": false + }, + "mn_cdcc_phase_out": { + "2025": 0 + }, + "mn_charity_subtraction": { + "2025": 0 + }, + "mn_child_and_working_families_credits": { + "2025": 0 + }, + "mn_deductions": { + "2025": 0 + }, + "mn_elderly_disabled_subtraction": { + "2025": 0 + }, + "mn_exemptions": { + "2025": 0 + }, + "mn_income_tax": { + "2025": 0 + }, + "mn_income_tax_before_credits": { + "2025": 0 + }, + "mn_income_tax_before_refundable_credits": { + "2025": 0 + }, + "mn_itemized_deductions": { + "2025": 0 + }, + "mn_itemizing": { + "2025": false + }, + "mn_marriage_credit": { + "2025": 0 + }, + "mn_niit": { + "2025": 0 + }, + "mn_non_refundable_credits": { + "2025": 0 + }, + "mn_public_pension_subtraction": { + "2025": 0 + }, + "mn_refundable_credits": { + "2025": 0 + }, + "mn_social_security_subtraction": { + "2025": 0 + }, + "mn_standard_deduction": { + "2025": 0 + }, + "mn_subtractions": { + "2025": 0 + }, + "mn_taxable_income": { + "2025": 0 + }, + "mn_wfc": { + "2025": 0 + }, + "mn_wfc_eligible": { + "2025": false + }, + "mo_business_income_deduction": { + "2025": 0 + }, + "mo_federal_income_tax_deduction": { + "2025": 0 + }, + "mo_income_tax": { + "2025": 0 + }, + "mo_income_tax_before_refundable_credits": { + "2025": 0 + }, + "mo_itemized_deductions": { + "2025": 0 + }, + "mo_net_state_income_taxes": { + "2025": 0 + }, + "mo_non_refundable_credits": { + "2025": 0 + }, + "mo_pension_and_ss_or_ssd_deduction": { + "2025": 0 + }, + "mo_property_tax_credit": { + "2025": 0 + }, + "mo_ptc_gross_income": { + "2025": 0 + }, + "mo_ptc_income_offset": { + "2025": 0 + }, + "mo_ptc_net_income": { + "2025": 0 + }, + "mo_ptc_taxunit_eligible": { + "2025": 0 + }, + "mo_refundable_credits": { + "2025": 0 + }, + "mo_wftc": { + "2025": 0 + }, + "ms_aged_exemption": { + "2025": 0 + }, + "ms_blind_exemption": { + "2025": 0 + }, + "ms_cdcc": { + "2025": 0 + }, + "ms_cdcc_eligible": { + "2025": false + }, + "ms_charitable_contributions_credit": { + "2025": 0 + }, + "ms_charitable_contributions_to_qualifying_foster_care_organizations": { + "2025": 0 + }, + "ms_dependents_exemption": { + "2025": 0 + }, + "ms_files_separately": { + "2025": false + }, + "ms_income_tax": { + "2025": 0 + }, + "ms_income_tax_before_credits_unit": { + "2025": 0 + }, + "ms_itemized_deductions": { + "2025": 0 + }, + "ms_itemized_deductions_unit": { + "2025": 0 + }, + "ms_non_refundable_credits": { + "2025": 0 + }, + "ms_real_estate_tax_deduction": { + "2025": 0 + }, + "ms_refundable_credits": { + "2025": 0 + }, + "ms_regular_exemption": { + "2025": 0 + }, + "ms_standard_deduction": { + "2025": 0 + }, + "ms_tax_unit_itemizes": { + "2025": false + }, + "ms_taxable_income": { + "2025": 0 + }, + "ms_total_exemptions": { + "2025": 0 + }, + "mt_agi_joint": { + "2025": 0 + }, + "mt_child_dependent_care_expense_deduction_eligible_children": { + "2025": 0 + }, + "mt_disability_income_exclusion": { + "2025": 0 + }, + "mt_federal_income_tax_deduction_for_federal_itemization": { + "2025": 0 + }, + "mt_federal_income_tax_deduction_unit": { + "2025": 0 + }, + "mt_files_separately": { + "2025": false + }, + "mt_income_tax": { + "2025": 0 + }, + "mt_income_tax_before_non_refundable_credits_joint": { + "2025": 0 + }, + "mt_income_tax_before_refundable_credits_joint": { + "2025": 0 + }, + "mt_income_tax_before_refundable_credits_unit": { + "2025": 0 + }, + "mt_income_tax_joint": { + "2025": 0 + }, + "mt_income_tax_rebate": { + "2025": 0 + }, + "mt_interest_exemption": { + "2025": 0 + }, + "mt_itemized_deductions": { + "2025": 0 + }, + "mt_property_tax_rebate": { + "2025": 0 + }, + "mt_regular_income_tax_joint": { + "2025": 0 + }, + "mt_standard_deduction": { + "2025": 0 + }, + "mt_tax_unit_itemizes": { + "2025": false + }, + "mt_taxable_income": { + "2025": 0 + }, + "mt_tuition_subtraction": { + "2025": 0 + }, + "nc_additions": { + "2025": 0 + }, + "nc_child_deduction": { + "2025": 0 + }, + "nc_ctc": { + "2025": 0 + }, + "nc_deductions": { + "2025": 0 + }, + "nc_income_tax": { + "2025": 0 + }, + "nc_income_tax_before_credits": { + "2025": 0 + }, + "nc_itemized_deductions": { + "2025": 0 + }, + "nc_military_retirement_deduction": { + "2025": 0 + }, + "nc_non_refundable_credits": { + "2025": 0 + }, + "nc_standard_deduction": { + "2025": 0 + }, + "nc_standard_or_itemized_deductions": { + "2025": 0 + }, + "nc_taxable_income": { + "2025": 0 + }, + "nc_use_tax": { + "2025": 0 + }, + "nd_additions": { + "2025": 0 + }, + "nd_income_tax": { + "2025": 0 + }, + "nd_income_tax_before_credits": { + "2025": 0 + }, + "nd_income_tax_before_refundable_credits": { + "2025": 0 + }, + "nd_ltcg_subtraction": { + "2025": 0 + }, + "nd_mpc": { + "2025": 0 + }, + "nd_non_refundable_credits": { + "2025": 0 + }, + "nd_qdiv_subtraction": { + "2025": 0 + }, + "nd_refundable_credits": { + "2025": 0 + }, + "nd_rtrc": { + "2025": 0 + }, + "nd_subtractions": { + "2025": 0 + }, + "nd_taxable_income": { + "2025": 0 + }, + "ne_additions": { + "2025": 0 + }, + "ne_agi": { + "2025": 0 + }, + "ne_agi_subtractions": { + "2025": 0 + }, + "ne_base_standard_deduction": { + "2025": 0 + }, + "ne_cdcc_nonrefundable": { + "2025": 0 + }, + "ne_cdcc_refundable": { + "2025": 0 + }, + "ne_cdcc_refundable_eligible": { + "2025": false + }, + "ne_eitc": { + "2025": 0 + }, + "ne_elderly_disabled_credit": { + "2025": 0 + }, + "ne_exemptions": { + "2025": 0 + }, + "ne_income_tax": { + "2025": 0 + }, + "ne_income_tax_before_credits": { + "2025": 0 + }, + "ne_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ne_itemized_deductions": { + "2025": 0 + }, + "ne_military_retirement_subtraction": { + "2025": 0 + }, + "ne_non_refundable_credits": { + "2025": 0 + }, + "ne_refundable_credits": { + "2025": 0 + }, + "ne_refundable_ctc": { + "2025": 0 + }, + "ne_refundable_ctc_income_eligible": { + "2025": false + }, + "ne_refundable_ctc_total_household_income": { + "2025": 0 + }, + "ne_social_security_subtraction": { + "2025": 0 + }, + "ne_standard_deduction": { + "2025": 0 + }, + "ne_taxable_income": { + "2025": 0 + }, + "net_capital_gain": { + "2025": 0 + }, + "net_capital_gains": { + "2025": 0 + }, + "net_investment_income": { + "2025": 0 + }, + "net_investment_income_tax": { + "2025": 0 + }, + "new_clean_vehicle_battery_capacity": { + "2025": 0 + }, + "new_clean_vehicle_battery_components_made_in_north_america": { + "2025": 0 + }, + "new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country": { + "2025": 0 + }, + "new_clean_vehicle_classification": { + "2025": "OTHER" + }, + "new_clean_vehicle_credit": { + "2025": 0 + }, + "new_clean_vehicle_credit_credit_limit": { + "2025": 0 + }, + "new_clean_vehicle_credit_eligible": { + "2025": false + }, + "new_clean_vehicle_credit_potential": { + "2025": 0 + }, + "new_clean_vehicle_msrp": { + "2025": 0 + }, + "nh_base_exemption": { + "2025": 0 + }, + "nh_blind_exemption": { + "2025": 0 + }, + "nh_disabled_exemption": { + "2025": 0 + }, + "nh_education_tax_credit": { + "2025": 0 + }, + "nh_income_tax": { + "2025": 0 + }, + "nh_income_tax_before_refundable_credits": { + "2025": 0 + }, + "nh_old_age_exemption": { + "2025": 0 + }, + "nh_refundable_credits": { + "2025": 0 + }, + "nh_taxable_income": { + "2025": 0 + }, + "nh_total_exemptions": { + "2025": 0 + }, + "nj_agi": { + "2025": 0 + }, + "nj_blind_or_disabled_exemption": { + "2025": 0 + }, + "nj_cdcc": { + "2025": 0 + }, + "nj_childless_eitc_age_eligible": { + "2025": false + }, + "nj_ctc": { + "2025": 0 + }, + "nj_ctc_eligible": { + "2025": false + }, + "nj_dependents_attending_college_exemption": { + "2025": 0 + }, + "nj_dependents_exemption": { + "2025": 0 + }, + "nj_eitc": { + "2025": 0 + }, + "nj_eitc_income_eligible": { + "2025": false + }, + "nj_income_tax": { + "2025": 0 + }, + "nj_income_tax_before_refundable_credits": { + "2025": 0 + }, + "nj_main_income_tax": { + "2025": 0 + }, + "nj_medical_expense_deduction": { + "2025": 0 + }, + "nj_non_refundable_credits": { + "2025": 0 + }, + "nj_other_retirement_income_exclusion": { + "2025": 0 + }, + "nj_other_retirement_special_exclusion": { + "2025": 0 + }, + "nj_pension_retirement_exclusion": { + "2025": 0 + }, + "nj_potential_property_tax_deduction": { + "2025": 0 + }, + "nj_property_tax_credit": { + "2025": 0 + }, + "nj_property_tax_credit_eligible": { + "2025": false + }, + "nj_property_tax_deduction": { + "2025": 0 + }, + "nj_property_tax_deduction_eligible": { + "2025": false + }, + "nj_refundable_credits": { + "2025": 0 + }, + "nj_regular_exemption": { + "2025": 0 + }, + "nj_retirement_exclusion_fraction": { + "2025": 0 + }, + "nj_senior_exemption": { + "2025": 0 + }, + "nj_taking_property_tax_deduction": { + "2025": false + }, + "nj_taxable_income": { + "2025": 0 + }, + "nj_taxable_income_before_property_tax_deduction": { + "2025": 0 + }, + "nj_total_deductions": { + "2025": 0 + }, + "nj_total_exemptions": { + "2025": 0 + }, + "nm_2021_income_rebate": { + "2025": 0 + }, + "nm_additional_2021_income_rebate": { + "2025": 0 + }, + "nm_additions": { + "2025": 0 + }, + "nm_aged_blind_exemption": { + "2025": 0 + }, + "nm_cdcc": { + "2025": 0 + }, + "nm_cdcc_eligible": { + "2025": false + }, + "nm_cdcc_max_amount": { + "2025": 0 + }, + "nm_ctc": { + "2025": 0 + }, + "nm_deduction_for_certain_dependents": { + "2025": 0 + }, + "nm_deduction_for_certain_dependents_eligible": { + "2025": false + }, + "nm_deductions": { + "2025": 0 + }, + "nm_eitc": { + "2025": 0 + }, + "nm_eitc_demographic_eligible": { + "2025": false + }, + "nm_eitc_eligible": { + "2025": false + }, + "nm_exemptions": { + "2025": 0 + }, + "nm_hundred_year_exemption": { + "2025": 0 + }, + "nm_income_tax": { + "2025": 0 + }, + "nm_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "nm_income_tax_before_refundable_credits": { + "2025": 0 + }, + "nm_itemized_deductions": { + "2025": 0 + }, + "nm_low_and_middle_income_exemption": { + "2025": 0 + }, + "nm_low_income_comprehensive_tax_rebate": { + "2025": 0 + }, + "nm_low_income_comprehensive_tax_rebate_exemptions": { + "2025": 0 + }, + "nm_medical_care_expense_deduction": { + "2025": 0 + }, + "nm_medical_expense_credit": { + "2025": 0 + }, + "nm_medical_expense_exemption": { + "2025": 0 + }, + "nm_modified_gross_income": { + "2025": 0 + }, + "nm_net_capital_gains_deduction": { + "2025": 0 + }, + "nm_non_refundable_credits": { + "2025": 0 + }, + "nm_other_deductions_and_exemptions": { + "2025": 0 + }, + "nm_property_tax_rebate": { + "2025": 0 + }, + "nm_property_tax_rebate_eligible": { + "2025": false + }, + "nm_refundable_credits": { + "2025": 0 + }, + "nm_salt_add_back": { + "2025": 0 + }, + "nm_social_security_income_exemption": { + "2025": 0 + }, + "nm_supplemental_2021_income_rebate": { + "2025": 0 + }, + "nm_taxable_income": { + "2025": 0 + }, + "non_refundable_american_opportunity_credit": { + "2025": 0 + }, + "non_refundable_american_opportunity_credit_credit_limit": { + "2025": 18158.5 + }, + "non_refundable_american_opportunity_credit_potential": { + "2025": 0 + }, + "non_refundable_ctc": { + "2025": 4400 + }, + "ny_additional_ctc": { + "2025": 0 + }, + "ny_additions": { + "2025": 0 + }, + "ny_agi": { + "2025": 0 + }, + "ny_agi_subtractions": { + "2025": 0 + }, + "ny_allowable_college_tuition_expenses": { + "2025": 0 + }, + "ny_cdcc": { + "2025": 0 + }, + "ny_cdcc_max": { + "2025": 0 + }, + "ny_cdcc_rate": { + "2025": 0 + }, + "ny_college_tuition_credit": { + "2025": 0 + }, + "ny_college_tuition_credit_eligible": { + "2025": false + }, + "ny_college_tuition_deduction": { + "2025": 0 + }, + "ny_ctc": { + "2025": 0 + }, + "ny_ctc_post_2024": { + "2025": 0 + }, + "ny_ctc_post_2024_base": { + "2025": 0 + }, + "ny_ctc_post_2024_eligible": { + "2025": false + }, + "ny_ctc_post_2024_phase_out": { + "2025": 0 + }, + "ny_ctc_pre_2024": { + "2025": 0 + }, + "ny_ctc_pre_2024_eligible": { + "2025": false + }, + "ny_deductions": { + "2025": 0 + }, + "ny_eitc": { + "2025": 0 + }, + "ny_exemptions": { + "2025": 0 + }, + "ny_geothermal_energy_system_credit": { + "2025": 0 + }, + "ny_household_credit": { + "2025": 0 + }, + "ny_income_tax": { + "2025": 0 + }, + "ny_income_tax_before_credits": { + "2025": 0 + }, + "ny_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ny_inflation_refund_credit": { + "2025": 0 + }, + "ny_itemized_deductions": { + "2025": 0 + }, + "ny_itemized_deductions_higher_incremental_reduction": { + "2025": 0 + }, + "ny_itemized_deductions_incremental_reduction": { + "2025": 0 + }, + "ny_itemized_deductions_lower_incremental_reduction": { + "2025": 0 + }, + "ny_itemized_deductions_max": { + "2025": 0 + }, + "ny_itemized_deductions_reduction": { + "2025": 0 + }, + "ny_itemized_deductions_reduction_applies": { + "2025": false + }, + "ny_itemized_deductions_reduction_based_on_charitable_deduction": { + "2025": 0 + }, + "ny_itemized_deductions_reduction_based_on_charitable_deduction_applies": { + "2025": false + }, + "ny_itemizes": { + "2025": false + }, + "ny_main_income_tax": { + "2025": 0 + }, + "ny_non_refundable_credits": { + "2025": 0 + }, + "ny_qualified_geothermal_energy_system_expenditures": { + "2025": 0 + }, + "ny_qualified_solar_energy_systems_equipment_expenditures": { + "2025": 0 + }, + "ny_real_property_tax_credit": { + "2025": 0 + }, + "ny_refundable_credits": { + "2025": 0 + }, + "ny_solar_energy_systems_equipment_credit": { + "2025": 0 + }, + "ny_standard_deduction": { + "2025": 0 + }, + "ny_supplemental_eitc": { + "2025": 0 + }, + "ny_supplemental_tax": { + "2025": 0 + }, + "ny_taxable_income": { + "2025": 0 + }, + "nyc_cdcc": { + "2025": 0 + }, + "nyc_cdcc_age_restricted_expenses": { + "2025": 0 + }, + "nyc_cdcc_applicable_percentage": { + "2025": 0 + }, + "nyc_cdcc_eligible": { + "2025": false + }, + "nyc_cdcc_share_qualifying_childcare_expenses": { + "2025": 0 + }, + "nyc_eitc": { + "2025": 0 + }, + "nyc_household_credit": { + "2025": 0 + }, + "nyc_income_tax": { + "2025": 0 + }, + "nyc_income_tax_before_credits": { + "2025": 0 + }, + "nyc_income_tax_before_refundable_credits": { + "2025": 0 + }, + "nyc_non_refundable_credits": { + "2025": 0 + }, + "nyc_refundable_credits": { + "2025": 0 + }, + "nyc_school_credit_income": { + "2025": 0 + }, + "nyc_school_tax_credit": { + "2025": 0 + }, + "nyc_school_tax_credit_fixed_amount": { + "2025": 0 + }, + "nyc_school_tax_credit_fixed_amount_eligible": { + "2025": false + }, + "nyc_school_tax_credit_rate_reduction_amount": { + "2025": 0 + }, + "nyc_school_tax_credit_rate_reduction_amount_eligible": { + "2025": false + }, + "nyc_taxable_income": { + "2025": 0 + }, + "nyc_unincorporated_business_credit": { + "2025": 0 + }, + "oh_529_plan_deduction": { + "2025": 0 + }, + "oh_adoption_credit": { + "2025": 0 + }, + "oh_agi": { + "2025": 0 + }, + "oh_cdcc": { + "2025": 0 + }, + "oh_eitc": { + "2025": 0 + }, + "oh_exemption_credit": { + "2025": 0 + }, + "oh_income_tax": { + "2025": 0 + }, + "oh_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "oh_income_tax_before_refundable_credits": { + "2025": 0 + }, + "oh_income_tax_exempt": { + "2025": false + }, + "oh_insured_unreimbursed_medical_care_expenses": { + "2025": 0 + }, + "oh_joint_filing_credit": { + "2025": 0 + }, + "oh_joint_filing_credit_eligible": { + "2025": false + }, + "oh_lump_sum_distribution_credit": { + "2025": 0 + }, + "oh_lump_sum_distribution_credit_eligible": { + "2025": false + }, + "oh_lump_sum_retirement_credit": { + "2025": 0 + }, + "oh_lump_sum_retirement_credit_eligible": { + "2025": false + }, + "oh_modified_agi": { + "2025": 0 + }, + "oh_non_public_school_credits": { + "2025": 0 + }, + "oh_non_refundable_credits": { + "2025": 0 + }, + "oh_partial_non_refundable_credits": { + "2025": 0 + }, + "oh_pension_based_retirement_income_credit": { + "2025": 0 + }, + "oh_pension_based_retirement_income_credit_eligible": { + "2025": false + }, + "oh_personal_exemptions": { + "2025": 0 + }, + "oh_refundable_credits": { + "2025": 0 + }, + "oh_retirement_credit": { + "2025": 0 + }, + "oh_senior_citizen_credit": { + "2025": 0 + }, + "oh_tax_before_joint_filing_credit": { + "2025": 0 + }, + "oh_taxable_income": { + "2025": 0 + }, + "oh_unreimbursed_medical_care_expense_deduction": { + "2025": 0 + }, + "ok_additions": { + "2025": 0 + }, + "ok_adjustments": { + "2025": 0 + }, + "ok_agi": { + "2025": 0 + }, + "ok_agi_subtractions": { + "2025": 0 + }, + "ok_child_care_child_tax_credit": { + "2025": 0 + }, + "ok_count_exemptions": { + "2025": 0 + }, + "ok_eitc": { + "2025": 0 + }, + "ok_exemptions": { + "2025": 0 + }, + "ok_federal_eitc": { + "2025": 0 + }, + "ok_federal_eitc_demographic_eligible": { + "2025": false + }, + "ok_federal_eitc_eligible": { + "2025": false + }, + "ok_federal_eitc_investment_income_eligible": { + "2025": false + }, + "ok_federal_eitc_maximum": { + "2025": 0 + }, + "ok_federal_eitc_phase_in_rate": { + "2025": 0 + }, + "ok_federal_eitc_phase_out_rate": { + "2025": 0 + }, + "ok_federal_eitc_phase_out_start": { + "2025": 0 + }, + "ok_federal_eitc_phased_in": { + "2025": 0 + }, + "ok_federal_eitc_reduction": { + "2025": 0 + }, + "ok_gross_income": { + "2025": 0 + }, + "ok_income_tax": { + "2025": 0 + }, + "ok_income_tax_before_credits": { + "2025": 0 + }, + "ok_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ok_itemized_deductions": { + "2025": 0 + }, + "ok_military_retirement_exclusion": { + "2025": 0 + }, + "ok_non_refundable_credits": { + "2025": 0 + }, + "ok_pension_subtraction": { + "2025": 0 + }, + "ok_ptc": { + "2025": 0 + }, + "ok_refundable_credits": { + "2025": 0 + }, + "ok_standard_deduction": { + "2025": 0 + }, + "ok_stc": { + "2025": 0 + }, + "ok_taxable_income": { + "2025": 0 + }, + "ok_use_tax": { + "2025": 0 + }, + "older_spouse_birth_year": { + "2025": 1985 + }, + "or_additions": { + "2025": 0 + }, + "or_agi": { + "2025": 0 + }, + "or_cdcc_relevant_expenses": { + "2025": 0 + }, + "or_ctc": { + "2025": 0 + }, + "or_deductions": { + "2025": 0 + }, + "or_disabled_child_dependent_exemptions": { + "2025": 0 + }, + "or_eitc": { + "2025": 0 + }, + "or_exemption_credit": { + "2025": 0 + }, + "or_federal_pension_subtraction": { + "2025": 0 + }, + "or_federal_tax_liability_subtraction": { + "2025": 0 + }, + "or_income_subtractions": { + "2025": 0 + }, + "or_income_tax": { + "2025": 0 + }, + "or_income_tax_before_credits": { + "2025": 0 + }, + "or_income_tax_before_refundable_credits": { + "2025": 0 + }, + "or_itemized_deductions": { + "2025": 0 + }, + "or_kicker": { + "2025": 0 + }, + "or_non_refundable_credits": { + "2025": 0 + }, + "or_refundable_credits": { + "2025": 0 + }, + "or_regular_exemptions": { + "2025": 0 + }, + "or_retirement_credit": { + "2025": 0 + }, + "or_retirement_credit_household_income": { + "2025": 0 + }, + "or_severely_disabled_exemptions": { + "2025": 0 + }, + "or_standard_deduction": { + "2025": 0 + }, + "or_tax_before_credits_in_prior_year": { + "2025": 0 + }, + "or_taxable_income": { + "2025": 0 + }, + "or_wfhdc_eligibility_category": { + "2025": "NONE" + }, + "or_wfhdc_eligible": { + "2025": false + }, + "or_wfhdc_employment_eligible": { + "2025": false + }, + "or_wfhdc_has_qualified_individual_eligible": { + "2025": false + }, + "or_wfhdc_household_income": { + "2025": 0 + }, + "or_wfhdc_household_size_eligible": { + "2025": false + }, + "or_wfhdc_income_category": { + "2025": 0 + }, + "or_wfhdc_income_eligible": { + "2025": false + }, + "or_working_family_household_and_dependent_care_credit": { + "2025": 0 + }, + "other_net_gain": { + "2025": 0 + }, + "overtime_income_deduction": { + "2025": 0 + }, + "overtime_income_deduction_ssn_requirement_met": { + "2025": true + }, + "pa_adjusted_taxable_income": { + "2025": 0 + }, + "pa_cdcc": { + "2025": 0 + }, + "pa_eligibility_income": { + "2025": 0 + }, + "pa_income_tax": { + "2025": 0 + }, + "pa_income_tax_after_forgiveness": { + "2025": 0 + }, + "pa_income_tax_before_forgiveness": { + "2025": 0 + }, + "pa_refundable_tax_credits": { + "2025": 0 + }, + "pa_tax_deductions": { + "2025": 0 + }, + "pa_tax_forgiveness_amount": { + "2025": 0 + }, + "pa_tax_forgiveness_rate": { + "2025": 0 + }, + "pa_total_taxable_income": { + "2025": 0 + }, + "pa_use_tax": { + "2025": 0 + }, + "pell_grant_calculation_method": { + "2025": "SAI" + }, + "pell_grant_dependents_in_college": { + "2025": 0 + }, + "pell_grant_head_assets": { + "2025": 0 + }, + "pell_grant_primary_income": { + "2025": 0 + }, + "positive_agi": { + "2025": 160275 + }, + "positive_gross_income": { + "2025": 160275 + }, + "pr_agi": { + "2025": 0 + }, + "pr_casualty_loss_deduction": { + "2025": 0 + }, + "pr_charitable_deduction": { + "2025": 0 + }, + "pr_dependents_exemption": { + "2025": 0 + }, + "pr_earned_income_credit": { + "2025": 0 + }, + "pr_earned_income_credit_eligible": { + "2025": true + }, + "pr_education_deduction": { + "2025": 0 + }, + "pr_education_deduction_beneficiary_count": { + "2025": 0 + }, + "pr_gross_income": { + "2025": 0 + }, + "pr_low_income_credit": { + "2025": 0 + }, + "pr_low_income_credit_eligible": { + "2025": false + }, + "pr_low_income_credit_eligible_people": { + "2025": 0 + }, + "pr_medical_expense_deduction": { + "2025": 0 + }, + "pr_mortgage_deduction": { + "2025": 0 + }, + "pr_personal_exemption": { + "2025": 0 + }, + "pr_refundable_credits": { + "2025": 0 + }, + "pr_refundable_ctc": { + "2025": 4400 + }, + "pr_refundable_ctc_social_security_tax": { + "2025": 12261.037 + }, + "premium_tax_credit": { + "2025": 8232.819 + }, + "prior_energy_efficient_home_improvement_credits": { + "2025": 0 + }, + "prior_energy_efficient_window_credits": { + "2025": 0 + }, + "property_sales_net_capital_gain": { + "2025": 0 + }, + "puerto_rico_income": { + "2025": 0 + }, + "purchased_qualifying_new_clean_vehicle": { + "2025": false + }, + "purchased_qualifying_used_clean_vehicle": { + "2025": false + }, + "qualified_battery_storage_technology_expenditures": { + "2025": 0 + }, + "qualified_business_income_deduction": { + "2025": 0 + }, + "qualified_furnace_or_hot_water_boiler_expenditures": { + "2025": 0 + }, + "qualified_retirement_penalty": { + "2025": 0 + }, + "recapture_of_investment_credit": { + "2025": 0 + }, + "recovery_rebate_credit": { + "2025": 0 + }, + "refundable_american_opportunity_credit": { + "2025": 0 + }, + "refundable_ctc": { + "2025": 0 + }, + "refundable_payroll_tax_credit": { + "2025": 0 + }, + "regular_tax_before_credits": { + "2025": 18158.5 + }, + "rent_is_shared_with_another_tax_unit": { + "2025": false + }, + "rents": { + "2025": false + }, + "reported_salt": { + "2025": 9740.635 + }, + "residential_clean_energy_credit": { + "2025": 0 + }, + "residential_clean_energy_credit_credit_limit": { + "2025": 18158.5 + }, + "residential_clean_energy_credit_potential": { + "2025": 0 + }, + "residential_efficiency_electrification_rebate": { + "2025": 0 + }, + "residential_efficiency_electrification_retrofit_energy_savings": { + "2025": 0 + }, + "residential_efficiency_electrification_retrofit_expenditures": { + "2025": 0 + }, + "ri_additions": { + "2025": 0 + }, + "ri_agi": { + "2025": 0 + }, + "ri_cdcc": { + "2025": 0 + }, + "ri_child_tax_rebate": { + "2025": 0 + }, + "ri_child_tax_rebate_eligible": { + "2025": false + }, + "ri_eitc": { + "2025": 0 + }, + "ri_exemptions": { + "2025": 0 + }, + "ri_income_tax": { + "2025": 0 + }, + "ri_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "ri_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ri_non_refundable_credits": { + "2025": 0 + }, + "ri_property_tax_credit": { + "2025": 0 + }, + "ri_property_tax_credit_eligible": { + "2025": false + }, + "ri_property_tax_household_income": { + "2025": 0 + }, + "ri_refundable_credits": { + "2025": 0 + }, + "ri_retirement_income_subtraction": { + "2025": 0 + }, + "ri_retirement_income_subtraction_eligible": { + "2025": false + }, + "ri_social_security_modification": { + "2025": 0 + }, + "ri_social_security_modification_eligible": { + "2025": false + }, + "ri_standard_deduction": { + "2025": 0 + }, + "ri_standard_deduction_applicable_percentage": { + "2025": 0 + }, + "ri_subtractions": { + "2025": 0 + }, + "ri_taxable_income": { + "2025": 0 + }, + "ri_tuition_saving_program_contribution_subtraction": { + "2025": 0 + }, + "rrc_arpa": { + "2025": 0 + }, + "rrc_caa": { + "2025": 0 + }, + "rrc_cares": { + "2025": 0 + }, + "salt": { + "2025": 9740.635 + }, + "salt_cap": { + "2025": 40000 + }, + "salt_deduction": { + "2025": 9740.635 + }, + "salt_refund_last_year": { + "2025": 0 + }, + "savers_credit": { + "2025": 0 + }, + "savers_credit_credit_limit": { + "2025": 18158.5 + }, + "savers_credit_potential": { + "2025": 0 + }, + "sc_additions": { + "2025": 0 + }, + "sc_cdcc": { + "2025": 0 + }, + "sc_dependent_exemption": { + "2025": 0 + }, + "sc_eitc": { + "2025": 0 + }, + "sc_income_tax": { + "2025": 0 + }, + "sc_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "sc_income_tax_before_refundable_credits": { + "2025": 0 + }, + "sc_military_deduction": { + "2025": 0 + }, + "sc_net_capital_gain_deduction": { + "2025": 0 + }, + "sc_non_refundable_credits": { + "2025": 0 + }, + "sc_refundable_credits": { + "2025": 0 + }, + "sc_retirement_deduction": { + "2025": 0 + }, + "sc_senior_exemption": { + "2025": 0 + }, + "sc_state_tax_addback": { + "2025": 0 + }, + "sc_subtractions": { + "2025": 0 + }, + "sc_taxable_income": { + "2025": 0 + }, + "sc_two_wage_earner_credit": { + "2025": 0 + }, + "sc_young_child_deduction": { + "2025": 0 + }, + "section_22_income": { + "2025": 0 + }, + "self_employed_health_insurance_ald": { + "2025": 0 + }, + "self_employed_pension_contribution_ald": { + "2025": 0 + }, + "self_employment_tax_ald": { + "2025": 0 + }, + "separate_filer_itemizes": { + "2025": false + }, + "slcsp": { + "2025": 21856.193 + }, + "slcsp_age_curve_applies": { + "2025": true + }, + "slcsp_family_tier_amount": { + "2025": 0 + }, + "slcsp_family_tier_applies": { + "2025": false + }, + "slcsp_family_tier_category": { + "2025": "INDIVIDUAL_AGE_RATED" + }, + "slcsp_family_tier_multiplier": { + "2025": 0 + }, + "small_wind_energy_property_expenditures": { + "2025": 0 + }, + "solar_electric_property_expenditures": { + "2025": 0 + }, + "solar_water_heating_property_expenditures": { + "2025": 0 + }, + "specified_possession_income": { + "2025": 0 + }, + "spouse_earned": { + "2025": 1385 + }, + "spouse_is_dependent_elsewhere": { + "2025": false + }, + "spouse_is_disabled": { + "2025": false + }, + "spouse_separate_adjusted_gross_income": { + "2025": 0 + }, + "spouse_separate_tax_unit_size": { + "2025": 0 + }, + "standard_deduction": { + "2025": 31500 + }, + "state_agi": { + "2025": 160275 + }, + "state_and_local_sales_or_income_tax": { + "2025": 9740.635 + }, + "state_cdcc": { + "2025": 0 + }, + "state_ctc": { + "2025": 0 + }, + "state_eitc": { + "2025": 0 + }, + "state_filing_status_if_married_filing_separately_on_same_return": { + "2025": "SEPARATE" + }, + "state_income_tax": { + "2025": 7328.8623 + }, + "state_income_tax_before_refundable_credits": { + "2025": 7508.8623 + }, + "state_itemized_deductions": { + "2025": 0 + }, + "state_non_refundable_credits": { + "2025": 0 + }, + "state_property_tax_credit": { + "2025": 0 + }, + "state_refundable_credits": { + "2025": 180 + }, + "state_sales_tax": { + "2025": 1325.924 + }, + "state_sales_tax_income_bracket": { + "2025": 13 + }, + "state_standard_deduction": { + "2025": 31500 + }, + "state_taxable_income": { + "2025": 118575 + }, + "state_withheld_income_tax": { + "2025": 9740.635 + }, + "surviving_spouse_eligible": { + "2025": false + }, + "takes_up_aca_if_eligible": { + "2025": true + }, + "takes_up_dc_ptc": { + "2025": true + }, + "takes_up_eitc": { + "2025": true + }, + "tax_exempt_social_security": { + "2025": 0 + }, + "tax_liability_if_itemizing": { + "2025": 18545.559 + }, + "tax_liability_if_not_itemizing": { + "2025": 13758.5 + }, + "tax_unit_child_dependents": { + "2025": 2 + }, + "tax_unit_childcare_expenses": { + "2025": 0 + }, + "tax_unit_children": { + "2025": 2 + }, + "tax_unit_combined_income_for_social_security_taxability": { + "2025": 160275 + }, + "tax_unit_count": { + "2025": 1 + }, + "tax_unit_count_dependents": { + "2025": 2 + }, + "tax_unit_dependents": { + "2025": 2 + }, + "tax_unit_earned_income": { + "2025": 160275 + }, + "tax_unit_earned_income_last_year": { + "2025": 0 + }, + "tax_unit_fpg": { + "2025": 32150 + }, + "tax_unit_grandparents": { + "2025": 0 + }, + "tax_unit_household_id": { + "2025": 0 + }, + "tax_unit_id": { + "2025": 0 + }, + "tax_unit_income_ami_ratio": { + "2025": 0 + }, + "tax_unit_is_filer": { + "2025": 1 + }, + "tax_unit_is_joint": { + "2025": true + }, + "tax_unit_itemizes": { + "2025": false + }, + "tax_unit_married": { + "2025": true + }, + "tax_unit_medicaid_income_level": { + "2025": 4.9852257 + }, + "tax_unit_parents": { + "2025": 0 + }, + "tax_unit_partnership_s_corp_income": { + "2025": 0 + }, + "tax_unit_rental_income": { + "2025": 0 + }, + "tax_unit_size": { + "2025": 4 + }, + "tax_unit_social_security": { + "2025": 0 + }, + "tax_unit_ss_combined_income_excess": { + "2025": 128275 + }, + "tax_unit_ssi": { + "2025": 0 + }, + "tax_unit_state": { + "2025": "ME" + }, + "tax_unit_stillborn_children": { + "2025": 0 + }, + "tax_unit_taxable_social_security": { + "2025": 0 + }, + "tax_unit_taxable_unemployment_compensation": { + "2025": 0 + }, + "tax_unit_unemployment_compensation": { + "2025": 0 + }, + "tax_unit_weight": { + "2025": 0 + }, + "taxable_income": { + "2025": 128775 + }, + "taxable_income_deductions": { + "2025": 31500 + }, + "taxable_income_deductions_if_itemizing": { + "2025": 9740.635 + }, + "taxable_income_deductions_if_not_itemizing": { + "2025": 31500 + }, + "taxable_income_less_qbid": { + "2025": 128775 + }, + "taxable_ss_magi": { + "2025": 160275 + }, + "taxable_uc_agi": { + "2025": 160275 + }, + "taxpayer_has_itin": { + "2025": true + }, + "taxsim_age1": { + "2025": 10 + }, + "taxsim_age2": { + "2025": 12 + }, + "taxsim_age3": { + "2025": 0 + }, + "taxsim_childcare": { + "2025": 0 + }, + "taxsim_dep13": { + "2025": 2 + }, + "taxsim_dep17": { + "2025": 2 + }, + "taxsim_dep18": { + "2025": 2 + }, + "taxsim_depx": { + "2025": 2 + }, + "taxsim_dividends": { + "2025": 0 + }, + "taxsim_fiitax": { + "2025": 13758.5 + }, + "taxsim_gssi": { + "2025": 0 + }, + "taxsim_intrec": { + "2025": 0 + }, + "taxsim_ltcg": { + "2025": 0 + }, + "taxsim_mstat": { + "2025": 2 + }, + "taxsim_page": { + "2025": 40 + }, + "taxsim_pbusinc": { + "2025": 0 + }, + "taxsim_pensions": { + "2025": 0 + }, + "taxsim_pprofinc": { + "2025": 0 + }, + "taxsim_psemp": { + "2025": 0 + }, + "taxsim_pui": { + "2025": 0 + }, + "taxsim_pwages": { + "2025": 158890 + }, + "taxsim_sage": { + "2025": 40 + }, + "taxsim_sbusinc": { + "2025": 0 + }, + "taxsim_scorp": { + "2025": 0 + }, + "taxsim_siitax": { + "2025": 7328.8623 + }, + "taxsim_sprofinc": { + "2025": 0 + }, + "taxsim_ssemp": { + "2025": 0 + }, + "taxsim_state": { + "2025": 0 + }, + "taxsim_stcg": { + "2025": 0 + }, + "taxsim_swages": { + "2025": 1385 + }, + "taxsim_taxsimid": { + "2025": 0 + }, + "taxsim_tfica": { + "2025": 12261.037 + }, + "taxsim_ui": { + "2025": 0 + }, + "taxsim_v10": { + "2025": 160275 + }, + "taxsim_v11": { + "2025": 0 + }, + "taxsim_v12": { + "2025": 0 + }, + "taxsim_v18": { + "2025": 128775 + }, + "taxsim_v25": { + "2025": 0 + }, + "taxsim_year": { + "2025": 2025 + }, + "tip_income_deduction": { + "2025": 0 + }, + "tip_income_deduction_ssn_requirement_met": { + "2025": true + }, + "total_itemized_taxable_income_deductions": { + "2025": 9740.635 + }, + "total_misc_deductions": { + "2025": 0 + }, + "tuition_and_fees": { + "2025": 0 + }, + "tuition_and_fees_deduction": { + "2025": 0 + }, + "tuition_and_fees_deduction_eligible": { + "2025": true + }, + "unrecaptured_section_1250_gain": { + "2025": 0 + }, + "unreported_payroll_tax": { + "2025": 0 + }, + "us_govt_interest": { + "2025": 0 + }, + "used_clean_vehicle_credit": { + "2025": 0 + }, + "used_clean_vehicle_credit_credit_limit": { + "2025": 0 + }, + "used_clean_vehicle_credit_eligible": { + "2025": false + }, + "used_clean_vehicle_credit_potential": { + "2025": 0 + }, + "used_clean_vehicle_sale_price": { + "2025": 0 + }, + "ut_additions": { + "2025": 0 + }, + "ut_at_home_parent_credit": { + "2025": 0 + }, + "ut_at_home_parent_credit_agi_eligible": { + "2025": false + }, + "ut_claims_retirement_credit": { + "2025": false + }, + "ut_ctc": { + "2025": 0 + }, + "ut_eitc": { + "2025": 0 + }, + "ut_federal_deductions_for_taxpayer_credit": { + "2025": 0 + }, + "ut_income_tax": { + "2025": 0 + }, + "ut_income_tax_before_credits": { + "2025": 0 + }, + "ut_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "ut_income_tax_before_refundable_credits": { + "2025": 0 + }, + "ut_income_tax_exempt": { + "2025": false + }, + "ut_non_refundable_credits": { + "2025": 0 + }, + "ut_personal_exemption": { + "2025": 0 + }, + "ut_personal_exemption_additional_dependents": { + "2025": 0 + }, + "ut_refundable_credits": { + "2025": 0 + }, + "ut_retirement_credit": { + "2025": 0 + }, + "ut_retirement_credit_max": { + "2025": 0 + }, + "ut_ss_benefits_credit": { + "2025": 0 + }, + "ut_ss_benefits_credit_max": { + "2025": 0 + }, + "ut_state_tax_refund": { + "2025": 0 + }, + "ut_subtractions": { + "2025": 0 + }, + "ut_taxable_income": { + "2025": 0 + }, + "ut_taxpayer_credit": { + "2025": 0 + }, + "ut_taxpayer_credit_max": { + "2025": 0 + }, + "ut_taxpayer_credit_phase_out_income": { + "2025": 0 + }, + "ut_taxpayer_credit_reduction": { + "2025": 0 + }, + "ut_total_dependents": { + "2025": 0 + }, + "ut_total_income": { + "2025": 0 + }, + "utilities_included_in_rent": { + "2025": false + }, + "va_additions": { + "2025": 0 + }, + "va_age_deduction": { + "2025": 0 + }, + "va_age_deduction_agi": { + "2025": 0 + }, + "va_aged_blind_exemption": { + "2025": 0 + }, + "va_agi": { + "2025": 0 + }, + "va_capped_state_and_local_sales_or_income_tax": { + "2025": 9740.635 + }, + "va_child_dependent_care_deduction_cdcc_limit": { + "2025": 0 + }, + "va_child_dependent_care_expense_deduction": { + "2025": 0 + }, + "va_claims_refundable_eitc": { + "2025": false + }, + "va_deductions": { + "2025": 0 + }, + "va_disability_income_subtraction": { + "2025": 0 + }, + "va_eitc": { + "2025": 0 + }, + "va_federal_state_employees_subtraction": { + "2025": 0 + }, + "va_income_tax": { + "2025": 0 + }, + "va_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "va_income_tax_before_refundable_credits": { + "2025": 0 + }, + "va_income_tax_if_claiming_non_refundable_eitc": { + "2025": 0 + }, + "va_income_tax_if_claiming_refundable_eitc": { + "2025": 0 + }, + "va_itemized_deductions": { + "2025": 0 + }, + "va_low_income_tax_credit": { + "2025": 0 + }, + "va_low_income_tax_credit_agi_eligible": { + "2025": false + }, + "va_low_income_tax_credit_eligible": { + "2025": false + }, + "va_military_basic_pay_subtraction": { + "2025": 0 + }, + "va_military_benefit_subtraction": { + "2025": 0 + }, + "va_must_file": { + "2025": 0 + }, + "va_national_guard_subtraction": { + "2025": 0 + }, + "va_non_refundable_credits": { + "2025": 0 + }, + "va_non_refundable_eitc": { + "2025": 0 + }, + "va_non_refundable_eitc_if_claimed": { + "2025": 0 + }, + "va_personal_exemption": { + "2025": 0 + }, + "va_rebate": { + "2025": 0 + }, + "va_reduced_itemized_deductions": { + "2025": 0 + }, + "va_refundable_credits": { + "2025": 0 + }, + "va_refundable_eitc": { + "2025": 0 + }, + "va_refundable_eitc_if_claimed": { + "2025": 0 + }, + "va_spouse_tax_adjustment": { + "2025": 0 + }, + "va_spouse_tax_adjustment_eligible": { + "2025": false + }, + "va_standard_deduction": { + "2025": 0 + }, + "va_subtractions": { + "2025": 0 + }, + "va_taxable_income": { + "2025": 0 + }, + "va_total_exemptions": { + "2025": 0 + }, + "vt_additions": { + "2025": 0 + }, + "vt_agi": { + "2025": 0 + }, + "vt_amt": { + "2025": 0 + }, + "vt_capital_gains_exclusion": { + "2025": 0 + }, + "vt_cdcc": { + "2025": 0 + }, + "vt_charitable_contribution_credit": { + "2025": 0 + }, + "vt_child_care_contributions": { + "2025": 0 + }, + "vt_csrs_retirement_pay_exclusion": { + "2025": 0 + }, + "vt_ctc": { + "2025": 0 + }, + "vt_eitc": { + "2025": 0 + }, + "vt_elderly_or_disabled_credit": { + "2025": 0 + }, + "vt_income_tax": { + "2025": 0 + }, + "vt_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "vt_income_tax_before_refundable_credits": { + "2025": 0 + }, + "vt_low_income_cdcc": { + "2025": 0 + }, + "vt_low_income_cdcc_eligible": { + "2025": false + }, + "vt_medical_expense_deduction": { + "2025": 0 + }, + "vt_military_retirement_cap_based_exemption": { + "2025": 0 + }, + "vt_military_retirement_income_based_exemption": { + "2025": 0 + }, + "vt_military_retirement_pay_exclusion": { + "2025": 0 + }, + "vt_non_refundable_credits": { + "2025": 0 + }, + "vt_normal_income_tax": { + "2025": 0 + }, + "vt_percentage_capital_gains_exclusion": { + "2025": 0 + }, + "vt_personal_exemptions": { + "2025": 0 + }, + "vt_refundable_credits": { + "2025": 0 + }, + "vt_renter_credit": { + "2025": 0 + }, + "vt_renter_credit_countable_tax_exempt_ss": { + "2025": 0 + }, + "vt_renter_credit_income": { + "2025": 0 + }, + "vt_retirement_income_exemption": { + "2025": 0 + }, + "vt_retirement_income_exemption_eligible": { + "2025": false + }, + "vt_standard_deduction": { + "2025": 0 + }, + "vt_subtractions": { + "2025": 0 + }, + "vt_taxable_income": { + "2025": 0 + }, + "vt_veteran_tax_credit": { + "2025": 0 + }, + "wa_capital_gains_tax": { + "2025": 0 + }, + "wa_income_tax": { + "2025": 0 + }, + "wa_income_tax_before_refundable_credits": { + "2025": 0 + }, + "wa_refundable_credits": { + "2025": 0 + }, + "wa_working_families_tax_credit": { + "2025": 0 + }, + "wagering_losses_deduction": { + "2025": 0 + }, + "wi_additional_exemption": { + "2025": 0 + }, + "wi_additions": { + "2025": 0 + }, + "wi_agi": { + "2025": 0 + }, + "wi_base_exemption": { + "2025": 0 + }, + "wi_capital_gain_loss_addition": { + "2025": 0 + }, + "wi_capital_gain_loss_subtraction": { + "2025": 0 + }, + "wi_capital_loss": { + "2025": 0 + }, + "wi_childcare_expense_credit": { + "2025": 0 + }, + "wi_childcare_expense_subtraction": { + "2025": 0 + }, + "wi_earned_income_credit": { + "2025": 0 + }, + "wi_exemption": { + "2025": 0 + }, + "wi_homestead_credit": { + "2025": 0 + }, + "wi_homestead_eligible": { + "2025": false + }, + "wi_homestead_income": { + "2025": 0 + }, + "wi_homestead_property_tax": { + "2025": 0 + }, + "wi_income_subtractions": { + "2025": 0 + }, + "wi_income_tax": { + "2025": 0 + }, + "wi_income_tax_before_credits": { + "2025": 0 + }, + "wi_income_tax_before_refundable_credits": { + "2025": 0 + }, + "wi_itemized_deduction_credit": { + "2025": 0 + }, + "wi_married_couple_credit": { + "2025": 0 + }, + "wi_non_refundable_credits": { + "2025": 0 + }, + "wi_property_tax_credit": { + "2025": 0 + }, + "wi_refundable_credits": { + "2025": 0 + }, + "wi_retirement_income_subtraction": { + "2025": 0 + }, + "wi_retirement_income_subtraction_agi_eligible": { + "2025": false + }, + "wi_standard_deduction": { + "2025": 0 + }, + "wi_taxable_income": { + "2025": 0 + }, + "wi_unemployment_compensation_subtraction": { + "2025": 0 + }, + "wv_additions": { + "2025": 0 + }, + "wv_agi": { + "2025": 0 + }, + "wv_cdcc": { + "2025": 0 + }, + "wv_gross_household_income": { + "2025": 0 + }, + "wv_homestead_excess_property_tax_credit": { + "2025": 0 + }, + "wv_homestead_excess_property_tax_credit_eligible": { + "2025": false + }, + "wv_homestead_exemption": { + "2025": 0 + }, + "wv_income_tax": { + "2025": 0 + }, + "wv_income_tax_before_non_refundable_credits": { + "2025": 0 + }, + "wv_income_tax_before_refundable_credits": { + "2025": 0 + }, + "wv_low_income_earned_income_exclusion": { + "2025": 0 + }, + "wv_low_income_earned_income_exclusion_eligible": { + "2025": false + }, + "wv_low_income_family_tax_credit": { + "2025": 0 + }, + "wv_low_income_family_tax_credit_agi": { + "2025": 0 + }, + "wv_low_income_family_tax_credit_eligible": { + "2025": false + }, + "wv_low_income_family_tax_credit_fpg": { + "2025": 0 + }, + "wv_non_refundable_credits": { + "2025": 0 + }, + "wv_personal_exemption": { + "2025": 0 + }, + "wv_public_pension_subtraction": { + "2025": 0 + }, + "wv_refundable_credits": { + "2025": 0 + }, + "wv_sctc": { + "2025": 0 + }, + "wv_sctc_eligible": { + "2025": false + }, + "wv_senior_citizen_disability_deduction": { + "2025": 0 + }, + "wv_social_security_benefits_subtraction": { + "2025": 0 + }, + "wv_social_security_benefits_subtraction_eligible": { + "2025": false + }, + "wv_subtractions": { + "2025": 0 + }, + "wv_taxable_income": { + "2025": 0 + }, + "wv_taxable_property_value": { + "2025": 0 } } - } \ No newline at end of file + } +} diff --git a/app/src/pages/Blog.page.tsx b/app/src/pages/Blog.page.tsx index a0521272e..448593752 100644 --- a/app/src/pages/Blog.page.tsx +++ b/app/src/pages/Blog.page.tsx @@ -114,7 +114,7 @@ export default function BlogPage() { {/* Header Section */} - + {post.description} - {imageUrl && ( + {imageUrl && !post.hideHeaderImage && ( {post.title}
- {imageUrl && ( + {imageUrl && !post.hideHeaderImage && ( {post.title}` **Parameters**: + - `setState`: State setter function - `policySelector`: Extract policy from state - `policyUpdater`: Update policy in state @@ -144,6 +150,7 @@ Factory functions that generate reusable callbacks for state management. - `returnMode`: Mode to return to after completion **Returns**: + ```typescript { updateLabel: (label: string) => void @@ -155,6 +162,7 @@ Factory functions that generate reusable callbacks for state management. ``` **Example**: + ```typescript const policyCallbacks = createPolicyCallbacks( setState, @@ -168,6 +176,7 @@ const policyCallbacks = createPolicyCallbacks( ### `createPopulationCallbacks` **Parameters**: + - `setState`: State setter function - `populationSelector`: Extract population from state - `populationUpdater`: Update population in state @@ -176,6 +185,7 @@ const policyCallbacks = createPolicyCallbacks( - `labelMode`: Mode to navigate to for labeling **Returns**: + ```typescript { updateLabel: (label: string) => void @@ -190,6 +200,7 @@ const policyCallbacks = createPolicyCallbacks( ### `createSimulationCallbacks` **Parameters**: + - `setState`: State setter function - `simulationSelector`: Extract simulation from state - `simulationUpdater`: Update simulation in state @@ -197,6 +208,7 @@ const policyCallbacks = createPolicyCallbacks( - `returnMode`: Mode to return to after completion **Returns**: + ```typescript { updateLabel: (label: string) => void @@ -208,6 +220,7 @@ const policyCallbacks = createPolicyCallbacks( ### `createReportCallbacks` **Parameters**: + - `setState`: State setter function for report state - `navigateToMode`: Navigation function - `activeSimulationIndex`: Currently active simulation (0 or 1) @@ -215,6 +228,7 @@ const policyCallbacks = createPolicyCallbacks( - `setupMode`: Mode to return to after operations (typically REPORT_SETUP) **Returns**: + ```typescript { updateLabel: (label: string) => void @@ -226,6 +240,7 @@ const policyCallbacks = createPolicyCallbacks( ``` **Example**: + ```typescript const reportCallbacks = createReportCallbacks( setReportState, @@ -245,6 +260,7 @@ const reportCallbacks = createReportCallbacks( **Type Parameters**: `` - The enum type for view modes **Returns**: + ```typescript { currentMode: TMode @@ -258,6 +274,7 @@ const reportCallbacks = createReportCallbacks( ``` **Example**: + ```typescript const { currentMode, navigateToMode, goBack } = usePathwayNavigation( SimulationViewMode.SIMULATION_LABEL @@ -275,6 +292,7 @@ Utilities to convert API/enhanced data into StateProps format. Converts `EnhancedUserSimulation` → `SimulationStateProps` **Features**: + - Reconstructs nested policy from `enhancedSimulation.policy` - Reconstructs nested population from household or geography - Handles populationType detection @@ -285,6 +303,7 @@ Converts `EnhancedUserSimulation` → `SimulationStateProps` Converts `policy_json` format → `PolicyStateProps` **Features**: + - Converts object notation to `Parameter[]` array - Handles value interval formatting - Normalizes date fields (start/startDate, end/endDate) @@ -369,30 +388,32 @@ To create a new pathway (e.g., `SimulationPathwayWrapper`): ```typescript import { usePathwayNavigation } from '@/hooks/usePathwayNavigation'; +// Import reusable views +import SimulationLabelView from '@/pathways/report/views/simulation/SimulationLabelView'; +import SimulationSetupView from '@/pathways/report/views/simulation/SimulationSetupView'; +import { + PolicyViewMode, + PopulationViewMode, + SimulationViewMode, +} from '@/types/pathwayModes/SharedViewModes'; import { createPolicyCallbacks, createPopulationCallbacks, + createReportCallbacks, // Only for report pathways createSimulationCallbacks, - createReportCallbacks // Only for report pathways } from '@/utils/pathwayCallbacks'; -import { PolicyViewMode, PopulationViewMode, SimulationViewMode } from '@/types/pathwayModes/SharedViewModes'; -// Import reusable views -import SimulationLabelView from '@/pathways/report/views/simulation/SimulationLabelView'; -import SimulationSetupView from '@/pathways/report/views/simulation/SimulationSetupView'; // ... etc ``` ### 2. Define State Management ```typescript -const [simulationState, setSimulationState] = useState( - () => initializeSimulationState(countryId) +const [simulationState, setSimulationState] = useState(() => + initializeSimulationState(countryId) ); -const { currentMode, navigateToMode } = usePathwayNavigation( - SimulationViewMode.SIMULATION_LABEL -); +const { currentMode, navigateToMode } = usePathwayNavigation(SimulationViewMode.SIMULATION_LABEL); ``` ### 3. Create Callbacks Using Factories diff --git a/app/src/styles/stylesheets/RichTextBlock.css b/app/src/styles/stylesheets/RichTextBlock.css index dec83673b..9b3c154ee 100644 --- a/app/src/styles/stylesheets/RichTextBlock.css +++ b/app/src/styles/stylesheets/RichTextBlock.css @@ -2,7 +2,14 @@ provides no way to provide styling to child components natively */ .rich-text-block p { - font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-family: + Roboto, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Helvetica, + Arial, + sans-serif; font-size: 16px; line-height: 1.625; margin-bottom: 16px; diff --git a/app/src/tests/CLAUDE.md b/app/src/tests/CLAUDE.md index de0da6158..39915c591 100644 --- a/app/src/tests/CLAUDE.md +++ b/app/src/tests/CLAUDE.md @@ -1,13 +1,16 @@ # Testing Conventions ## Test commands + - Run tests: `npm test` or `npm run vitest` - Watch mode: `npm run vitest:watch` - With coverage: `npm run vitest -- --coverage` - Full check: `npm run test-all` (includes linting & typecheck) ## Writing tests + 1. **Always use @test-utils**: Import `render` and other utilities from `@test-utils`, not `@testing-library/react` + ```typescript import { render, screen, userEvent } from '@test-utils'; ``` @@ -16,7 +19,7 @@ - `unit` for unit tests (most common) - `integration` for integration tests - Other types as needed - + Examples: - `src/components/Button.tsx` → `src/tests/unit/components/Button.test.tsx` - `src/hooks/useAuth.ts` → `src/tests/unit/hooks/useAuth.test.ts` @@ -24,6 +27,7 @@ - API integration test → `src/tests/integration/api/PolicyEngine.test.ts` 3. **Test naming**: Use Given-When-Then pattern for clear, descriptive test names + ```typescript test('given user clicks button then callback is invoked', async () => {}); test('given invalid props then error message displays', () => {}); @@ -31,20 +35,21 @@ ``` 4. **Basic test structure** with Given-When-Then code organization: + ```typescript import { describe, test, expect, vi } from 'vitest'; import { render, screen, userEvent } from '@test-utils'; - + describe('ComponentName', () => { test('given user clicks button then callback is invoked', async () => { // Given const user = userEvent.setup(); const handleClick = vi.fn(); render(); - + // When await user.click(screen.getByRole('button', { name: /click me/i })); - + // Then expect(handleClick).toHaveBeenCalled(); }); @@ -52,26 +57,28 @@ ``` 5. **Use accessibility selectors**: Test how users (including screen readers) interact with your app - + **Query priority** (most to least preferred): + ```typescript // 1. Best - Tests if element is properly accessible - screen.getByRole('button', { name: /submit/i }) // Ensures it's an actual button - screen.getByRole('textbox', { name: /email/i }) // Ensures input is labeled - + screen.getByRole('button', { name: /submit/i }); // Ensures it's an actual button + screen.getByRole('textbox', { name: /email/i }); // Ensures input is labeled + // 2. Good - Form labels and visible text - screen.getByLabelText('Email address') // Ensures form has labels - screen.getByText('Welcome back!') // Tests visible content - + screen.getByLabelText('Email address'); // Ensures form has labels + screen.getByText('Welcome back!'); // Tests visible content + // 3. Avoid - Implementation details that can break - screen.getByTestId('submit-button') // Breaks if test-id changes - screen.getByClassName('btn-primary') // Breaks if CSS changes - screen.getById('email-input') // Breaks if ID changes + screen.getByTestId('submit-button'); // Breaks if test-id changes + screen.getByClassName('btn-primary'); // Breaks if CSS changes + screen.getById('email-input'); // Breaks if ID changes ``` - + **Why this matters**: If a screen reader can't find your element, your test shouldn't be able to either. This ensures both working tests and accessible components. 6. **Mocks and fixtures**: Place all mocks in `src/tests/fixtures/` mirroring the source structure + ``` src/tests/fixtures/ ├── api/ @@ -81,49 +88,52 @@ └── hooks/ └── useAuthMocks.ts ``` - + **Fixture best practices**: - **Use descriptive constants**: Define constants that explain their purpose + ```typescript // Good - Clear what each ID represents export const EXISTING_HOUSEHOLD_ID = '12345'; export const NON_EXISTENT_HOUSEHOLD_ID = '99999'; export const NEW_HOUSEHOLD_ID = 'household-123'; - + // Bad - Magic numbers/strings in tests const householdId = '12345'; // What does this represent? ``` - + - **Group related constants**: Organize constants by their domain + ```typescript export const TEST_COUNTRIES = { US: 'us', UK: 'uk', CA: 'ca', } as const; - + export const HTTP_STATUS = { OK: 200, NOT_FOUND: 404, INTERNAL_SERVER_ERROR: 500, } as const; ``` - + - **Create helper functions for common patterns**: + ```typescript export const mockSuccessResponse = (data: any) => ({ ok: true, status: HTTP_STATUS.OK, json: vi.fn().mockResolvedValue(data), }); - + export const mockErrorResponse = (status: number) => ({ ok: false, status, statusText: status === HTTP_STATUS.NOT_FOUND ? 'Not Found' : 'Error', }); ``` - + - **Match implementation error messages**: Keep error constants in sync ```typescript export const ERROR_MESSAGES = { @@ -131,20 +141,24 @@ CREATE_FAILED: 'Failed to create household', } as const; ``` - - **Provide variants for different test scenarios**: ```typescript - export const mockHouseholdPayload = { /* base payload */ }; + export const mockHouseholdPayload = { + /* base payload */ + }; export const mockHouseholdPayloadUK = { ...mockHouseholdPayload, country_id: 'uk' }; - export const mockLargeHouseholdPayload = { /* complex payload with all fields */ }; + export const mockLargeHouseholdPayload = { + /* complex payload with all fields */ + }; ``` 7. **Always mock Plotly**: Add to test file or setup + ```typescript vi.mock('react-plotly.js', () => ({ default: vi.fn(() => null) })); ``` -8. **Mock conventions**: +8. **Mock conventions**: - Use `vi` not `jest` - Mock API calls at module level - Reset mocks with `vi.clearAllMocks()` in `beforeEach` @@ -157,19 +171,21 @@ 11. **Test readability principles**: - **Use constants over magic values**: Makes tests self-documenting + ```typescript // Good - Intent is clear const result = await fetchHouseholdById(TEST_COUNTRIES.US, EXISTING_HOUSEHOLD_ID); - + // Bad - What do these values represent? const result = await fetchHouseholdById('us', '12345'); ``` - + - **One assertion per test when possible**: Makes failures easier to diagnose - **Test the "what", not the "how"**: Focus on behavior, not implementation - **Use fixture data that represents real scenarios**: Don't use "foo", "bar", "test123" ## What to test + - User interactions and state changes - Props rendering correctly - Error states and edge cases @@ -177,6 +193,7 @@ - Hook behavior and state management ## What NOT to test + - Mantine component internals - Third-party library behavior -- Implementation details (focus on user-facing behavior) \ No newline at end of file +- Implementation details (focus on user-facing behavior) diff --git a/app/src/types/blog.ts b/app/src/types/blog.ts index b0f290269..2fce6e9d3 100644 --- a/app/src/types/blog.ts +++ b/app/src/types/blog.ts @@ -32,6 +32,9 @@ export interface BlogPost { /** URL-friendly slug generated from filename or title */ slug: string; + + /** Whether to hide the header image on the article page (image still shows in cards) */ + hideHeaderImage?: boolean; } /** diff --git a/app/vercel.json b/app/vercel.json index 572a48d03..3a48e56ba 100644 --- a/app/vercel.json +++ b/app/vercel.json @@ -1,3 +1,3 @@ { "rewrites": [{ "source": "/(.*)", "destination": "/" }] -} \ No newline at end of file +} diff --git a/app/vite.config.mjs b/app/vite.config.mjs index 8cafa20c0..b51088ba1 100644 --- a/app/vite.config.mjs +++ b/app/vite.config.mjs @@ -1,5 +1,5 @@ -import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; import tsconfigPaths from 'vite-tsconfig-paths'; export default defineConfig({ diff --git a/app/vitest.setup.mjs b/app/vitest.setup.mjs index 73cb0aaec..8175b16a1 100644 --- a/app/vitest.setup.mjs +++ b/app/vitest.setup.mjs @@ -1,4 +1,5 @@ import '@testing-library/jest-dom/vitest'; + import { vi } from 'vitest'; const { getComputedStyle } = window;