diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..413cd7c1 --- /dev/null +++ b/.env.example @@ -0,0 +1,15 @@ +## Copy this file to `.env` and fill in the values as needed. + +# Local development database (default if not set) +DATABASE_URL=sqlite:///policyengine.db + +# PolicyEngine live database connection pieces (used when --db-location policyengine) +# The CLI composes the URL as postgresql+psycopg2://... with sslmode=require by default. +POLICYENGINE_DB_PASSWORD= +POLICYENGINE_DB_USER=postgres +POLICYENGINE_DB_HOST=db.usugnrssspkdutcjeevk.supabase.co +POLICYENGINE_DB_PORT=5432 +POLICYENGINE_DB_NAME=postgres + +# Optional: Hugging Face token for private repos when seeding datasets from HF +HUGGING_FACE_TOKEN= diff --git a/.github/fetch_version.py b/.github/fetch_version.py index 2835c828..7f394b76 100644 --- a/.github/fetch_version.py +++ b/.github/fetch_version.py @@ -3,7 +3,6 @@ def fetch_version(): import importlib return importlib.import_module("policyengine").__version__ - return version except Exception as e: print(f"Error fetching version: {e}") return None diff --git a/.github/workflows/any_changes.yaml b/.github/workflows/any_changes.yaml deleted file mode 100644 index 2f12633c..00000000 --- a/.github/workflows/any_changes.yaml +++ /dev/null @@ -1,45 +0,0 @@ -# Workflow that runs on code changes to a pull request. - -name: Any changes -on: - pull_request: - branches: - - main - -jobs: - docs: - permissions: - contents: "read" - id-token: "write" - name: Test documentation builds - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v2 - - name: Install uv - uses: astral-sh/setup-uv@v5 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.11' - - uses: "google-github-actions/auth@v2" - with: - workload_identity_provider: "projects/322898545428/locations/global/workloadIdentityPools/policyengine-research-id-pool/providers/prod-github-provider" - service_account: "policyengine-research@policyengine-research.iam.gserviceaccount.com" - - - name: Install package - run: uv pip install .[dev] --system - - - name: Test documentation builds - run: make documentation - - - name: Check documentation build - run: | - for notebook in $(find docs/_build/jupyter_execute -name "*.ipynb"); do - if grep -q '"output_type": "error"' "$notebook"; then - echo "Error found in $notebook" - cat "$notebook" - exit 1 - fi - done \ No newline at end of file diff --git a/.github/workflows/changelog_entry.yaml b/.github/workflows/changelog_entry.yaml deleted file mode 100644 index d0eb8574..00000000 --- a/.github/workflows/changelog_entry.yaml +++ /dev/null @@ -1,29 +0,0 @@ -name: Versioning - -on: - pull_request: - branches: [ main ] - -jobs: - check-changelog-entry: - name: Changelog entry check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Check for changelog entry - run: | - if [ ! -f "changelog_entry.yaml" ]; then - echo "Error: changelog_entry.yaml file is missing." - echo "Please add a changelog_entry.yaml file at the root of the repository." - exit 1 - fi - - # Check if the file is empty - if [ ! -s "changelog_entry.yaml" ]; then - echo "Error: changelog_entry.yaml file is empty." - echo "Please add content to the changelog_entry.yaml file." - exit 1 - fi - - echo "Changelog entry found and is not empty." \ No newline at end of file diff --git a/.github/workflows/code_changes.yaml b/.github/workflows/code_changes.yaml index 1ba30bb5..001f50cd 100644 --- a/.github/workflows/code_changes.yaml +++ b/.github/workflows/code_changes.yaml @@ -1,14 +1,16 @@ -# Workflow that runs on code changes to a pull request. +# Workflow that runs on code changes to the master branch. name: Code changes on: - pull_request: + push: branches: - main paths: - - policyengine/** + - src/** - tests/** + - .github/** + workflow_dispatch: jobs: Lint: @@ -20,27 +22,28 @@ jobs: with: args: ". -l 79 --check" Test: - runs-on: ubuntu-latest + runs-on: macos-latest permissions: contents: "read" id-token: "write" steps: - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v5 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.13' - - uses: "google-github-actions/auth@v2" - with: - workload_identity_provider: "projects/322898545428/locations/global/workloadIdentityPools/policyengine-research-id-pool/providers/prod-github-provider" - service_account: "policyengine-research@policyengine-research.iam.gserviceaccount.com" - name: Install package - run: uv pip install .[dev] --system - - - name: Run tests - run: make test \ No newline at end of file + run: uv pip install -e .[dev] --system + - name: Install JB + run: uv pip install "jupyter-book>=2.0.0a0" --system + - name: UV sync + run: uv sync + - name: Run tests with coverage + run: make test + env: + HUGGING_FACE_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..ac19f55c --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,49 @@ +# This file was created automatically with `myst init --gh-pages` 🪄 💚 +# Ensure your GitHub Pages settings for this repository are set to deploy with **GitHub Actions**. + +name: Deploy documentation +on: + push: + # Runs on pushes targeting the default branch + branches: [master] +env: + # `BASE_URL` determines, relative to the root of the domain, the URL that your site is served from. + # E.g., if your site lives at `https://mydomain.org/myproject`, set `BASE_URL=/myproject`. + # If, instead, your site lives at the root of the domain, at `https://mydomain.org`, set `BASE_URL=''`. + BASE_URL: /${{ github.event.repository.name }} + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: 'pages' + cancel-in-progress: false +jobs: + deploy: + name: Deploy to GitHub Pages + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v3 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + - name: Install MyST + run: npm install -g mystmd + - name: Build HTML Assets + run: cd docs && myst build --html + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: './docs/_build/html' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/pr_code_changes.yaml b/.github/workflows/pr_code_changes.yaml new file mode 100644 index 00000000..aa03bc02 --- /dev/null +++ b/.github/workflows/pr_code_changes.yaml @@ -0,0 +1,48 @@ +# Workflow that runs on code changes to a pull request. + +name: Code changes +on: + pull_request: + branches: + - main + + paths: + - src/** + - tests/** + - .github/** + workflow_dispatch: + +jobs: + Lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + # Check formatting with ruff + - name: Install ruff + run: pip install ruff + + - name: Run ruff check + run: ruff check . + Test: + runs-on: macos-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v5 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + + - name: Install package + run: uv pip install -e .[dev] --system + - name: Install policyengine + run: uv pip install policyengine --system + - name: UV sync + run: uv sync + - name: Run tests with coverage + run: make test + env: + HUGGING_FACE_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/pr_docs_changes.yaml b/.github/workflows/pr_docs_changes.yaml new file mode 100644 index 00000000..3ede653c --- /dev/null +++ b/.github/workflows/pr_docs_changes.yaml @@ -0,0 +1,36 @@ +# Workflow that runs on code changes to a pull request. + +name: Docs changes +on: + pull_request: + branches: + - main + + paths: + - docs/** + - .github/** + workflow_dispatch: + +jobs: + Test: + runs-on: ubuntu-latest + name: Test documentation builds + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v5 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + + - name: Install package + run: uv pip install -e .[dev] --system + - name: Install policyengine + run: uv pip install policyengine --system + - name: Install JB + run: uv pip install "jupyter-book>=2.0.0a0" --system + - name: Test documentation builds + run: cd docs && jupyter book build \ No newline at end of file diff --git a/.github/workflows/publish_documentation.yaml b/.github/workflows/publish_documentation.yaml deleted file mode 100644 index 10143cb0..00000000 --- a/.github/workflows/publish_documentation.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: Publish documentation -on: - push: - branches: [ main ] - paths: - - docs/** # Only run workflow when documentation changes - -jobs: - Publish: - permissions: - contents: "read" - id-token: "write" - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: 3.12 - - uses: "google-github-actions/auth@v2" - with: - workload_identity_provider: "projects/322898545428/locations/global/workloadIdentityPools/policyengine-research-id-pool/providers/prod-github-provider" - service_account: "policyengine-research@policyengine-research.iam.gserviceaccount.com" - - name: Publish a git tag - run: ".github/publish-git-tag.sh || true" - - name: Install package - run: make install - - - name: Build documentation - run: make documentation - - - name: Deploy documentation - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: docs/_build/html # The folder the action should deploy. \ No newline at end of file diff --git a/.github/workflows/publish_package.yaml b/.github/workflows/publish_package.yaml deleted file mode 100644 index 167f0685..00000000 --- a/.github/workflows/publish_package.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: Publish package -on: - push: - branches: [ main ] - paths: - - pyproject.toml - -jobs: - Publish: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v2 - - name: Install uv - uses: astral-sh/setup-uv@v5 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.11' - - name: Publish a git tag - run: ".github/publish-git-tag.sh || true" - - name: Install package - run: make install - - name: Build package - run: make - - name: Remove .whl files - run: rm dist/*.whl - - name: Publish a Python distribution to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.PYPI }} - skip-existing: true - verbose: true - - - name: Test documentation builds - run: make documentation - - - name: Deploy documentation - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages # The branch the action should deploy to. - FOLDER: docs/_build/html # The folder the action should deploy. diff --git a/.github/workflows/versioning.yaml b/.github/workflows/versioning.yaml index b4e0edb9..75c082c3 100644 --- a/.github/workflows/versioning.yaml +++ b/.github/workflows/versioning.yaml @@ -1,37 +1,72 @@ # Workflow that runs on versioning metadata updates. -name: Versioning updates +name: Versioning updates on: push: - branches: - - main + branches: + - main - paths: - - changelog_entry.yaml - - "!pyproject.toml" + paths: + - changelog_entry.yaml + - .github/** + workflow_dispatch: jobs: - Versioning: - runs-on: ubuntu-latest - if: | - (!(github.event.head_commit.message == 'Update package version')) - steps: - - name: Checkout repo - uses: actions/checkout@v4 - with: - repository: ${{ github.event.pull_request.head.repo.full_name }} - ref: ${{ github.event.pull_request.head.ref }} - token: ${{ secrets.POLICYENGINE_GITHUB }} - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: 3.12 - - name: Build changelog - run: pip install yaml-changelog && make changelog - - name: Preview changelog update - run: ".github/get-changelog-diff.sh" - - name: Update changelog - uses: EndBug/add-and-commit@v9 - with: - add: "." - message: Update package version \ No newline at end of file + Versioning: + if: (github.event.head_commit.message != 'Update package version') + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} + token: ${{ secrets.POLICYENGINE_GITHUB }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: 3.13 + - name: Build changelog + run: pip install yaml-changelog && make changelog + - name: Preview changelog update + run: ".github/get-changelog-diff.sh" + - name: Update changelog + uses: EndBug/add-and-commit@v9 + with: + add: "." + message: Update package version + Publish: + runs-on: ubuntu-latest + if: (github.event.head_commit.message == 'Update package version') + env: + GH_TOKEN: ${{ secrets.POLICYENGINE_GITHUB }} + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Install uv + uses: astral-sh/setup-uv@v5 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + - name: Install package + run: uv pip install -e .[dev] --system + - name: Install policyengine + run: uv pip install policyengine --system + - name: Install Wheel and Pytest + run: pip3 install wheel setuptools pytest==5.4.3 + - name: Publish a git tag + run: ".github/publish-git-tag.sh" + - name: Build package + run: make + - name: Publish a Python distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + user: __token__ + password: ${{ secrets.PYPI }} + skip_existing: true + - name: Update API + run: python .github/update_api.py + env: + GITHUB_TOKEN: ${{ secrets.POLICYENGINE_GITHUB }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index a210954a..dc335293 100644 --- a/.gitignore +++ b/.gitignore @@ -1,167 +1,9 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments +**/*.db +**/__pycache__ +**/*.egg-info +_build/ +simulations/ +test.* +supabase/ .env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ - -*.ipynb - -!docs/**/*.ipynb - -**/*.h5 -**/*.csv +**/review.md diff --git a/Makefile b/Makefile index 68fb8ee5..931fccdd 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,18 @@ +.PHONY: docs + all: build-package -documentation: - jb clean docs - jb build docs - python docs/add_plotly_to_book.py docs/ +docs: + cd docs && jupyter book start install: - pip install -e .[dev] + uv pip install -e .[dev] format: - black . -l 79 + ruff format . + +clean: + rm -rf **/__pycache__ _build **/_build .pytest_cache .ruff_cache **/*.egg-info **/*.pyc changelog: build-changelog changelog.yaml --output changelog.yaml --update-last-date --start-from 1.0.0 --append-file changelog_entry.yaml diff --git a/README.md b/README.md index 4b76f312..11d18575 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,12 @@ -# policyengine.py +# PolicyEngine.py -PolicyEngine's main user-facing Python package, incorporating country packages and integrating data visualization and analytics. Read the documentation [here](https://policyengine.github.io/policyengine.py). +Documentation + +- Parameters, variables, and values: `docs/01_parameters_variables.ipynb` +- Policies and dynamic: `docs/02_policies_dynamic.ipynb` +- Datasets: `docs/03_datasets.ipynb` +- Simulations: `docs/04_simulations.ipynb` +- Output data items: `docs/05_output_data_items.ipynb` +- Reports and users: `docs/06_reports_users.ipynb` + +Open these notebooks in Jupyter or your preferred IDE to run the examples. diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29b..ae82148f 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: major + changes: + added: + - Complete rewrite. \ No newline at end of file diff --git a/docs/.DS_Store b/docs/.DS_Store deleted file mode 100644 index cbf579b9..00000000 Binary files a/docs/.DS_Store and /dev/null differ diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..eac09687 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +# MyST build outputs +_build diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 8fa2c6b7..00000000 --- a/docs/_config.yml +++ /dev/null @@ -1,31 +0,0 @@ -# _config.yml -author: PolicyEngine -title: PolicyEngine -copyright: "2025" -logo: logo.png - -execute: - execute_notebooks: cache - stderr_output: error - timeout: 600 - -repository: - url: https://github.com/policyengine/policyengine.py - branch: master - path_to_book: docs - -title: Python documentation - -sphinx: - config: - html_js_files: - - https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.js - html_theme: furo - pygments_style: default - html_css_files: - - style.css - extra_extensions: - - "sphinx.ext.autodoc" - - "sphinxcontrib.autodoc_pydantic" - -only_build_toc_files: true \ No newline at end of file diff --git a/docs/_static/style.css b/docs/_static/style.css deleted file mode 100644 index 70b1f6d1..00000000 --- a/docs/_static/style.css +++ /dev/null @@ -1,5 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Roboto+Serif:opsz@8..144&family=Roboto:wght@300&display=swap'); - -.sidebar-brand-text { - text-align: left; -} diff --git a/docs/_toc.yml b/docs/_toc.yml deleted file mode 100644 index 4e909655..00000000 --- a/docs/_toc.yml +++ /dev/null @@ -1,20 +0,0 @@ -format: jb-book -root: index -parts: - - caption: Basic usage - chapters: - - file: basic/calculate_single_household - - file: basic/calculate_single_economy - - file: basic/calculate_economy_comparison - - caption: Reference - chapters: - - file: reference/parameters_us - - file: reference/parameters_uk - - caption: Concepts - chapters: - - file: concepts/simulation - - file: concepts/extending - - caption: Outputs - chapters: - - file: outputs/calculate_average_earnings - \ No newline at end of file diff --git a/docs/add_plotly_to_book.py b/docs/add_plotly_to_book.py deleted file mode 100644 index 822e77ab..00000000 --- a/docs/add_plotly_to_book.py +++ /dev/null @@ -1,27 +0,0 @@ -import argparse -from pathlib import Path - -# This command-line tools enables Plotly charts to show in the HTML files for the Jupyter Book documentation. - -parser = argparse.ArgumentParser() -parser.add_argument("book_path", help="Path to the Jupyter Book.") - -args = parser.parse_args() - -# Find every HTML file in the Jupyter Book. Then, add a script tag to the start of the
tag in each file, with the contents: -# - -book_folder = Path(args.book_path) - -for html_file in book_folder.glob("**/*.html"): - with open(html_file, "r") as f: - html = f.read() - - # Add the script tag to the start of the tag. - html = html.replace( - "", - '', - ) - - with open(html_file, "w") as f: - f.write(html) diff --git a/docs/basic/calculate_economy_comparison.ipynb b/docs/basic/calculate_economy_comparison.ipynb deleted file mode 100644 index 09f9f931..00000000 --- a/docs/basic/calculate_economy_comparison.ipynb +++ /dev/null @@ -1,267 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Compare outcomes for large population scenarios\n", - "\n", - "Use `Simulation.calculate_economy_comparison()` to use PolicyEngine's tax-benefit model to compare how taxes, benefits and other household properties change under a reform scenario. This notebook demonstrates how to use this function." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/nikhilwoodruff/policyengine/policyengine.py/.venv/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - } - ], - "source": [ - "from policyengine import Simulation\n", - "\n", - "sim = Simulation(\n", - " scope=\"macro\", # Required for this\n", - " country=\"us\", # or \"us\"\n", - " time_period=2025, # Defaults to 2025\n", - " reform={\n", - " \"gov.usda.snap.income.deductions.earned_income\": {\n", - " \"2025\": 0.05\n", - " }\n", - " }\n", - ")\n", - "\n", - "sim.calculate_economy_comparison()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Output schema\n", - "\n", - "`calculate_economy_comparison` or `calculate` (when `scope=household` and `reform is not None`) return the following schema." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'$defs': {'DecileImpacts': {'properties': {'income': {'$ref': '#/$defs/IncomeMeasureSpecificDecileImpacts'},\n", - " 'wealth': {'anyOf': [{'$ref': '#/$defs/IncomeMeasureSpecificDecileImpacts'},\n", - " {'type': 'null'}]}},\n", - " 'required': ['income', 'wealth'],\n", - " 'title': 'DecileImpacts',\n", - " 'type': 'object'},\n", - " 'FiscalComparison': {'properties': {'baseline': {'$ref': '#/$defs/FiscalSummary'},\n", - " 'reform': {'$ref': '#/$defs/FiscalSummary'},\n", - " 'change': {'$ref': '#/$defs/FiscalSummary'},\n", - " 'relative_change': {'$ref': '#/$defs/FiscalSummary'}},\n", - " 'required': ['baseline', 'reform', 'change', 'relative_change'],\n", - " 'title': 'FiscalComparison',\n", - " 'type': 'object'},\n", - " 'FiscalSummary': {'properties': {'tax_revenue': {'title': 'Tax Revenue',\n", - " 'type': 'number'},\n", - " 'federal_tax': {'title': 'Federal Tax', 'type': 'number'},\n", - " 'federal_balance': {'title': 'Federal Balance', 'type': 'number'},\n", - " 'state_tax': {'title': 'State Tax', 'type': 'number'},\n", - " 'government_spending': {'title': 'Government Spending', 'type': 'number'},\n", - " 'tax_benefit_programs': {'additionalProperties': {'type': 'number'},\n", - " 'title': 'Tax Benefit Programs',\n", - " 'type': 'object'},\n", - " 'household_net_income': {'title': 'Household Net Income',\n", - " 'type': 'number'}},\n", - " 'required': ['tax_revenue',\n", - " 'federal_tax',\n", - " 'federal_balance',\n", - " 'state_tax',\n", - " 'government_spending',\n", - " 'tax_benefit_programs',\n", - " 'household_net_income'],\n", - " 'title': 'FiscalSummary',\n", - " 'type': 'object'},\n", - " 'Headlines': {'properties': {'budgetary_impact': {'title': 'Budgetary Impact',\n", - " 'type': 'number'},\n", - " 'poverty_impact': {'title': 'Poverty Impact', 'type': 'number'},\n", - " 'winner_share': {'title': 'Winner Share', 'type': 'number'}},\n", - " 'required': ['budgetary_impact', 'poverty_impact', 'winner_share'],\n", - " 'title': 'Headlines',\n", - " 'type': 'object'},\n", - " 'IncomeMeasureSpecificDecileImpacts': {'properties': {'income_change': {'$ref': '#/$defs/IncomeMeasureSpecificDecileIncomeChange'},\n", - " 'winners_and_losers': {'$ref': '#/$defs/IncomeMeasureSpecificDecileWinnersLosers'}},\n", - " 'required': ['income_change', 'winners_and_losers'],\n", - " 'title': 'IncomeMeasureSpecificDecileImpacts',\n", - " 'type': 'object'},\n", - " 'IncomeMeasureSpecificDecileIncomeChange': {'properties': {'relative': {'additionalProperties': {'type': 'number'},\n", - " 'title': 'Relative',\n", - " 'type': 'object'},\n", - " 'average': {'additionalProperties': {'type': 'number'},\n", - " 'title': 'Average',\n", - " 'type': 'object'}},\n", - " 'required': ['relative', 'average'],\n", - " 'title': 'IncomeMeasureSpecificDecileIncomeChange',\n", - " 'type': 'object'},\n", - " 'IncomeMeasureSpecificDecileWinnersLosers': {'properties': {'deciles': {'additionalProperties': {'$ref': '#/$defs/IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes'},\n", - " 'title': 'Deciles',\n", - " 'type': 'object'},\n", - " 'all': {'$ref': '#/$defs/IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes'}},\n", - " 'required': ['deciles', 'all'],\n", - " 'title': 'IncomeMeasureSpecificDecileWinnersLosers',\n", - " 'type': 'object'},\n", - " 'IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes': {'properties': {'lose_more_than_5_percent_share': {'title': 'Lose More Than 5 Percent Share',\n", - " 'type': 'number'},\n", - " 'lose_less_than_5_percent_share': {'title': 'Lose Less Than 5 Percent Share',\n", - " 'type': 'number'},\n", - " 'lose_share': {'title': 'Lose Share', 'type': 'number'},\n", - " 'no_change_share': {'title': 'No Change Share', 'type': 'number'},\n", - " 'gain_share': {'title': 'Gain Share', 'type': 'number'},\n", - " 'gain_less_than_5_percent_share': {'title': 'Gain Less Than 5 Percent Share',\n", - " 'type': 'number'},\n", - " 'gain_more_than_5_percent_share': {'title': 'Gain More Than 5 Percent Share',\n", - " 'type': 'number'}},\n", - " 'required': ['lose_more_than_5_percent_share',\n", - " 'lose_less_than_5_percent_share',\n", - " 'lose_share',\n", - " 'no_change_share',\n", - " 'gain_share',\n", - " 'gain_less_than_5_percent_share',\n", - " 'gain_more_than_5_percent_share'],\n", - " 'title': 'IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes',\n", - " 'type': 'object'},\n", - " 'InequalityComparison': {'properties': {'baseline': {'$ref': '#/$defs/InequalitySummary'},\n", - " 'reform': {'$ref': '#/$defs/InequalitySummary'},\n", - " 'change': {'$ref': '#/$defs/InequalitySummary'},\n", - " 'relative_change': {'$ref': '#/$defs/InequalitySummary'}},\n", - " 'required': ['baseline', 'reform', 'change', 'relative_change'],\n", - " 'title': 'InequalityComparison',\n", - " 'type': 'object'},\n", - " 'InequalitySummary': {'properties': {'gini': {'title': 'Gini',\n", - " 'type': 'number'},\n", - " 'top_10_share': {'title': 'Top 10 Share', 'type': 'number'},\n", - " 'top_1_share': {'title': 'Top 1 Share', 'type': 'number'}},\n", - " 'required': ['gini', 'top_10_share', 'top_1_share'],\n", - " 'title': 'InequalitySummary',\n", - " 'type': 'object'},\n", - " 'LaborSupplyMetricImpact': {'properties': {'elasticity': {'enum': ['income',\n", - " 'substitution',\n", - " 'all'],\n", - " 'title': 'Elasticity',\n", - " 'type': 'string'},\n", - " 'decile': {'enum': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'all'],\n", - " 'title': 'Decile'},\n", - " 'unit': {'enum': ['earnings', 'hours'], 'title': 'Unit', 'type': 'string'},\n", - " 'baseline': {'title': 'Baseline', 'type': 'number'},\n", - " 'reform': {'title': 'Reform', 'type': 'number'},\n", - " 'change': {'title': 'Change', 'type': 'number'},\n", - " 'relative_change': {'title': 'Relative Change', 'type': 'number'},\n", - " 'average_change': {'title': 'Average Change', 'type': 'number'}},\n", - " 'required': ['elasticity',\n", - " 'decile',\n", - " 'unit',\n", - " 'baseline',\n", - " 'reform',\n", - " 'change',\n", - " 'relative_change',\n", - " 'average_change'],\n", - " 'title': 'LaborSupplyMetricImpact',\n", - " 'type': 'object'},\n", - " 'PovertyRateMetricComparison': {'properties': {'age_group': {'enum': ['child',\n", - " 'working_age',\n", - " 'senior',\n", - " 'all'],\n", - " 'title': 'Age Group',\n", - " 'type': 'string'},\n", - " 'gender': {'enum': ['male', 'female', 'all'],\n", - " 'title': 'Gender',\n", - " 'type': 'string'},\n", - " 'racial_group': {'enum': ['white', 'black', 'hispanic', 'other', 'all'],\n", - " 'title': 'Racial Group',\n", - " 'type': 'string'},\n", - " 'relative': {'title': 'Relative', 'type': 'boolean'},\n", - " 'poverty_rate': {'enum': ['regular',\n", - " 'deep',\n", - " 'uk_hbai_bhc',\n", - " 'uk_hbai_bhc_half',\n", - " 'us_spm',\n", - " 'us_spm_half'],\n", - " 'title': 'Poverty Rate',\n", - " 'type': 'string'},\n", - " 'baseline': {'title': 'Baseline', 'type': 'number'},\n", - " 'reform': {'title': 'Reform', 'type': 'number'},\n", - " 'change': {'title': 'Change', 'type': 'number'},\n", - " 'relative_change': {'title': 'Relative Change', 'type': 'number'}},\n", - " 'required': ['age_group',\n", - " 'gender',\n", - " 'racial_group',\n", - " 'relative',\n", - " 'poverty_rate',\n", - " 'baseline',\n", - " 'reform',\n", - " 'change',\n", - " 'relative_change'],\n", - " 'title': 'PovertyRateMetricComparison',\n", - " 'type': 'object'}},\n", - " 'properties': {'headlines': {'$ref': '#/$defs/Headlines'},\n", - " 'fiscal': {'$ref': '#/$defs/FiscalComparison'},\n", - " 'inequality': {'$ref': '#/$defs/InequalityComparison'},\n", - " 'distributional': {'$ref': '#/$defs/DecileImpacts'},\n", - " 'poverty': {'items': {'$ref': '#/$defs/PovertyRateMetricComparison'},\n", - " 'title': 'Poverty',\n", - " 'type': 'array'},\n", - " 'labor_supply': {'items': {'$ref': '#/$defs/LaborSupplyMetricImpact'},\n", - " 'title': 'Labor Supply',\n", - " 'type': 'array'}},\n", - " 'required': ['headlines',\n", - " 'fiscal',\n", - " 'inequality',\n", - " 'distributional',\n", - " 'poverty',\n", - " 'labor_supply'],\n", - " 'title': 'EconomyComparison',\n", - " 'type': 'object'}" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine.outputs.macro.comparison.calculate_economy_comparison import EconomyComparison\n", - "\n", - "EconomyComparison.model_json_schema()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.11" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/basic/calculate_household_comparison.ipynb b/docs/basic/calculate_household_comparison.ipynb deleted file mode 100644 index 523cb17e..00000000 --- a/docs/basic/calculate_household_comparison.ipynb +++ /dev/null @@ -1,156 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Compare outcomes for specific household scenarios\n", - "\n", - "Use `Simulation.calculate_household_comparison()` to use PolicyEngine's tax-benefit model to compare how taxes, benefits and other household properties change under a change in tax or benefit rules. This notebook demonstrates how to use this function to compare outcomes for specific households." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "HouseholdComparison(full_household_baseline={'people': {'person': {'age': {'2025': 30.0}, 'employment_income': {'2025': 30000.0}, 'employment_income_before_lsr': {'2025': 30000.0}, 'self_employment_income_before_lsr': {'2025': 0.0}, 'self_employment_income': {'2025': 0.0}, 'emp_self_emp_ratio': {'2025': 1.0}, 'farm_income': {'2025': 0.0}, 'marginal_tax_rate': {'2025': 0.2261582}, 'adult_index': {'2025': 1.0}, 'adult_earnings_index': {'2025': 1.0}, 'cliff_evaluated': {'2025': True}, 'cliff_gap': {'2025': 0.0}, 'is_on_cliff': {'2025': False}, 'child_index': {'2025': 0.0}, 'deductible_interest_expense': {'2025': 0.0}, 'deductible_mortgage_interest': {'2025': 0.0}, 'alimony_expense': {'2025': 0.0}, 'investment_expenses': {'2025': 0.0}, 'investment_interest_expense': {'2025': 0.0}, 'home_mortgage_interest': {'2025': 0.0}, 'educator_expense': {'2025': 0.0}, 'student_loan_interest': {'2025': 0.0}, 'non_deductible_mortgage_interest': {'2025': 0.0}, 'qualified_tuition_expenses': {'2025': 0.0}, 'non_mortgage_interest': {'2025': 0.0}, 'mortgage_interest': {'2025': 0.0}, 'qualified_adoption_assistance_expense': {'2025': 0.0}, 'ambulance_expense': {'2025': 0.0}, 'health_savings_account_payroll_contributions': {'2025': 0.0}, 'has_marketplace_health_coverage': {'2025': True}, 'prescription_expense': {'2025': 0.0}, 'employer_contribution_to_health_insurance_premiums_category': {'2025': 'NONE'}, 'health_insurance_premiums': {'2025': 0.0}, 'lab_expense': {'2025': 0.0}, 'medicare_part_b_premiums': {'2025': 0.0}, 'inpatient_expense': {'2025': 0.0}, 'er_visit_expense': {'2025': 0.0}, 'outpatient_expense': {'2025': 0.0}, 'over_the_counter_health_expenses': {'2025': 0.0}, 'long_term_health_insurance_premiums': {'2025': 0.0}, 'imaging_expense': {'2025': 0.0}, 'urgent_care_expense': {'2025': 0.0}, 'physician_services_expense': {'2025': 0.0}, 'self_employed_health_insurance_premiums': {'2025': 0.0}, 'other_medical_expenses': {'2025': 0.0}, 'health_insurance_premiums_without_medicare_part_b': {'2025': 0.0}, 'medical_out_of_pocket_expenses': {'2025': 0.0}, 'investment_in_529_plan_indv': {'2025': 0.0}, 'non_public_school_tuition': {'2025': 0.0}, 'count_529_contribution_beneficiaries': {'2025': 0.0}, 'roth_403b_contributions': {'2025': 0.0}, 'traditional_403b_contributions': {'2025': 0.0}, 'self_employed_pension_contributions': {'2025': 0.0}, 'traditional_ira_contributions': {'2025': 0.0}, 'traditional_401k_contributions': {'2025': 0.0}, 'early_withdrawal_penalty': {'2025': 0.0}, 'roth_ira_contributions': {'2025': 0.0}, 'able_contributions_person': {'2025': 0.0}, 'roth_401k_contributions': {'2025': 0.0}, 'casualty_loss': {'2025': 0.0}, 'real_estate_taxes': {'2025': 0.0}, 'taxable_estate_value': {'2025': 0.0}, 'excess_withheld_payroll_tax': {'2025': 0.0}, 'state_income_tax_reported': {'2025': 0.0}, 'pre_subsidy_rent': {'2025': 0.0}, 'heating_expense_person': {'2025': 0.0}, 'rent': {'2025': 0.0}, 'charitable_non_cash_donations': {'2025': 0.0}, 'charitable_cash_donations': {'2025': 0.0}, 'care_expenses': {'2025': 0.0}, 'pre_subsidy_childcare_expenses': {'2025': 0.0}, 'after_school_expenses': {'2025': 0.0}, 'childcare_provider_type_group': {'2025': 'DCC_SACC'}, 'childcare_days_per_week': {'2025': 0.0}, 'pre_subsidy_care_expenses': {'2025': 0.0}, 'childcare_hours_per_week': {'2025': 0.0}, 'childcare_hours_per_day': {'2025': 0.0}, 'child_support_expense': {'2025': 0.0}, 'child_support_received': {'2025': 0.0}, 'is_tax_unit_dependent': {'2025': False}, 'is_tax_unit_head': {'2025': True}, 'is_tax_unit_spouse': {'2025': False}, 'is_child_of_tax_head': {'2025': False}, 'is_tax_unit_head_or_spouse': {'2025': True}, 'is_surviving_spouse': {'2025': False}, 'person_marital_unit_id': {'2025': 0.0}, 'is_separated': {'2025': False}, 'person_spm_unit_id': {'2025': 0.0}, 'is_father': {'2025': False}, 'care_and_support_costs': {'2025': 0.0}, 'is_breastfeeding': {'2025': False}, 'is_deceased': {'2025': False}, 'is_parent_of_filer_or_spouse': {'2025': False}, 'current_pregnancies': {'2025': 0.0}, 'is_male': {'2025': True}, 'receives_or_needs_protective_services': {'2025': False}, 'own_children_in_household': {'2025': 0.0}, 'years_in_military': {'2025': 0.0}, 'is_in_k12_school': {'2025': False}, 'is_deaf': {'2025': False}, 'is_in_foster_care_group_home': {'2025': False}, 'adopted_this_year': {'2025': False}, 'is_permanently_and_totally_disabled': {'2025': False}, 'is_mother': {'2025': False}, 'race': {'2025': 'OTHER'}, 'is_parent': {'2025': False}, 'is_permanently_disabled_veteran': {'2025': False}, 'four_year_college_student': {'2025': False}, 'is_in_foster_care': {'2025': False}, 'year_of_retirement': {'2025': 0.0}, 'is_female': {'2025': False}, 'share_of_care_and_support_costs_paid_by_tax_filer': {'2025': 0.0}, 'current_pregnancy_month': {'2025': 9.0}, 'is_incapable_of_self_care': {'2025': False}, 'is_runaway_child': {'2025': False}, 'claimed_as_dependent_on_another_return': {'2025': False}, 'immigration_status': {'2025': 'CITIZEN'}, 'is_migratory_child': {'2025': False}, 'care_and_support_payments_from_tax_filer': {'2025': 0.0}, 'in_out_of_home_care_facility': {'2025': False}, 'divorce_year': {'2025': 2010.0}, 'is_severely_disabled': {'2025': False}, 'people': {'2025': 1.0}, 'vehicles_owned': {'2025': 0.0}, 'overtime_income': {'2025': 0.0}, 'is_retired': {'2025': False}, 'is_in_secondary_school': {'2025': False}, 'year_deceased': {'2025': 0.0}, 'is_surviving_child_of_disabled_veteran': {'2025': False}, 'is_blind': {'2025': False}, 'is_english_proficient': {'2025': False}, 'is_full_time_student': {'2025': False}, 'is_household_head': {'2025': False}, 'has_itin': {'2025': True}, 'is_full_time_college_student': {'2025': False}, 'tip_income': {'2025': 0.0}, 'is_grandparent_of_filer_or_spouse': {'2025': False}, 'is_pregnant': {'2025': False}, 'is_veteran': {'2025': False}, 'technical_institution_student': {'2025': False}, 'immigration_status_str': {'2025': 'CITIZEN'}, 'cps_race': {'2025': 0.0}, 'is_in_k12_nonpublic_school': {'2025': False}, 'is_hispanic': {'2025': False}, 'is_child_dependent': {'2025': False}, 'was_in_foster_care': {'2025': False}, 'has_disabled_spouse': {'2025': False}, 'is_disabled': {'2025': False}, 'is_adult': {'2025': True}, 'is_incarcerated': {'2025': False}, 'is_fully_disabled_service_connected_veteran': {'2025': False}, 'retired_from_federal_government': {'2025': False}, 'is_surviving_spouse_of_disabled_veteran': {'2025': False}, 'under_60_days_postpartum': {'2025': False}, 'count_days_postpartum': {'2025': 'Infinity'}, 'under_12_months_postpartum': {'2025': False}, 'person_weight': {'2025': 0.0}, 'person_family_id': {'2025': 0.0}, 'person_id': {'2025': 0.0}, 'person_household_id': {'2025': 0.0}, 'person_tax_unit_id': {'2025': 0.0}, 'is_wa_adult': {'2025': True}, 'is_child': {'2025': False}, 'birth_year': {'2025': 1995.0}, 'age_group': {'2025': 'WORKING_AGE'}, 'monthly_age': {'2025': 360.0}, 'is_senior': {'2025': False}, 'illicit_income': {'2025': 0.0}, 'ssi_reported': {'2025': 0.0}, 'weekly_hours_worked': {'2025': 0.0}, 'weekly_hours_worked_before_lsr': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response_income_elasticity': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response_substitution_elasticity': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response': {'2025': 0.0}, 'gambling_winnings': {'2025': 0.0}, 'employment_income_last_year': {'2025': 0.0}, 'gambling_losses': {'2025': 0.0}, 'ssi_qualifying_quarters_earnings': {'2025': 0.0}, 'dependent_care_employer_benefits': {'2025': 0.0}, 'farm_rent_income': {'2025': 0.0}, 'us_bonds_for_higher_ed': {'2025': 0.0}, 'miscellaneous_income': {'2025': 0.0}, 'gi_cash_assistance': {'2025': 0.0}, 'military_basic_pay': {'2025': 0.0}, 'strike_benefits': {'2025': 0.0}, 'rental_income': {'2025': 0.0}, 'salt_refund_income': {'2025': 0.0}, 'debt_relief': {'2025': 0.0}, 'alimony_income': {'2025': 0.0}, 'investment_income_elected_form_4952': {'2025': 0.0}, 'estate_income': {'2025': 0.0}, 'interest_income': {'2025': 0.0}, 'tax_exempt_interest_income': {'2025': 0.0}, 'taxable_interest_income': {'2025': 0.0}, 's_corp_self_employment_income': {'2025': 0.0}, 'self_employment_income_last_year': {'2025': 0.0}, 'previous_year_income_available': {'2025': False}, 'business_is_qualified': {'2025': True}, 'business_is_sstb': {'2025': False}, 'w2_wages_from_qualified_business': {'2025': 0.0}, 'is_self_employed': {'2025': False}, 'unadjusted_basis_qualified_property': {'2025': 0.0}, 'partnership_s_corp_income': {'2025': 0.0}, 'veterans_benefits': {'2025': 0.0}, 'personal_property': {'2025': 0.0}, 'market_income': {'2025': 30000.0}, 'state_or_federal_salary': {'2025': 0.0}, 'disability_benefits': {'2025': 0.0}, 'military_service_income': {'2025': 0.0}, 'railroad_benefits': {'2025': 0.0}, 'tax_exempt_403b_distributions': {'2025': 0.0}, 'taxable_pension_income': {'2025': 0.0}, 'tax_exempt_sep_distributions': {'2025': 0.0}, 'pension_income': {'2025': 0.0}, 'military_retirement_pay': {'2025': 0.0}, 'taxable_401k_distributions': {'2025': 0.0}, 'taxable_sep_distributions': {'2025': 0.0}, 'taxable_federal_pension_income': {'2025': 0.0}, 'retirement_distributions': {'2025': 0.0}, 'keogh_distributions': {'2025': 0.0}, 'pension_survivors': {'2025': 0.0}, 'sep_distributions': {'2025': 0.0}, 'tax_exempt_retirement_distributions': {'2025': 0.0}, 'taxable_retirement_distributions': {'2025': 0.0}, 'tax_exempt_private_pension_income': {'2025': 0.0}, 'private_pension_income': {'2025': 0.0}, 'retirement_benefits_from_ss_exempt_employment': {'2025': 0.0}, 'tax_exempt_public_pension_income': {'2025': 0.0}, 'military_retirement_pay_survivors': {'2025': 0.0}, 'tax_exempt_pension_income': {'2025': 0.0}, 'tax_exempt_ira_distributions': {'2025': 0.0}, 'taxable_ira_distributions': {'2025': 0.0}, 'public_pension_income': {'2025': 0.0}, 'tax_exempt_401k_distributions': {'2025': 0.0}, 'taxable_private_pension_income': {'2025': 0.0}, 'taxable_403b_distributions': {'2025': 0.0}, 'taxable_public_pension_income': {'2025': 0.0}, 'csrs_retirement_pay': {'2025': 0.0}, 'capital_losses': {'2025': 0.0}, 'capital_gains': {'2025': 0.0}, 'long_term_capital_gains_on_collectibles': {'2025': 0.0}, 'short_term_capital_gains': {'2025': 0.0}, 'long_term_capital_gains': {'2025': 0.0}, 'long_term_capital_gains_on_small_business_stock': {'2025': 0.0}, 'non_sch_d_capital_gains': {'2025': 0.0}, 'qualified_dividend_income': {'2025': 0.0}, 'non_qualified_dividend_income': {'2025': 0.0}, 'dividend_income': {'2025': 0.0}, 'income_decile': {'2025': 0.0}, 'person_in_poverty': {'2025': False}, 'e02000': {'2025': 0.0}, 'e26270': {'2025': 0.0}, 'e19200': {'2025': 0.0}, 'e18500': {'2025': 0.0}, 'e19800': {'2025': 0.0}, 'e20400': {'2025': 0.0}, 'e20100': {'2025': 0.0}, 'e00700': {'2025': 0.0}, 'e03270': {'2025': 0.0}, 'e24515': {'2025': 0.0}, 'e03300': {'2025': 0.0}, 'e07300': {'2025': 0.0}, 'e62900': {'2025': 0.0}, 'e32800': {'2025': 0.0}, 'e87530': {'2025': 0.0}, 'e03240': {'2025': 0.0}, 'e01100': {'2025': 0.0}, 'e01200': {'2025': 0.0}, 'e24518': {'2025': 0.0}, 'e09900': {'2025': 0.0}, 'e27200': {'2025': 0.0}, 'e03290': {'2025': 0.0}, 'e58990': {'2025': 0.0}, 'e03230': {'2025': 0.0}, 'e11200': {'2025': 0.0}, 'e07260': {'2025': 0.0}, 'e07240': {'2025': 0.0}, 'e03220': {'2025': 0.0}, 'p08000': {'2025': 0.0}, 'e03400': {'2025': 0.0}, 'e09800': {'2025': 0.0}, 'e09700': {'2025': 0.0}, 'e03500': {'2025': 0.0}, 'e87521': {'2025': 0.0}, 'pr_compensatory_low_income_credit': {'2025': 0.0}, 'pr_low_income_credit_eligible_person': {'2025': False}, 'pell_grant_countable_assets': {'2025': 0.0}, 'pell_grant_formula': {'2025': 'B'}, 'cost_of_attending_college': {'2025': 0.0}, 'pell_grant': {'2025': 0.0}, 'pell_grant_months_in_school': {'2025': 0.0}, 'pell_grant_efc': {'2025': 0.0}, 'pell_grant_uses_efc': {'2025': False}, 'pell_grant_simplified_formula_applies': {'2025': False}, 'pell_grant_head_allowances': {'2025': 0.0}, 'pell_grant_head_contribution': {'2025': 0.0}, 'pell_grant_head_available_income': {'2025': 0.0}, 'pell_grant_contribution_from_assets': {'2025': 0.0}, 'pell_grant_sai': {'2025': 0.0}, 'pell_grant_uses_sai': {'2025': True}, 'pell_grant_household_type': {'2025': 'INDEPENDENT_SINGLE'}, 'pell_grant_eligibility_type': {'2025': 'MAXIMUM'}, 'pell_grant_max_fpg_percent_limit': {'2025': 2.25}, 'pell_grant_min_fpg_percent_limit': {'2025': 2.75}, 'pell_grant_dependent_available_income': {'2025': 0.0}, 'pell_grant_dependent_allowances': {'2025': 7040.0}, 'pell_grant_dependent_other_allowances': {'2025': 0.0}, 'pell_grant_dependent_contribution': {'2025': -3520.0}, 'person_aca_slspc_ca': {'2025': 6685.0}, 'aca_slspc_trimmed_age': {'2025': 30.0}, 'is_aca_ptc_eligible': {'2025': True}, 'is_aca_ptc_eligible_ca': {'2025': True}, 'is_aca_eshi_eligible': {'2025': False}, 'aca_child_index': {'2025': 99.0}, 'relative_capital_gains_mtr_change': {'2025': 0.0}, 'capital_gains_elasticity': {'2025': 0.0}, 'capital_gains_behavioral_response': {'2025': 0.0}, 'capital_gains_before_response': {'2025': 0.0}, 'adult_index_cg': {'2025': 1.0}, 'marginal_tax_rate_on_capital_gains': {'2025': 0.13999999}, 'relative_income_change': {'2025': 0.0}, 'relative_wage_change': {'2025': 0.0}, 'income_elasticity_lsr': {'2025': 0.0}, 'income_elasticity': {'2025': 0.0}, 'substitution_elasticity': {'2025': 0.0}, 'substitution_elasticity_lsr': {'2025': 0.0}, 'labor_supply_behavioral_response': {'2025': 0.0}, 'employment_income_behavioral_response': {'2025': 0.0}, 'self_employment_income_behavioral_response': {'2025': 0.0}, 'is_co_denver_dhs_elderly': {'2025': False}, 'la_general_relief_gross_income': {'2025': 0.0}, 'la_general_relief_immigration_status_eligible_person': {'2025': False}, 'ca_la_expectant_parent_payment_eligible': {'2025': False}, 'ca_la_expectant_parent_payment': {'2025': 0.0}, 'ca_la_infant_supplement_eligible_infant': {'2025': False}, 'ca_la_infant_supplement_eligible_person': {'2025': False}, 'assessed_property_value': {'2025': 0.0}, 'is_usda_disabled': {'2025': False}, 'is_usda_elderly': {'2025': False}, 'is_snap_ineligible_student': {'2025': False}, 'commodity_supplemental_food_program_eligible': {'2025': False}, 'commodity_supplemental_food_program': {'2025': 0.0}, 'meets_wic_categorical_eligibility': {'2025': False}, 'wic_category_str': {'2025': 'NONE'}, 'receives_wic': {'2025': False}, 'wic_category': {'2025': 'NONE'}, 'is_wic_at_nutritional_risk': {'2025': True}, 'is_wic_eligible': {'2025': False}, 'wic': {'2025': 0.0}, 'would_claim_wic': {'2025': True}, 'maximum_state_supplement': {'2025': 0.0}, 'state_supplement': {'2025': 0.0}, 'social_security_disability': {'2025': 0.0}, 'never_eligible_for_social_security_benefits': {'2025': False}, 'social_security_dependents': {'2025': 0.0}, 'social_security_survivors': {'2025': 0.0}, 'social_security_retirement': {'2025': 0.0}, 'social_security': {'2025': 0.0}, 'uncapped_ssi': {'2025': 0.0}, 'ssi_claim_is_joint': {'2025': False}, 'is_ssi_eligible': {'2025': 0.0}, 'ssi_amount_if_eligible': {'2025': 11604.0}, 'ssi': {'2025': 0.0}, 'meets_ssi_resource_test': {'2025': True}, 'ssi_countable_resources': {'2025': 0.0}, 'ssi_blind_or_disabled_working_student_exclusion': {'2025': 0.0}, 'ssi_earned_income': {'2025': 30000.0}, 'ssi_countable_income': {'2025': 0.0}, 'ssi_engaged_in_sga': {'2025': True}, 'ssi_unearned_income': {'2025': 0.0}, 'is_ssi_blind_or_disabled_working_student_exclusion_eligible': {'2025': 0.0}, 'ssi_ineligible_child_allocation': {'2025': 0.0}, 'ssi_ineligible_parent_allocation': {'2025': 0.0}, 'ssi_unearned_income_deemed_from_ineligible_parent': {'2025': 0.0}, 'ssi_earned_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_unearned_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_marital_both_eligible': {'2025': False}, 'ssi_marital_unearned_income': {'2025': 0.0}, 'ssi_marital_earned_income': {'2025': 30000.0}, 'is_ssi_qualified_noncitizen': {'2025': False}, 'is_ssi_eligible_spouse': {'2025': False}, 'is_ssi_aged_blind_disabled': {'2025': False}, 'is_ssi_ineligible_parent': {'2025': False}, 'is_ssi_aged': {'2025': False}, 'is_ssi_ineligible_spouse': {'2025': False}, 'is_ssi_disabled': {'2025': False}, 'is_ssi_ineligible_child': {'2025': False}, 'is_ssi_eligible_individual': {'2025': False}, 'ssi_category': {'2025': 'NONE'}, 'workers_compensation': {'2025': 0.0}, 'unemployment_compensation': {'2025': 0.0}, 'general_assistance': {'2025': 0.0}, 'vt_withheld_income_tax': {'2025': 0.0}, 'va_withheld_income_tax': {'2025': 0.0}, 'va_agi_share': {'2025': 0.0}, 'va_agi_person': {'2025': 0.0}, 'va_aged_blind_exemption_person': {'2025': 0.0}, 'va_personal_exemption_person': {'2025': 0.0}, 'va_eitc_person': {'2025': 0.0}, 'va_agi_less_exemptions_person': {'2025': 0.0}, 'sc_withheld_income_tax': {'2025': 0.0}, 'sc_retirement_cap': {'2025': 0.0}, 'sc_retirement_deduction_indv': {'2025': 0.0}, 'sc_retirement_deduction_survivors': {'2025': 0.0}, 'sc_military_deduction_indv': {'2025': 0.0}, 'sc_military_deduction_survivors': {'2025': 0.0}, 'sc_senior_exemption_person': {'2025': 0.0}, 'sc_tuition_credit_eligible': {'2025': False}, 'sc_tuition_credit': {'2025': 0.0}, 'sc_gross_earned_income': {'2025': 0.0}, 'ut_withheld_income_tax': {'2025': 0.0}, 'ut_at_home_parent_credit_earned_income_eligible_person': {'2025': False}, 'ut_personal_exemption_additional_dependent_eligible': {'2025': False}, 'ga_withheld_income_tax': {'2025': 0.0}, 'ga_retirement_income_exclusion_retirement_income': {'2025': 0.0}, 'ga_retirement_exclusion_countable_earned_income': {'2025': 0.0}, 'ga_retirement_exclusion_person': {'2025': 0.0}, 'ga_retirement_exclusion_eligible_person': {'2025': False}, 'ga_military_retirement_exclusion_person': {'2025': 0.0}, 'ga_military_retirement_exclusion_eligible_person': {'2025': False}, 'ms_withheld_income_tax': {'2025': 0.0}, 'ms_agi_adjustments': {'2025': 0.0}, 'ms_prorate_fraction': {'2025': 0.0}, 'ms_income_tax_before_credits_indiv': {'2025': 0.0}, 'ms_income_tax_before_credits_joint': {'2025': 0.0}, 'ms_agi': {'2025': 0.0}, 'ms_taxable_income_indiv': {'2025': 0.0}, 'ms_taxable_income_joint': {'2025': 0.0}, 'ms_pre_deductions_taxable_income_indiv': {'2025': 0.0}, 'ms_deductions_joint': {'2025': 0.0}, 'ms_deductions_indiv': {'2025': 0.0}, 'ms_itemized_deductions_joint': {'2025': 0.0}, 'ms_itemized_deductions_indiv': {'2025': 0.0}, 'ms_standard_deduction_indiv': {'2025': 0.0}, 'ms_standard_deduction_joint': {'2025': 0.0}, 'ms_self_employment_adjustment': {'2025': 0.0}, 'ms_national_guard_or_reserve_pay_adjustment': {'2025': 0.0}, 'ms_total_exemptions_joint': {'2025': 0.0}, 'ms_total_exemptions_indiv': {'2025': 0.0}, 'mt_agi': {'2025': 0.0}, 'mt_regular_income_tax_indiv': {'2025': 0.0}, 'mt_taxable_social_security': {'2025': 0.0}, 'mt_income_tax_before_refundable_credits_indiv': {'2025': 0.0}, 'mt_withheld_income_tax': {'2025': 0.0}, 'mt_refundable_credits': {'2025': 0.0}, 'mt_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'mt_applicable_ald_deductions': {'2025': 0.0}, 'mt_non_refundable_credits': {'2025': 0.0}, 'mt_income_tax_indiv': {'2025': 0.0}, 'mt_taxable_income_indiv': {'2025': 0.0}, 'mt_pre_dependent_exemption_taxable_income_indiv': {'2025': 0.0}, 'mt_refundable_credits_before_renter_credit': {'2025': 0.0}, 'mt_taxable_income_joint': {'2025': 0.0}, 'mt_disability_income_exclusion_eligible_person': {'2025': False}, 'mt_subtractions': {'2025': 0.0}, 'mt_disability_income_exclusion_person': {'2025': 0.0}, 'mt_tuition_subtraction_person': {'2025': 0.0}, 'mt_old_age_subtraction': {'2025': 0.0}, 'mt_additions': {'2025': 0.0}, 'mt_deductions_indiv': {'2025': 0.0}, 'mt_medical_expense_deduction_indiv': {'2025': 0.0}, 'mt_medical_expense_deduction_joint': {'2025': 0.0}, 'mt_salt_deduction': {'2025': 0.0}, 'mt_itemized_deductions_joint': {'2025': 0.0}, 'mt_federal_income_tax_deduction_indiv': {'2025': 0.0}, 'mt_itemized_deductions_indiv': {'2025': 0.0}, 'mt_misc_deductions': {'2025': 0.0}, 'mt_standard_deduction_joint': {'2025': 0.0}, 'mt_standard_deduction_indiv': {'2025': 0.0}, 'mt_child_dependent_care_expense_deduction_eligible_child': {'2025': False}, 'mt_child_dependent_care_expense_deduction': {'2025': 0.0}, 'mt_capital_gains_tax_joint': {'2025': 0.0}, 'mt_capital_gains_tax_indiv': {'2025': 0.0}, 'mt_capital_gains_tax_applicable_threshold_joint': {'2025': 0.0}, 'mt_capital_gains_tax_applicable_threshold_indiv': {'2025': 0.0}, 'mt_aged_exemption_eligible_person': {'2025': False}, 'mt_interest_exemption_eligible_person': {'2025': False}, 'mt_interest_exemption_person': {'2025': 0.0}, 'mt_dependent_exemptions_person': {'2025': 0.0}, 'mt_personal_exemptions_joint': {'2025': 0.0}, 'mt_personal_exemptions_indiv': {'2025': 0.0}, 'mt_eitc': {'2025': 0.0}, 'mt_capital_gain_credit': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_net_household_income': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_eligible': {'2025': False}, 'mt_elderly_homeowner_or_renter_credit_gross_household_income': {'2025': 0.0}, 'mo_withheld_income_tax': {'2025': 0.0}, 'mo_qualified_health_insurance_premiums': {'2025': 0.0}, 'mo_income_tax_before_credits': {'2025': 0.0}, 'mo_income_tax_exempt': {'2025': 0.0}, 'mo_taxable_income': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_b': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_c': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_a': {'2025': 0.0}, 'mo_adjusted_gross_income': {'2025': 0.0}, 'ma_withheld_income_tax': {'2025': 0.0}, 'ma_covid_19_essential_employee_premium_pay_program': {'2025': 0.0}, 'claimed_ma_covid_19_essential_employee_premium_pay_program_2020': {'2025': False}, 'ak_permanent_fund_dividend': {'2025': 0.0}, 'ak_energy_relief': {'2025': 0.0}, 'ky_additions': {'2025': 0.0}, 'ky_agi': {'2025': 0.0}, 'ky_subtractions': {'2025': 0.0}, 'ky_withheld_income_tax': {'2025': 0.0}, 'ky_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'ky_taxable_income_indiv': {'2025': 0.0}, 'ky_taxable_income_joint': {'2025': 0.0}, 'ky_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'ky_deductions_indiv': {'2025': 0.0}, 'ky_itemized_deductions_joint': {'2025': 0.0}, 'ky_standard_deduction_indiv': {'2025': 0.0}, 'ky_deductions_joint': {'2025': 0.0}, 'ky_standard_deduction_joint': {'2025': 0.0}, 'ky_itemized_deductions_indiv': {'2025': 0.0}, 'ky_pension_income_exclusion': {'2025': 0.0}, 'ky_service_credit_months_pre_1998': {'2025': 0.0}, 'ky_service_credits_percentage_pre_1998': {'2025': 0.0}, 'ky_service_credit_months_post_1997': {'2025': 0.0}, 'ky_pension_income_exclusion_exemption_eligible': {'2025': False}, 'retired_from_ky_government': {'2025': False}, 'ky_personal_tax_credits_joint': {'2025': 0.0}, 'ky_aged_personal_tax_credits': {'2025': 0.0}, 'ky_personal_tax_credits_indiv': {'2025': 0.0}, 'ky_military_personal_tax_credits': {'2025': 0.0}, 'ky_blind_personal_tax_credits': {'2025': 0.0}, 'al_withheld_income_tax': {'2025': 0.0}, 'al_retirement_exemption_person': {'2025': 0.0}, 'al_retirement_exemption_eligible_person': {'2025': False}, 'mn_withheld_income_tax': {'2025': 0.0}, 'mi_withheld_income_tax': {'2025': 0.0}, 'mi_disabled_exemption_eligible_person': {'2025': 0.0}, 'ok_withheld_income_tax': {'2025': 0.0}, 'in_withheld_income_tax': {'2025': 0.0}, 'in_is_qualifying_dependent_child': {'2025': False}, 'co_withheld_income_tax': {'2025': 0.0}, 'co_social_security_subtraction_indv_eligible': {'2025': 0.0}, 'co_pension_subtraction_income': {'2025': 0.0}, 'co_social_security_subtraction_indv': {'2025': 0.0}, 'co_pension_subtraction_indv': {'2025': 0.0}, 'co_pension_subtraction_indv_eligible': {'2025': False}, 'co_family_affordability_credit': {'2025': 0.0}, 'co_ctc_eligible_child': {'2025': False}, 'co_federal_ctc_child_individual_maximum': {'2025': 0.0}, 'co_ccap_child_eligible': {'2025': False}, 'co_quality_rating_of_child_care_facility': {'2025': 0.0}, 'co_oap_eligible': {'2025': False}, 'co_oap': {'2025': 0.0}, 'co_state_supplement_eligible': {'2025': False}, 'co_state_supplement': {'2025': 0.0}, 'co_chp': {'2025': 0.0}, 'co_chp_eligible': {'2025': False}, 'co_chp_out_of_pocket_maximum': {'2025': 1500.0}, 'ca_foster_care_minor_dependent': {'2025': False}, 'ca_in_medical_care_facility': {'2025': False}, 'ca_ffyp_eligible': {'2025': False}, 'ca_withheld_income_tax': {'2025': 379.25394}, 'ca_is_qualifying_child_for_caleitc': {'2025': False}, 'ca_foster_youth_tax_credit_person': {'2025': 0.0}, 'ca_foster_youth_tax_credit_eligible_person': {'2025': False}, 'ca_state_disability_insurance': {'2025': 0.0}, 'is_ca_cvrp_increased_rebate_eligible': {'2025': True}, 'ca_cvrp_vehicle_rebate_amount': {'2025': 0.0}, 'is_ca_cvrp_normal_rebate_eligible': {'2025': True}, 'ca_cvrp': {'2025': 0.0}, 'ca_in_home_supportive_services': {'2025': 0.0}, 'ca_capi_eligible_person': {'2025': False}, 'ca_calworks_child_care_days_per_month': {'2025': 0.0}, 'ca_calworks_child_care_weeks_per_month': {'2025': 0.0}, 'ca_calworks_child_care_provider_category': {'2025': 'CHILD_CARE_CENTER'}, 'ca_calworks_child_care_full_time': {'2025': False}, 'ca_calworks_child_care_time_category': {'2025': 'WEEKLY'}, 'ca_calworks_child_care_welfare_to_work': {'2025': 0.0}, 'ca_calworks_child_care_child_age_eligible': {'2025': False}, 'ca_calworks_child_care_payment': {'2025': 0.0}, 'ca_calworks_child_care_time_coefficient': {'2025': 0.0}, 'ca_calworks_child_care_payment_factor': {'2025': 12.0}, 'ca_calworks_child_care_payment_standard': {'2025': 0.0}, 'ca_calworks_child_care_factor_category': {'2025': 'STANDARD'}, 'ia_withheld_income_tax': {'2025': 0.0}, 'ia_regular_tax_indiv': {'2025': 0.0}, 'ia_base_tax_joint': {'2025': 0.0}, 'ia_base_tax_indiv': {'2025': 0.0}, 'ia_regular_tax_joint': {'2025': 0.0}, 'ia_taxable_income_joint': {'2025': 0.0}, 'ia_amt_joint': {'2025': 0.0}, 'ia_taxable_income_indiv': {'2025': 0.0}, 'ia_amt_indiv': {'2025': 0.0}, 'ia_standard_deduction_joint': {'2025': 0.0}, 'ia_standard_deduction_indiv': {'2025': 0.0}, 'ia_itemized_deductions_joint': {'2025': 0.0}, 'ia_fedtax_deduction': {'2025': 0.0}, 'ia_itemized_deductions_indiv': {'2025': 0.0}, 'ia_basic_deduction_joint': {'2025': 0.0}, 'ia_qbi_deduction': {'2025': 0.0}, 'ia_basic_deduction_indiv': {'2025': 0.0}, 'ia_alternate_tax_indiv': {'2025': 0.0}, 'ia_alternate_tax_joint': {'2025': 0.0}, 'ia_income_adjustments': {'2025': 0.0}, 'ia_pension_exclusion': {'2025': 0.0}, 'ia_net_income': {'2025': 0.0}, 'ia_pension_exclusion_eligible': {'2025': False}, 'ia_gross_income': {'2025': 0.0}, 'ia_prorate_fraction': {'2025': 0.0}, 'ct_withheld_income_tax': {'2025': 0.0}, 'wv_withheld_income_tax': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_person': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_eligible_person': {'2025': False}, 'wv_senior_citizen_disability_deduction_total_modifications': {'2025': 0.0}, 'wv_public_pension_subtraction_person': {'2025': 0.0}, 'wv_social_security_benefits_subtraction_person': {'2025': 0.0}, 'ri_withheld_income_tax': {'2025': 0.0}, 'pa_withheld_income_tax': {'2025': 0.0}, 'pa_nontaxable_pension_income': {'2025': 0.0}, 'nc_withheld_income_tax': {'2025': 0.0}, 'nc_military_retirement_deduction_eligible': {'2025': False}, 'nd_withheld_income_tax': {'2025': 0.0}, 'nm_withheld_income_tax': {'2025': 0.0}, 'nm_armed_forces_retirement_pay_exemption_person': {'2025': 0.0}, 'nm_cdcc_eligible_child': {'2025': False}, 'nj_withheld_income_tax': {'2025': 0.0}, 'nj_eligible_pension_income': {'2025': 0.0}, 'nj_agi_subtractions': {'2025': 0.0}, 'nj_additions': {'2025': 0.0}, 'nj_total_income': {'2025': 0.0}, 'me_withheld_income_tax': {'2025': 0.0}, 'ar_taxable_income_joint': {'2025': 0.0}, 'ar_taxable_income_indiv': {'2025': 0.0}, 'ar_withheld_income_tax': {'2025': 0.0}, 'ar_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'ar_taxable_capital_gains_joint': {'2025': 0.0}, 'ar_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'ar_taxable_capital_gains_indiv': {'2025': 0.0}, 'ar_gross_income_indiv': {'2025': 0.0}, 'ar_exemptions': {'2025': 0.0}, 'ar_gross_income_joint': {'2025': 0.0}, 'ar_agi_joint': {'2025': 0.0}, 'ar_agi_indiv': {'2025': 0.0}, 'ar_deduction_indiv': {'2025': 0.0}, 'ar_deduction_joint': {'2025': 0.0}, 'ar_itemized_deductions_joint': {'2025': 0.0}, 'ar_itemized_deductions_indiv': {'2025': 0.0}, 'ar_post_secondary_education_tuition_deduction_person': {'2025': 0.0}, 'ar_standard_deduction_indiv': {'2025': 0.0}, 'ar_standard_deduction_joint': {'2025': 0.0}, 'ar_low_income_tax_joint': {'2025': 0.0}, 'ar_retirement_or_disability_benefits_exemption_person': {'2025': 0.0}, 'ar_capped_retirement_or_disability_benefits_exemption_person': {'2025': 0.0}, 'ar_military_retirement_income_person': {'2025': 0.0}, 'ar_inflation_relief_credit_person': {'2025': 0.0}, 'ar_personal_credit_dependent': {'2025': 0.0}, 'ar_personal_credit_disabled_dependent': {'2025': 0.0}, 'dc_withheld_income_tax': {'2025': 0.0}, 'dc_taxable_income_indiv': {'2025': 0.0}, 'dc_agi': {'2025': 0.0}, 'dc_income_subtractions': {'2025': 0.0}, 'dc_disability_exclusion': {'2025': 0.0}, 'dc_disabled_exclusion_subtraction': {'2025': 0.0}, 'dc_self_employment_loss_addition': {'2025': 0.0}, 'dc_additions': {'2025': 0.0}, 'dc_deduction_indiv': {'2025': 0.0}, 'dc_ctc_eligible_child': {'2025': False}, 'md_withheld_income_tax': {'2025': 0.0}, 'md_pension_subtraction_amount': {'2025': 0.0}, 'md_socsec_subtraction_amount': {'2025': 0.0}, 'md_hundred_year_subtraction_eligible': {'2025': False}, 'md_hundred_year_subtraction_person': {'2025': 0.0}, 'md_snap_is_elderly': {'2025': False}, 'ks_withheld_income_tax': {'2025': 0.0}, 'ks_disabled_veteran_exemptions_eligible_person': {'2025': False}, 'ne_withheld_income_tax': {'2025': 0.0}, 'ne_refundable_ctc_eligible_child': {'2025': False}, 'ne_dhhs_has_special_needs': {'2025': False}, 'ne_child_care_subsidy_eligible_child': {'2025': False}, 'ne_child_care_subsidy_eligible_parent': {'2025': False}, 'hi_withheld_income_tax': {'2025': 0.0}, 'hi_food_excise_credit_child_receiving_public_support': {'2025': False}, 'hi_cdcc_income_floor_eligible': {'2025': False}, 'de_taxable_income_indv': {'2025': 0.0}, 'de_income_tax_before_non_refundable_credits_indv': {'2025': 0.0}, 'de_withheld_income_tax': {'2025': 0.0}, 'de_agi_indiv': {'2025': 0.0}, 'de_taxable_income_joint': {'2025': 0.0}, 'de_agi_joint': {'2025': 0.0}, 'de_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'de_pre_exclusions_agi': {'2025': 0.0}, 'de_subtractions': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_eligible_person': {'2025': False}, 'de_elderly_or_disabled_income_exclusion_indiv': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_joint': {'2025': 0.0}, 'de_pension_exclusion_income': {'2025': 0.0}, 'de_pension_exclusion': {'2025': 0.0}, 'de_additions': {'2025': 0.0}, 'de_deduction_joint': {'2025': 0.0}, 'de_deduction_indv': {'2025': 0.0}, 'de_itemized_deductions_joint': {'2025': 0.0}, 'de_itemized_deductions_indv': {'2025': 0.0}, 'de_standard_deduction_indv': {'2025': 0.0}, 'de_base_standard_deduction_joint': {'2025': 0.0}, 'de_base_standard_deduction_indv': {'2025': 0.0}, 'de_additional_standard_deduction': {'2025': 0.0}, 'de_standard_deduction_joint': {'2025': 0.0}, 'az_withheld_income_tax': {'2025': 0.0}, 'az_aged_exemption_eligible_person': {'2025': 0.0}, 'az_parents_grandparents_exemption': {'2025': 0.0}, 'az_aged_exemption': {'2025': 0.0}, 'az_tanf_eligible_child': {'2025': False}, 'ny_withheld_income_tax': {'2025': 0.0}, 'id_withheld_income_tax': {'2025': 0.0}, 'id_aged_or_disabled_deduction_eligible_person': {'2025': False}, 'id_retirement_benefits_deduction_eligible_person': {'2025': False}, 'id_retirement_benefits_deduction_relevant_income': {'2025': 0.0}, 'id_aged_or_disabled_credit_eligible_person': {'2025': False}, 'id_grocery_credit_base': {'2025': 0.0}, 'id_grocery_credit_aged': {'2025': 0.0}, 'id_grocery_credit_qualified_months': {'2025': 0.0}, 'id_grocery_credit_qualifying_month': {'2025': False}, 'oh_withheld_income_tax': {'2025': 0.0}, 'oh_bonus_depreciation_add_back': {'2025': 0.0}, 'oh_additions': {'2025': 0.0}, 'oh_other_add_backs': {'2025': 0.0}, 'oh_federal_conformity_deductions': {'2025': 0.0}, 'oh_uniformed_services_retirement_income_deduction': {'2025': 0.0}, 'oh_section_179_expense_add_back': {'2025': 0.0}, 'oh_deductions': {'2025': 0.0}, 'oh_uninsured_unreimbursed_medical_care_expenses': {'2025': 0.0}, 'oh_unreimbursed_medical_care_expense_deduction_person': {'2025': 0.0}, 'oh_insured_unreimbursed_medical_care_expenses_person': {'2025': 0.0}, 'oh_insured_unreimbursed_medical_care_expense_amount': {'2025': 0.0}, 'oh_529_plan_deduction_person': {'2025': 0.0}, 'oh_personal_exemptions_eligible_person': {'2025': False}, 'oh_has_taken_oh_lump_sum_credits': {'2025': False}, 'oh_adoption_credit_person': {'2025': 0.0}, 'oh_lump_sum_distribution_credit_eligible_person': {'2025': False}, 'oh_lump_sum_distribution_credit_person': {'2025': 0.0}, 'oh_joint_filing_credit_qualifying_income': {'2025': 0.0}, 'oh_joint_filing_credit_agi_subtractions': {'2025': 0.0}, 'oh_agi_person': {'2025': 0.0}, 'or_withheld_income_tax': {'2025': 0.0}, 'or_retirement_credit_eligible': {'2025': False}, 'il_withheld_income_tax': {'2025': 0.0}, 'la_withheld_income_tax': {'2025': 0.0}, 'la_disability_income_exemption_person': {'2025': 0.0}, 'la_retirement_exemption_person': {'2025': 0.0}, 'la_blind_exemption_person': {'2025': 0.0}, 'la_receives_blind_exemption': {'2025': True}, 'la_school_readiness_credit_eligible_child': {'2025': False}, 'la_quality_rating_of_child_care_facility': {'2025': 0.0}, 'wi_withheld_income_tax': {'2025': 0.0}, 'vita_eligible': {'2025': True}, 'adjusted_earnings': {'2025': 30000.0}, 'is_irs_aged': {'2025': False}, 'qualified_business_income': {'2025': 0.0}, 'qualified_business_income_deduction_person': {'2025': 0.0}, 'qbid_amount': {'2025': 0.0}, 'adjusted_gross_income_person': {'2025': 30000.0}, 'irs_employment_income': {'2025': 30000.0}, 'pre_tax_contributions': {'2025': 0.0}, 'irs_gross_income': {'2025': 30000.0}, 'taxable_unemployment_compensation': {'2025': 0.0}, 'tax_exempt_unemployment_compensation': {'2025': 0.0}, 'earned_income_last_year': {'2025': 0.0}, 'earned_income': {'2025': 30000.0}, 'taxable_social_security': {'2025': 0.0}, 'self_employed_pension_contribution_ald_person': {'2025': 0.0}, 'self_employment_tax_ald_person': {'2025': 0.0}, 'self_employed_health_insurance_ald_person': {'2025': 0.0}, 'student_loan_interest_ald_magi': {'2025': 0.0}, 'student_loan_interest_ald_eligible': {'2025': False}, 'student_loan_interest_ald': {'2025': 0.0}, 'estate_tax_before_credits': {'2025': 0.0}, 'estate_tax': {'2025': 0.0}, 'self_employment_medicare_tax': {'2025': 0.0}, 'social_security_taxable_self_employment_income': {'2025': 0.0}, 'self_employment_tax': {'2025': 0.0}, 'self_employment_social_security_tax': {'2025': 0.0}, 'taxable_self_employment_income': {'2025': 0.0}, 'payroll_tax_gross_wages': {'2025': 30000.0}, 'employee_medicare_tax': {'2025': 435.0}, 'taxable_earnings_for_social_security': {'2025': 30000.0}, 'employee_social_security_tax': {'2025': 1860.0}, 'is_tce_eligible': {'2025': False}, 'other_credits': {'2025': 0.0}, 'amt_foreign_tax_credit': {'2025': 0.0}, 'estate_tax_credit': {'2025': 0.0}, 'savers_credit_person': {'2025': 0.0}, 'savers_credit_qualified_contributions': {'2025': 0.0}, 'savers_credit_eligible_person': {'2025': True}, 'prior_year_minimum_tax_credit': {'2025': 0.0}, 'total_disability_payments': {'2025': 0.0}, 'retired_on_total_disability': {'2025': False}, 'qualifies_for_elderly_or_disabled_credit': {'2025': False}, 'is_eligible_for_american_opportunity_credit': {'2025': False}, 'ctc_qualifying_child': {'2025': False}, 'ctc_individual_maximum': {'2025': 0.0}, 'ctc_child_individual_maximum': {'2025': 0.0}, 'ctc_adult_individual_maximum': {'2025': 0.0}, 'ctc_child_individual_maximum_arpa': {'2025': 0.0}, 'general_business_credit': {'2025': 0.0}, 'is_cdcc_eligible': {'2025': False}, 'head_start': {'2025': 0.0}, 'is_head_start_income_eligible': {'2025': False}, 'is_head_start_eligible': {'2025': False}, 'early_head_start': {'2025': 0.0}, 'is_early_head_start_eligible': {'2025': False}, 'is_head_start_categorically_eligible': {'2025': False}, 'medicaid': {'2025': 0.0}, 'medicaid_benefit_value': {'2025': 8420.246}, 'medicaid_income_level': {'2025': 1.916933}, 'is_medicaid_eligible': {'2025': False}, 'medicaid_category': {'2025': 'NONE'}, 'is_optional_senior_or_disabled_for_medicaid': {'2025': False}, 'is_ssi_recipient_for_medicaid': {'2025': False}, 'is_in_medicaid_medically_needy_category': {'2025': False}, 'is_medically_needy_for_medicaid': {'2025': False}, 'is_young_child_for_medicaid_fc': {'2025': True}, 'is_young_child_for_medicaid_nfc': {'2025': False}, 'is_young_child_for_medicaid': {'2025': False}, 'is_young_adult_for_medicaid_fc': {'2025': False}, 'is_young_adult_for_medicaid_nfc': {'2025': False}, 'is_young_adult_for_medicaid': {'2025': False}, 'is_older_child_for_medicaid': {'2025': False}, 'is_older_child_for_medicaid_nfc': {'2025': False}, 'is_older_child_for_medicaid_fc': {'2025': True}, 'is_parent_for_medicaid_nfc': {'2025': False}, 'is_parent_for_medicaid': {'2025': False}, 'is_parent_for_medicaid_fc': {'2025': False}, 'is_pregnant_for_medicaid': {'2025': False}, 'is_pregnant_for_medicaid_fc': {'2025': True}, 'is_pregnant_for_medicaid_nfc': {'2025': False}, 'is_infant_for_medicaid_fc': {'2025': True}, 'is_infant_for_medicaid': {'2025': False}, 'is_infant_for_medicaid_nfc': {'2025': False}, 'is_adult_for_medicaid': {'2025': False}, 'is_adult_for_medicaid_fc': {'2025': False}, 'is_adult_for_medicaid_nfc': {'2025': True}, 'is_medicare_eligible': {'2025': False}, 'months_receiving_social_security_disability': {'2025': 0.0}, 'ccdf_market_rate': {'2025': 0.0}, 'is_ccdf_reason_for_care_eligible': {'2025': False}, 'is_enrolled_in_ccdf': {'2025': False}, 'ccdf_duration_of_care': {'2025': 'HOURLY'}, 'is_ccdf_eligible': {'2025': False}, 'is_ccdf_home_based': {'2025': False}, 'is_ccdf_age_eligible': {'2025': False}, 'ccdf_age_group': {'2025': 'INFANT'}, 'tanf_reported': {'2025': 0.0}, 'tanf_person': {'2025': 0.0}, 'is_person_demographic_tanf_eligible': {'2025': False}}}}, full_household_reform={'people': {'person': {'age': {'2025': 30.0}, 'employment_income': {'2025': 30000.0}, 'employment_income_before_lsr': {'2025': 30000.0}, 'self_employment_income_before_lsr': {'2025': 0.0}, 'self_employment_income': {'2025': 0.0}, 'emp_self_emp_ratio': {'2025': 1.0}, 'farm_income': {'2025': 0.0}, 'marginal_tax_rate': {'2025': 0.2261582}, 'adult_index': {'2025': 1.0}, 'adult_earnings_index': {'2025': 1.0}, 'cliff_evaluated': {'2025': True}, 'cliff_gap': {'2025': 0.0}, 'is_on_cliff': {'2025': False}, 'child_index': {'2025': 0.0}, 'deductible_interest_expense': {'2025': 0.0}, 'deductible_mortgage_interest': {'2025': 0.0}, 'alimony_expense': {'2025': 0.0}, 'investment_expenses': {'2025': 0.0}, 'investment_interest_expense': {'2025': 0.0}, 'home_mortgage_interest': {'2025': 0.0}, 'educator_expense': {'2025': 0.0}, 'student_loan_interest': {'2025': 0.0}, 'non_deductible_mortgage_interest': {'2025': 0.0}, 'qualified_tuition_expenses': {'2025': 0.0}, 'non_mortgage_interest': {'2025': 0.0}, 'mortgage_interest': {'2025': 0.0}, 'qualified_adoption_assistance_expense': {'2025': 0.0}, 'ambulance_expense': {'2025': 0.0}, 'health_savings_account_payroll_contributions': {'2025': 0.0}, 'has_marketplace_health_coverage': {'2025': True}, 'prescription_expense': {'2025': 0.0}, 'employer_contribution_to_health_insurance_premiums_category': {'2025': 'NONE'}, 'health_insurance_premiums': {'2025': 0.0}, 'lab_expense': {'2025': 0.0}, 'medicare_part_b_premiums': {'2025': 0.0}, 'inpatient_expense': {'2025': 0.0}, 'er_visit_expense': {'2025': 0.0}, 'outpatient_expense': {'2025': 0.0}, 'over_the_counter_health_expenses': {'2025': 0.0}, 'long_term_health_insurance_premiums': {'2025': 0.0}, 'imaging_expense': {'2025': 0.0}, 'urgent_care_expense': {'2025': 0.0}, 'physician_services_expense': {'2025': 0.0}, 'self_employed_health_insurance_premiums': {'2025': 0.0}, 'other_medical_expenses': {'2025': 0.0}, 'health_insurance_premiums_without_medicare_part_b': {'2025': 0.0}, 'medical_out_of_pocket_expenses': {'2025': 0.0}, 'investment_in_529_plan_indv': {'2025': 0.0}, 'non_public_school_tuition': {'2025': 0.0}, 'count_529_contribution_beneficiaries': {'2025': 0.0}, 'roth_403b_contributions': {'2025': 0.0}, 'traditional_403b_contributions': {'2025': 0.0}, 'self_employed_pension_contributions': {'2025': 0.0}, 'traditional_ira_contributions': {'2025': 0.0}, 'traditional_401k_contributions': {'2025': 0.0}, 'early_withdrawal_penalty': {'2025': 0.0}, 'roth_ira_contributions': {'2025': 0.0}, 'able_contributions_person': {'2025': 0.0}, 'roth_401k_contributions': {'2025': 0.0}, 'casualty_loss': {'2025': 0.0}, 'real_estate_taxes': {'2025': 0.0}, 'taxable_estate_value': {'2025': 0.0}, 'excess_withheld_payroll_tax': {'2025': 0.0}, 'state_income_tax_reported': {'2025': 0.0}, 'pre_subsidy_rent': {'2025': 0.0}, 'heating_expense_person': {'2025': 0.0}, 'rent': {'2025': 0.0}, 'charitable_non_cash_donations': {'2025': 0.0}, 'charitable_cash_donations': {'2025': 0.0}, 'care_expenses': {'2025': 0.0}, 'pre_subsidy_childcare_expenses': {'2025': 0.0}, 'after_school_expenses': {'2025': 0.0}, 'childcare_provider_type_group': {'2025': 'DCC_SACC'}, 'childcare_days_per_week': {'2025': 0.0}, 'pre_subsidy_care_expenses': {'2025': 0.0}, 'childcare_hours_per_week': {'2025': 0.0}, 'childcare_hours_per_day': {'2025': 0.0}, 'child_support_expense': {'2025': 0.0}, 'child_support_received': {'2025': 0.0}, 'is_tax_unit_dependent': {'2025': False}, 'is_tax_unit_head': {'2025': True}, 'is_tax_unit_spouse': {'2025': False}, 'is_child_of_tax_head': {'2025': False}, 'is_tax_unit_head_or_spouse': {'2025': True}, 'is_surviving_spouse': {'2025': False}, 'person_marital_unit_id': {'2025': 0.0}, 'is_separated': {'2025': False}, 'person_spm_unit_id': {'2025': 0.0}, 'is_father': {'2025': False}, 'care_and_support_costs': {'2025': 0.0}, 'is_breastfeeding': {'2025': False}, 'is_deceased': {'2025': False}, 'is_parent_of_filer_or_spouse': {'2025': False}, 'current_pregnancies': {'2025': 0.0}, 'is_male': {'2025': True}, 'receives_or_needs_protective_services': {'2025': False}, 'own_children_in_household': {'2025': 0.0}, 'years_in_military': {'2025': 0.0}, 'is_in_k12_school': {'2025': False}, 'is_deaf': {'2025': False}, 'is_in_foster_care_group_home': {'2025': False}, 'adopted_this_year': {'2025': False}, 'is_permanently_and_totally_disabled': {'2025': False}, 'is_mother': {'2025': False}, 'race': {'2025': 'OTHER'}, 'is_parent': {'2025': False}, 'is_permanently_disabled_veteran': {'2025': False}, 'four_year_college_student': {'2025': False}, 'is_in_foster_care': {'2025': False}, 'year_of_retirement': {'2025': 0.0}, 'is_female': {'2025': False}, 'share_of_care_and_support_costs_paid_by_tax_filer': {'2025': 0.0}, 'current_pregnancy_month': {'2025': 9.0}, 'is_incapable_of_self_care': {'2025': False}, 'is_runaway_child': {'2025': False}, 'claimed_as_dependent_on_another_return': {'2025': False}, 'immigration_status': {'2025': 'CITIZEN'}, 'is_migratory_child': {'2025': False}, 'care_and_support_payments_from_tax_filer': {'2025': 0.0}, 'in_out_of_home_care_facility': {'2025': False}, 'divorce_year': {'2025': 2010.0}, 'is_severely_disabled': {'2025': False}, 'people': {'2025': 1.0}, 'vehicles_owned': {'2025': 0.0}, 'overtime_income': {'2025': 0.0}, 'is_retired': {'2025': False}, 'is_in_secondary_school': {'2025': False}, 'year_deceased': {'2025': 0.0}, 'is_surviving_child_of_disabled_veteran': {'2025': False}, 'is_blind': {'2025': False}, 'is_english_proficient': {'2025': False}, 'is_full_time_student': {'2025': False}, 'is_household_head': {'2025': False}, 'has_itin': {'2025': True}, 'is_full_time_college_student': {'2025': False}, 'tip_income': {'2025': 0.0}, 'is_grandparent_of_filer_or_spouse': {'2025': False}, 'is_pregnant': {'2025': False}, 'is_veteran': {'2025': False}, 'technical_institution_student': {'2025': False}, 'immigration_status_str': {'2025': 'CITIZEN'}, 'cps_race': {'2025': 0.0}, 'is_in_k12_nonpublic_school': {'2025': False}, 'is_hispanic': {'2025': False}, 'is_child_dependent': {'2025': False}, 'was_in_foster_care': {'2025': False}, 'has_disabled_spouse': {'2025': False}, 'is_disabled': {'2025': False}, 'is_adult': {'2025': True}, 'is_incarcerated': {'2025': False}, 'is_fully_disabled_service_connected_veteran': {'2025': False}, 'retired_from_federal_government': {'2025': False}, 'is_surviving_spouse_of_disabled_veteran': {'2025': False}, 'under_60_days_postpartum': {'2025': False}, 'count_days_postpartum': {'2025': 'Infinity'}, 'under_12_months_postpartum': {'2025': False}, 'person_weight': {'2025': 0.0}, 'person_family_id': {'2025': 0.0}, 'person_id': {'2025': 0.0}, 'person_household_id': {'2025': 0.0}, 'person_tax_unit_id': {'2025': 0.0}, 'is_wa_adult': {'2025': True}, 'is_child': {'2025': False}, 'birth_year': {'2025': 1995.0}, 'age_group': {'2025': 'WORKING_AGE'}, 'monthly_age': {'2025': 360.0}, 'is_senior': {'2025': False}, 'illicit_income': {'2025': 0.0}, 'ssi_reported': {'2025': 0.0}, 'weekly_hours_worked': {'2025': 0.0}, 'weekly_hours_worked_before_lsr': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response_income_elasticity': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response_substitution_elasticity': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response': {'2025': 0.0}, 'gambling_winnings': {'2025': 0.0}, 'employment_income_last_year': {'2025': 0.0}, 'gambling_losses': {'2025': 0.0}, 'ssi_qualifying_quarters_earnings': {'2025': 0.0}, 'dependent_care_employer_benefits': {'2025': 0.0}, 'farm_rent_income': {'2025': 0.0}, 'us_bonds_for_higher_ed': {'2025': 0.0}, 'miscellaneous_income': {'2025': 0.0}, 'gi_cash_assistance': {'2025': 0.0}, 'military_basic_pay': {'2025': 0.0}, 'strike_benefits': {'2025': 0.0}, 'rental_income': {'2025': 0.0}, 'salt_refund_income': {'2025': 0.0}, 'debt_relief': {'2025': 0.0}, 'alimony_income': {'2025': 0.0}, 'investment_income_elected_form_4952': {'2025': 0.0}, 'estate_income': {'2025': 0.0}, 'interest_income': {'2025': 0.0}, 'tax_exempt_interest_income': {'2025': 0.0}, 'taxable_interest_income': {'2025': 0.0}, 's_corp_self_employment_income': {'2025': 0.0}, 'self_employment_income_last_year': {'2025': 0.0}, 'previous_year_income_available': {'2025': False}, 'business_is_qualified': {'2025': True}, 'business_is_sstb': {'2025': False}, 'w2_wages_from_qualified_business': {'2025': 0.0}, 'is_self_employed': {'2025': False}, 'unadjusted_basis_qualified_property': {'2025': 0.0}, 'partnership_s_corp_income': {'2025': 0.0}, 'veterans_benefits': {'2025': 0.0}, 'personal_property': {'2025': 0.0}, 'market_income': {'2025': 30000.0}, 'state_or_federal_salary': {'2025': 0.0}, 'disability_benefits': {'2025': 0.0}, 'military_service_income': {'2025': 0.0}, 'railroad_benefits': {'2025': 0.0}, 'tax_exempt_403b_distributions': {'2025': 0.0}, 'taxable_pension_income': {'2025': 0.0}, 'tax_exempt_sep_distributions': {'2025': 0.0}, 'pension_income': {'2025': 0.0}, 'military_retirement_pay': {'2025': 0.0}, 'taxable_401k_distributions': {'2025': 0.0}, 'taxable_sep_distributions': {'2025': 0.0}, 'taxable_federal_pension_income': {'2025': 0.0}, 'retirement_distributions': {'2025': 0.0}, 'keogh_distributions': {'2025': 0.0}, 'pension_survivors': {'2025': 0.0}, 'sep_distributions': {'2025': 0.0}, 'tax_exempt_retirement_distributions': {'2025': 0.0}, 'taxable_retirement_distributions': {'2025': 0.0}, 'tax_exempt_private_pension_income': {'2025': 0.0}, 'private_pension_income': {'2025': 0.0}, 'retirement_benefits_from_ss_exempt_employment': {'2025': 0.0}, 'tax_exempt_public_pension_income': {'2025': 0.0}, 'military_retirement_pay_survivors': {'2025': 0.0}, 'tax_exempt_pension_income': {'2025': 0.0}, 'tax_exempt_ira_distributions': {'2025': 0.0}, 'taxable_ira_distributions': {'2025': 0.0}, 'public_pension_income': {'2025': 0.0}, 'tax_exempt_401k_distributions': {'2025': 0.0}, 'taxable_private_pension_income': {'2025': 0.0}, 'taxable_403b_distributions': {'2025': 0.0}, 'taxable_public_pension_income': {'2025': 0.0}, 'csrs_retirement_pay': {'2025': 0.0}, 'capital_losses': {'2025': 0.0}, 'capital_gains': {'2025': 0.0}, 'long_term_capital_gains_on_collectibles': {'2025': 0.0}, 'short_term_capital_gains': {'2025': 0.0}, 'long_term_capital_gains': {'2025': 0.0}, 'long_term_capital_gains_on_small_business_stock': {'2025': 0.0}, 'non_sch_d_capital_gains': {'2025': 0.0}, 'qualified_dividend_income': {'2025': 0.0}, 'non_qualified_dividend_income': {'2025': 0.0}, 'dividend_income': {'2025': 0.0}, 'income_decile': {'2025': 0.0}, 'person_in_poverty': {'2025': False}, 'e02000': {'2025': 0.0}, 'e26270': {'2025': 0.0}, 'e19200': {'2025': 0.0}, 'e18500': {'2025': 0.0}, 'e19800': {'2025': 0.0}, 'e20400': {'2025': 0.0}, 'e20100': {'2025': 0.0}, 'e00700': {'2025': 0.0}, 'e03270': {'2025': 0.0}, 'e24515': {'2025': 0.0}, 'e03300': {'2025': 0.0}, 'e07300': {'2025': 0.0}, 'e62900': {'2025': 0.0}, 'e32800': {'2025': 0.0}, 'e87530': {'2025': 0.0}, 'e03240': {'2025': 0.0}, 'e01100': {'2025': 0.0}, 'e01200': {'2025': 0.0}, 'e24518': {'2025': 0.0}, 'e09900': {'2025': 0.0}, 'e27200': {'2025': 0.0}, 'e03290': {'2025': 0.0}, 'e58990': {'2025': 0.0}, 'e03230': {'2025': 0.0}, 'e11200': {'2025': 0.0}, 'e07260': {'2025': 0.0}, 'e07240': {'2025': 0.0}, 'e03220': {'2025': 0.0}, 'p08000': {'2025': 0.0}, 'e03400': {'2025': 0.0}, 'e09800': {'2025': 0.0}, 'e09700': {'2025': 0.0}, 'e03500': {'2025': 0.0}, 'e87521': {'2025': 0.0}, 'pr_compensatory_low_income_credit': {'2025': 0.0}, 'pr_low_income_credit_eligible_person': {'2025': False}, 'pell_grant_countable_assets': {'2025': 0.0}, 'pell_grant_formula': {'2025': 'B'}, 'cost_of_attending_college': {'2025': 0.0}, 'pell_grant': {'2025': 0.0}, 'pell_grant_months_in_school': {'2025': 0.0}, 'pell_grant_efc': {'2025': 0.0}, 'pell_grant_uses_efc': {'2025': False}, 'pell_grant_simplified_formula_applies': {'2025': False}, 'pell_grant_head_allowances': {'2025': 0.0}, 'pell_grant_head_contribution': {'2025': 0.0}, 'pell_grant_head_available_income': {'2025': 0.0}, 'pell_grant_contribution_from_assets': {'2025': 0.0}, 'pell_grant_sai': {'2025': 0.0}, 'pell_grant_uses_sai': {'2025': True}, 'pell_grant_household_type': {'2025': 'INDEPENDENT_SINGLE'}, 'pell_grant_eligibility_type': {'2025': 'MAXIMUM'}, 'pell_grant_max_fpg_percent_limit': {'2025': 2.25}, 'pell_grant_min_fpg_percent_limit': {'2025': 2.75}, 'pell_grant_dependent_available_income': {'2025': 0.0}, 'pell_grant_dependent_allowances': {'2025': 7040.0}, 'pell_grant_dependent_other_allowances': {'2025': 0.0}, 'pell_grant_dependent_contribution': {'2025': -3520.0}, 'person_aca_slspc_ca': {'2025': 6685.0}, 'aca_slspc_trimmed_age': {'2025': 30.0}, 'is_aca_ptc_eligible': {'2025': True}, 'is_aca_ptc_eligible_ca': {'2025': True}, 'is_aca_eshi_eligible': {'2025': False}, 'aca_child_index': {'2025': 99.0}, 'relative_capital_gains_mtr_change': {'2025': 0.0}, 'capital_gains_elasticity': {'2025': 0.0}, 'capital_gains_behavioral_response': {'2025': 0.0}, 'capital_gains_before_response': {'2025': 0.0}, 'adult_index_cg': {'2025': 1.0}, 'marginal_tax_rate_on_capital_gains': {'2025': 0.13999999}, 'relative_income_change': {'2025': 0.0}, 'relative_wage_change': {'2025': 0.0}, 'income_elasticity_lsr': {'2025': 0.0}, 'income_elasticity': {'2025': 0.0}, 'substitution_elasticity': {'2025': 0.0}, 'substitution_elasticity_lsr': {'2025': 0.0}, 'labor_supply_behavioral_response': {'2025': 0.0}, 'employment_income_behavioral_response': {'2025': 0.0}, 'self_employment_income_behavioral_response': {'2025': 0.0}, 'is_co_denver_dhs_elderly': {'2025': False}, 'la_general_relief_gross_income': {'2025': 0.0}, 'la_general_relief_immigration_status_eligible_person': {'2025': False}, 'ca_la_expectant_parent_payment_eligible': {'2025': False}, 'ca_la_expectant_parent_payment': {'2025': 0.0}, 'ca_la_infant_supplement_eligible_infant': {'2025': False}, 'ca_la_infant_supplement_eligible_person': {'2025': False}, 'assessed_property_value': {'2025': 0.0}, 'is_usda_disabled': {'2025': False}, 'is_usda_elderly': {'2025': False}, 'is_snap_ineligible_student': {'2025': False}, 'commodity_supplemental_food_program_eligible': {'2025': False}, 'commodity_supplemental_food_program': {'2025': 0.0}, 'meets_wic_categorical_eligibility': {'2025': False}, 'wic_category_str': {'2025': 'NONE'}, 'receives_wic': {'2025': False}, 'wic_category': {'2025': 'NONE'}, 'is_wic_at_nutritional_risk': {'2025': True}, 'is_wic_eligible': {'2025': False}, 'wic': {'2025': 0.0}, 'would_claim_wic': {'2025': True}, 'maximum_state_supplement': {'2025': 0.0}, 'state_supplement': {'2025': 0.0}, 'social_security_disability': {'2025': 0.0}, 'never_eligible_for_social_security_benefits': {'2025': False}, 'social_security_dependents': {'2025': 0.0}, 'social_security_survivors': {'2025': 0.0}, 'social_security_retirement': {'2025': 0.0}, 'social_security': {'2025': 0.0}, 'uncapped_ssi': {'2025': 0.0}, 'ssi_claim_is_joint': {'2025': False}, 'is_ssi_eligible': {'2025': 0.0}, 'ssi_amount_if_eligible': {'2025': 11604.0}, 'ssi': {'2025': 0.0}, 'meets_ssi_resource_test': {'2025': True}, 'ssi_countable_resources': {'2025': 0.0}, 'ssi_blind_or_disabled_working_student_exclusion': {'2025': 0.0}, 'ssi_earned_income': {'2025': 30000.0}, 'ssi_countable_income': {'2025': 0.0}, 'ssi_engaged_in_sga': {'2025': True}, 'ssi_unearned_income': {'2025': 0.0}, 'is_ssi_blind_or_disabled_working_student_exclusion_eligible': {'2025': 0.0}, 'ssi_ineligible_child_allocation': {'2025': 0.0}, 'ssi_ineligible_parent_allocation': {'2025': 0.0}, 'ssi_unearned_income_deemed_from_ineligible_parent': {'2025': 0.0}, 'ssi_earned_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_unearned_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_marital_both_eligible': {'2025': False}, 'ssi_marital_unearned_income': {'2025': 0.0}, 'ssi_marital_earned_income': {'2025': 30000.0}, 'is_ssi_qualified_noncitizen': {'2025': False}, 'is_ssi_eligible_spouse': {'2025': False}, 'is_ssi_aged_blind_disabled': {'2025': False}, 'is_ssi_ineligible_parent': {'2025': False}, 'is_ssi_aged': {'2025': False}, 'is_ssi_ineligible_spouse': {'2025': False}, 'is_ssi_disabled': {'2025': False}, 'is_ssi_ineligible_child': {'2025': False}, 'is_ssi_eligible_individual': {'2025': False}, 'ssi_category': {'2025': 'NONE'}, 'workers_compensation': {'2025': 0.0}, 'unemployment_compensation': {'2025': 0.0}, 'general_assistance': {'2025': 0.0}, 'vt_withheld_income_tax': {'2025': 0.0}, 'va_withheld_income_tax': {'2025': 0.0}, 'va_agi_share': {'2025': 0.0}, 'va_agi_person': {'2025': 0.0}, 'va_aged_blind_exemption_person': {'2025': 0.0}, 'va_personal_exemption_person': {'2025': 0.0}, 'va_eitc_person': {'2025': 0.0}, 'va_agi_less_exemptions_person': {'2025': 0.0}, 'sc_withheld_income_tax': {'2025': 0.0}, 'sc_retirement_cap': {'2025': 0.0}, 'sc_retirement_deduction_indv': {'2025': 0.0}, 'sc_retirement_deduction_survivors': {'2025': 0.0}, 'sc_military_deduction_indv': {'2025': 0.0}, 'sc_military_deduction_survivors': {'2025': 0.0}, 'sc_senior_exemption_person': {'2025': 0.0}, 'sc_tuition_credit_eligible': {'2025': False}, 'sc_tuition_credit': {'2025': 0.0}, 'sc_gross_earned_income': {'2025': 0.0}, 'ut_withheld_income_tax': {'2025': 0.0}, 'ut_at_home_parent_credit_earned_income_eligible_person': {'2025': False}, 'ut_personal_exemption_additional_dependent_eligible': {'2025': False}, 'ga_withheld_income_tax': {'2025': 0.0}, 'ga_retirement_income_exclusion_retirement_income': {'2025': 0.0}, 'ga_retirement_exclusion_countable_earned_income': {'2025': 0.0}, 'ga_retirement_exclusion_person': {'2025': 0.0}, 'ga_retirement_exclusion_eligible_person': {'2025': False}, 'ga_military_retirement_exclusion_person': {'2025': 0.0}, 'ga_military_retirement_exclusion_eligible_person': {'2025': False}, 'ms_withheld_income_tax': {'2025': 0.0}, 'ms_agi_adjustments': {'2025': 0.0}, 'ms_prorate_fraction': {'2025': 0.0}, 'ms_income_tax_before_credits_indiv': {'2025': 0.0}, 'ms_income_tax_before_credits_joint': {'2025': 0.0}, 'ms_agi': {'2025': 0.0}, 'ms_taxable_income_indiv': {'2025': 0.0}, 'ms_taxable_income_joint': {'2025': 0.0}, 'ms_pre_deductions_taxable_income_indiv': {'2025': 0.0}, 'ms_deductions_joint': {'2025': 0.0}, 'ms_deductions_indiv': {'2025': 0.0}, 'ms_itemized_deductions_joint': {'2025': 0.0}, 'ms_itemized_deductions_indiv': {'2025': 0.0}, 'ms_standard_deduction_indiv': {'2025': 0.0}, 'ms_standard_deduction_joint': {'2025': 0.0}, 'ms_self_employment_adjustment': {'2025': 0.0}, 'ms_national_guard_or_reserve_pay_adjustment': {'2025': 0.0}, 'ms_total_exemptions_joint': {'2025': 0.0}, 'ms_total_exemptions_indiv': {'2025': 0.0}, 'mt_agi': {'2025': 0.0}, 'mt_regular_income_tax_indiv': {'2025': 0.0}, 'mt_taxable_social_security': {'2025': 0.0}, 'mt_income_tax_before_refundable_credits_indiv': {'2025': 0.0}, 'mt_withheld_income_tax': {'2025': 0.0}, 'mt_refundable_credits': {'2025': 0.0}, 'mt_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'mt_applicable_ald_deductions': {'2025': 0.0}, 'mt_non_refundable_credits': {'2025': 0.0}, 'mt_income_tax_indiv': {'2025': 0.0}, 'mt_taxable_income_indiv': {'2025': 0.0}, 'mt_pre_dependent_exemption_taxable_income_indiv': {'2025': 0.0}, 'mt_refundable_credits_before_renter_credit': {'2025': 0.0}, 'mt_taxable_income_joint': {'2025': 0.0}, 'mt_disability_income_exclusion_eligible_person': {'2025': False}, 'mt_subtractions': {'2025': 0.0}, 'mt_disability_income_exclusion_person': {'2025': 0.0}, 'mt_tuition_subtraction_person': {'2025': 0.0}, 'mt_old_age_subtraction': {'2025': 0.0}, 'mt_additions': {'2025': 0.0}, 'mt_deductions_indiv': {'2025': 0.0}, 'mt_medical_expense_deduction_indiv': {'2025': 0.0}, 'mt_medical_expense_deduction_joint': {'2025': 0.0}, 'mt_salt_deduction': {'2025': 0.0}, 'mt_itemized_deductions_joint': {'2025': 0.0}, 'mt_federal_income_tax_deduction_indiv': {'2025': 0.0}, 'mt_itemized_deductions_indiv': {'2025': 0.0}, 'mt_misc_deductions': {'2025': 0.0}, 'mt_standard_deduction_joint': {'2025': 0.0}, 'mt_standard_deduction_indiv': {'2025': 0.0}, 'mt_child_dependent_care_expense_deduction_eligible_child': {'2025': False}, 'mt_child_dependent_care_expense_deduction': {'2025': 0.0}, 'mt_capital_gains_tax_joint': {'2025': 0.0}, 'mt_capital_gains_tax_indiv': {'2025': 0.0}, 'mt_capital_gains_tax_applicable_threshold_joint': {'2025': 0.0}, 'mt_capital_gains_tax_applicable_threshold_indiv': {'2025': 0.0}, 'mt_aged_exemption_eligible_person': {'2025': False}, 'mt_interest_exemption_eligible_person': {'2025': False}, 'mt_interest_exemption_person': {'2025': 0.0}, 'mt_dependent_exemptions_person': {'2025': 0.0}, 'mt_personal_exemptions_joint': {'2025': 0.0}, 'mt_personal_exemptions_indiv': {'2025': 0.0}, 'mt_eitc': {'2025': 0.0}, 'mt_capital_gain_credit': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_net_household_income': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_eligible': {'2025': False}, 'mt_elderly_homeowner_or_renter_credit_gross_household_income': {'2025': 0.0}, 'mo_withheld_income_tax': {'2025': 0.0}, 'mo_qualified_health_insurance_premiums': {'2025': 0.0}, 'mo_income_tax_before_credits': {'2025': 0.0}, 'mo_income_tax_exempt': {'2025': 0.0}, 'mo_taxable_income': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_b': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_c': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_a': {'2025': 0.0}, 'mo_adjusted_gross_income': {'2025': 0.0}, 'ma_withheld_income_tax': {'2025': 0.0}, 'ma_covid_19_essential_employee_premium_pay_program': {'2025': 0.0}, 'claimed_ma_covid_19_essential_employee_premium_pay_program_2020': {'2025': False}, 'ak_permanent_fund_dividend': {'2025': 0.0}, 'ak_energy_relief': {'2025': 0.0}, 'ky_additions': {'2025': 0.0}, 'ky_agi': {'2025': 0.0}, 'ky_subtractions': {'2025': 0.0}, 'ky_withheld_income_tax': {'2025': 0.0}, 'ky_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'ky_taxable_income_indiv': {'2025': 0.0}, 'ky_taxable_income_joint': {'2025': 0.0}, 'ky_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'ky_deductions_indiv': {'2025': 0.0}, 'ky_itemized_deductions_joint': {'2025': 0.0}, 'ky_standard_deduction_indiv': {'2025': 0.0}, 'ky_deductions_joint': {'2025': 0.0}, 'ky_standard_deduction_joint': {'2025': 0.0}, 'ky_itemized_deductions_indiv': {'2025': 0.0}, 'ky_pension_income_exclusion': {'2025': 0.0}, 'ky_service_credit_months_pre_1998': {'2025': 0.0}, 'ky_service_credits_percentage_pre_1998': {'2025': 0.0}, 'ky_service_credit_months_post_1997': {'2025': 0.0}, 'ky_pension_income_exclusion_exemption_eligible': {'2025': False}, 'retired_from_ky_government': {'2025': False}, 'ky_personal_tax_credits_joint': {'2025': 0.0}, 'ky_aged_personal_tax_credits': {'2025': 0.0}, 'ky_personal_tax_credits_indiv': {'2025': 0.0}, 'ky_military_personal_tax_credits': {'2025': 0.0}, 'ky_blind_personal_tax_credits': {'2025': 0.0}, 'al_withheld_income_tax': {'2025': 0.0}, 'al_retirement_exemption_person': {'2025': 0.0}, 'al_retirement_exemption_eligible_person': {'2025': False}, 'mn_withheld_income_tax': {'2025': 0.0}, 'mi_withheld_income_tax': {'2025': 0.0}, 'mi_disabled_exemption_eligible_person': {'2025': 0.0}, 'ok_withheld_income_tax': {'2025': 0.0}, 'in_withheld_income_tax': {'2025': 0.0}, 'in_is_qualifying_dependent_child': {'2025': False}, 'co_withheld_income_tax': {'2025': 0.0}, 'co_social_security_subtraction_indv_eligible': {'2025': 0.0}, 'co_pension_subtraction_income': {'2025': 0.0}, 'co_social_security_subtraction_indv': {'2025': 0.0}, 'co_pension_subtraction_indv': {'2025': 0.0}, 'co_pension_subtraction_indv_eligible': {'2025': False}, 'co_family_affordability_credit': {'2025': 0.0}, 'co_ctc_eligible_child': {'2025': False}, 'co_federal_ctc_child_individual_maximum': {'2025': 0.0}, 'co_ccap_child_eligible': {'2025': False}, 'co_quality_rating_of_child_care_facility': {'2025': 0.0}, 'co_oap_eligible': {'2025': False}, 'co_oap': {'2025': 0.0}, 'co_state_supplement_eligible': {'2025': False}, 'co_state_supplement': {'2025': 0.0}, 'co_chp': {'2025': 0.0}, 'co_chp_eligible': {'2025': False}, 'co_chp_out_of_pocket_maximum': {'2025': 1500.0}, 'ca_foster_care_minor_dependent': {'2025': False}, 'ca_in_medical_care_facility': {'2025': False}, 'ca_ffyp_eligible': {'2025': False}, 'ca_withheld_income_tax': {'2025': 379.25394}, 'ca_is_qualifying_child_for_caleitc': {'2025': False}, 'ca_foster_youth_tax_credit_person': {'2025': 0.0}, 'ca_foster_youth_tax_credit_eligible_person': {'2025': False}, 'ca_state_disability_insurance': {'2025': 0.0}, 'is_ca_cvrp_increased_rebate_eligible': {'2025': True}, 'ca_cvrp_vehicle_rebate_amount': {'2025': 0.0}, 'is_ca_cvrp_normal_rebate_eligible': {'2025': True}, 'ca_cvrp': {'2025': 0.0}, 'ca_in_home_supportive_services': {'2025': 0.0}, 'ca_capi_eligible_person': {'2025': False}, 'ca_calworks_child_care_days_per_month': {'2025': 0.0}, 'ca_calworks_child_care_weeks_per_month': {'2025': 0.0}, 'ca_calworks_child_care_provider_category': {'2025': 'CHILD_CARE_CENTER'}, 'ca_calworks_child_care_full_time': {'2025': False}, 'ca_calworks_child_care_time_category': {'2025': 'WEEKLY'}, 'ca_calworks_child_care_welfare_to_work': {'2025': 0.0}, 'ca_calworks_child_care_child_age_eligible': {'2025': False}, 'ca_calworks_child_care_payment': {'2025': 0.0}, 'ca_calworks_child_care_time_coefficient': {'2025': 0.0}, 'ca_calworks_child_care_payment_factor': {'2025': 12.0}, 'ca_calworks_child_care_payment_standard': {'2025': 0.0}, 'ca_calworks_child_care_factor_category': {'2025': 'STANDARD'}, 'ia_withheld_income_tax': {'2025': 0.0}, 'ia_regular_tax_indiv': {'2025': 0.0}, 'ia_base_tax_joint': {'2025': 0.0}, 'ia_base_tax_indiv': {'2025': 0.0}, 'ia_regular_tax_joint': {'2025': 0.0}, 'ia_taxable_income_joint': {'2025': 0.0}, 'ia_amt_joint': {'2025': 0.0}, 'ia_taxable_income_indiv': {'2025': 0.0}, 'ia_amt_indiv': {'2025': 0.0}, 'ia_standard_deduction_joint': {'2025': 0.0}, 'ia_standard_deduction_indiv': {'2025': 0.0}, 'ia_itemized_deductions_joint': {'2025': 0.0}, 'ia_fedtax_deduction': {'2025': 0.0}, 'ia_itemized_deductions_indiv': {'2025': 0.0}, 'ia_basic_deduction_joint': {'2025': 0.0}, 'ia_qbi_deduction': {'2025': 0.0}, 'ia_basic_deduction_indiv': {'2025': 0.0}, 'ia_alternate_tax_indiv': {'2025': 0.0}, 'ia_alternate_tax_joint': {'2025': 0.0}, 'ia_income_adjustments': {'2025': 0.0}, 'ia_pension_exclusion': {'2025': 0.0}, 'ia_net_income': {'2025': 0.0}, 'ia_pension_exclusion_eligible': {'2025': False}, 'ia_gross_income': {'2025': 0.0}, 'ia_prorate_fraction': {'2025': 0.0}, 'ct_withheld_income_tax': {'2025': 0.0}, 'wv_withheld_income_tax': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_person': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_eligible_person': {'2025': False}, 'wv_senior_citizen_disability_deduction_total_modifications': {'2025': 0.0}, 'wv_public_pension_subtraction_person': {'2025': 0.0}, 'wv_social_security_benefits_subtraction_person': {'2025': 0.0}, 'ri_withheld_income_tax': {'2025': 0.0}, 'pa_withheld_income_tax': {'2025': 0.0}, 'pa_nontaxable_pension_income': {'2025': 0.0}, 'nc_withheld_income_tax': {'2025': 0.0}, 'nc_military_retirement_deduction_eligible': {'2025': False}, 'nd_withheld_income_tax': {'2025': 0.0}, 'nm_withheld_income_tax': {'2025': 0.0}, 'nm_armed_forces_retirement_pay_exemption_person': {'2025': 0.0}, 'nm_cdcc_eligible_child': {'2025': False}, 'nj_withheld_income_tax': {'2025': 0.0}, 'nj_eligible_pension_income': {'2025': 0.0}, 'nj_agi_subtractions': {'2025': 0.0}, 'nj_additions': {'2025': 0.0}, 'nj_total_income': {'2025': 0.0}, 'me_withheld_income_tax': {'2025': 0.0}, 'ar_taxable_income_joint': {'2025': 0.0}, 'ar_taxable_income_indiv': {'2025': 0.0}, 'ar_withheld_income_tax': {'2025': 0.0}, 'ar_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'ar_taxable_capital_gains_joint': {'2025': 0.0}, 'ar_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'ar_taxable_capital_gains_indiv': {'2025': 0.0}, 'ar_gross_income_indiv': {'2025': 0.0}, 'ar_exemptions': {'2025': 0.0}, 'ar_gross_income_joint': {'2025': 0.0}, 'ar_agi_joint': {'2025': 0.0}, 'ar_agi_indiv': {'2025': 0.0}, 'ar_deduction_indiv': {'2025': 0.0}, 'ar_deduction_joint': {'2025': 0.0}, 'ar_itemized_deductions_joint': {'2025': 0.0}, 'ar_itemized_deductions_indiv': {'2025': 0.0}, 'ar_post_secondary_education_tuition_deduction_person': {'2025': 0.0}, 'ar_standard_deduction_indiv': {'2025': 0.0}, 'ar_standard_deduction_joint': {'2025': 0.0}, 'ar_low_income_tax_joint': {'2025': 0.0}, 'ar_retirement_or_disability_benefits_exemption_person': {'2025': 0.0}, 'ar_capped_retirement_or_disability_benefits_exemption_person': {'2025': 0.0}, 'ar_military_retirement_income_person': {'2025': 0.0}, 'ar_inflation_relief_credit_person': {'2025': 0.0}, 'ar_personal_credit_dependent': {'2025': 0.0}, 'ar_personal_credit_disabled_dependent': {'2025': 0.0}, 'dc_withheld_income_tax': {'2025': 0.0}, 'dc_taxable_income_indiv': {'2025': 0.0}, 'dc_agi': {'2025': 0.0}, 'dc_income_subtractions': {'2025': 0.0}, 'dc_disability_exclusion': {'2025': 0.0}, 'dc_disabled_exclusion_subtraction': {'2025': 0.0}, 'dc_self_employment_loss_addition': {'2025': 0.0}, 'dc_additions': {'2025': 0.0}, 'dc_deduction_indiv': {'2025': 0.0}, 'dc_ctc_eligible_child': {'2025': False}, 'md_withheld_income_tax': {'2025': 0.0}, 'md_pension_subtraction_amount': {'2025': 0.0}, 'md_socsec_subtraction_amount': {'2025': 0.0}, 'md_hundred_year_subtraction_eligible': {'2025': False}, 'md_hundred_year_subtraction_person': {'2025': 0.0}, 'md_snap_is_elderly': {'2025': False}, 'ks_withheld_income_tax': {'2025': 0.0}, 'ks_disabled_veteran_exemptions_eligible_person': {'2025': False}, 'ne_withheld_income_tax': {'2025': 0.0}, 'ne_refundable_ctc_eligible_child': {'2025': False}, 'ne_dhhs_has_special_needs': {'2025': False}, 'ne_child_care_subsidy_eligible_child': {'2025': False}, 'ne_child_care_subsidy_eligible_parent': {'2025': False}, 'hi_withheld_income_tax': {'2025': 0.0}, 'hi_food_excise_credit_child_receiving_public_support': {'2025': False}, 'hi_cdcc_income_floor_eligible': {'2025': False}, 'de_taxable_income_indv': {'2025': 0.0}, 'de_income_tax_before_non_refundable_credits_indv': {'2025': 0.0}, 'de_withheld_income_tax': {'2025': 0.0}, 'de_agi_indiv': {'2025': 0.0}, 'de_taxable_income_joint': {'2025': 0.0}, 'de_agi_joint': {'2025': 0.0}, 'de_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'de_pre_exclusions_agi': {'2025': 0.0}, 'de_subtractions': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_eligible_person': {'2025': False}, 'de_elderly_or_disabled_income_exclusion_indiv': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_joint': {'2025': 0.0}, 'de_pension_exclusion_income': {'2025': 0.0}, 'de_pension_exclusion': {'2025': 0.0}, 'de_additions': {'2025': 0.0}, 'de_deduction_joint': {'2025': 0.0}, 'de_deduction_indv': {'2025': 0.0}, 'de_itemized_deductions_joint': {'2025': 0.0}, 'de_itemized_deductions_indv': {'2025': 0.0}, 'de_standard_deduction_indv': {'2025': 0.0}, 'de_base_standard_deduction_joint': {'2025': 0.0}, 'de_base_standard_deduction_indv': {'2025': 0.0}, 'de_additional_standard_deduction': {'2025': 0.0}, 'de_standard_deduction_joint': {'2025': 0.0}, 'az_withheld_income_tax': {'2025': 0.0}, 'az_aged_exemption_eligible_person': {'2025': 0.0}, 'az_parents_grandparents_exemption': {'2025': 0.0}, 'az_aged_exemption': {'2025': 0.0}, 'az_tanf_eligible_child': {'2025': False}, 'ny_withheld_income_tax': {'2025': 0.0}, 'id_withheld_income_tax': {'2025': 0.0}, 'id_aged_or_disabled_deduction_eligible_person': {'2025': False}, 'id_retirement_benefits_deduction_eligible_person': {'2025': False}, 'id_retirement_benefits_deduction_relevant_income': {'2025': 0.0}, 'id_aged_or_disabled_credit_eligible_person': {'2025': False}, 'id_grocery_credit_base': {'2025': 0.0}, 'id_grocery_credit_aged': {'2025': 0.0}, 'id_grocery_credit_qualified_months': {'2025': 0.0}, 'id_grocery_credit_qualifying_month': {'2025': False}, 'oh_withheld_income_tax': {'2025': 0.0}, 'oh_bonus_depreciation_add_back': {'2025': 0.0}, 'oh_additions': {'2025': 0.0}, 'oh_other_add_backs': {'2025': 0.0}, 'oh_federal_conformity_deductions': {'2025': 0.0}, 'oh_uniformed_services_retirement_income_deduction': {'2025': 0.0}, 'oh_section_179_expense_add_back': {'2025': 0.0}, 'oh_deductions': {'2025': 0.0}, 'oh_uninsured_unreimbursed_medical_care_expenses': {'2025': 0.0}, 'oh_unreimbursed_medical_care_expense_deduction_person': {'2025': 0.0}, 'oh_insured_unreimbursed_medical_care_expenses_person': {'2025': 0.0}, 'oh_insured_unreimbursed_medical_care_expense_amount': {'2025': 0.0}, 'oh_529_plan_deduction_person': {'2025': 0.0}, 'oh_personal_exemptions_eligible_person': {'2025': False}, 'oh_has_taken_oh_lump_sum_credits': {'2025': False}, 'oh_adoption_credit_person': {'2025': 0.0}, 'oh_lump_sum_distribution_credit_eligible_person': {'2025': False}, 'oh_lump_sum_distribution_credit_person': {'2025': 0.0}, 'oh_joint_filing_credit_qualifying_income': {'2025': 0.0}, 'oh_joint_filing_credit_agi_subtractions': {'2025': 0.0}, 'oh_agi_person': {'2025': 0.0}, 'or_withheld_income_tax': {'2025': 0.0}, 'or_retirement_credit_eligible': {'2025': False}, 'il_withheld_income_tax': {'2025': 0.0}, 'la_withheld_income_tax': {'2025': 0.0}, 'la_disability_income_exemption_person': {'2025': 0.0}, 'la_retirement_exemption_person': {'2025': 0.0}, 'la_blind_exemption_person': {'2025': 0.0}, 'la_receives_blind_exemption': {'2025': True}, 'la_school_readiness_credit_eligible_child': {'2025': False}, 'la_quality_rating_of_child_care_facility': {'2025': 0.0}, 'wi_withheld_income_tax': {'2025': 0.0}, 'vita_eligible': {'2025': True}, 'adjusted_earnings': {'2025': 30000.0}, 'is_irs_aged': {'2025': False}, 'qualified_business_income': {'2025': 0.0}, 'qualified_business_income_deduction_person': {'2025': 0.0}, 'qbid_amount': {'2025': 0.0}, 'adjusted_gross_income_person': {'2025': 30000.0}, 'irs_employment_income': {'2025': 30000.0}, 'pre_tax_contributions': {'2025': 0.0}, 'irs_gross_income': {'2025': 30000.0}, 'taxable_unemployment_compensation': {'2025': 0.0}, 'tax_exempt_unemployment_compensation': {'2025': 0.0}, 'earned_income_last_year': {'2025': 0.0}, 'earned_income': {'2025': 30000.0}, 'taxable_social_security': {'2025': 0.0}, 'self_employed_pension_contribution_ald_person': {'2025': 0.0}, 'self_employment_tax_ald_person': {'2025': 0.0}, 'self_employed_health_insurance_ald_person': {'2025': 0.0}, 'student_loan_interest_ald_magi': {'2025': 0.0}, 'student_loan_interest_ald_eligible': {'2025': False}, 'student_loan_interest_ald': {'2025': 0.0}, 'estate_tax_before_credits': {'2025': 0.0}, 'estate_tax': {'2025': 0.0}, 'self_employment_medicare_tax': {'2025': 0.0}, 'social_security_taxable_self_employment_income': {'2025': 0.0}, 'self_employment_tax': {'2025': 0.0}, 'self_employment_social_security_tax': {'2025': 0.0}, 'taxable_self_employment_income': {'2025': 0.0}, 'payroll_tax_gross_wages': {'2025': 30000.0}, 'employee_medicare_tax': {'2025': 435.0}, 'taxable_earnings_for_social_security': {'2025': 30000.0}, 'employee_social_security_tax': {'2025': 1860.0}, 'is_tce_eligible': {'2025': False}, 'other_credits': {'2025': 0.0}, 'amt_foreign_tax_credit': {'2025': 0.0}, 'estate_tax_credit': {'2025': 0.0}, 'savers_credit_person': {'2025': 0.0}, 'savers_credit_qualified_contributions': {'2025': 0.0}, 'savers_credit_eligible_person': {'2025': True}, 'prior_year_minimum_tax_credit': {'2025': 0.0}, 'total_disability_payments': {'2025': 0.0}, 'retired_on_total_disability': {'2025': False}, 'qualifies_for_elderly_or_disabled_credit': {'2025': False}, 'is_eligible_for_american_opportunity_credit': {'2025': False}, 'ctc_qualifying_child': {'2025': False}, 'ctc_individual_maximum': {'2025': 0.0}, 'ctc_child_individual_maximum': {'2025': 0.0}, 'ctc_adult_individual_maximum': {'2025': 0.0}, 'ctc_child_individual_maximum_arpa': {'2025': 0.0}, 'general_business_credit': {'2025': 0.0}, 'is_cdcc_eligible': {'2025': False}, 'head_start': {'2025': 0.0}, 'is_head_start_income_eligible': {'2025': False}, 'is_head_start_eligible': {'2025': False}, 'early_head_start': {'2025': 0.0}, 'is_early_head_start_eligible': {'2025': False}, 'is_head_start_categorically_eligible': {'2025': False}, 'medicaid': {'2025': 0.0}, 'medicaid_benefit_value': {'2025': 8420.246}, 'medicaid_income_level': {'2025': 1.916933}, 'is_medicaid_eligible': {'2025': False}, 'medicaid_category': {'2025': 'NONE'}, 'is_optional_senior_or_disabled_for_medicaid': {'2025': False}, 'is_ssi_recipient_for_medicaid': {'2025': False}, 'is_in_medicaid_medically_needy_category': {'2025': False}, 'is_medically_needy_for_medicaid': {'2025': False}, 'is_young_child_for_medicaid_fc': {'2025': True}, 'is_young_child_for_medicaid_nfc': {'2025': False}, 'is_young_child_for_medicaid': {'2025': False}, 'is_young_adult_for_medicaid_fc': {'2025': False}, 'is_young_adult_for_medicaid_nfc': {'2025': False}, 'is_young_adult_for_medicaid': {'2025': False}, 'is_older_child_for_medicaid': {'2025': False}, 'is_older_child_for_medicaid_nfc': {'2025': False}, 'is_older_child_for_medicaid_fc': {'2025': True}, 'is_parent_for_medicaid_nfc': {'2025': False}, 'is_parent_for_medicaid': {'2025': False}, 'is_parent_for_medicaid_fc': {'2025': False}, 'is_pregnant_for_medicaid': {'2025': False}, 'is_pregnant_for_medicaid_fc': {'2025': True}, 'is_pregnant_for_medicaid_nfc': {'2025': False}, 'is_infant_for_medicaid_fc': {'2025': True}, 'is_infant_for_medicaid': {'2025': False}, 'is_infant_for_medicaid_nfc': {'2025': False}, 'is_adult_for_medicaid': {'2025': False}, 'is_adult_for_medicaid_fc': {'2025': False}, 'is_adult_for_medicaid_nfc': {'2025': True}, 'is_medicare_eligible': {'2025': False}, 'months_receiving_social_security_disability': {'2025': 0.0}, 'ccdf_market_rate': {'2025': 0.0}, 'is_ccdf_reason_for_care_eligible': {'2025': False}, 'is_enrolled_in_ccdf': {'2025': False}, 'ccdf_duration_of_care': {'2025': 'HOURLY'}, 'is_ccdf_eligible': {'2025': False}, 'is_ccdf_home_based': {'2025': False}, 'is_ccdf_age_eligible': {'2025': False}, 'ccdf_age_group': {'2025': 'INFANT'}, 'tanf_reported': {'2025': 0.0}, 'tanf_person': {'2025': 0.0}, 'is_person_demographic_tanf_eligible': {'2025': False}}}}, change={'people': {'person': {'age': {'2025': 0.0}, 'employment_income': {'2025': 0.0}, 'employment_income_before_lsr': {'2025': 0.0}, 'self_employment_income_before_lsr': {'2025': 0.0}, 'self_employment_income': {'2025': 0.0}, 'emp_self_emp_ratio': {'2025': 0.0}, 'farm_income': {'2025': 0.0}, 'marginal_tax_rate': {'2025': 0.0}, 'adult_index': {'2025': 0.0}, 'adult_earnings_index': {'2025': 0.0}, 'cliff_evaluated': {'2025': 0.0}, 'cliff_gap': {'2025': 0.0}, 'is_on_cliff': {'2025': 0.0}, 'child_index': {'2025': 0.0}, 'deductible_interest_expense': {'2025': 0.0}, 'deductible_mortgage_interest': {'2025': 0.0}, 'alimony_expense': {'2025': 0.0}, 'investment_expenses': {'2025': 0.0}, 'investment_interest_expense': {'2025': 0.0}, 'home_mortgage_interest': {'2025': 0.0}, 'educator_expense': {'2025': 0.0}, 'student_loan_interest': {'2025': 0.0}, 'non_deductible_mortgage_interest': {'2025': 0.0}, 'qualified_tuition_expenses': {'2025': 0.0}, 'non_mortgage_interest': {'2025': 0.0}, 'mortgage_interest': {'2025': 0.0}, 'qualified_adoption_assistance_expense': {'2025': 0.0}, 'ambulance_expense': {'2025': 0.0}, 'health_savings_account_payroll_contributions': {'2025': 0.0}, 'has_marketplace_health_coverage': {'2025': 0.0}, 'prescription_expense': {'2025': 0.0}, 'employer_contribution_to_health_insurance_premiums_category': {'2025': 0.0}, 'health_insurance_premiums': {'2025': 0.0}, 'lab_expense': {'2025': 0.0}, 'medicare_part_b_premiums': {'2025': 0.0}, 'inpatient_expense': {'2025': 0.0}, 'er_visit_expense': {'2025': 0.0}, 'outpatient_expense': {'2025': 0.0}, 'over_the_counter_health_expenses': {'2025': 0.0}, 'long_term_health_insurance_premiums': {'2025': 0.0}, 'imaging_expense': {'2025': 0.0}, 'urgent_care_expense': {'2025': 0.0}, 'physician_services_expense': {'2025': 0.0}, 'self_employed_health_insurance_premiums': {'2025': 0.0}, 'other_medical_expenses': {'2025': 0.0}, 'health_insurance_premiums_without_medicare_part_b': {'2025': 0.0}, 'medical_out_of_pocket_expenses': {'2025': 0.0}, 'investment_in_529_plan_indv': {'2025': 0.0}, 'non_public_school_tuition': {'2025': 0.0}, 'count_529_contribution_beneficiaries': {'2025': 0.0}, 'roth_403b_contributions': {'2025': 0.0}, 'traditional_403b_contributions': {'2025': 0.0}, 'self_employed_pension_contributions': {'2025': 0.0}, 'traditional_ira_contributions': {'2025': 0.0}, 'traditional_401k_contributions': {'2025': 0.0}, 'early_withdrawal_penalty': {'2025': 0.0}, 'roth_ira_contributions': {'2025': 0.0}, 'able_contributions_person': {'2025': 0.0}, 'roth_401k_contributions': {'2025': 0.0}, 'casualty_loss': {'2025': 0.0}, 'real_estate_taxes': {'2025': 0.0}, 'taxable_estate_value': {'2025': 0.0}, 'excess_withheld_payroll_tax': {'2025': 0.0}, 'state_income_tax_reported': {'2025': 0.0}, 'pre_subsidy_rent': {'2025': 0.0}, 'heating_expense_person': {'2025': 0.0}, 'rent': {'2025': 0.0}, 'charitable_non_cash_donations': {'2025': 0.0}, 'charitable_cash_donations': {'2025': 0.0}, 'care_expenses': {'2025': 0.0}, 'pre_subsidy_childcare_expenses': {'2025': 0.0}, 'after_school_expenses': {'2025': 0.0}, 'childcare_provider_type_group': {'2025': 0.0}, 'childcare_days_per_week': {'2025': 0.0}, 'pre_subsidy_care_expenses': {'2025': 0.0}, 'childcare_hours_per_week': {'2025': 0.0}, 'childcare_hours_per_day': {'2025': 0.0}, 'child_support_expense': {'2025': 0.0}, 'child_support_received': {'2025': 0.0}, 'is_tax_unit_dependent': {'2025': 0.0}, 'is_tax_unit_head': {'2025': 0.0}, 'is_tax_unit_spouse': {'2025': 0.0}, 'is_child_of_tax_head': {'2025': 0.0}, 'is_tax_unit_head_or_spouse': {'2025': 0.0}, 'is_surviving_spouse': {'2025': 0.0}, 'person_marital_unit_id': {'2025': 0.0}, 'is_separated': {'2025': 0.0}, 'person_spm_unit_id': {'2025': 0.0}, 'is_father': {'2025': 0.0}, 'care_and_support_costs': {'2025': 0.0}, 'is_breastfeeding': {'2025': 0.0}, 'is_deceased': {'2025': 0.0}, 'is_parent_of_filer_or_spouse': {'2025': 0.0}, 'current_pregnancies': {'2025': 0.0}, 'is_male': {'2025': 0.0}, 'receives_or_needs_protective_services': {'2025': 0.0}, 'own_children_in_household': {'2025': 0.0}, 'years_in_military': {'2025': 0.0}, 'is_in_k12_school': {'2025': 0.0}, 'is_deaf': {'2025': 0.0}, 'is_in_foster_care_group_home': {'2025': 0.0}, 'adopted_this_year': {'2025': 0.0}, 'is_permanently_and_totally_disabled': {'2025': 0.0}, 'is_mother': {'2025': 0.0}, 'race': {'2025': 0.0}, 'is_parent': {'2025': 0.0}, 'is_permanently_disabled_veteran': {'2025': 0.0}, 'four_year_college_student': {'2025': 0.0}, 'is_in_foster_care': {'2025': 0.0}, 'year_of_retirement': {'2025': 0.0}, 'is_female': {'2025': 0.0}, 'share_of_care_and_support_costs_paid_by_tax_filer': {'2025': 0.0}, 'current_pregnancy_month': {'2025': 0.0}, 'is_incapable_of_self_care': {'2025': 0.0}, 'is_runaway_child': {'2025': 0.0}, 'claimed_as_dependent_on_another_return': {'2025': 0.0}, 'immigration_status': {'2025': 0.0}, 'is_migratory_child': {'2025': 0.0}, 'care_and_support_payments_from_tax_filer': {'2025': 0.0}, 'in_out_of_home_care_facility': {'2025': 0.0}, 'divorce_year': {'2025': 0.0}, 'is_severely_disabled': {'2025': 0.0}, 'people': {'2025': 0.0}, 'vehicles_owned': {'2025': 0.0}, 'overtime_income': {'2025': 0.0}, 'is_retired': {'2025': 0.0}, 'is_in_secondary_school': {'2025': 0.0}, 'year_deceased': {'2025': 0.0}, 'is_surviving_child_of_disabled_veteran': {'2025': 0.0}, 'is_blind': {'2025': 0.0}, 'is_english_proficient': {'2025': 0.0}, 'is_full_time_student': {'2025': 0.0}, 'is_household_head': {'2025': 0.0}, 'has_itin': {'2025': 0.0}, 'is_full_time_college_student': {'2025': 0.0}, 'tip_income': {'2025': 0.0}, 'is_grandparent_of_filer_or_spouse': {'2025': 0.0}, 'is_pregnant': {'2025': 0.0}, 'is_veteran': {'2025': 0.0}, 'technical_institution_student': {'2025': 0.0}, 'immigration_status_str': {'2025': 0.0}, 'cps_race': {'2025': 0.0}, 'is_in_k12_nonpublic_school': {'2025': 0.0}, 'is_hispanic': {'2025': 0.0}, 'is_child_dependent': {'2025': 0.0}, 'was_in_foster_care': {'2025': 0.0}, 'has_disabled_spouse': {'2025': 0.0}, 'is_disabled': {'2025': 0.0}, 'is_adult': {'2025': 0.0}, 'is_incarcerated': {'2025': 0.0}, 'is_fully_disabled_service_connected_veteran': {'2025': 0.0}, 'retired_from_federal_government': {'2025': 0.0}, 'is_surviving_spouse_of_disabled_veteran': {'2025': 0.0}, 'under_60_days_postpartum': {'2025': 0.0}, 'count_days_postpartum': {'2025': 0.0}, 'under_12_months_postpartum': {'2025': 0.0}, 'person_weight': {'2025': 0.0}, 'person_family_id': {'2025': 0.0}, 'person_id': {'2025': 0.0}, 'person_household_id': {'2025': 0.0}, 'person_tax_unit_id': {'2025': 0.0}, 'is_wa_adult': {'2025': 0.0}, 'is_child': {'2025': 0.0}, 'birth_year': {'2025': 0.0}, 'age_group': {'2025': 0.0}, 'monthly_age': {'2025': 0.0}, 'is_senior': {'2025': 0.0}, 'illicit_income': {'2025': 0.0}, 'ssi_reported': {'2025': 0.0}, 'weekly_hours_worked': {'2025': 0.0}, 'weekly_hours_worked_before_lsr': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response_income_elasticity': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response_substitution_elasticity': {'2025': 0.0}, 'weekly_hours_worked_behavioural_response': {'2025': 0.0}, 'gambling_winnings': {'2025': 0.0}, 'employment_income_last_year': {'2025': 0.0}, 'gambling_losses': {'2025': 0.0}, 'ssi_qualifying_quarters_earnings': {'2025': 0.0}, 'dependent_care_employer_benefits': {'2025': 0.0}, 'farm_rent_income': {'2025': 0.0}, 'us_bonds_for_higher_ed': {'2025': 0.0}, 'miscellaneous_income': {'2025': 0.0}, 'gi_cash_assistance': {'2025': 0.0}, 'military_basic_pay': {'2025': 0.0}, 'strike_benefits': {'2025': 0.0}, 'rental_income': {'2025': 0.0}, 'salt_refund_income': {'2025': 0.0}, 'debt_relief': {'2025': 0.0}, 'alimony_income': {'2025': 0.0}, 'investment_income_elected_form_4952': {'2025': 0.0}, 'estate_income': {'2025': 0.0}, 'interest_income': {'2025': 0.0}, 'tax_exempt_interest_income': {'2025': 0.0}, 'taxable_interest_income': {'2025': 0.0}, 's_corp_self_employment_income': {'2025': 0.0}, 'self_employment_income_last_year': {'2025': 0.0}, 'previous_year_income_available': {'2025': 0.0}, 'business_is_qualified': {'2025': 0.0}, 'business_is_sstb': {'2025': 0.0}, 'w2_wages_from_qualified_business': {'2025': 0.0}, 'is_self_employed': {'2025': 0.0}, 'unadjusted_basis_qualified_property': {'2025': 0.0}, 'partnership_s_corp_income': {'2025': 0.0}, 'veterans_benefits': {'2025': 0.0}, 'personal_property': {'2025': 0.0}, 'market_income': {'2025': 0.0}, 'state_or_federal_salary': {'2025': 0.0}, 'disability_benefits': {'2025': 0.0}, 'military_service_income': {'2025': 0.0}, 'railroad_benefits': {'2025': 0.0}, 'tax_exempt_403b_distributions': {'2025': 0.0}, 'taxable_pension_income': {'2025': 0.0}, 'tax_exempt_sep_distributions': {'2025': 0.0}, 'pension_income': {'2025': 0.0}, 'military_retirement_pay': {'2025': 0.0}, 'taxable_401k_distributions': {'2025': 0.0}, 'taxable_sep_distributions': {'2025': 0.0}, 'taxable_federal_pension_income': {'2025': 0.0}, 'retirement_distributions': {'2025': 0.0}, 'keogh_distributions': {'2025': 0.0}, 'pension_survivors': {'2025': 0.0}, 'sep_distributions': {'2025': 0.0}, 'tax_exempt_retirement_distributions': {'2025': 0.0}, 'taxable_retirement_distributions': {'2025': 0.0}, 'tax_exempt_private_pension_income': {'2025': 0.0}, 'private_pension_income': {'2025': 0.0}, 'retirement_benefits_from_ss_exempt_employment': {'2025': 0.0}, 'tax_exempt_public_pension_income': {'2025': 0.0}, 'military_retirement_pay_survivors': {'2025': 0.0}, 'tax_exempt_pension_income': {'2025': 0.0}, 'tax_exempt_ira_distributions': {'2025': 0.0}, 'taxable_ira_distributions': {'2025': 0.0}, 'public_pension_income': {'2025': 0.0}, 'tax_exempt_401k_distributions': {'2025': 0.0}, 'taxable_private_pension_income': {'2025': 0.0}, 'taxable_403b_distributions': {'2025': 0.0}, 'taxable_public_pension_income': {'2025': 0.0}, 'csrs_retirement_pay': {'2025': 0.0}, 'capital_losses': {'2025': 0.0}, 'capital_gains': {'2025': 0.0}, 'long_term_capital_gains_on_collectibles': {'2025': 0.0}, 'short_term_capital_gains': {'2025': 0.0}, 'long_term_capital_gains': {'2025': 0.0}, 'long_term_capital_gains_on_small_business_stock': {'2025': 0.0}, 'non_sch_d_capital_gains': {'2025': 0.0}, 'qualified_dividend_income': {'2025': 0.0}, 'non_qualified_dividend_income': {'2025': 0.0}, 'dividend_income': {'2025': 0.0}, 'income_decile': {'2025': 0.0}, 'person_in_poverty': {'2025': 0.0}, 'e02000': {'2025': 0.0}, 'e26270': {'2025': 0.0}, 'e19200': {'2025': 0.0}, 'e18500': {'2025': 0.0}, 'e19800': {'2025': 0.0}, 'e20400': {'2025': 0.0}, 'e20100': {'2025': 0.0}, 'e00700': {'2025': 0.0}, 'e03270': {'2025': 0.0}, 'e24515': {'2025': 0.0}, 'e03300': {'2025': 0.0}, 'e07300': {'2025': 0.0}, 'e62900': {'2025': 0.0}, 'e32800': {'2025': 0.0}, 'e87530': {'2025': 0.0}, 'e03240': {'2025': 0.0}, 'e01100': {'2025': 0.0}, 'e01200': {'2025': 0.0}, 'e24518': {'2025': 0.0}, 'e09900': {'2025': 0.0}, 'e27200': {'2025': 0.0}, 'e03290': {'2025': 0.0}, 'e58990': {'2025': 0.0}, 'e03230': {'2025': 0.0}, 'e11200': {'2025': 0.0}, 'e07260': {'2025': 0.0}, 'e07240': {'2025': 0.0}, 'e03220': {'2025': 0.0}, 'p08000': {'2025': 0.0}, 'e03400': {'2025': 0.0}, 'e09800': {'2025': 0.0}, 'e09700': {'2025': 0.0}, 'e03500': {'2025': 0.0}, 'e87521': {'2025': 0.0}, 'pr_compensatory_low_income_credit': {'2025': 0.0}, 'pr_low_income_credit_eligible_person': {'2025': 0.0}, 'pell_grant_countable_assets': {'2025': 0.0}, 'pell_grant_formula': {'2025': 0.0}, 'cost_of_attending_college': {'2025': 0.0}, 'pell_grant': {'2025': 0.0}, 'pell_grant_months_in_school': {'2025': 0.0}, 'pell_grant_efc': {'2025': 0.0}, 'pell_grant_uses_efc': {'2025': 0.0}, 'pell_grant_simplified_formula_applies': {'2025': 0.0}, 'pell_grant_head_allowances': {'2025': 0.0}, 'pell_grant_head_contribution': {'2025': 0.0}, 'pell_grant_head_available_income': {'2025': 0.0}, 'pell_grant_contribution_from_assets': {'2025': 0.0}, 'pell_grant_sai': {'2025': 0.0}, 'pell_grant_uses_sai': {'2025': 0.0}, 'pell_grant_household_type': {'2025': 0.0}, 'pell_grant_eligibility_type': {'2025': 0.0}, 'pell_grant_max_fpg_percent_limit': {'2025': 0.0}, 'pell_grant_min_fpg_percent_limit': {'2025': 0.0}, 'pell_grant_dependent_available_income': {'2025': 0.0}, 'pell_grant_dependent_allowances': {'2025': 0.0}, 'pell_grant_dependent_other_allowances': {'2025': 0.0}, 'pell_grant_dependent_contribution': {'2025': 0.0}, 'person_aca_slspc_ca': {'2025': 0.0}, 'aca_slspc_trimmed_age': {'2025': 0.0}, 'is_aca_ptc_eligible': {'2025': 0.0}, 'is_aca_ptc_eligible_ca': {'2025': 0.0}, 'is_aca_eshi_eligible': {'2025': 0.0}, 'aca_child_index': {'2025': 0.0}, 'relative_capital_gains_mtr_change': {'2025': 0.0}, 'capital_gains_elasticity': {'2025': 0.0}, 'capital_gains_behavioral_response': {'2025': 0.0}, 'capital_gains_before_response': {'2025': 0.0}, 'adult_index_cg': {'2025': 0.0}, 'marginal_tax_rate_on_capital_gains': {'2025': 0.0}, 'relative_income_change': {'2025': 0.0}, 'relative_wage_change': {'2025': 0.0}, 'income_elasticity_lsr': {'2025': 0.0}, 'income_elasticity': {'2025': 0.0}, 'substitution_elasticity': {'2025': 0.0}, 'substitution_elasticity_lsr': {'2025': 0.0}, 'labor_supply_behavioral_response': {'2025': 0.0}, 'employment_income_behavioral_response': {'2025': 0.0}, 'self_employment_income_behavioral_response': {'2025': 0.0}, 'is_co_denver_dhs_elderly': {'2025': 0.0}, 'la_general_relief_gross_income': {'2025': 0.0}, 'la_general_relief_immigration_status_eligible_person': {'2025': 0.0}, 'ca_la_expectant_parent_payment_eligible': {'2025': 0.0}, 'ca_la_expectant_parent_payment': {'2025': 0.0}, 'ca_la_infant_supplement_eligible_infant': {'2025': 0.0}, 'ca_la_infant_supplement_eligible_person': {'2025': 0.0}, 'assessed_property_value': {'2025': 0.0}, 'is_usda_disabled': {'2025': 0.0}, 'is_usda_elderly': {'2025': 0.0}, 'is_snap_ineligible_student': {'2025': 0.0}, 'commodity_supplemental_food_program_eligible': {'2025': 0.0}, 'commodity_supplemental_food_program': {'2025': 0.0}, 'meets_wic_categorical_eligibility': {'2025': 0.0}, 'wic_category_str': {'2025': 0.0}, 'receives_wic': {'2025': 0.0}, 'wic_category': {'2025': 0.0}, 'is_wic_at_nutritional_risk': {'2025': 0.0}, 'is_wic_eligible': {'2025': 0.0}, 'wic': {'2025': 0.0}, 'would_claim_wic': {'2025': 0.0}, 'maximum_state_supplement': {'2025': 0.0}, 'state_supplement': {'2025': 0.0}, 'social_security_disability': {'2025': 0.0}, 'never_eligible_for_social_security_benefits': {'2025': 0.0}, 'social_security_dependents': {'2025': 0.0}, 'social_security_survivors': {'2025': 0.0}, 'social_security_retirement': {'2025': 0.0}, 'social_security': {'2025': 0.0}, 'uncapped_ssi': {'2025': 0.0}, 'ssi_claim_is_joint': {'2025': 0.0}, 'is_ssi_eligible': {'2025': 0.0}, 'ssi_amount_if_eligible': {'2025': 0.0}, 'ssi': {'2025': 0.0}, 'meets_ssi_resource_test': {'2025': 0.0}, 'ssi_countable_resources': {'2025': 0.0}, 'ssi_blind_or_disabled_working_student_exclusion': {'2025': 0.0}, 'ssi_earned_income': {'2025': 0.0}, 'ssi_countable_income': {'2025': 0.0}, 'ssi_engaged_in_sga': {'2025': 0.0}, 'ssi_unearned_income': {'2025': 0.0}, 'is_ssi_blind_or_disabled_working_student_exclusion_eligible': {'2025': 0.0}, 'ssi_ineligible_child_allocation': {'2025': 0.0}, 'ssi_ineligible_parent_allocation': {'2025': 0.0}, 'ssi_unearned_income_deemed_from_ineligible_parent': {'2025': 0.0}, 'ssi_earned_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_unearned_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_income_deemed_from_ineligible_spouse': {'2025': 0.0}, 'ssi_marital_both_eligible': {'2025': 0.0}, 'ssi_marital_unearned_income': {'2025': 0.0}, 'ssi_marital_earned_income': {'2025': 0.0}, 'is_ssi_qualified_noncitizen': {'2025': 0.0}, 'is_ssi_eligible_spouse': {'2025': 0.0}, 'is_ssi_aged_blind_disabled': {'2025': 0.0}, 'is_ssi_ineligible_parent': {'2025': 0.0}, 'is_ssi_aged': {'2025': 0.0}, 'is_ssi_ineligible_spouse': {'2025': 0.0}, 'is_ssi_disabled': {'2025': 0.0}, 'is_ssi_ineligible_child': {'2025': 0.0}, 'is_ssi_eligible_individual': {'2025': 0.0}, 'ssi_category': {'2025': 0.0}, 'workers_compensation': {'2025': 0.0}, 'unemployment_compensation': {'2025': 0.0}, 'general_assistance': {'2025': 0.0}, 'vt_withheld_income_tax': {'2025': 0.0}, 'va_withheld_income_tax': {'2025': 0.0}, 'va_agi_share': {'2025': 0.0}, 'va_agi_person': {'2025': 0.0}, 'va_aged_blind_exemption_person': {'2025': 0.0}, 'va_personal_exemption_person': {'2025': 0.0}, 'va_eitc_person': {'2025': 0.0}, 'va_agi_less_exemptions_person': {'2025': 0.0}, 'sc_withheld_income_tax': {'2025': 0.0}, 'sc_retirement_cap': {'2025': 0.0}, 'sc_retirement_deduction_indv': {'2025': 0.0}, 'sc_retirement_deduction_survivors': {'2025': 0.0}, 'sc_military_deduction_indv': {'2025': 0.0}, 'sc_military_deduction_survivors': {'2025': 0.0}, 'sc_senior_exemption_person': {'2025': 0.0}, 'sc_tuition_credit_eligible': {'2025': 0.0}, 'sc_tuition_credit': {'2025': 0.0}, 'sc_gross_earned_income': {'2025': 0.0}, 'ut_withheld_income_tax': {'2025': 0.0}, 'ut_at_home_parent_credit_earned_income_eligible_person': {'2025': 0.0}, 'ut_personal_exemption_additional_dependent_eligible': {'2025': 0.0}, 'ga_withheld_income_tax': {'2025': 0.0}, 'ga_retirement_income_exclusion_retirement_income': {'2025': 0.0}, 'ga_retirement_exclusion_countable_earned_income': {'2025': 0.0}, 'ga_retirement_exclusion_person': {'2025': 0.0}, 'ga_retirement_exclusion_eligible_person': {'2025': 0.0}, 'ga_military_retirement_exclusion_person': {'2025': 0.0}, 'ga_military_retirement_exclusion_eligible_person': {'2025': 0.0}, 'ms_withheld_income_tax': {'2025': 0.0}, 'ms_agi_adjustments': {'2025': 0.0}, 'ms_prorate_fraction': {'2025': 0.0}, 'ms_income_tax_before_credits_indiv': {'2025': 0.0}, 'ms_income_tax_before_credits_joint': {'2025': 0.0}, 'ms_agi': {'2025': 0.0}, 'ms_taxable_income_indiv': {'2025': 0.0}, 'ms_taxable_income_joint': {'2025': 0.0}, 'ms_pre_deductions_taxable_income_indiv': {'2025': 0.0}, 'ms_deductions_joint': {'2025': 0.0}, 'ms_deductions_indiv': {'2025': 0.0}, 'ms_itemized_deductions_joint': {'2025': 0.0}, 'ms_itemized_deductions_indiv': {'2025': 0.0}, 'ms_standard_deduction_indiv': {'2025': 0.0}, 'ms_standard_deduction_joint': {'2025': 0.0}, 'ms_self_employment_adjustment': {'2025': 0.0}, 'ms_national_guard_or_reserve_pay_adjustment': {'2025': 0.0}, 'ms_total_exemptions_joint': {'2025': 0.0}, 'ms_total_exemptions_indiv': {'2025': 0.0}, 'mt_agi': {'2025': 0.0}, 'mt_regular_income_tax_indiv': {'2025': 0.0}, 'mt_taxable_social_security': {'2025': 0.0}, 'mt_income_tax_before_refundable_credits_indiv': {'2025': 0.0}, 'mt_withheld_income_tax': {'2025': 0.0}, 'mt_refundable_credits': {'2025': 0.0}, 'mt_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'mt_applicable_ald_deductions': {'2025': 0.0}, 'mt_non_refundable_credits': {'2025': 0.0}, 'mt_income_tax_indiv': {'2025': 0.0}, 'mt_taxable_income_indiv': {'2025': 0.0}, 'mt_pre_dependent_exemption_taxable_income_indiv': {'2025': 0.0}, 'mt_refundable_credits_before_renter_credit': {'2025': 0.0}, 'mt_taxable_income_joint': {'2025': 0.0}, 'mt_disability_income_exclusion_eligible_person': {'2025': 0.0}, 'mt_subtractions': {'2025': 0.0}, 'mt_disability_income_exclusion_person': {'2025': 0.0}, 'mt_tuition_subtraction_person': {'2025': 0.0}, 'mt_old_age_subtraction': {'2025': 0.0}, 'mt_additions': {'2025': 0.0}, 'mt_deductions_indiv': {'2025': 0.0}, 'mt_medical_expense_deduction_indiv': {'2025': 0.0}, 'mt_medical_expense_deduction_joint': {'2025': 0.0}, 'mt_salt_deduction': {'2025': 0.0}, 'mt_itemized_deductions_joint': {'2025': 0.0}, 'mt_federal_income_tax_deduction_indiv': {'2025': 0.0}, 'mt_itemized_deductions_indiv': {'2025': 0.0}, 'mt_misc_deductions': {'2025': 0.0}, 'mt_standard_deduction_joint': {'2025': 0.0}, 'mt_standard_deduction_indiv': {'2025': 0.0}, 'mt_child_dependent_care_expense_deduction_eligible_child': {'2025': 0.0}, 'mt_child_dependent_care_expense_deduction': {'2025': 0.0}, 'mt_capital_gains_tax_joint': {'2025': 0.0}, 'mt_capital_gains_tax_indiv': {'2025': 0.0}, 'mt_capital_gains_tax_applicable_threshold_joint': {'2025': 0.0}, 'mt_capital_gains_tax_applicable_threshold_indiv': {'2025': 0.0}, 'mt_aged_exemption_eligible_person': {'2025': 0.0}, 'mt_interest_exemption_eligible_person': {'2025': 0.0}, 'mt_interest_exemption_person': {'2025': 0.0}, 'mt_dependent_exemptions_person': {'2025': 0.0}, 'mt_personal_exemptions_joint': {'2025': 0.0}, 'mt_personal_exemptions_indiv': {'2025': 0.0}, 'mt_eitc': {'2025': 0.0}, 'mt_capital_gain_credit': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_net_household_income': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_eligible': {'2025': 0.0}, 'mt_elderly_homeowner_or_renter_credit_gross_household_income': {'2025': 0.0}, 'mo_withheld_income_tax': {'2025': 0.0}, 'mo_qualified_health_insurance_premiums': {'2025': 0.0}, 'mo_income_tax_before_credits': {'2025': 0.0}, 'mo_income_tax_exempt': {'2025': 0.0}, 'mo_taxable_income': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_b': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_c': {'2025': 0.0}, 'mo_pension_and_ss_or_ssd_deduction_section_a': {'2025': 0.0}, 'mo_adjusted_gross_income': {'2025': 0.0}, 'ma_withheld_income_tax': {'2025': 0.0}, 'ma_covid_19_essential_employee_premium_pay_program': {'2025': 0.0}, 'claimed_ma_covid_19_essential_employee_premium_pay_program_2020': {'2025': 0.0}, 'ak_permanent_fund_dividend': {'2025': 0.0}, 'ak_energy_relief': {'2025': 0.0}, 'ky_additions': {'2025': 0.0}, 'ky_agi': {'2025': 0.0}, 'ky_subtractions': {'2025': 0.0}, 'ky_withheld_income_tax': {'2025': 0.0}, 'ky_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'ky_taxable_income_indiv': {'2025': 0.0}, 'ky_taxable_income_joint': {'2025': 0.0}, 'ky_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'ky_deductions_indiv': {'2025': 0.0}, 'ky_itemized_deductions_joint': {'2025': 0.0}, 'ky_standard_deduction_indiv': {'2025': 0.0}, 'ky_deductions_joint': {'2025': 0.0}, 'ky_standard_deduction_joint': {'2025': 0.0}, 'ky_itemized_deductions_indiv': {'2025': 0.0}, 'ky_pension_income_exclusion': {'2025': 0.0}, 'ky_service_credit_months_pre_1998': {'2025': 0.0}, 'ky_service_credits_percentage_pre_1998': {'2025': 0.0}, 'ky_service_credit_months_post_1997': {'2025': 0.0}, 'ky_pension_income_exclusion_exemption_eligible': {'2025': 0.0}, 'retired_from_ky_government': {'2025': 0.0}, 'ky_personal_tax_credits_joint': {'2025': 0.0}, 'ky_aged_personal_tax_credits': {'2025': 0.0}, 'ky_personal_tax_credits_indiv': {'2025': 0.0}, 'ky_military_personal_tax_credits': {'2025': 0.0}, 'ky_blind_personal_tax_credits': {'2025': 0.0}, 'al_withheld_income_tax': {'2025': 0.0}, 'al_retirement_exemption_person': {'2025': 0.0}, 'al_retirement_exemption_eligible_person': {'2025': 0.0}, 'mn_withheld_income_tax': {'2025': 0.0}, 'mi_withheld_income_tax': {'2025': 0.0}, 'mi_disabled_exemption_eligible_person': {'2025': 0.0}, 'ok_withheld_income_tax': {'2025': 0.0}, 'in_withheld_income_tax': {'2025': 0.0}, 'in_is_qualifying_dependent_child': {'2025': 0.0}, 'co_withheld_income_tax': {'2025': 0.0}, 'co_social_security_subtraction_indv_eligible': {'2025': 0.0}, 'co_pension_subtraction_income': {'2025': 0.0}, 'co_social_security_subtraction_indv': {'2025': 0.0}, 'co_pension_subtraction_indv': {'2025': 0.0}, 'co_pension_subtraction_indv_eligible': {'2025': 0.0}, 'co_family_affordability_credit': {'2025': 0.0}, 'co_ctc_eligible_child': {'2025': 0.0}, 'co_federal_ctc_child_individual_maximum': {'2025': 0.0}, 'co_ccap_child_eligible': {'2025': 0.0}, 'co_quality_rating_of_child_care_facility': {'2025': 0.0}, 'co_oap_eligible': {'2025': 0.0}, 'co_oap': {'2025': 0.0}, 'co_state_supplement_eligible': {'2025': 0.0}, 'co_state_supplement': {'2025': 0.0}, 'co_chp': {'2025': 0.0}, 'co_chp_eligible': {'2025': 0.0}, 'co_chp_out_of_pocket_maximum': {'2025': 0.0}, 'ca_foster_care_minor_dependent': {'2025': 0.0}, 'ca_in_medical_care_facility': {'2025': 0.0}, 'ca_ffyp_eligible': {'2025': 0.0}, 'ca_withheld_income_tax': {'2025': 0.0}, 'ca_is_qualifying_child_for_caleitc': {'2025': 0.0}, 'ca_foster_youth_tax_credit_person': {'2025': 0.0}, 'ca_foster_youth_tax_credit_eligible_person': {'2025': 0.0}, 'ca_state_disability_insurance': {'2025': 0.0}, 'is_ca_cvrp_increased_rebate_eligible': {'2025': 0.0}, 'ca_cvrp_vehicle_rebate_amount': {'2025': 0.0}, 'is_ca_cvrp_normal_rebate_eligible': {'2025': 0.0}, 'ca_cvrp': {'2025': 0.0}, 'ca_in_home_supportive_services': {'2025': 0.0}, 'ca_capi_eligible_person': {'2025': 0.0}, 'ca_calworks_child_care_days_per_month': {'2025': 0.0}, 'ca_calworks_child_care_weeks_per_month': {'2025': 0.0}, 'ca_calworks_child_care_provider_category': {'2025': 0.0}, 'ca_calworks_child_care_full_time': {'2025': 0.0}, 'ca_calworks_child_care_time_category': {'2025': 0.0}, 'ca_calworks_child_care_welfare_to_work': {'2025': 0.0}, 'ca_calworks_child_care_child_age_eligible': {'2025': 0.0}, 'ca_calworks_child_care_payment': {'2025': 0.0}, 'ca_calworks_child_care_time_coefficient': {'2025': 0.0}, 'ca_calworks_child_care_payment_factor': {'2025': 0.0}, 'ca_calworks_child_care_payment_standard': {'2025': 0.0}, 'ca_calworks_child_care_factor_category': {'2025': 0.0}, 'ia_withheld_income_tax': {'2025': 0.0}, 'ia_regular_tax_indiv': {'2025': 0.0}, 'ia_base_tax_joint': {'2025': 0.0}, 'ia_base_tax_indiv': {'2025': 0.0}, 'ia_regular_tax_joint': {'2025': 0.0}, 'ia_taxable_income_joint': {'2025': 0.0}, 'ia_amt_joint': {'2025': 0.0}, 'ia_taxable_income_indiv': {'2025': 0.0}, 'ia_amt_indiv': {'2025': 0.0}, 'ia_standard_deduction_joint': {'2025': 0.0}, 'ia_standard_deduction_indiv': {'2025': 0.0}, 'ia_itemized_deductions_joint': {'2025': 0.0}, 'ia_fedtax_deduction': {'2025': 0.0}, 'ia_itemized_deductions_indiv': {'2025': 0.0}, 'ia_basic_deduction_joint': {'2025': 0.0}, 'ia_qbi_deduction': {'2025': 0.0}, 'ia_basic_deduction_indiv': {'2025': 0.0}, 'ia_alternate_tax_indiv': {'2025': 0.0}, 'ia_alternate_tax_joint': {'2025': 0.0}, 'ia_income_adjustments': {'2025': 0.0}, 'ia_pension_exclusion': {'2025': 0.0}, 'ia_net_income': {'2025': 0.0}, 'ia_pension_exclusion_eligible': {'2025': 0.0}, 'ia_gross_income': {'2025': 0.0}, 'ia_prorate_fraction': {'2025': 0.0}, 'ct_withheld_income_tax': {'2025': 0.0}, 'wv_withheld_income_tax': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_person': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_eligible_person': {'2025': 0.0}, 'wv_senior_citizen_disability_deduction_total_modifications': {'2025': 0.0}, 'wv_public_pension_subtraction_person': {'2025': 0.0}, 'wv_social_security_benefits_subtraction_person': {'2025': 0.0}, 'ri_withheld_income_tax': {'2025': 0.0}, 'pa_withheld_income_tax': {'2025': 0.0}, 'pa_nontaxable_pension_income': {'2025': 0.0}, 'nc_withheld_income_tax': {'2025': 0.0}, 'nc_military_retirement_deduction_eligible': {'2025': 0.0}, 'nd_withheld_income_tax': {'2025': 0.0}, 'nm_withheld_income_tax': {'2025': 0.0}, 'nm_armed_forces_retirement_pay_exemption_person': {'2025': 0.0}, 'nm_cdcc_eligible_child': {'2025': 0.0}, 'nj_withheld_income_tax': {'2025': 0.0}, 'nj_eligible_pension_income': {'2025': 0.0}, 'nj_agi_subtractions': {'2025': 0.0}, 'nj_additions': {'2025': 0.0}, 'nj_total_income': {'2025': 0.0}, 'me_withheld_income_tax': {'2025': 0.0}, 'ar_taxable_income_joint': {'2025': 0.0}, 'ar_taxable_income_indiv': {'2025': 0.0}, 'ar_withheld_income_tax': {'2025': 0.0}, 'ar_income_tax_before_non_refundable_credits_indiv': {'2025': 0.0}, 'ar_taxable_capital_gains_joint': {'2025': 0.0}, 'ar_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'ar_taxable_capital_gains_indiv': {'2025': 0.0}, 'ar_gross_income_indiv': {'2025': 0.0}, 'ar_exemptions': {'2025': 0.0}, 'ar_gross_income_joint': {'2025': 0.0}, 'ar_agi_joint': {'2025': 0.0}, 'ar_agi_indiv': {'2025': 0.0}, 'ar_deduction_indiv': {'2025': 0.0}, 'ar_deduction_joint': {'2025': 0.0}, 'ar_itemized_deductions_joint': {'2025': 0.0}, 'ar_itemized_deductions_indiv': {'2025': 0.0}, 'ar_post_secondary_education_tuition_deduction_person': {'2025': 0.0}, 'ar_standard_deduction_indiv': {'2025': 0.0}, 'ar_standard_deduction_joint': {'2025': 0.0}, 'ar_low_income_tax_joint': {'2025': 0.0}, 'ar_retirement_or_disability_benefits_exemption_person': {'2025': 0.0}, 'ar_capped_retirement_or_disability_benefits_exemption_person': {'2025': 0.0}, 'ar_military_retirement_income_person': {'2025': 0.0}, 'ar_inflation_relief_credit_person': {'2025': 0.0}, 'ar_personal_credit_dependent': {'2025': 0.0}, 'ar_personal_credit_disabled_dependent': {'2025': 0.0}, 'dc_withheld_income_tax': {'2025': 0.0}, 'dc_taxable_income_indiv': {'2025': 0.0}, 'dc_agi': {'2025': 0.0}, 'dc_income_subtractions': {'2025': 0.0}, 'dc_disability_exclusion': {'2025': 0.0}, 'dc_disabled_exclusion_subtraction': {'2025': 0.0}, 'dc_self_employment_loss_addition': {'2025': 0.0}, 'dc_additions': {'2025': 0.0}, 'dc_deduction_indiv': {'2025': 0.0}, 'dc_ctc_eligible_child': {'2025': 0.0}, 'md_withheld_income_tax': {'2025': 0.0}, 'md_pension_subtraction_amount': {'2025': 0.0}, 'md_socsec_subtraction_amount': {'2025': 0.0}, 'md_hundred_year_subtraction_eligible': {'2025': 0.0}, 'md_hundred_year_subtraction_person': {'2025': 0.0}, 'md_snap_is_elderly': {'2025': 0.0}, 'ks_withheld_income_tax': {'2025': 0.0}, 'ks_disabled_veteran_exemptions_eligible_person': {'2025': 0.0}, 'ne_withheld_income_tax': {'2025': 0.0}, 'ne_refundable_ctc_eligible_child': {'2025': 0.0}, 'ne_dhhs_has_special_needs': {'2025': 0.0}, 'ne_child_care_subsidy_eligible_child': {'2025': 0.0}, 'ne_child_care_subsidy_eligible_parent': {'2025': 0.0}, 'hi_withheld_income_tax': {'2025': 0.0}, 'hi_food_excise_credit_child_receiving_public_support': {'2025': 0.0}, 'hi_cdcc_income_floor_eligible': {'2025': 0.0}, 'de_taxable_income_indv': {'2025': 0.0}, 'de_income_tax_before_non_refundable_credits_indv': {'2025': 0.0}, 'de_withheld_income_tax': {'2025': 0.0}, 'de_agi_indiv': {'2025': 0.0}, 'de_taxable_income_joint': {'2025': 0.0}, 'de_agi_joint': {'2025': 0.0}, 'de_income_tax_before_non_refundable_credits_joint': {'2025': 0.0}, 'de_pre_exclusions_agi': {'2025': 0.0}, 'de_subtractions': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_eligible_person': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_indiv': {'2025': 0.0}, 'de_elderly_or_disabled_income_exclusion_joint': {'2025': 0.0}, 'de_pension_exclusion_income': {'2025': 0.0}, 'de_pension_exclusion': {'2025': 0.0}, 'de_additions': {'2025': 0.0}, 'de_deduction_joint': {'2025': 0.0}, 'de_deduction_indv': {'2025': 0.0}, 'de_itemized_deductions_joint': {'2025': 0.0}, 'de_itemized_deductions_indv': {'2025': 0.0}, 'de_standard_deduction_indv': {'2025': 0.0}, 'de_base_standard_deduction_joint': {'2025': 0.0}, 'de_base_standard_deduction_indv': {'2025': 0.0}, 'de_additional_standard_deduction': {'2025': 0.0}, 'de_standard_deduction_joint': {'2025': 0.0}, 'az_withheld_income_tax': {'2025': 0.0}, 'az_aged_exemption_eligible_person': {'2025': 0.0}, 'az_parents_grandparents_exemption': {'2025': 0.0}, 'az_aged_exemption': {'2025': 0.0}, 'az_tanf_eligible_child': {'2025': 0.0}, 'ny_withheld_income_tax': {'2025': 0.0}, 'id_withheld_income_tax': {'2025': 0.0}, 'id_aged_or_disabled_deduction_eligible_person': {'2025': 0.0}, 'id_retirement_benefits_deduction_eligible_person': {'2025': 0.0}, 'id_retirement_benefits_deduction_relevant_income': {'2025': 0.0}, 'id_aged_or_disabled_credit_eligible_person': {'2025': 0.0}, 'id_grocery_credit_base': {'2025': 0.0}, 'id_grocery_credit_aged': {'2025': 0.0}, 'id_grocery_credit_qualified_months': {'2025': 0.0}, 'id_grocery_credit_qualifying_month': {'2025': 0.0}, 'oh_withheld_income_tax': {'2025': 0.0}, 'oh_bonus_depreciation_add_back': {'2025': 0.0}, 'oh_additions': {'2025': 0.0}, 'oh_other_add_backs': {'2025': 0.0}, 'oh_federal_conformity_deductions': {'2025': 0.0}, 'oh_uniformed_services_retirement_income_deduction': {'2025': 0.0}, 'oh_section_179_expense_add_back': {'2025': 0.0}, 'oh_deductions': {'2025': 0.0}, 'oh_uninsured_unreimbursed_medical_care_expenses': {'2025': 0.0}, 'oh_unreimbursed_medical_care_expense_deduction_person': {'2025': 0.0}, 'oh_insured_unreimbursed_medical_care_expenses_person': {'2025': 0.0}, 'oh_insured_unreimbursed_medical_care_expense_amount': {'2025': 0.0}, 'oh_529_plan_deduction_person': {'2025': 0.0}, 'oh_personal_exemptions_eligible_person': {'2025': 0.0}, 'oh_has_taken_oh_lump_sum_credits': {'2025': 0.0}, 'oh_adoption_credit_person': {'2025': 0.0}, 'oh_lump_sum_distribution_credit_eligible_person': {'2025': 0.0}, 'oh_lump_sum_distribution_credit_person': {'2025': 0.0}, 'oh_joint_filing_credit_qualifying_income': {'2025': 0.0}, 'oh_joint_filing_credit_agi_subtractions': {'2025': 0.0}, 'oh_agi_person': {'2025': 0.0}, 'or_withheld_income_tax': {'2025': 0.0}, 'or_retirement_credit_eligible': {'2025': 0.0}, 'il_withheld_income_tax': {'2025': 0.0}, 'la_withheld_income_tax': {'2025': 0.0}, 'la_disability_income_exemption_person': {'2025': 0.0}, 'la_retirement_exemption_person': {'2025': 0.0}, 'la_blind_exemption_person': {'2025': 0.0}, 'la_receives_blind_exemption': {'2025': 0.0}, 'la_school_readiness_credit_eligible_child': {'2025': 0.0}, 'la_quality_rating_of_child_care_facility': {'2025': 0.0}, 'wi_withheld_income_tax': {'2025': 0.0}, 'vita_eligible': {'2025': 0.0}, 'adjusted_earnings': {'2025': 0.0}, 'is_irs_aged': {'2025': 0.0}, 'qualified_business_income': {'2025': 0.0}, 'qualified_business_income_deduction_person': {'2025': 0.0}, 'qbid_amount': {'2025': 0.0}, 'adjusted_gross_income_person': {'2025': 0.0}, 'irs_employment_income': {'2025': 0.0}, 'pre_tax_contributions': {'2025': 0.0}, 'irs_gross_income': {'2025': 0.0}, 'taxable_unemployment_compensation': {'2025': 0.0}, 'tax_exempt_unemployment_compensation': {'2025': 0.0}, 'earned_income_last_year': {'2025': 0.0}, 'earned_income': {'2025': 0.0}, 'taxable_social_security': {'2025': 0.0}, 'self_employed_pension_contribution_ald_person': {'2025': 0.0}, 'self_employment_tax_ald_person': {'2025': 0.0}, 'self_employed_health_insurance_ald_person': {'2025': 0.0}, 'student_loan_interest_ald_magi': {'2025': 0.0}, 'student_loan_interest_ald_eligible': {'2025': 0.0}, 'student_loan_interest_ald': {'2025': 0.0}, 'estate_tax_before_credits': {'2025': 0.0}, 'estate_tax': {'2025': 0.0}, 'self_employment_medicare_tax': {'2025': 0.0}, 'social_security_taxable_self_employment_income': {'2025': 0.0}, 'self_employment_tax': {'2025': 0.0}, 'self_employment_social_security_tax': {'2025': 0.0}, 'taxable_self_employment_income': {'2025': 0.0}, 'payroll_tax_gross_wages': {'2025': 0.0}, 'employee_medicare_tax': {'2025': 0.0}, 'taxable_earnings_for_social_security': {'2025': 0.0}, 'employee_social_security_tax': {'2025': 0.0}, 'is_tce_eligible': {'2025': 0.0}, 'other_credits': {'2025': 0.0}, 'amt_foreign_tax_credit': {'2025': 0.0}, 'estate_tax_credit': {'2025': 0.0}, 'savers_credit_person': {'2025': 0.0}, 'savers_credit_qualified_contributions': {'2025': 0.0}, 'savers_credit_eligible_person': {'2025': 0.0}, 'prior_year_minimum_tax_credit': {'2025': 0.0}, 'total_disability_payments': {'2025': 0.0}, 'retired_on_total_disability': {'2025': 0.0}, 'qualifies_for_elderly_or_disabled_credit': {'2025': 0.0}, 'is_eligible_for_american_opportunity_credit': {'2025': 0.0}, 'ctc_qualifying_child': {'2025': 0.0}, 'ctc_individual_maximum': {'2025': 0.0}, 'ctc_child_individual_maximum': {'2025': 0.0}, 'ctc_adult_individual_maximum': {'2025': 0.0}, 'ctc_child_individual_maximum_arpa': {'2025': 0.0}, 'general_business_credit': {'2025': 0.0}, 'is_cdcc_eligible': {'2025': 0.0}, 'head_start': {'2025': 0.0}, 'is_head_start_income_eligible': {'2025': 0.0}, 'is_head_start_eligible': {'2025': 0.0}, 'early_head_start': {'2025': 0.0}, 'is_early_head_start_eligible': {'2025': 0.0}, 'is_head_start_categorically_eligible': {'2025': 0.0}, 'medicaid': {'2025': 0.0}, 'medicaid_benefit_value': {'2025': 0.0}, 'medicaid_income_level': {'2025': 0.0}, 'is_medicaid_eligible': {'2025': 0.0}, 'medicaid_category': {'2025': 0.0}, 'is_optional_senior_or_disabled_for_medicaid': {'2025': 0.0}, 'is_ssi_recipient_for_medicaid': {'2025': 0.0}, 'is_in_medicaid_medically_needy_category': {'2025': 0.0}, 'is_medically_needy_for_medicaid': {'2025': 0.0}, 'is_young_child_for_medicaid_fc': {'2025': 0.0}, 'is_young_child_for_medicaid_nfc': {'2025': 0.0}, 'is_young_child_for_medicaid': {'2025': 0.0}, 'is_young_adult_for_medicaid_fc': {'2025': 0.0}, 'is_young_adult_for_medicaid_nfc': {'2025': 0.0}, 'is_young_adult_for_medicaid': {'2025': 0.0}, 'is_older_child_for_medicaid': {'2025': 0.0}, 'is_older_child_for_medicaid_nfc': {'2025': 0.0}, 'is_older_child_for_medicaid_fc': {'2025': 0.0}, 'is_parent_for_medicaid_nfc': {'2025': 0.0}, 'is_parent_for_medicaid': {'2025': 0.0}, 'is_parent_for_medicaid_fc': {'2025': 0.0}, 'is_pregnant_for_medicaid': {'2025': 0.0}, 'is_pregnant_for_medicaid_fc': {'2025': 0.0}, 'is_pregnant_for_medicaid_nfc': {'2025': 0.0}, 'is_infant_for_medicaid_fc': {'2025': 0.0}, 'is_infant_for_medicaid': {'2025': 0.0}, 'is_infant_for_medicaid_nfc': {'2025': 0.0}, 'is_adult_for_medicaid': {'2025': 0.0}, 'is_adult_for_medicaid_fc': {'2025': 0.0}, 'is_adult_for_medicaid_nfc': {'2025': 0.0}, 'is_medicare_eligible': {'2025': 0.0}, 'months_receiving_social_security_disability': {'2025': 0.0}, 'ccdf_market_rate': {'2025': 0.0}, 'is_ccdf_reason_for_care_eligible': {'2025': 0.0}, 'is_enrolled_in_ccdf': {'2025': 0.0}, 'ccdf_duration_of_care': {'2025': 0.0}, 'is_ccdf_eligible': {'2025': 0.0}, 'is_ccdf_home_based': {'2025': 0.0}, 'is_ccdf_age_eligible': {'2025': 0.0}, 'ccdf_age_group': {'2025': 0.0}, 'tanf_reported': {'2025': 0.0}, 'tanf_person': {'2025': 0.0}, 'is_person_demographic_tanf_eligible': {'2025': 0.0}}}})" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine import Simulation\n", - "\n", - "sim = Simulation(\n", - " scope=\"household\",\n", - " country=\"us\",\n", - " data={ # Required for this\n", - " \"people\": {\n", - " \"person\": {\n", - " \"age\": {\n", - " \"2025\": 30,\n", - " },\n", - " \"employment_income\": {\n", - " \"2025\": 30_000,\n", - " },\n", - " }\n", - " }\n", - " },\n", - " reform={\n", - " \"gov.usda.snap.income.deductions.earned_income\": {\n", - " \"2025\": 0.05\n", - " }\n", - " }\n", - ")\n", - "\n", - "sim.calculate_household_comparison()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Output schema\n", - "\n", - "`calculate_household_comparison` or `calculate` (when `scope=household` and `reform is not None`) return the following schema." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'properties': {'full_household_baseline': {'additionalProperties': {'anyOf': [{'additionalProperties': {'additionalProperties': {'additionalProperties': {'anyOf': [{'type': 'number'},\n", - " {'type': 'string'},\n", - " {'type': 'boolean'},\n", - " {'items': {}, 'type': 'array'},\n", - " {'type': 'null'}]},\n", - " 'type': 'object'},\n", - " 'type': 'object'},\n", - " 'type': 'object'},\n", - " {'items': {'items': {'additionalProperties': {'anyOf': [{'type': 'string'},\n", - " {'type': 'integer'}]},\n", - " 'type': 'object'},\n", - " 'type': 'array'},\n", - " 'type': 'array'}]},\n", - " 'title': 'Full Household Baseline',\n", - " 'type': 'object'},\n", - " 'full_household_reform': {'additionalProperties': {'anyOf': [{'additionalProperties': {'additionalProperties': {'additionalProperties': {'anyOf': [{'type': 'number'},\n", - " {'type': 'string'},\n", - " {'type': 'boolean'},\n", - " {'items': {}, 'type': 'array'},\n", - " {'type': 'null'}]},\n", - " 'type': 'object'},\n", - " 'type': 'object'},\n", - " 'type': 'object'},\n", - " {'items': {'items': {'additionalProperties': {'anyOf': [{'type': 'string'},\n", - " {'type': 'integer'}]},\n", - " 'type': 'object'},\n", - " 'type': 'array'},\n", - " 'type': 'array'}]},\n", - " 'title': 'Full Household Reform',\n", - " 'type': 'object'},\n", - " 'change': {'additionalProperties': {'anyOf': [{'additionalProperties': {'additionalProperties': {'additionalProperties': {'anyOf': [{'type': 'number'},\n", - " {'type': 'string'},\n", - " {'type': 'boolean'},\n", - " {'items': {}, 'type': 'array'},\n", - " {'type': 'null'}]},\n", - " 'type': 'object'},\n", - " 'type': 'object'},\n", - " 'type': 'object'},\n", - " {'items': {'items': {'additionalProperties': {'anyOf': [{'type': 'string'},\n", - " {'type': 'integer'}]},\n", - " 'type': 'object'},\n", - " 'type': 'array'},\n", - " 'type': 'array'}]},\n", - " 'title': 'Change',\n", - " 'type': 'object'}},\n", - " 'required': ['full_household_baseline', 'full_household_reform', 'change'],\n", - " 'title': 'HouseholdComparison',\n", - " 'type': 'object'}" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine.outputs.household.comparison.calculate_household_comparison import HouseholdComparison\n", - "\n", - "HouseholdComparison.model_json_schema()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/basic/calculate_single_economy.ipynb b/docs/basic/calculate_single_economy.ipynb deleted file mode 100644 index 2a7de6e1..00000000 --- a/docs/basic/calculate_single_economy.ipynb +++ /dev/null @@ -1,157 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Simulate outcomes for a large population\n", - "\n", - "Use `Simulation.calculate_single_economy()` to use PolicyEngine's tax-benefit model to compute taxes, benefits and other household properties for a large dataset (usually representing a country). This notebook demonstrates how to use this function." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "SingleEconomy(fiscal=FiscalSummary(tax_revenue=658911285719.5891, federal_tax=658911285719.5891, federal_balance=309089098855.4849, state_tax=0.0, government_spending=349822186864.1042, tax_benefit_programs={'income_tax': 333376287037.05945, 'national_insurance': 52985626776.773834, 'ni_employer': 126330649370.35953, 'vat': 211671832822.39133, 'council_tax': 49007055050.00724, 'fuel_duty': 26506672341.204205, 'tax_credits': -34929879.49872104, 'universal_credit': -73459549194.97665, 'child_benefit': -14311471487.935827, 'state_pension': -132795868621.44594, 'pension_credit': -6252358021.417119}, household_net_income=1566028514855.0789), inequality=InequalitySummary(gini=0.36255397405553097, top_10_share=0.3260927004295773, top_1_share=0.13145609415091833), poverty=[PovertyRateMetric(age_group='child', racial_group='all', gender='male', relative=True, poverty_rate='regular', value=0.0937829241156578), PovertyRateMetric(age_group='child', racial_group='all', gender='male', relative=True, poverty_rate='deep', value=0.006947669200599194), PovertyRateMetric(age_group='child', racial_group='all', gender='male', relative=False, poverty_rate='regular', value=770371.125), PovertyRateMetric(age_group='child', racial_group='all', gender='male', relative=False, poverty_rate='deep', value=57070.984375), PovertyRateMetric(age_group='child', racial_group='all', gender='female', relative=True, poverty_rate='regular', value=0.08119998127222061), PovertyRateMetric(age_group='child', racial_group='all', gender='female', relative=True, poverty_rate='deep', value=0.005070670507848263), PovertyRateMetric(age_group='child', racial_group='all', gender='female', relative=False, poverty_rate='regular', value=866217.375), PovertyRateMetric(age_group='child', racial_group='all', gender='female', relative=False, poverty_rate='deep', value=54092.4140625), PovertyRateMetric(age_group='child', racial_group='all', gender='all', relative=True, poverty_rate='regular', value=0.0866740345954895), PovertyRateMetric(age_group='child', racial_group='all', gender='all', relative=True, poverty_rate='deep', value=0.005887233652174473), PovertyRateMetric(age_group='child', racial_group='all', gender='all', relative=False, poverty_rate='regular', value=1636588.5), PovertyRateMetric(age_group='child', racial_group='all', gender='all', relative=False, poverty_rate='deep', value=111163.3828125), PovertyRateMetric(age_group='working_age', racial_group='all', gender='male', relative=True, poverty_rate='regular', value=0.09058031439781189), PovertyRateMetric(age_group='working_age', racial_group='all', gender='male', relative=True, poverty_rate='deep', value=0.0320294052362442), PovertyRateMetric(age_group='working_age', racial_group='all', gender='male', relative=False, poverty_rate='regular', value=2207394.25), PovertyRateMetric(age_group='working_age', racial_group='all', gender='male', relative=False, poverty_rate='deep', value=780539.625), PovertyRateMetric(age_group='working_age', racial_group='all', gender='female', relative=True, poverty_rate='regular', value=0.06885619461536407), PovertyRateMetric(age_group='working_age', racial_group='all', gender='female', relative=True, poverty_rate='deep', value=0.006544755306094885), PovertyRateMetric(age_group='working_age', racial_group='all', gender='female', relative=False, poverty_rate='regular', value=1406585.625), PovertyRateMetric(age_group='working_age', racial_group='all', gender='female', relative=False, poverty_rate='deep', value=133695.4375), PovertyRateMetric(age_group='working_age', racial_group='all', gender='all', relative=True, poverty_rate='regular', value=0.08067396283149719), PovertyRateMetric(age_group='working_age', racial_group='all', gender='all', relative=True, poverty_rate='deep', value=0.02040824294090271), PovertyRateMetric(age_group='working_age', racial_group='all', gender='all', relative=False, poverty_rate='regular', value=3613979.5), PovertyRateMetric(age_group='working_age', racial_group='all', gender='all', relative=False, poverty_rate='deep', value=914235.1875), PovertyRateMetric(age_group='senior', racial_group='all', gender='male', relative=True, poverty_rate='regular', value=0.019906071946024895), PovertyRateMetric(age_group='senior', racial_group='all', gender='male', relative=True, poverty_rate='deep', value=0.0001492029696237296), PovertyRateMetric(age_group='senior', racial_group='all', gender='male', relative=False, poverty_rate='regular', value=120630.84375), PovertyRateMetric(age_group='senior', racial_group='all', gender='male', relative=False, poverty_rate='deep', value=904.1703491210938), PovertyRateMetric(age_group='senior', racial_group='all', gender='female', relative=True, poverty_rate='regular', value=0.04476610943675041), PovertyRateMetric(age_group='senior', racial_group='all', gender='female', relative=True, poverty_rate='deep', value=0.0012297447538003325), PovertyRateMetric(age_group='senior', racial_group='all', gender='female', relative=False, poverty_rate='regular', value=315600.8125), PovertyRateMetric(age_group='senior', racial_group='all', gender='female', relative=False, poverty_rate='deep', value=8669.693359375), PovertyRateMetric(age_group='senior', racial_group='all', gender='all', relative=True, poverty_rate='regular', value=0.03327473625540733), PovertyRateMetric(age_group='senior', racial_group='all', gender='all', relative=True, poverty_rate='deep', value=0.0007302720914594829), PovertyRateMetric(age_group='senior', racial_group='all', gender='all', relative=False, poverty_rate='regular', value=436231.65625), PovertyRateMetric(age_group='senior', racial_group='all', gender='all', relative=False, poverty_rate='deep', value=9573.8642578125), PovertyRateMetric(age_group='all', racial_group='all', gender='male', relative=True, poverty_rate='regular', value=0.08017819374799728), PovertyRateMetric(age_group='all', racial_group='all', gender='male', relative=True, poverty_rate='deep', value=0.021698515862226486), PovertyRateMetric(age_group='all', racial_group='all', gender='male', relative=False, poverty_rate='regular', value=3098396.25), PovertyRateMetric(age_group='all', racial_group='all', gender='male', relative=False, poverty_rate='deep', value=838514.75), PovertyRateMetric(age_group='all', racial_group='all', gender='female', relative=True, poverty_rate='regular', value=0.06785593926906586), PovertyRateMetric(age_group='all', racial_group='all', gender='female', relative=True, poverty_rate='deep', value=0.005150204990059137), PovertyRateMetric(age_group='all', racial_group='all', gender='female', relative=False, poverty_rate='regular', value=2588403.75), PovertyRateMetric(age_group='all', racial_group='all', gender='female', relative=False, poverty_rate='deep', value=196457.53125), PovertyRateMetric(age_group='all', racial_group='all', gender='all', relative=True, poverty_rate='regular', value=0.07405701279640198), PovertyRateMetric(age_group='all', racial_group='all', gender='all', relative=True, poverty_rate='deep', value=0.013478054665029049), PovertyRateMetric(age_group='all', racial_group='all', gender='all', relative=False, poverty_rate='regular', value=5686797.5), PovertyRateMetric(age_group='all', racial_group='all', gender='all', relative=False, poverty_rate='deep', value=1034972.5)])" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine import Simulation\n", - "\n", - "sim = Simulation(\n", - " scope=\"macro\",\n", - " country=\"us\",\n", - " time_period=2025,\n", - ")\n", - "\n", - "result = sim.calculate_single_economy()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Output schema\n", - "\n", - "`calculate_single_economy` or `calculate` (when `scope=macro` and `reform=None`) return the following schema." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'$defs': {'FiscalSummary': {'properties': {'tax_revenue': {'title': 'Tax Revenue',\n", - " 'type': 'number'},\n", - " 'federal_tax': {'title': 'Federal Tax', 'type': 'number'},\n", - " 'federal_balance': {'title': 'Federal Balance', 'type': 'number'},\n", - " 'state_tax': {'title': 'State Tax', 'type': 'number'},\n", - " 'government_spending': {'title': 'Government Spending', 'type': 'number'},\n", - " 'tax_benefit_programs': {'additionalProperties': {'type': 'number'},\n", - " 'title': 'Tax Benefit Programs',\n", - " 'type': 'object'},\n", - " 'household_net_income': {'title': 'Household Net Income',\n", - " 'type': 'number'}},\n", - " 'required': ['tax_revenue',\n", - " 'federal_tax',\n", - " 'federal_balance',\n", - " 'state_tax',\n", - " 'government_spending',\n", - " 'tax_benefit_programs',\n", - " 'household_net_income'],\n", - " 'title': 'FiscalSummary',\n", - " 'type': 'object'},\n", - " 'InequalitySummary': {'properties': {'gini': {'title': 'Gini',\n", - " 'type': 'number'},\n", - " 'top_10_share': {'title': 'Top 10 Share', 'type': 'number'},\n", - " 'top_1_share': {'title': 'Top 1 Share', 'type': 'number'}},\n", - " 'required': ['gini', 'top_10_share', 'top_1_share'],\n", - " 'title': 'InequalitySummary',\n", - " 'type': 'object'},\n", - " 'PovertyRateMetric': {'properties': {'age_group': {'enum': ['child',\n", - " 'working_age',\n", - " 'senior',\n", - " 'all'],\n", - " 'title': 'Age Group',\n", - " 'type': 'string'},\n", - " 'racial_group': {'enum': ['white', 'black', 'hispanic', 'other', 'all'],\n", - " 'title': 'Racial Group',\n", - " 'type': 'string'},\n", - " 'gender': {'enum': ['male', 'female', 'all'],\n", - " 'title': 'Gender',\n", - " 'type': 'string'},\n", - " 'relative': {'title': 'Relative', 'type': 'boolean'},\n", - " 'poverty_rate': {'enum': ['regular',\n", - " 'deep',\n", - " 'uk_hbai_bhc',\n", - " 'uk_hbai_bhc_half',\n", - " 'us_spm',\n", - " 'us_spm_half'],\n", - " 'title': 'Poverty Rate',\n", - " 'type': 'string'},\n", - " 'value': {'title': 'Value', 'type': 'number'}},\n", - " 'required': ['age_group',\n", - " 'racial_group',\n", - " 'gender',\n", - " 'relative',\n", - " 'poverty_rate',\n", - " 'value'],\n", - " 'title': 'PovertyRateMetric',\n", - " 'type': 'object'}},\n", - " 'properties': {'fiscal': {'$ref': '#/$defs/FiscalSummary'},\n", - " 'inequality': {'$ref': '#/$defs/InequalitySummary'},\n", - " 'poverty': {'items': {'$ref': '#/$defs/PovertyRateMetric'},\n", - " 'title': 'Poverty',\n", - " 'type': 'array'}},\n", - " 'required': ['fiscal', 'inequality', 'poverty'],\n", - " 'title': 'SingleEconomy',\n", - " 'type': 'object'}" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine.outputs.macro.single.calculate_single_economy import SingleEconomy\n", - "\n", - "SingleEconomy.model_json_schema()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/concepts/extending.ipynb b/docs/concepts/extending.ipynb deleted file mode 100644 index f4b6a7c5..00000000 --- a/docs/concepts/extending.ipynb +++ /dev/null @@ -1,69 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Extending this package\n", - "\n", - "You might want to add new chart types, output metrics, etc. to the `Simulation` interface in this package. This page explains how to do that.\n", - "\n", - "## Instructions\n", - "\n", - "Here are the basic steps.\n", - "\n", - "1. In `policyengine/outputs`, create a new file (anywhere will work) that defines a function that takes a `Simulation` object **named `simulation`** and returns *whatever* you want.\n", - "\n", - "That's it! It'll be automatically added. You can access it like so:\n", - "\n", - "```python\n", - "from policyengine import Simulation\n", - "\n", - "sim = Simulation(country=\"us\", scope=\"macro\")\n", - "\n", - "sim.calculate_average_mtr() # Assumes that def calculate_average_mtr(sim: Simulation) is defined in e.g. policyengine/outputs/macro/calculate_average_mtr.py\n", - "```\n", - "\n", - "As a reminder, your might look like this:\n", - "\n", - "```python\n", - "from policyengine import Simulation\n", - "\n", - "\n", - "def calculate_average_earnings(simulation: Simulation) -> float:\n", - " \"\"\"Calculate average earnings.\"\"\"\n", - " employment_income = simulation.baseline_simulation.calculate(\n", - " \"employment_income\"\n", - " )\n", - " return employment_income[employment_income > 0].median()\n", - "\n", - "```\n", - "\n", - "But there are best practices to follow.\n", - "\n", - "\n", - "## Best practices\n", - "\n", - "Look at the `outputs/` folder in the docs- `Average earnings` is a model example for this.\n", - "\n", - "1. **Put your new function in a sensible place to keep the code organized.** For example, we have `macro/` and `household/` as top-level folders depending on what the `Simulation` that calls your function is simulating over. Below that, we have `single` and `comparison` depending on whether the user has provided a reform or not. Bear in mind that your new function probably has to assume these two things and will likely break in the wrong context.\n", - "2. **Make sure your function is well-documented.** This is a public API, so it should be easy to understand how to use it. Please make sure it has a docstring and type hints, and add a Markdown file in the `docs/outputs/` folder (mirror the `calculate_average_earnings` one) that uses autodoc to expose the function, then add it in `docs/toc.yml`.\n", - "3. **Add tests**. Use pytest in the `tests/` folder to make sure your function works as expected.\n", - "\n", - "When writing a function, remember what you have to play with in `Simulation`:\n", - "\n", - "1. `Simulation.options` (everything passed to the `Simulation` constructor)\n", - "2. `Simulation.baseline_simulation` (a `policyengine_core.Simulation` object with the baseline policy)\n", - "3. `Simulation.reform_simulation` (a `policyengine_core.Simulation` object with the reform policy, if it exists)\n", - "4. The ablity to construct new `Simulation`s with different options. You have complete flexibility here- you could create an entirely different simulation." - ] - } - ], - "metadata": { - "language_info": { - "name": "python" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/concepts/simulation.ipynb b/docs/concepts/simulation.ipynb deleted file mode 100644 index 82635f8b..00000000 --- a/docs/concepts/simulation.ipynb +++ /dev/null @@ -1,166 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Simulation interface\n", - "\n", - "The `Simulation` class is the core interface of this package. You can initialise it by passing in a dictionary that matches the `SimulationOptions` schema, and then use its `calculate` methods to ask it questions.\n", - "\n", - "Some of the options are straightforward and some are more complex. The straightforward ones are:\n", - "\n", - "* `country`: `uk` or `us`.\n", - "* `scope`: `macro` (simulating over large data to represent e.g. a country) or `household` (simulating over specific households you describe).\n", - "* `time_period`: the year to simulate.\n", - "\n", - "The next important features are:\n", - "* `reform`: the policy to use in the reform scenario if we are comparing against a different scenario.\n", - "* `baseline`: the policy to use in the baseline scenario if we are comparing against a different baseline scenario.\n", - "* `data`: either a household (if `scope` is `household`) or a large dataset name (if `scope` is `macro`)." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/nikhilwoodruff/policyengine/policyengine.py/.venv/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n", - "INFO:root:Using Google Cloud Storage for download.\n", - "WARNING:root:No metadata found for blob, so it has no version attached.\n", - "WARNING:root:No version specified for policyengine-uk-data-private, enhanced_frs_2022_23.h5. Using latest version: None\n", - "INFO:policyengine.utils.data.caching_google_storage_client:Syncing policyengine-uk-data-private, enhanced_frs_2022_23.h5, None to cache\n", - "INFO:policyengine.utils.data.simplified_google_storage_client:Downloading policyengine-uk-data-private, enhanced_frs_2022_23.h5\n", - "INFO:policyengine.utils.data.caching_google_storage_client:Copying downloaded data for policyengine-uk-data-private, enhanced_frs_2022_23.h5 to enhanced_frs_2022_23.h5\n", - "INFO:root:Using Google Cloud Storage for download.\n", - "WARNING:root:No metadata found for blob, so it has no version attached.\n", - "WARNING:root:No version specified for policyengine-uk-data-private, parliamentary_constituency_weights.h5. Using latest version: None\n", - "INFO:policyengine.utils.data.caching_google_storage_client:Syncing policyengine-uk-data-private, parliamentary_constituency_weights.h5, None to cache\n", - "INFO:policyengine.utils.data.simplified_google_storage_client:Downloading policyengine-uk-data-private, parliamentary_constituency_weights.h5\n", - "INFO:policyengine.utils.data.caching_google_storage_client:Copying downloaded data for policyengine-uk-data-private, parliamentary_constituency_weights.h5 to parliamentary_constituency_weights.h5\n", - "INFO:root:Using Google Cloud Storage for download.\n", - "WARNING:root:No metadata found for blob, so it has no version attached.\n", - "WARNING:root:No version specified for policyengine-uk-data-private, constituencies_2024.csv. Using latest version: None\n", - "INFO:policyengine.utils.data.caching_google_storage_client:Syncing policyengine-uk-data-private, constituencies_2024.csv, None to cache\n", - "INFO:policyengine.utils.data.simplified_google_storage_client:Downloading policyengine-uk-data-private, constituencies_2024.csv\n", - "INFO:policyengine.utils.data.caching_google_storage_client:Copying downloaded data for policyengine-uk-data-private, constituencies_2024.csv to constituencies_2024.csv\n" - ] - }, - { - "data": { - "text/plain": [ - "EconomyComparison(country_package_version='2.24.1', budget=BudgetaryImpact(budgetary_impact=0.0, tax_revenue_impact=0.0, state_tax_revenue_impact=0.0, benefit_spending_impact=0.0, households=34067959.16713403, baseline_net_income=1594652644809.1484), detailed_budget={'income_tax': ProgramSpecificImpact(baseline=333485558893.2562, reform=333485558893.2562, difference=0.0), 'national_insurance': ProgramSpecificImpact(baseline=58106797201.72149, reform=58106797201.72149, difference=0.0), 'vat': ProgramSpecificImpact(baseline=217779970340.45303, reform=217779970340.45303, difference=0.0), 'council_tax': ProgramSpecificImpact(baseline=55919103106.82793, reform=55919103106.82793, difference=0.0), 'fuel_duty': ProgramSpecificImpact(baseline=29274240650.308544, reform=29274240650.308544, difference=0.0), 'tax_credits': ProgramSpecificImpact(baseline=-218647286.01696286, reform=-218647286.01696286, difference=0.0), 'universal_credit': ProgramSpecificImpact(baseline=-75937544684.01125, reform=-75937544684.01125, difference=0.0), 'child_benefit': ProgramSpecificImpact(baseline=-15904774022.820269, reform=-15904774022.820269, difference=0.0), 'state_pension': ProgramSpecificImpact(baseline=-136493500361.4934, reform=-136493500361.4934, difference=0.0), 'pension_credit': ProgramSpecificImpact(baseline=-6883460152.410097, reform=-6883460152.410097, difference=0.0), 'ni_employer': ProgramSpecificImpact(baseline=132081317376.75456, reform=132081317376.75456, difference=0.0)}, decile=DecileImpact(relative={1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}, average={1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}), inequality=InequalityImpact(gini=BaselineReformValues(baseline=0.35548246480717477, reform=0.35548246480717477), top_10_pct_share=BaselineReformValues(baseline=0.2761383438603205, reform=0.2761383438603205), top_1_pct_share=BaselineReformValues(baseline=0.07844282257306669, reform=0.07844282257306669)), poverty=PovertyImpact(poverty=AgeGroupBaselineReformValues(child=BaselineReformValues(baseline=0.1806112019067216, reform=0.1806112019067216), adult=BaselineReformValues(baseline=0.12147020231142763, reform=0.12147020231142763), senior=BaselineReformValues(baseline=0.08693354854833081, reform=0.08693354854833081), all=BaselineReformValues(baseline=0.12722600403258946, reform=0.12722600403258946)), deep_poverty=AgeGroupBaselineReformValues(child=BaselineReformValues(baseline=0.05188484608564893, reform=0.05188484608564893), adult=BaselineReformValues(baseline=0.03456228764618939, reform=0.03456228764618939), senior=BaselineReformValues(baseline=0.004885010754390452, reform=0.004885010754390452), all=BaselineReformValues(baseline=0.03250612463984824, reform=0.03250612463984824))), poverty_by_gender=PovertyGenderBreakdown(poverty=GenderBaselineReformValues(male=BaselineReformValues(baseline=0.12531502377752102, reform=0.12531502377752102), female=BaselineReformValues(baseline=0.1290056618478023, reform=0.1290056618478023)), deep_poverty=GenderBaselineReformValues(male=BaselineReformValues(baseline=0.03235609600210336, reform=0.03235609600210336), female=BaselineReformValues(baseline=0.03264584331928527, reform=0.03264584331928527))), poverty_by_race=None, intra_decile=IntraDecileImpact(deciles={'Lose more than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'Lose less than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'No change': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'Gain less than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'Gain more than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}, all={'Lose more than 5%': 0.0, 'Lose less than 5%': 0.0, 'No change': 1.0, 'Gain less than 5%': 0.0, 'Gain more than 5%': 0.0}), wealth_decile=WealthDecileImpactWithValues(relative={1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}, average={1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}), intra_wealth_decile=IntraWealthDecileImpactWithValues(deciles={'Lose more than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'Lose less than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'No change': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'Gain less than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'Gain more than 5%': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}, all={'Lose more than 5%': 0.0, 'Lose less than 5%': 0.0, 'No change': 1.0, 'Gain less than 5%': 0.0, 'Gain more than 5%': 0.0}), labor_supply_response=LaborSupplyResponse(substitution_lsr=0.0, income_lsr=0.0, relative_lsr={'income': 0.0, 'substitution': 0.0}, total_change=0.0, revenue_change=0.0, decile={'average': {'income': {-1: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}, 'substitution': {-1: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}}, 'relative': {'income': {1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}, 'substitution': {1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0, 5: 0.0, 6: 0.0, 7: 0.0, 8: 0.0, 9: 0.0, 10: 0.0}}}, hours=HoursResponse(baseline=0.0, reform=0.0, change=0.0, income_effect=0.0, substitution_effect=0.0)), constituency_impact=UKConstituencyBreakdownWithValues(by_constituency={'Aldershot': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-40), 'Aldridge-Brownhills': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-30), 'Altrincham and Sale West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-25), 'Amber Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-27), 'Arundel and South Downs': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-44), 'Ashfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-27), 'Ashford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=72, y=-42), 'Ashton-under-Lyne': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-23), 'Aylesbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-35), 'Banbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-33), 'Barking': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-38), 'Barnsley North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-23), 'Barnsley South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-23), 'Barrow and Furness': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-16), 'Basildon and Billericay': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-34), 'Basingstoke': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-39), 'Bassetlaw': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-26), 'Bath': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-40), 'Battersea': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-41), 'Beaconsfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-37), 'Beckenham and Penge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-43), 'Bedford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-32), 'Bermondsey and Old Southwark': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-40), 'Bethnal Green and Stepney': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-39), 'Beverley and Holderness': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-22), 'Bexhill and Battle': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=70, y=-44), 'Bexleyheath and Crayford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-39), 'Bicester and Woodstock': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-34), 'Birkenhead': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-27), 'Birmingham Edgbaston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-33), 'Birmingham Erdington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-31), 'Birmingham Hall Green and Moseley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-32), 'Birmingham Hodge Hill and Solihull North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-31), 'Birmingham Ladywood': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-32), 'Birmingham Northfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-34), 'Birmingham Perry Barr': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-31), 'Birmingham Selly Oak': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-33), 'Birmingham Yardley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-32), 'Bishop Auckland': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-14), 'Blackburn': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-19), 'Blackley and Middleton South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-23), 'Blackpool North and Fleetwood': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-18), 'Blackpool South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-18), 'Blaydon and Consett': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-14), 'Blyth and Ashington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-12), 'Bognor Regis and Littlehampton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-44), 'Bolsover': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-26), 'Bolton North East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-21), 'Bolton South and Walkden': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-22), 'Bolton West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-21), 'Bootle': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-22), 'Boston and Skegness': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-26), 'Bournemouth East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-43), 'Bournemouth West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-42), 'Bracknell': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-39), 'Bradford East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-20), 'Bradford South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-21), 'Bradford West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-20), 'Braintree': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-31), 'Brent East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-38), 'Brent West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-38), 'Brentford and Isleworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-40), 'Brentwood and Ongar': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-33), 'Bridgwater': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-41), 'Bridlington and The Wolds': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-20), 'Brigg and Immingham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-24), 'Brighton Kemptown and Peacehaven': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-45), 'Brighton Pavilion': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-44), 'Bristol Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-38), 'Bristol East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-38), 'Bristol North East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-37), 'Bristol North West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-38), 'Bristol South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-39), 'Broadland and Fakenham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-27), 'Bromley and Biggin Hill': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-42), 'Bromsgrove': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-33), 'Broxbourne': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-35), 'Broxtowe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-27), 'Buckingham and Bletchley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-34), 'Burnley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-19), 'Burton and Uttoxeter': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-28), 'Bury North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-21), 'Bury South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-22), 'Bury St Edmunds and Stowmarket': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-31), 'Calder Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-20), 'Camborne and Redruth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=43, y=-45), 'Cambridge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-30), 'Cannock Chase': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-29), 'Canterbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=71, y=-41), 'Carlisle': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-14), 'Carshalton and Wallington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-43), 'Castle Point': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-36), 'Central Devon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-42), 'Central Suffolk and North Ipswich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-29), 'Chatham and Aylesford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-40), 'Cheadle': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-26), 'Chelmsford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-33), 'Chelsea and Fulham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-40), 'Cheltenham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-36), 'Chesham and Amersham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-36), 'Chester North and Neston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-28), 'Chester South and Eddisbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-27), 'Chesterfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-26), 'Chichester': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-44), 'Chingford and Woodford Green': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-35), 'Chippenham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-39), 'Chipping Barnet': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-36), 'Chorley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-20), 'Christchurch': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-42), 'Cities of London and Westminster': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-40), 'City of Durham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-16), 'Clacton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-32), 'Clapham and Brixton Hill': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-42), 'Colchester': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-32), 'Colne Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-23), 'Congleton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-27), 'Corby and East Northamptonshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-30), 'Coventry East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-33), 'Coventry North West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-33), 'Coventry South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-34), 'Cramlington and Killingworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-12), 'Crawley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-44), 'Crewe and Nantwich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-27), 'Croydon East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-42), 'Croydon South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-43), 'Croydon West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-43), 'Dagenham and Rainham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-37), 'Darlington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-17), 'Dartford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-40), 'Daventry': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-32), 'Derby North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-28), 'Derby South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-28), 'Derbyshire Dales': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-26), 'Dewsbury and Batley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-22), 'Didcot and Wantage': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-38), 'Doncaster Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-23), 'Doncaster East and the Isle of Axholme': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-23), 'Doncaster North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-22), 'Dorking and Horley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-43), 'Dover and Deal': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=72, y=-41), 'Droitwich and Evesham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-36), 'Dudley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-31), 'Dulwich and West Norwood': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-42), 'Dunstable and Leighton Buzzard': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-33), 'Ealing Central and Acton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-39), 'Ealing North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-38), 'Ealing Southall': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-39), 'Earley and Woodley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-36), 'Easington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-16), 'East Grinstead and Uckfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-43), 'East Ham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-38), 'East Hampshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-41), 'East Surrey': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-43), 'East Thanet': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=71, y=-39), 'East Wiltshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-41), 'East Worthing and Shoreham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-44), 'Eastbourne': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-45), 'Eastleigh': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-41), 'Edmonton and Winchmore Hill': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-36), 'Ellesmere Port and Bromborough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-27), 'Eltham and Chislehurst': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-41), 'Ely and East Cambridgeshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-30), 'Enfield North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-35), 'Epping Forest': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-35), 'Epsom and Ewell': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-43), 'Erewash': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-28), 'Erith and Thamesmead': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-40), 'Esher and Walton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-42), 'Exeter': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-42), 'Exmouth and Exeter East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-43), 'Fareham and Waterlooville': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-43), 'Farnham and Bordon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-42), 'Faversham and Mid Kent': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=71, y=-40), 'Feltham and Heston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-40), 'Filton and Bradley Stoke': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-37), 'Finchley and Golders Green': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-37), 'Folkestone and Hythe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=71, y=-42), 'Forest of Dean': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-35), 'Frome and East Somerset': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-41), 'Fylde': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-19), 'Gainsborough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-25), 'Gateshead Central and Whickham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-15), 'Gedling': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-28), 'Gillingham and Rainham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=70, y=-40), 'Glastonbury and Somerton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-41), 'Gloucester': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-35), 'Godalming and Ash': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-42), 'Goole and Pocklington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-21), 'Gorton and Denton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-24), 'Gosport': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-43), 'Grantham and Bourne': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-28), 'Gravesham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-39), 'Great Grimsby and Cleethorpes': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-24), 'Great Yarmouth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-27), 'Greenwich and Woolwich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-40), 'Guildford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-41), 'Hackney North and Stoke Newington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-38), 'Hackney South and Shoreditch': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-39), 'Halesowen': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-33), 'Halifax': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-21), 'Hamble Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-43), 'Hammersmith and Chiswick': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-39), 'Hampstead and Highgate': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-38), 'Harborough, Oadby and Wigston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-31), 'Harlow': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-32), 'Harpenden and Berkhamsted': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-34), 'Harrogate and Knaresborough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-18), 'Harrow East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-37), 'Harrow West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-37), 'Hartlepool': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-16), 'Harwich and North Essex': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-31), 'Hastings and Rye': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=70, y=-43), 'Havant': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-44), 'Hayes and Harlington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-38), 'Hazel Grove': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-25), 'Hemel Hempstead': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-34), 'Hendon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-36), 'Henley and Thame': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-35), 'Hereford and South Herefordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-34), 'Herne Bay and Sandwich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=72, y=-40), 'Hertford and Stortford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-32), 'Hertsmere': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-34), 'Hexham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-13), 'Heywood and Middleton North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-20), 'High Peak': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-25), 'Hinckley and Bosworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-30), 'Hitchin': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-32), 'Holborn and St Pancras': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-39), 'Honiton and Sidmouth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-43), 'Hornchurch and Upminster': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-37), 'Hornsey and Friern Barnet': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-36), 'Horsham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-44), 'Houghton and Sunderland South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-15), 'Hove and Portslade': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-44), 'Huddersfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-22), 'Huntingdon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-31), 'Hyndburn': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-19), 'Ilford North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-36), 'Ilford South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-37), 'Ipswich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-30), 'Isle of Wight East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-45), 'Isle of Wight West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-45), 'Islington North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-38), 'Islington South and Finsbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-39), 'Jarrow and Gateshead East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-14), 'Keighley and Ilkley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-19), 'Kenilworth and Southam': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-34), 'Kensington and Bayswater': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-39), 'Kettering': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-30), 'Kingston and Surbiton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-42), 'Kingston upon Hull East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-22), 'Kingston upon Hull North and Cottingham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-21), 'Kingston upon Hull West and Haltemprice': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-22), 'Kingswinford and South Staffordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-30), 'Knowsley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-23), 'Lancaster and Wyre': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-18), 'Leeds Central and Headingley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-20), 'Leeds East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-20), 'Leeds North East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-19), 'Leeds North West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-19), 'Leeds South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-21), 'Leeds South West and Morley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-21), 'Leeds West and Pudsey': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-20), 'Leicester East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-30), 'Leicester South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-31), 'Leicester West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-31), 'Leigh and Atherton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-25), 'Lewes': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-45), 'Lewisham East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-42), 'Lewisham North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-40), 'Lewisham West and East Dulwich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-41), 'Leyton and Wanstead': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-37), 'Lichfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-29), 'Lincoln': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-25), 'Liverpool Garston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-25), 'Liverpool Riverside': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-24), 'Liverpool Walton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-23), 'Liverpool Wavertree': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-25), 'Liverpool West Derby': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-24), 'Loughborough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-30), 'Louth and Horncastle': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-25), 'Lowestoft': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-28), 'Luton North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-33), 'Luton South and South Bedfordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-34), 'Macclesfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-26), 'Maidenhead': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-36), 'Maidstone and Malling': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-41), 'Makerfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-22), 'Maldon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-33), 'Manchester Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-24), 'Manchester Rusholme': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-25), 'Manchester Withington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-26), 'Mansfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-27), 'Melksham and Devizes': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-40), 'Melton and Syston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-29), 'Meriden and Solihull East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-33), 'Mid Bedfordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-32), 'Mid Buckinghamshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-35), 'Mid Cheshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-27), 'Mid Derbyshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-27), 'Mid Dorset and North Poole': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-43), 'Mid Leicestershire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-31), 'Mid Norfolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-28), 'Mid Sussex': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-43), 'Middlesbrough and Thornaby East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-17), 'Middlesbrough South and East Cleveland': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-17), 'Milton Keynes Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-34), 'Milton Keynes North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-33), 'Mitcham and Morden': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-43), 'Morecambe and Lunesdale': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-17), 'New Forest East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-43), 'New Forest West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-43), 'Newark': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-26), 'Newbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-37), 'Newcastle upon Tyne Central and West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-13), 'Newcastle upon Tyne East and Wallsend': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-14), 'Newcastle upon Tyne North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-13), 'Newcastle-under-Lyme': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-28), 'Newton Abbot': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-43), 'Newton Aycliffe and Spennymoor': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-16), 'Normanton and Hemsworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-23), 'North Bedfordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-31), 'North Cornwall': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-43), 'North Cotswolds': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-37), 'North Devon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-41), 'North Dorset': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-42), 'North Durham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-15), 'North East Cambridgeshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-29), 'North East Derbyshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-26), 'North East Hampshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-38), 'North East Hertfordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-32), 'North East Somerset and Hanham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-39), 'North Herefordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-34), 'North Norfolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-27), 'North Northumberland': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-12), 'North Shropshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-29), 'North Somerset': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-39), 'North Warwickshire and Bedworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-32), 'North West Cambridgeshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-30), 'North West Essex': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-31), 'North West Hampshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-39), 'North West Leicestershire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-29), 'North West Norfolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-28), 'Northampton North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-32), 'Northampton South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-33), 'Norwich North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-28), 'Norwich South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-29), 'Nottingham East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-29), 'Nottingham North and Kimberley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-28), 'Nottingham South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-29), 'Nuneaton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-31), 'Old Bexley and Sidcup': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-41), 'Oldham East and Saddleworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-22), 'Oldham West, Chadderton and Royton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-22), 'Orpington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-43), 'Ossett and Denby Dale': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-22), 'Oxford East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-34), 'Oxford West and Abingdon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-35), 'Peckham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-41), 'Pendle and Clitheroe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-18), 'Penistone and Stocksbridge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-23), 'Penrith and Solway': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-15), 'Peterborough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-29), 'Plymouth Moor View': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-43), 'Plymouth Sutton and Devonport': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-44), 'Pontefract, Castleford and Knottingley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-22), 'Poole': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-43), 'Poplar and Limehouse': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-39), 'Portsmouth North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-43), 'Portsmouth South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-44), 'Preston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-19), 'Putney': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-41), \"Queen's Park and Maida Vale\": UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-40), 'Rawmarsh and Conisbrough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-24), 'Rayleigh and Wickford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-34), 'Reading Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-37), 'Reading West and Mid Berkshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-36), 'Redcar': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-17), 'Redditch': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-35), 'Reigate': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-44), 'Ribble Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-18), 'Richmond and Northallerton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-18), 'Richmond Park': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-41), 'Rochdale': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-21), 'Rochester and Strood': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-39), 'Romford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-36), 'Romsey and Southampton North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-40), 'Rossendale and Darwen': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-20), 'Rother Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-25), 'Rotherham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-24), 'Rugby': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-32), 'Ruislip, Northwood and Pinner': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-36), 'Runcorn and Helsby': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-28), 'Runnymede and Weybridge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-41), 'Rushcliffe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-28), 'Rutland and Stamford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-29), 'Salford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-24), 'Salisbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-41), 'Scarborough and Whitby': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-19), 'Scunthorpe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-24), 'Sefton Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-20), 'Selby': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-21), 'Sevenoaks': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-42), 'Sheffield Brightside and Hillsborough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-24), 'Sheffield Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-25), 'Sheffield Hallam': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-24), 'Sheffield Heeley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-25), 'Sheffield South East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-25), 'Sherwood Forest': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-27), 'Shipley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-19), 'Shrewsbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-30), 'Sittingbourne and Sheppey': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=70, y=-39), 'Skipton and Ripon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-18), 'Sleaford and North Hykeham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-26), 'Slough': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-37), 'Smethwick': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-32), 'Solihull West and Shirley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-34), 'South Basildon and East Thurrock': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-36), 'South Cambridgeshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-31), 'South Cotswolds': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-38), 'South Derbyshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-29), 'South Devon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-45), 'South Dorset': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-44), 'South East Cornwall': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-44), 'South Holland and The Deepings': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-27), 'South Leicestershire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-32), 'South Norfolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-29), 'South Northamptonshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-33), 'South Ribble': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-20), 'South Shields': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-14), 'South Shropshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-31), 'South Suffolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-30), 'South West Devon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-45), 'South West Hertfordshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-35), 'South West Norfolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-29), 'South West Wiltshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-41), 'Southampton Itchen': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-42), 'Southampton Test': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-42), 'Southend East and Rochford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-34), 'Southend West and Leigh': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-35), 'Southgate and Wood Green': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-35), 'Southport': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-19), 'Spelthorne': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-40), 'Spen Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-21), 'St Albans': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-34), 'St Austell and Newquay': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-44), 'St Helens North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-21), 'St Helens South and Whiston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-22), 'St Ives': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=43, y=-46), 'St Neots and Mid Cambridgeshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-31), 'Stafford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-28), 'Staffordshire Moorlands': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-27), 'Stalybridge and Hyde': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-24), 'Stevenage': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-33), 'Stockport': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-25), 'Stockton North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-16), 'Stockton West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-17), 'Stoke-on-Trent Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-28), 'Stoke-on-Trent North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-27), 'Stoke-on-Trent South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-29), 'Stone, Great Wyrley and Penkridge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-28), 'Stourbridge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-32), 'Stratford and Bow': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-38), 'Stratford-on-Avon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-35), 'Streatham and Croydon North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-42), 'Stretford and Urmston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-24), 'Stroud': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-37), 'Suffolk Coastal': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-29), 'Sunderland Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-15), 'Surrey Heath': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-39), 'Sussex Weald': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=70, y=-42), 'Sutton and Cheam': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-42), 'Sutton Coldfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-31), 'Swindon North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-39), 'Swindon South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-40), 'Tamworth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-30), 'Tatton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-26), 'Taunton and Wellington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-42), 'Telford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-29), 'Tewkesbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-36), 'The Wrekin': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-29), 'Thirsk and Malton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-18), 'Thornbury and Yate': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-36), 'Thurrock': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-36), 'Tipton and Wednesbury': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-31), 'Tiverton and Minehead': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-41), 'Tonbridge': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-41), 'Tooting': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-42), 'Torbay': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-44), 'Torridge and Tavistock': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-42), 'Tottenham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-37), 'Truro and Falmouth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-45), 'Tunbridge Wells': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=69, y=-42), 'Twickenham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-41), 'Tynemouth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-13), 'Uxbridge and South Ruislip': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-37), 'Vauxhall and Camberwell Green': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-41), 'Wakefield and Rothwell': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=59, y=-22), 'Wallasey': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-27), 'Walsall and Bloxwich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-30), 'Walthamstow': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-37), 'Warrington North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-23), 'Warrington South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-24), 'Warwick and Leamington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-35), 'Washington and Gateshead South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-15), 'Watford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-35), 'Waveney Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-28), 'Weald of Kent': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=70, y=-41), 'Wellingborough and Rushden': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=63, y=-30), 'Wells and Mendip Hills': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-40), 'Welwyn Hatfield': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=65, y=-33), 'West Bromwich': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-32), 'West Dorset': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-44), 'West Ham and Beckton': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=66, y=-38), 'West Lancashire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-21), 'West Suffolk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=67, y=-30), 'West Worcestershire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-35), 'Westmorland and Lonsdale': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-15), 'Weston-super-Mare': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-40), 'Wetherby and Easingwold': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=62, y=-20), 'Whitehaven and Workington': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-16), 'Widnes and Halewood': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-26), 'Wigan': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-20), 'Wimbledon': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-41), 'Winchester': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-40), 'Windsor': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-38), 'Wirral West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-28), 'Witham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=68, y=-33), 'Witney': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=56, y=-35), 'Woking': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=57, y=-40), 'Wokingham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=55, y=-38), 'Wolverhampton North East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-29), 'Wolverhampton South East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-30), 'Wolverhampton West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-30), 'Worcester': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-34), 'Worsley and Eccles': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-23), 'Worthing West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=64, y=-44), 'Wycombe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=58, y=-36), 'Wyre Forest': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-33), 'Wythenshawe and Sale East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-26), 'Yeovil': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-42), 'York Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=60, y=-19), 'York Outer': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=61, y=-18), 'Belfast East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-17), 'Belfast North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-16), 'Belfast South and Mid Down': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-18), 'Belfast West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-17), 'East Antrim': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-15), 'East Londonderry': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=43, y=-15), 'Fermanagh and South Tyrone': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=42, y=-17), 'Foyle': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=42, y=-15), 'Lagan Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-18), 'Mid Ulster': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=43, y=-16), 'Newry and Armagh': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-19), 'North Antrim': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-15), 'North Down': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-16), 'South Antrim': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-16), 'South Down': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-18), 'Strangford': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-17), 'Upper Bann': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=43, y=-18), 'West Tyrone': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=42, y=-16), 'East Renfrewshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-11), 'Na h-Eileanan an Iar': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-2), 'Midlothian': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-11), 'North Ayrshire and Arran': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-10), 'Orkney and Shetland': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=0), 'Aberdeen North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-3), 'Aberdeen South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-4), 'Aberdeenshire North and Moray East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-3), 'Airdrie and Shotts': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-11), 'Alloa and Grangemouth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-7), 'Angus and Perthshire Glens': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-5), 'Arbroath and Broughty Ferry': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-5), 'Argyll, Bute and South Lochaber': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-5), 'Bathgate and Linlithgow': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-9), 'Caithness, Sutherland and Easter Ross': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-2), 'Coatbridge and Bellshill': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-12), 'Cowdenbeath and Kirkcaldy': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-7), 'Cumbernauld and Kirkintilloch': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-8), 'Dumfries and Galloway': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-13), 'Dumfriesshire, Clydesdale and Tweeddale': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-13), 'Dundee Central': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-6), 'Dunfermline and Dollar': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-7), 'East Kilbride and Strathaven': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-13), 'Edinburgh East and Musselburgh': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=54, y=-10), 'Edinburgh North and Leith': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-9), 'Edinburgh South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-10), 'Edinburgh South West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-10), 'Edinburgh West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-9), 'Falkirk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-8), 'Glasgow East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-10), 'Glasgow North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-9), 'Glasgow North East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-9), 'Glasgow South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-11), 'Glasgow South West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-10), 'Glasgow West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-8), 'Glenrothes and Mid Fife': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-6), 'Gordon and Buchan': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-4), 'Hamilton and Clyde Valley': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-12), 'Inverclyde and Renfrewshire West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-8), 'Inverness, Skye and West Ross-shire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-3), 'Livingston': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-11), 'Lothian East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-11), 'Mid Dunbartonshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-7), 'Moray West, Nairn and Strathspey': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-4), 'Motherwell, Wishaw and Carluke': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=52, y=-12), 'North East Fife': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-6), 'Paisley and Renfrewshire North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-9), 'Paisley and Renfrewshire South': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-10), 'Perth and Kinross-shire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-5), 'Rutherglen': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-12), 'Stirling and Strathallan': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-6), 'West Dunbartonshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-7), 'Ayr, Carrick and Cumnock': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-13), 'Berwickshire, Roxburgh and Selkirk': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=53, y=-12), 'Central Ayrshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-12), 'Kilmarnock and Loudoun': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-13), 'West Aberdeenshire and Kincardine': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=51, y=-4), 'Aberafan Maesteg': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-36), 'Alyn and Deeside': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-29), 'Bangor Aberconwy': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-31), 'Blaenau Gwent and Rhymney': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-33), 'Brecon, Radnor and Cwm Tawe': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-32), 'Bridgend': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-37), 'Caerfyrddin': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-32), 'Caerphilly': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-35), 'Cardiff East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-37), 'Cardiff North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-36), 'Cardiff South and Penarth': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-38), 'Cardiff West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-37), 'Ceredigion Preseli': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-34), 'Clwyd East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-30), 'Clwyd North': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-30), 'Dwyfor Meirionnydd': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-31), 'Gower': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-37), 'Llanelli': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-36), 'Merthyr Tydfil and Aberdare': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-34), 'Mid and South Pembrokeshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=44, y=-36), 'Monmouthshire': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-36), 'Montgomeryshire and Glyndwr': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-31), 'Neath and Swansea East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-35), 'Newport East': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-37), 'Newport West and Islwyn': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=49, y=-36), 'Pontypridd': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=48, y=-35), 'Rhondda and Ogmore': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-36), 'Swansea West': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=45, y=-37), 'Torfaen': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-34), 'Vale of Glamorgan': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=47, y=-38), 'Wrexham': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=50, y=-30), 'Ynys Môn': UKConstituencyBreakdownByConstituency(average_household_income_change=0.0, relative_household_income_change=0.0, x=46, y=-29)}, outcomes_by_region={'uk': {'Gain more than 5%': 0, 'Gain less than 5%': 0, 'No change': 650, 'Lose less than 5%': 0, 'Lose more than 5%': 0}, 'england': {'Gain more than 5%': 0, 'Gain less than 5%': 0, 'No change': 543, 'Lose less than 5%': 0, 'Lose more than 5%': 0}, 'scotland': {'Gain more than 5%': 0, 'Gain less than 5%': 0, 'No change': 57, 'Lose less than 5%': 0, 'Lose more than 5%': 0}, 'wales': {'Gain more than 5%': 0, 'Gain less than 5%': 0, 'No change': 32, 'Lose less than 5%': 0, 'Lose more than 5%': 0}, 'northern_ireland': {'Gain more than 5%': 0, 'Gain less than 5%': 0, 'No change': 18, 'Lose less than 5%': 0, 'Lose more than 5%': 0}}), cliff_impact=None)" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine import Simulation\n", - "\n", - "sim = Simulation(\n", - " country=\"uk\",\n", - " scope=\"macro\",\n", - " reform={},\n", - " time_period=2025,\n", - ")\n", - "\n", - "sim.calculate_economy_comparison()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Providing `baseline` and `reform` policies\n", - "\n", - "The `baseline` and `reform` policies are dictionaries that represent the policy to simulate. You don't have to provide a reform policy (if you don't, the simulation will just simulate the baseline policy). You also don't have to provide a baseline policy (if you don't, the simulation will just compare your reform scenario against current law).\n", - "\n", - "If you do, they should each follow this syntax:\n", - "\n", - "```json\n", - "{\n", - " \"gov.hmrc.income_tax.rate\": { // Parameter address, in the country model's `parameters/` folder\n", - " \"2025\": 0.2 // Value to set the parameter to in the year 2025\n", - " }\n", - "}\n", - "```\n", - "\n", - "You can also use this shorthand to set parameters for all years:\n", - "\n", - "```json\n", - "{\n", - " \"gov.hmrc.income_tax.rate\": 0.2\n", - "}\n", - "```\n", - "\n", - "## Providing `data`\n", - "\n", - "If you set `scope` to `macro`, you should provide either:\n", - "\n", - "* A Google Cloud `.h5` dataset address in this format: `\"gcs://policyengine-us-data/cps_2023.h5\"` (`gcs://bucket/path.h5`).\n", - "* An instance of `policyengine_core.data.Dataset` (advanced).\n", - "\n", - "See `policyengine.constants` for the available datasets.\n", - "\n", - "If you set `scope` to `household`, you should provide a dictionary that represents a household. This should look like:\n", - "\n", - "```json\n", - "{\n", - " \"people\": { // Entity group\n", - " \"person\": { // Entity name\n", - " \"age\": { // Variable (in the country model's `variables/` folder)\n", - " \"2025\": 30, // Time period and value\n", - " }\n", - " }\n", - " },\n", - " \"households\": {\n", - " \"household\": {\n", - " \"members\": [\"person\"], // Group entities need a `members` field\n", - " \"region\": {\n", - " \"2025\": \"LONDON\",\n", - " }\n", - " }\n", - " }\n", - "}\n", - "```\n", - "\n", - "See the country model's repository for more information on what entity types are available.\n", - "\n", - "## Module documentation\n", - "\n", - "```{eval-rst}\n", - ".. automodule:: policyengine.simulation\n", - " :members:\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.11" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/dev.md b/docs/dev.md new file mode 100644 index 00000000..8b7ded2c --- /dev/null +++ b/docs/dev.md @@ -0,0 +1,8 @@ +# Development principles + +General principles for developing this package's codebase go here. + +1. **STRONG** preference for simplicity. Let's make this package as simple as it possibly can be. +2. Remember the goal of this package: to make it easy to create, run, save and analyse PolicyEngine simulations. When considering further features, always ask: can we instead *make it super easy* for people to do this outside the package? +3. Be consistent about property names. `name` = human readable few words you could put as the noun in a sentence without fail. `id` = unique identifier, ideally a UUID. `description` = longer human readable text that describes the object. `created_at` and `updated_at` = timestamps for when the object was created and last updated. +4. Constraints can be good. We should set constraints where they help us simplify the codebase and usage, but not where they unnecessarily block useful functionality. For example: a `Model`, e.g. PolicyEngine UK, is restricted to being basically a set of variables, baseline parameters, and a `f: set of tables -> set of tables` function. \ No newline at end of file diff --git a/docs/index.ipynb b/docs/index.ipynb deleted file mode 100644 index d6a60d75..00000000 --- a/docs/index.ipynb +++ /dev/null @@ -1,81 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# PolicyEngine Python interface\n", - "\n", - "Welcome to the documentation for PolicyEngine, a Python package for analyzing tax-benefit policies and estimating their societal impacts.\n", - "\n", - "## Overview\n", - "\n", - "This package enables users to create and simulate different scenarios of specific or representative households in a country, under different tax-benefit rules or economic assumptions.\n", - "\n", - "We currently support the UK and the US.\n", - "\n", - "## Quick start\n", - "\n", - "To install the package, run:\n", - "\n", - "```bash\n", - "pip install policyengine\n", - "```\n", - "\n", - "Then, for example:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "EconomyComparison(fiscal=FiscalComparison(baseline=FiscalSummary(tax_revenue=658911285719.5891, federal_tax=658911285719.5891, state_tax=0.0, government_spending=349760026840.3932, tax_benefit_programs={'income_tax': 333376287037.05945, 'national_insurance': 52985626776.773834, 'ni_employer': 126330649370.35953, 'vat': 211671832822.39133, 'council_tax': 49007055050.00724, 'fuel_duty': 26506672341.204205, 'tax_credits': -34929879.49872104, 'universal_credit': -73459549194.97665, 'child_benefit': -14311471487.935827, 'state_pension': -132795868621.44594, 'pension_credit': -6252358021.417119}, household_net_income=1566030461192.7288), reform=FiscalSummary(tax_revenue=637686731286.3723, federal_tax=637686731286.3723, state_tax=0.0, government_spending=349224353712.28815, tax_benefit_programs={'income_tax': 312151564998.6612, 'national_insurance': 52985626776.773834, 'ni_employer': 126330649370.35953, 'vat': 211671832822.39133, 'council_tax': 49007055050.00724, 'fuel_duty': 26506672341.204205, 'tax_credits': -34929879.49872104, 'universal_credit': -73099552696.20555, 'child_benefit': -14311471487.935827, 'state_pension': -132795868621.44594, 'pension_credit': -6181432287.167828}, household_net_income=1586719205744.2463), change=FiscalSummary(tax_revenue=-21224554433.216797, federal_tax=-21224554433.216797, state_tax=0.0, government_spending=-535673128.1050415, tax_benefit_programs={'income_tax': -21224722038.398254, 'national_insurance': 0.0, 'ni_employer': 0.0, 'vat': 0.0, 'council_tax': 0.0, 'fuel_duty': 0.0, 'tax_credits': 0.0, 'universal_credit': 359996498.7711029, 'child_benefit': 0.0, 'state_pension': 0.0, 'pension_credit': 70925734.24929142}, household_net_income=20688744551.51758), relative_change=FiscalSummary(tax_revenue=-0.03221155092227281, federal_tax=-0.03221155092227281, state_tax=0.0, government_spending=-0.0015315447363843167, tax_benefit_programs={'income_tax': -0.06366596204858095, 'national_insurance': 0.0, 'ni_employer': 0.0, 'vat': 0.0, 'council_tax': 0.0, 'fuel_duty': 0.0, 'tax_credits': -0.0, 'universal_credit': -0.004900608603186478, 'child_benefit': -0.0, 'state_pension': -0.0, 'pension_credit': -0.01134383763795021}, household_net_income=0.013210946443379206)), inequality=InequalityComparison(baseline=InequalitySummary(gini=0.36255338125570424, top_10_share=0.3260922885079385, top_1_share=0.1314559726417293), reform=InequalitySummary(gini=0.3621067195625373, top_10_share=0.3247068529020242, top_1_share=0.13003247918783417), change=InequalitySummary(gini=-0.0004466616931669276, top_10_share=-0.0013854356059142536, top_1_share=-0.0014234934538951416), relative_change=InequalitySummary(gini=-0.001231988767060768, top_10_share=-0.004248599720813472, top_1_share=-0.010828670811137177)), distributional=DecileImpacts(income=IncomeMeasureSpecificDecileImpacts(income_change=IncomeMeasureSpecificDecileIncomeChange(relative={1: 0.006888347426579352, 2: 0.01207019625644219, 3: 0.013627468842833087, 4: 0.016100481654779814, 5: 0.013748247907171681, 6: 0.01686883037766935, 7: 0.01753355131276628, 8: 0.016653942719361867, 9: 0.01676805576642017, 10: 0.007412181202749425}, average={1: 104.97431830321577, 2: 345.37333460917273, 3: 505.9344918602069, 4: 693.5160756480564, 5: 633.0329182433123, 6: 916.7939753239693, 7: 1160.9595929383368, 8: 1339.97187253835, 9: 1645.9437072259466, 10: 1555.8434910392261}), winners_and_losers=IncomeMeasureSpecificDecileWinnersLosers(deciles={1: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0001755859570557263, lose_share=0.0001682513537722099, no_change_share=0.7777594280562966, gain_share=0.22207232058993112, gain_less_than_5_percent_share=0.8921554326814847, gain_more_than_5_percent_share=0.1076689813614596), 2: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.008308201427960779, lose_share=0.008308201427960779, no_change_share=0.3296747315922954, gain_share=0.6620170669797438, gain_less_than_5_percent_share=0.8919232634243426, gain_more_than_5_percent_share=0.09976853514769665), 3: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0025640225401700836, lose_share=7.961082321261601e-05, no_change_share=0.24144297964047653, gain_share=0.7584774095363108, gain_less_than_5_percent_share=0.8374155175602881, gain_more_than_5_percent_share=0.1600204598995418), 4: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.12752277174703963, gain_share=0.8724772282529604, gain_less_than_5_percent_share=0.9665865451338477, gain_more_than_5_percent_share=0.03341345486615228), 5: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.03956658976737942, gain_share=0.9604334102326206, gain_less_than_5_percent_share=0.9972436631437993, gain_more_than_5_percent_share=0.0027563368562006983), 6: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=9.23312947542871e-08, lose_share=0.0, no_change_share=0.04739185313495122, gain_share=0.9526081468650488, gain_less_than_5_percent_share=0.950097303756789, gain_more_than_5_percent_share=0.04990260391191623), 7: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=5.104037721866914e-07, lose_share=5.104037721866914e-07, no_change_share=0.018556113733354175, gain_share=0.9814433758628737, gain_less_than_5_percent_share=0.9532747831120698, gain_more_than_5_percent_share=0.046724706484157955), 8: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.0078485273494483, gain_share=0.9921514726505517, gain_less_than_5_percent_share=0.9864864572885578, gain_more_than_5_percent_share=0.013513542711442263), 9: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=3.9720293329414453e-08, lose_share=0.0, no_change_share=0.015484773300234851, gain_share=0.9845152266997651, gain_less_than_5_percent_share=0.9942833742036897, gain_more_than_5_percent_share=0.00571658607601697), 10: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.09527409658848911, gain_share=0.9047259034115109, gain_less_than_5_percent_share=1.0, gain_more_than_5_percent_share=0.0)}, all=IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0010924738666159373, lose_share=0.0008384108829899095, no_change_share=0.16458777279036807, gain_share=0.8345738163266421, gain_less_than_5_percent_share=0.947301858492644, gain_more_than_5_percent_share=0.051605667640740344))), wealth=IncomeMeasureSpecificDecileImpacts(income_change=IncomeMeasureSpecificDecileIncomeChange(relative={1: 0.008709359540639157, 2: 0.00905578708175186, 3: 0.012492298883059996, 4: 0.01152604162555258, 5: 0.013211680341905644, 6: 0.015499276808714067, 7: 0.015075628657318645, 8: 0.013872537910746014, 9: 0.014863082577873714, 10: 0.013423194473756452}, average={1: 369.702952145763, 2: 348.23782779938443, 3: 552.8656647582718, 4: 568.6862981673706, 5: 788.7199254212952, 6: 1082.0251273410129, 7: 995.5414649462065, 8: 980.0256472731063, 9: 1104.9136440223838, 10: 1148.3564641697874}), winners_and_losers=IncomeMeasureSpecificDecileWinnersLosers(deciles={1: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=2.6883274101429057e-05, lose_share=2.6883274101429057e-05, no_change_share=0.4508804429091072, gain_share=0.5490926738167914, gain_less_than_5_percent_share=0.9848507184309168, gain_more_than_5_percent_share=0.015122398294981835), 2: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=3.6190041582250956e-08, lose_share=0.0, no_change_share=0.494450094962446, gain_share=0.505549905037554, gain_less_than_5_percent_share=0.9931537493063021, gain_more_than_5_percent_share=0.006846214503656335), 3: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.02404055636315165, gain_share=0.9759594436368484, gain_less_than_5_percent_share=0.9891467785172058, gain_more_than_5_percent_share=0.010853221482794195), 4: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0021384901223377517, lose_share=8.272884193213454e-07, no_change_share=0.36369619644130957, gain_share=0.6363029762702711, gain_less_than_5_percent_share=0.9597482462129343, gain_more_than_5_percent_share=0.038113263664727975), 5: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0002447588006939626, lose_share=0.00024460254119754784, no_change_share=0.16613074345434808, gain_share=0.8336246540044544, gain_less_than_5_percent_share=0.9833489364919241, gain_more_than_5_percent_share=0.01640630470738194), 6: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.025790631489697343, gain_share=0.9742093685103027, gain_less_than_5_percent_share=0.9861761877807416, gain_more_than_5_percent_share=0.013823812219258384), 7: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.00020866319896562508, lose_share=4.163438722119544e-05, no_change_share=0.08407934672412146, gain_share=0.9158790188886573, gain_less_than_5_percent_share=0.9021123857304735, gain_more_than_5_percent_share=0.09767895107056095), 8: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0, lose_share=0.0, no_change_share=0.056524409525954916, gain_share=0.9434755904740451, gain_less_than_5_percent_share=0.9366881433479168, gain_more_than_5_percent_share=0.06331185665208312), 9: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.008053685714292545, lose_share=0.008053685714292545, no_change_share=0.027806404912023186, gain_share=0.9641399093736843, gain_less_than_5_percent_share=0.9371641387443307, gain_more_than_5_percent_share=0.05478217554137677), 10: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=4.868756468537358e-08, lose_share=4.868756468537358e-08, no_change_share=0.06985295508301145, gain_share=0.9301469962294239, gain_less_than_5_percent_share=0.806768831589799, gain_more_than_5_percent_share=0.1932311197226364)}, all=IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(lose_more_than_5_percent_share=0.0, lose_less_than_5_percent_share=0.0010924738666159373, lose_share=0.0008384108829899095, no_change_share=0.16458777279036807, gain_share=0.8345738163266421, gain_less_than_5_percent_share=0.947301858492644, gain_more_than_5_percent_share=0.051605667640740344)))), poverty=[PovertyRateMetricComparison(age_group='child', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc', baseline=0.0866740345954895, reform=0.08660321682691574, change=-7.081776857376099e-05, relative_change=-0.0008170586370447596), PovertyRateMetricComparison(age_group='child', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc_half', baseline=0.005887233652174473, reform=0.005886665545403957, change=-5.681067705154419e-07, relative_change=-9.649808451302242e-05), PovertyRateMetricComparison(age_group='child', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc', baseline=1636588.5, reform=1635251.25, change=-1337.25, relative_change=-0.0008170960507176972), PovertyRateMetricComparison(age_group='child', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc_half', baseline=111163.3828125, reform=111152.65625, change=-10.7265625, relative_change=-9.649366750643566e-05), PovertyRateMetricComparison(age_group='working_age', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc', baseline=0.08067396283149719, reform=0.07947173714637756, change=-0.001202225685119629, relative_change=-0.014902276309776728), PovertyRateMetricComparison(age_group='working_age', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc_half', baseline=0.020408159121870995, reform=0.020407630130648613, change=-5.289912223815918e-07, relative_change=-2.5920575159308858e-05), PovertyRateMetricComparison(age_group='working_age', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc', baseline=3613979.5, reform=3560123.0, change=-53856.5, relative_change=-0.014902270474970874), PovertyRateMetricComparison(age_group='working_age', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc_half', baseline=914231.375, reform=914207.75, change=-23.625, relative_change=-2.584137959605685e-05), PovertyRateMetricComparison(age_group='senior', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc', baseline=0.033274661749601364, reform=0.03287290409207344, change=-0.0004017576575279236, relative_change=-0.012073981714712297), PovertyRateMetricComparison(age_group='senior', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc_half', baseline=0.0007299797143787146, reform=0.0007292248192243278, change=-7.548951543867588e-07, relative_change=-0.0010341316882062261), PovertyRateMetricComparison(age_group='senior', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc', baseline=436230.6875, reform=430963.625, change=-5267.0625, relative_change=-0.01207403021136609), PovertyRateMetricComparison(age_group='senior', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc_half', baseline=9570.03125, reform=9560.134765625, change=-9.896484375, relative_change=-0.0010341120228839378), PovertyRateMetricComparison(age_group='all', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc', baseline=0.07405699789524078, reform=0.07326966524124146, change=-0.0007873326539993286, relative_change=-0.01063144167838224), PovertyRateMetricComparison(age_group='all', racial_group='all', relative=True, poverty_rate='uk_hbai_bhc_half', baseline=0.01347795594483614, reform=0.013477379456162453, change=-5.764886736869812e-07, relative_change=-4.277270797192756e-05), PovertyRateMetricComparison(age_group='all', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc', baseline=5686796.5, reform=5626338.0, change=-60458.5, relative_change=-0.010631380954110104), PovertyRateMetricComparison(age_group='all', racial_group='all', relative=False, poverty_rate='uk_hbai_bhc_half', baseline=1034964.875, reform=1034920.625, change=-44.25, relative_change=-4.27550741758265e-05)], labor_supply=[])" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from policyengine import Simulation\n", - "\n", - "sim = Simulation(\n", - " scope=\"macro\",\n", - " country=\"uk\",\n", - " time_period=2025,\n", - " reform={\n", - " \"gov.hmrc.income_tax.allowances.personal_allowance.amount\": 15000\n", - " },\n", - ")\n", - "\n", - "sim.calculate_economy_comparison()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..6e92c81c --- /dev/null +++ b/docs/index.md @@ -0,0 +1,10 @@ +# policyengine.py + +This package aims to simplify and productionise the use of PolicyEngine's tax-benefit microsimulation models to flexibly produce useful information at scale, slotting into existing analysis pipelines while also standardising analysis. + +We do this by: +* Standardising around a set of core types that let us do policy analysis in an object-oriented way +* Provide a nice clean interface to put instances of these types in a database +* Exemplifying this behaviour by using this package in all PolicyEngine's production applications, and analyses + +In this documentation, we'll walk through the core concepts/types that this package makes available, and how you can use them to run policy analyses at scale. diff --git a/docs/logo.png b/docs/logo.png deleted file mode 100644 index 12736e4d..00000000 Binary files a/docs/logo.png and /dev/null differ diff --git a/docs/models.md b/docs/models.md new file mode 100644 index 00000000..010037a3 --- /dev/null +++ b/docs/models.md @@ -0,0 +1,47 @@ +# PolicyEngine model types guide + +This repository contains several model types that work together to enable policy simulation and analysis. Here's what each does: + +## Core simulation models + +**Model** - The main computational engine that registers tax-benefit systems (UK/US) and provides the simulation function. Contains logic to create seed objects from tax-benefit parameters. + +**Simulation** - Orchestrates policy analysis by combining a model, dataset, policy changes, and dynamic effects. Runs the model's simulation function and stores results. + +**ModelVersion** - Tracks different versions of a model implementation, allowing for comparison across model iterations. + +## Policy configuration + +**Policy** - Defines policy reforms through parameter value changes. Can include a custom simulation modifier function for complex reforms. + +**Dynamic** - Similar to Policy but specifically for dynamic/behavioural responses to policy changes. + +**Parameter** - Represents a single policy parameter (e.g., tax rate, benefit amount) within a model. + +**ParameterValue** - A specific value for a parameter at a given time period. + +**BaselineParameterValue** - Default/baseline values for parameters before any policy changes. + +**BaselineVariable** - Variables in the baseline scenario used for comparison. + +## Data handling + +**Dataset** - Contains the input data (households, people, etc.) for a simulation, with optional versioning and year specification. + +**VersionedDataset** - Manages different versions of datasets over time. + +## Results and reporting + +**Report** - Container for analysis results with timestamp tracking. + +**ReportElement** - Individual components within a report (charts, tables, metrics). + +**Aggregate** - Computes aggregated statistics (sum, mean, count) from simulation results, with optional filtering. + +**AggregateType** - Enum defining the available aggregation functions. + +## Supporting models + +**User** - User account management for the platform. + +**SeedObjects** - Helper class for batch-creating initial database objects when registering a new model. \ No newline at end of file diff --git a/docs/myst.yml b/docs/myst.yml new file mode 100644 index 00000000..c8ccc8d5 --- /dev/null +++ b/docs/myst.yml @@ -0,0 +1,22 @@ +# See docs at: https://mystmd.org/guide/frontmatter +version: 1 +project: + id: b70ccb02-12b9-4bdb-a25b-f44bf2213d98 + # title: + # description: + # keywords: [] + # authors: [] + github: https://github.com/PolicyEngine/policyengine.py + # To autogenerate a Table of Contents, run "jupyter book init --write-toc" + toc: + # Auto-generated by `myst init --write-toc` + - file: index.md + - file: quickstart.ipynb + - file: models.md + - file: dev.md + +site: + template: book-theme + # options: + # favicon: favicon.ico + # logo: site_logo.png diff --git a/docs/outputs/calculate_average_earnings.md b/docs/outputs/calculate_average_earnings.md deleted file mode 100644 index ab1636d2..00000000 --- a/docs/outputs/calculate_average_earnings.md +++ /dev/null @@ -1,7 +0,0 @@ -# Average earnings - -This extension calculates the average earnings of a large population. - -```{eval-rst} -.. autofunction:: policyengine.outputs.macro.single.calculate_average_earnings.calculate_average_earnings -``` \ No newline at end of file diff --git a/docs/quickstart.ipynb b/docs/quickstart.ipynb new file mode 100644 index 00000000..9340cb1a --- /dev/null +++ b/docs/quickstart.ipynb @@ -0,0 +1,2242 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b5510438", + "metadata": {}, + "source": [ + "# Getting started\n", + "\n", + "In this notebook, we'll walk through how to use the PolicyEngine.py package to run simulations and produce analyses. We'll start with a basic analysis in the UK that doesn't use any databases, and then start saving and loading things into a database.\n", + "\n", + "## Running a baseline simulation\n", + "\n", + "To start, let's run through a simulation of the UK, and create a chart of the distribution of household income." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "7eb9b5a0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "marker": { + "color": "#319795" + }, + "textfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "textposition": "outside", + "texttemplate": "%{y:,.0f}", + "type": "bar", + "x": [ + "£0", + "£20,000", + "£40,000", + "£60,000", + "£80,000", + "£100,000", + "£150,000", + "£200,000", + "£300,000", + "£500,000" + ], + "y": [ + 6628102.860910795, + 10308039.540624166, + 7153251.306053954, + 4288185.176098487, + 1690702.647548969, + 1320125.7573599513, + 326073.73102501093, + 187608.23132836912, + 63106.63353048405, + 41838.373842805624 + ] + } + ], + "layout": { + "font": { + "color": "#101828", + "family": "Roboto, sans-serif", + "size": 14 + }, + "hoverlabel": { + "bgcolor": "white", + "bordercolor": "#81E6D9", + "font": { + "family": "Roboto Mono, monospace", + "size": 12 + } + }, + "hovermode": "x unified", + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "showlegend": false, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "font": { + "color": "#101828", + "family": "Roboto, sans-serif", + "size": 20, + "weight": 500 + }, + "text": "The distribution of household income in the UK" + }, + "xaxis": { + "gridcolor": "#E2E8F0", + "gridwidth": 1, + "linecolor": "#E2E8F0", + "linewidth": 1, + "mirror": false, + "showgrid": true, + "showline": true, + "tickfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "title": { + "font": { + "color": "#6B7280" + }, + "text": "Income range" + }, + "zeroline": true, + "zerolinecolor": "#F2F4F7", + "zerolinewidth": 1 + }, + "yaxis": { + "gridcolor": "#E2E8F0", + "gridwidth": 1, + "linecolor": "#E2E8F0", + "linewidth": 1, + "mirror": false, + "showgrid": true, + "showline": true, + "tickfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "title": { + "font": { + "color": "#6B7280" + }, + "text": "Number of households" + }, + "zeroline": true, + "zerolinecolor": "#F2F4F7", + "zerolinewidth": 1 + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import plotly.graph_objects as go\n", + "\n", + "from policyengine.models import (\n", + " Aggregate,\n", + " Simulation,\n", + " policyengine_uk_latest_version,\n", + " policyengine_uk_model,\n", + ")\n", + "from policyengine.utils.charts import add_fonts, format_figure\n", + "from policyengine.utils.datasets import create_uk_dataset\n", + "\n", + "# Load the dataset\n", + "\n", + "uk_dataset = create_uk_dataset()\n", + "\n", + "# Create and run the simulation\n", + "\n", + "\n", + "sim = Simulation(\n", + " dataset=uk_dataset,\n", + " model=policyengine_uk_model,\n", + " model_version=policyengine_uk_latest_version,\n", + ")\n", + "\n", + "sim.run()\n", + "\n", + "# Extract aggregates for household income ranges\n", + "\n", + "income_ranges = [\n", + " 0,\n", + " 20000,\n", + " 40000,\n", + " 60000,\n", + " 80000,\n", + " 100000,\n", + " 150000,\n", + " 200000,\n", + " 300000,\n", + " 500000,\n", + " 1_000_000,\n", + "]\n", + "aggregates = []\n", + "for i in range(len(income_ranges) - 1):\n", + " aggregates.append(\n", + " Aggregate(\n", + " entity=\"household\",\n", + " variable_name=\"hbai_household_net_income\",\n", + " aggregate_function=\"count\",\n", + " filter_variable_name=\"hbai_household_net_income\",\n", + " filter_variable_geq=income_ranges[i],\n", + " filter_variable_leq=income_ranges[i + 1],\n", + " simulation=sim,\n", + " )\n", + " )\n", + "\n", + "aggregates = Aggregate.run(aggregates)\n", + "\n", + "# Create the bar chart\n", + "\n", + "fig = go.Figure(\n", + " data=[\n", + " go.Bar(\n", + " x=[f\"£{inc:,}\" for inc in income_ranges[:-1]],\n", + " y=[agg.value for agg in aggregates],\n", + " )\n", + " ]\n", + ")\n", + "\n", + "# Apply formatting\n", + "\n", + "format_figure(\n", + " fig,\n", + " title=\"The distribution of household income in the UK\",\n", + " x_title=\"Income range\",\n", + " y_title=\"Number of households\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "24ba497b", + "metadata": {}, + "source": [ + "So, in this example we introduced a few concepts:\n", + "\n", + "* The `Simulation` object, which represents a full run of a microsimulation model, containing all the information (simulated and input) about a set of people or groups. It takes here a few arguments: a `Dataset`, `Model` and `ModelVersion`.\n", + "* The `Dataset` object, which represents a set of people or groups. Here we used a utility function to create this dataset for the UK, but we later will be able to create these from scratch or pull them from a database.\n", + "* The `Model` object, which represents a particular microsimulation model (essentially defined as a function transforming a dataset to a new dataset). There are two models defined by this package, one for the UK and one for the US. Think of these objects as adapters representing the full microsimulation models. Here, we've taken the pre-defined UK model.\n", + "* The `ModelVersion` object, which represents a particular version of a model. This is useful for tracking changes to the model over time. Here, we used the latest version of the UK model.\n", + "\n", + "## Adding a policy reform\n", + "\n", + "Next, we'll add in a policy reform, and see how that changes the results." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b40913b2", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "marker": { + "color": "#319795" + }, + "name": "Baseline", + "textfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "textposition": "outside", + "texttemplate": "%{y:,.0f}", + "type": "bar", + "x": [ + "£0", + "£20,000", + "£40,000", + "£60,000", + "£80,000", + "£100,000", + "£150,000", + "£200,000", + "£300,000", + "£500,000" + ], + "y": [ + 6628102.860910795, + 10308039.540624166, + 7153251.306053954, + 4288185.176098487, + 1690702.647548969, + 1320125.7573599513, + 326073.73102501093, + 187608.23132836912, + 63106.63353048405, + 41838.373842805624 + ] + }, + { + "marker": { + "color": "#0EA5E9" + }, + "name": "Reform", + "textfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "textposition": "outside", + "texttemplate": "%{y:,.0f}", + "type": "bar", + "x": [ + "£0", + "£20,000", + "£40,000", + "£60,000", + "£80,000", + "£100,000", + "£150,000", + "£200,000", + "£300,000", + "£500,000" + ], + "y": [ + 6172777.805479924, + 10310058.00384126, + 6911190.799784593, + 4471614.799692215, + 2005466.130918176, + 1471720.3202646417, + 341808.24952948757, + 218180.35939976107, + 63106.63353048405, + 41838.373842805624 + ] + } + ], + "layout": { + "font": { + "color": "#101828", + "family": "Roboto, sans-serif", + "size": 14 + }, + "hoverlabel": { + "bgcolor": "white", + "bordercolor": "#81E6D9", + "font": { + "family": "Roboto Mono, monospace", + "size": 12 + } + }, + "hovermode": "x unified", + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "showlegend": true, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "font": { + "color": "#101828", + "family": "Roboto, sans-serif", + "size": 20, + "weight": 500 + }, + "text": "The distribution of household income in the UK" + }, + "xaxis": { + "gridcolor": "#E2E8F0", + "gridwidth": 1, + "linecolor": "#E2E8F0", + "linewidth": 1, + "mirror": false, + "showgrid": true, + "showline": true, + "tickfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "title": { + "font": { + "color": "#6B7280" + }, + "text": "Income range" + }, + "zeroline": true, + "zerolinecolor": "#F2F4F7", + "zerolinewidth": 1 + }, + "yaxis": { + "gridcolor": "#E2E8F0", + "gridwidth": 1, + "linecolor": "#E2E8F0", + "linewidth": 1, + "mirror": false, + "showgrid": true, + "showline": true, + "tickfont": { + "color": "#6B7280", + "family": "Roboto Mono, monospace", + "size": 11 + }, + "title": { + "font": { + "color": "#6B7280" + }, + "text": "Number of households" + }, + "zeroline": true, + "zerolinecolor": "#F2F4F7", + "zerolinewidth": 1 + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from datetime import datetime\n", + "\n", + "from policyengine.models import Parameter, ParameterValue, Policy\n", + "\n", + "# Parameter = the parameter to change\n", + "\n", + "personal_allowance = Parameter(\n", + " id=\"gov.hmrc.income_tax.allowances.personal_allowance.amount\",\n", + " model=policyengine_uk_model,\n", + ")\n", + "\n", + "# ParameterValue = the value to set the parameter to, and when to start\n", + "\n", + "personal_allowance_value = ParameterValue(\n", + " parameter=personal_allowance,\n", + " start_date=datetime(2029, 1, 1),\n", + " value=20000,\n", + ")\n", + "\n", + "# Create a policy to increase the personal allowance to £20,000 from 2029-30\n", + "\n", + "policy = Policy(\n", + " name=\"Increase personal allowance to £20,000\",\n", + " description=\"A policy to increase the personal allowance for income tax to £20,000.\",\n", + " parameter_values=[personal_allowance_value],\n", + ")\n", + "\n", + "sim_2 = Simulation(\n", + " dataset=uk_dataset,\n", + " model=policyengine_uk_model,\n", + " model_version=policyengine_uk_latest_version,\n", + " policy=policy, # Pass in the policy here\n", + ")\n", + "\n", + "sim_2.run()\n", + "\n", + "# Extract new aggregates for household income ranges\n", + "\n", + "income_ranges = [\n", + " 0,\n", + " 20000,\n", + " 40000,\n", + " 60000,\n", + " 80000,\n", + " 100000,\n", + " 150000,\n", + " 200000,\n", + " 300000,\n", + " 500000,\n", + " 1_000_000,\n", + "]\n", + "aggregates_2 = []\n", + "for i in range(len(income_ranges) - 1):\n", + " aggregates_2.append(\n", + " Aggregate(\n", + " entity=\"household\",\n", + " variable_name=\"hbai_household_net_income\",\n", + " aggregate_function=\"count\",\n", + " filter_variable_name=\"hbai_household_net_income\",\n", + " filter_variable_geq=income_ranges[i],\n", + " filter_variable_leq=income_ranges[i + 1],\n", + " simulation=sim_2,\n", + " )\n", + " )\n", + "\n", + "aggregates_2 = Aggregate.run(aggregates_2)\n", + "\n", + "# Create the comparative bar chart\n", + "fig = go.Figure(\n", + " data=[\n", + " go.Bar(\n", + " name=\"Baseline\",\n", + " x=[f\"£{inc:,}\" for inc in income_ranges[:-1]],\n", + " y=[agg.value for agg in aggregates],\n", + " ),\n", + " go.Bar(\n", + " name=\"Reform\",\n", + " x=[f\"£{inc:,}\" for inc in income_ranges[:-1]],\n", + " y=[agg.value for agg in aggregates_2],\n", + " ),\n", + " ]\n", + ")\n", + "\n", + "# Apply formatting\n", + "fig = format_figure(\n", + " fig,\n", + " title=\"The distribution of household income in the UK\",\n", + " x_title=\"Income range\",\n", + " y_title=\"Number of households\",\n", + ")\n", + "\n", + "add_fonts()\n", + "\n", + "fig" + ] + }, + { + "cell_type": "markdown", + "id": "6c029d3b", + "metadata": {}, + "source": [ + "In the above example, we created a `Policy` object, which represents a particular policy reform. This object contains a list of `ParameterValue` objects, which represent changes to specific parameters in the model. Here, we changed the personal allowance for income tax to £20,000.\n", + "\n", + "## Bringing in a database\n", + "\n", + "Now, we can upload these objects to a database, and then load them back out again. This is useful for tracking different simulations and policy reforms over time." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "f14c85eb", + "metadata": {}, + "outputs": [], + "source": [ + "from policyengine.database import Database\n", + "\n", + "database = Database(\"postgresql://postgres:postgres@127.0.0.1:54322/postgres\")\n", + "\n", + "# These two lines are not usually needed, but you should use them the first time you set up a new database\n", + "database.reset() # Drop and recreate all tables\n", + "database.register_model_version(\n", + " policyengine_uk_latest_version\n", + ") # Add in the model, model version, parameters and baseline parameter values and variables.\n", + "\n", + "database.set(uk_dataset)\n", + "database.set(policy)\n", + "\n", + "for pv in policy.parameter_values:\n", + " database.set(pv)\n", + "database.set(sim)\n", + "database.set(sim_2)\n", + "for agg in aggregates:\n", + " database.set(agg)\n", + "for agg in aggregates_2:\n", + " database.set(agg)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "2041dfeb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Policy(id='26f30afa-77b9-4435-812c-071873e25400', name='Increase personal allowance to £20,000', description='A policy to increase the personal allowance for income tax to £20,000.', parameter_values=[], simulation_modifier=None, created_at=datetime.datetime(2025, 9, 20, 12, 36, 27, 162725), updated_at=datetime.datetime(2025, 9, 20, 12, 36, 27, 162729))" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "database.get(Policy, id=policy.id)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "policyengine", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/reference/parameters_uk.md b/docs/reference/parameters_uk.md deleted file mode 100644 index 7e244486..00000000 --- a/docs/reference/parameters_uk.md +++ /dev/null @@ -1,6762 +0,0 @@ -# UK parameters - -This page shows a list of available parameters for reforms for the UK model. - -We exclude from this list: - -* Some parameters without documentation (we're a large, fast-growing model maintained by a small team- we're working on it!) -* Abolition parameters, which mirror each household property and allow the user to set the value of the property to zero (these take the format `gov.abolitions.variable_name`) because these roughly triple the size of this list and are repetitive. -### calibration.uprating.equity_prices -**Label:** Equity prices - -Equity prices (OBR forecast). - -**Type:** int - -**Current value:** 4291 - ---- - -### calibration.programs.fuel_duty.revenue -**Label:** Fuel duty revenues - -Fuel duty revenues. - -**Type:** int - -**Current value:** 26621382708 - ---- - -### calibration.programs.capital_gains.total -**Label:** Total capital gains - -Total capital gains by individuals. - -**Type:** int - -**Current value:** 79881000000 - ---- - -### calibration.programs.capital_gains.tax -**Label:** Capital Gains Tax revenue - -Capital gains tax revenue. - -**Type:** int - -**Current value:** 16200000000 - ---- - -### household.wealth.financial_assets -**Label:** Financial assets - -Financial assets of households. - -**Type:** int - -**Current value:** 7300000000000 - ---- - -### household.consumption.fuel.prices.diesel -**Label:** Price of diesel per litre - -Average price of diesel per litre. - -**Type:** float - -**Current value:** 1.52 - ---- - -### household.consumption.fuel.prices.petrol -**Label:** Price of unleaded petrol per litre - -Average price of unleaded petrol per litre, including fuel duty. - -**Type:** float - -**Current value:** 1.44 - ---- - -### household.poverty.absolute_poverty_threshold_bhc -**Label:** Absolute poverty threshold, before housing costs - -Absolute poverty threshold for equivalised household net income, before housing costs - -**Type:** float - -**Current value:** 367.36108108108107 - ---- - -### household.poverty.absolute_poverty_threshold_ahc -**Label:** Absolute poverty threshold, after housing costs - -Absolute poverty threshold for equivalised household net income, after housing costs. - -**Type:** float - -**Current value:** 314.75567567567566 - ---- - -### gov.indices.private_rent_index -**Label:** Private rental prices index - -Index of private rental prices across the UK. - -**Type:** float - -**Current value:** 128.5577828397874 - ---- - -### gov.ons.rpi -**Label:** RPI - -Retail Price Index (RPI) is a measure of inflation published by the Office for National Statistics. - -**Type:** float - -**Current value:** 377.5 - ---- - -### gov.social_security_scotland.pawhp.amount.lower -**Label:** PAWHP lower amount - -**Type:** float - -**Current value:** 205.04825538233115 - ---- - -### gov.social_security_scotland.pawhp.amount.higher -**Label:** PAWHP lower amount - -**Type:** float - -**Current value:** 307.5723830734967 - ---- - -### gov.social_security_scotland.pawhp.amount.base -**Label:** PAWHP base payment - -Amount paid to non-benefit-claiming pensioners for the PAWHP. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.social_security_scotland.pawhp.eligibility.state_pension_age_requirement -**Label:** PAWHP State Pension Age requirement - -Whether individuals must be State Pension Age to qualify for the PAWHP. - -**Type:** bool - -**Current value:** True - ---- - -### gov.social_security_scotland.pawhp.eligibility.require_benefits -**Label:** PAWHP means-tested benefits requirement - -Whether receipt of means-tested benefits is required to qualify for the Winter Fuel Payment. - -**Type:** bool - -**Current value:** True - ---- - -### gov.social_security_scotland.pawhp.eligibility.higher_age_requirement -**Label:** Winter Fuel Payment higher amount age requirement - -Age requirement to qualify for the higher PAWHP. - -**Type:** int - -**Current value:** 80 - ---- - -### gov.ofgem.energy_price_guarantee -**Label:** Energy price guarantee - -The capped default tariff energy price level for Ofgem's central household (2,900kWh per annum in electricity consumption, 12,000kWh per annum for gas). The Energy Price Cap subsidy reduces household bills to this level. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.ofgem.energy_price_cap -**Label:** Ofgem energy price level - -The default tariff energy price for Ofgem's central household (2,900kWh per annum in electricity consumption, 12,000kWh per annum for gas). The Energy Price Cap subsidy reduces household energy bills by the difference between this amount and the subsity target parameter level. - -**Type:** int - -**Current value:** 2389 - ---- - -### gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change -**Label:** Effective wage rate change LSR bound - -Effective wage rate changes larger than this will be capped at this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.simulation.labor_supply_responses.bounds.income_change -**Label:** Income change LSR bound - -Net income changes larger than this will be capped at this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.simulation.labor_supply_responses.substitution_elasticity -**Label:** Substitution elasticity of labor supply - -Percent change in labor supply given a 1% change in the effective marginal wage. This applies only to employment income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.income_elasticity -**Label:** Income elasticity of labor supply - -Percent change in labor supply given a 1% change in disposable income. This applies only to employment income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.marginal_tax_rate_adults -**Label:** Number of adults to simulate a marginal tax rate for - -Number of adults to simulate a marginal tax rate for, in each household. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.simulation.capital_gains_responses.elasticity -**Label:** capital gains elasticity - -Elasticity of capital gains with respect to the capital gains marginal tax rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.private_school_vat.private_school_vat_basis -**Label:** private school tuition VAT basis - -Effective percentage of private school tuition subject to VAT - -**Type:** float - -**Current value:** 0.75 - ---- - -### gov.simulation.private_school_vat.private_school_factor -**Label:** student polulation adjustment factor - -student polulation adjustment factor, tested by Vahid - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.simulation.private_school_vat.private_school_fees -**Label:** mean annual private school fee - -Mean annual private school fee - -**Type:** float - -**Current value:** 17210.75043630017 - ---- - -### gov.revenue_scotland.lbtt.residential.additional_residence_surcharge -**Label:** LBTT fixed rate increase for secondary residences - -Increase in percentage rates for non-primary residence purchases. - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.benefit_uprating_cpi -**Label:** Benefit uprating index - -Most recent September CPIH index value, updated for each uprating occurrence (2005=100) - -**Type:** float - -**Current value:** 153.44444444444443 - ---- - -### gov.contrib.conservatives.pensioner_personal_allowance -**Label:** personal allowance for pensioners - -Personal Allowance for pensioners. - -**Type:** int - -**Current value:** 12570 - ---- - -### gov.contrib.conservatives.cb_hitc_household -**Label:** household-based High Income Tax Charge - -Child Benefit HITC assesses the joint income of a household to determine the amount of Child Benefit that is repayable. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.cps.marriage_tax_reforms.expanded_ma.remove_income_condition -**Label:** Remove MA high-income restrictions - -Allow higher and additional rate taxpayers to claim the Marriage Allowance. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.cps.marriage_tax_reforms.expanded_ma.max_child_age -**Label:** Expanded MA child age condition - -Only expand the Marriage Allowance for couples with a child under this age (zero does not limit by child age). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.cps.marriage_tax_reforms.expanded_ma.ma_rate -**Label:** Expanded Marriage Allowance rate - -Marriage Allowance maximum rate for eligible couples. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.contrib.cps.marriage_tax_reforms.marriage_neutral_it.neutralise_income_tax -**Label:** Marriage-neutral Income Tax - -Allow couples to split their taxable income equally for Income Tax. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.cps.marriage_tax_reforms.marriage_neutral_it.max_child_age -**Label:** Expanded MA child age condition - -Only marriage-neutralise Income Tax for couples with a child under this age (zero does not limit by child age). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.interactions.include_in_taxable_income -**Label:** Include basic income in taxable income - -Include basic income as earned income in benefit means tests. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.interactions.withdraw_cb -**Label:** Withdraw Child Benefit from basic income recipients - -Withdraw Child Benefit payments from basic income recipients. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.interactions.include_in_means_tests -**Label:** Include basic income in means tests - -Include basic income as earned income in benefit means tests. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.amount.adult_age -**Label:** Adult basic income threshold - -Age at which a person stops receiving the child basic income and begins receiving the adult basic income. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.contrib.ubi_center.basic_income.amount.by_age.child -**Label:** Child basic income - -Basic income payment to children. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.by_age.working_age -**Label:** Working-age basic income - -Basic income payment to working-age adults. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.by_age.senior -**Label:** Senior basic income - -Basic income payment to seniors (individuals over State Pension Age). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.child_min_age -**Label:** Child basic income minimum threshold - -Minimum age for children to receive the child basic income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.flat -**Label:** Basic income - -Flat per-person basic income amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.individual.rate -**Label:** Basic income individual phase-out rate - -Percentage of income over the phase-out threshold which is deducted from basic income payments. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.individual.threshold -**Label:** Basic income individual phase-out threshold - -Threshold for taxable income at which basic income is reduced. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.household.rate -**Label:** Basic income household phase-out rate - -Rate at which any remaining basic income (after individual phase-outs) is reduced over the household income threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.household.threshold -**Label:** Basic income household phase-out threshold - -Threshold for household taxable income, after which any remaining basic income (after individual phase-outs) is reduced. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[0].threshold -**Label:** First wealth tax threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[0].rate -**Label:** First wealth tax rate - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[1].threshold -**Label:** Second wealth tax threshold - -**Type:** int - -**Current value:** 100000000 - ---- - -### gov.contrib.ubi_center.wealth_tax[1].rate -**Label:** Second wealth tax rate - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[2].threshold -**Label:** Third wealth tax threshold - -**Type:** int - -**Current value:** 1000000000 - ---- - -### gov.contrib.ubi_center.wealth_tax[2].rate -**Label:** Third wealth tax rate - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.carbon_tax.consumer_incidence -**Label:** Carbon tax consumer incidence - -Proportion of corporate carbon taxes which is passed on to consumers in the form of higher prices (as opposed to shareholders in the form of reduced profitability). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.contrib.ubi_center.carbon_tax.rate -**Label:** Carbon tax - -Price per tonne of carbon emissions - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.land_value_tax.rate -**Label:** Land value tax - -Tax rate on the unimproved value of land - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.land_value_tax.household_rate -**Label:** Land value tax (households) - -Tax rate on the unimproved value of land owned by households - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.land_value_tax.corporate_rate -**Label:** Land value tax (corporations) - -Tax rate on the unimproved value of land owned by corporations - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.freeze_pension_credit -**Label:** Freeze Pension Credit - -Freeze Pension Credit payments. Set all Pension Credit payments to what they are under baseline policy. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.abolish_council_tax -**Label:** Abolish Council Tax - -Abolish council tax payments (and council tax benefit). - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.labour.private_school_vat -**Label:** private school VAT rate - -VAT rate applied to private schools. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.benefit_uprating.non_sp -**Label:** Non-State Pension benefit uprating - -Increase all non-State Pension benefits by this amount (this multiplies the end value, not the maximum amount). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.benefit_uprating.all -**Label:** Benefit uprating - -Increase all benefit values by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.energy_bills -**Label:** Change to energy spending - -Raise energy spending by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.gdp_per_capita -**Label:** Change to GDP per capita - -Raise all market incomes by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.transport -**Label:** Change to transport spending - -Raise transport expenses by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.rent -**Label:** Change to rents - -Raise rental expenses by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.interest_rates -**Label:** Change to interest rates - -Raise the interest rate on mortgages by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.employer_ni.employee_incidence -**Label:** Employer NI employee incidence - -Fraction of employer NI that is borne by employees. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.contrib.policyengine.employer_ni.exempt_employer_pension_contributions -**Label:** exempt employer pension contributions from employers' NI - -Whether to exempt employer pension contributions from employer NI. - -**Type:** bool - -**Current value:** True - ---- - -### gov.contrib.policyengine.employer_ni.consumer_incidence -**Label:** Employer NI consumer incidence - -Fraction of (remaining after employee incidence) employer NI that is borne by consumers. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.contrib.policyengine.employer_ni.capital_incidence -**Label:** Employer NI capital incidence - -Fraction of (remaining after employee incidence) employer NI that is borne by capital. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.contrib.policyengine.disable_simulated_benefits -**Label:** disable simulated benefits - -Disable simulated benefits. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.policyengine.budget.nhs -**Label:** NHS spending change (£bn) - -Increase in NHS spending, distributed by income decile as estimated by the ONS Effects of Taxes and Benefits dataset. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.consumer_incident_tax_change -**Label:** tax on consumers (£bn) - -Tax increase incident on consumers. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.education -**Label:** education spending change (£bn) - -Increase in education, distributed by income decile as estimated by the ONS Effects of Taxes and Benefits dataset. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.high_income_incident_tax_change -**Label:** high income incident tax change (£bn) - -Tax rise for high income earners (functioning proportional to income over £100,000). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.other_public_spending -**Label:** general public spending change (£bn) - -Increase in non-NHS, non-education public spending, distributed by income decile as estimated by the ONS Effects of Taxes and Benefits dataset. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.corporate_incident_tax_change -**Label:** tax on capital (£bn) - -Tax increase incident on owners of capital. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.cec.state_pension_increase -**Label:** State Pension increase - -Increase State Pension payments by this percentage. - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.cec.non_primary_residence_wealth_tax[0].threshold -**Label:** Wealth tax exemption on non-primary residence wealth - -This much wealth is exempt from the wealth tax. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.cec.non_primary_residence_wealth_tax[0].rate -**Label:** Wealth tax rate on non-primary residence wealth - -This is the marginal rate of tax on wealth above the threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.abolish_state_pension -**Label:** Abolish State Pension - -Remove all State Pension payments. - -**Type:** bool - -**Current value:** False - ---- - -### gov.dwp.carers_allowance.rate -**Label:** Carer's Allowance rate - -Weekly rate of Carer's Allowance. - -**Type:** float - -**Current value:** 83.29 - ---- - -### gov.dwp.carers_allowance.min_hours -**Label:** Carer's Allowance minimum hours - -Minimum number of hours spent providing care to qualify for Carer's Allowance. - -**Type:** int - -**Current value:** 35 - ---- - -### gov.dwp.winter_fuel_payment.amount.lower -**Label:** Winter Fuel Payment lower amount - -**Type:** int - -**Current value:** 200 - ---- - -### gov.dwp.winter_fuel_payment.amount.higher -**Label:** Winter Fuel Payment higher amount - -**Type:** int - -**Current value:** 300 - ---- - -### gov.dwp.winter_fuel_payment.eligibility.state_pension_age_requirement -**Label:** Winter Fuel Payment State Pension Age requirement - -Whether individuals must be State Pension Age to qualify for the Winter Fuel Payment. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dwp.winter_fuel_payment.eligibility.require_benefits -**Label:** Winter Fuel Payment means-tested benefits requirement - -Whether receipt of means-tested benefits is required to qualify for the Winter Fuel Payment. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dwp.winter_fuel_payment.eligibility.higher_age_requirement -**Label:** Winter Fuel Payment higher amount age requitement - -Age requirement to qualify for the higher Winter Fuel Payment. - -**Type:** int - -**Current value:** 80 - ---- - -### gov.dwp.carer_premium.couple -**Label:** Legacy benefit carer premium (two carers) - -Carer premium for two qualifying carers for legacy benefits. - -**Type:** float - -**Current value:** 46.38 - ---- - -### gov.dwp.carer_premium.single -**Label:** Legacy benefit carer premium (one carer) - -Carer premium for one qualifying carer, for legacy benefits. - -**Type:** float - -**Current value:** 46.38 - ---- - -### gov.dwp.sda.maximum -**Label:** Severe Disablement Allowance - -Maximum Severe Disablement Allowance rate. - -**Type:** float - -**Current value:** 115.02 - ---- - -### gov.dwp.dla.self_care.middle -**Label:** DLA (self-care) (middle rate) - -Middle rate for Disability Living Allowance (self-care component). - -**Type:** float - -**Current value:** 73.89 - ---- - -### gov.dwp.dla.self_care.lower -**Label:** DLA (self-care) (lower rate) - -Lower rate for Disability Living Allowance (self-care component). - -**Type:** float - -**Current value:** 29.19 - ---- - -### gov.dwp.dla.self_care.higher -**Label:** DLA (self-care) (higher rate) - -Higher rate for Disability Living Allowance (self-care component). - -**Type:** float - -**Current value:** 110.4 - ---- - -### gov.dwp.dla.mobility.lower -**Label:** DLA (mobility) (lower rate) - -Lower rate for Disability Living Allowance (mobility component). - -**Type:** float - -**Current value:** 29.19 - ---- - -### gov.dwp.dla.mobility.higher -**Label:** DLA (mobility) (higher rate) - -Higher rate for Disability Living Allowance (mobility component). - -**Type:** float - -**Current value:** 77.04 - ---- - -### gov.dwp.housing_benefit.allowances.lone_parent.younger -**Label:** Housing Benefit lone parent younger personal allowance - -The following younger lone parent personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 72.92 - ---- - -### gov.dwp.housing_benefit.allowances.lone_parent.aged -**Label:** Housing Benefit lone parent aged personal allowance - -Personal allowance for Housing Benefit for a lone parent over State Pension age. - -**Type:** float - -**Current value:** 239.2 - ---- - -### gov.dwp.housing_benefit.allowances.lone_parent.older -**Label:** Housing Benefit lone parent older personal allowance - -The following older lone parent personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 92.04 - ---- - -### gov.dwp.housing_benefit.allowances.single.younger -**Label:** Housing Benefit single younger personal allowance - -The following younger single person personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 72.92 - ---- - -### gov.dwp.housing_benefit.allowances.single.aged -**Label:** Housing Benefit single aged personal allowance - -The following personal allowance amount is provided to single filers over the pension age under the Housing Benefit. - -**Type:** float - -**Current value:** 239.2 - ---- - -### gov.dwp.housing_benefit.allowances.single.older -**Label:** Housing Benefit single older personal allowance - -The following older single person personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 92.04 - ---- - -### gov.dwp.housing_benefit.allowances.age_threshold.younger -**Label:** Housing Benefit allowance younger age threshold - -A lower Housing Benefit allowance amount is provided if both members of a couple are below this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.dwp.housing_benefit.allowances.age_threshold.older -**Label:** Housing Benefit allowance older age threshold - -A higher Houseing Benefit allowance amount is provided for filers over this age threshold. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.dwp.housing_benefit.allowances.couple.younger -**Label:** Housing Benefit younger couple personal allowance - -The following couple personal allowance is provided under the Housing Benefit, if both members are under the younger age threshold. - -**Type:** float - -**Current value:** 110.14 - ---- - -### gov.dwp.housing_benefit.allowances.couple.aged -**Label:** Housing Benefit aged couple personal allowance - -The following couple personal allowance is provided under the Housing Benefit if at least one member is over the state pension age threshold. - -**Type:** float - -**Current value:** 357.98 - ---- - -### gov.dwp.housing_benefit.allowances.couple.older -**Label:** Housing Benefit older couple personal allowance - -The following couple personal allowance is provided under the Housing Benefit, if at least one member is over the younger age threshold. - -**Type:** float - -**Current value:** 144.67 - ---- - -### gov.dwp.housing_benefit.non_dep_deduction.age_threshold -**Label:** Housing Benefit non dependent deduction age threshold - -A non dependent deduction is provided under Housing Benefit for filers at or above this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.dwp.housing_benefit.means_test.withdrawal_rate -**Label:** Housing Benefit withdrawal rate - -Withdrawal rate under the Housing Benefit. - -**Type:** float - -**Current value:** 0.65 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.worker -**Label:** Housing Benefit worker earnings disregard - -This amount of earnings is disreagrded for workers under the Housing Benefit. - -**Type:** float - -**Current value:** 51.18391608391608 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.couple -**Label:** Housing Benefit couple earnings disregard - -This amount of earnings is disreagrded for couples under the Housing Benefit. - -**Type:** float - -**Current value:** 13.796203796203795 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.lone_parent -**Label:** Housing Benefit lone parent earnings disregard - -This amount of earnings is disreagrded for lone parents under the Housing Benefit. - -**Type:** float - -**Current value:** 34.49050949050949 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.single -**Label:** Housing Benefit single person earnings disregard - -This amount of earnings is disreagrded for single filers under the Housing Benefit. - -**Type:** float - -**Current value:** 6.898101898101897 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.worker_hours -**Label:** Housing Benefit worker element hours requirement - -Filers can receive an additional income disregard amount if the meet the following averge weekly work hour quota under the Housing Benefit. - -**Type:** int - -**Current value:** 30 - ---- - -### gov.dwp.housing_benefit.takeup -**Label:** Housing Benefit take-up rate - -Share of eligible Housing Benefit recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.constant_attendance_allowance.exceptional_rate -**Label:** Constant Attendance Allowance exceptional rate - -Exceptional rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 200.87272727272725 - ---- - -### gov.dwp.constant_attendance_allowance.full_day_rate -**Label:** Constant Attendance Allowance full day rate - -Full day rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 100.43636363636362 - ---- - -### gov.dwp.constant_attendance_allowance.part_day_rate -**Label:** Constant Attendance Allowance part day rate - -Part day rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 50.21818181818181 - ---- - -### gov.dwp.constant_attendance_allowance.intermediate_rate -**Label:** Constant Attendance Allowance intermediate rate - -Intermediate rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 150.65454545454543 - ---- - -### gov.dwp.disability_premia.disability_single -**Label:** Legacy benefit disability premium (single) - -Disability premium for a single person - -**Type:** float - -**Current value:** 48.217732267732266 - ---- - -### gov.dwp.disability_premia.severe_couple -**Label:** Legacy benefit severe disability premium (couple) - -Severe disability premium for a couple where both are eligible - -**Type:** float - -**Current value:** 184.73116883116882 - ---- - -### gov.dwp.disability_premia.enhanced_couple -**Label:** Legacy benefit enhanced disability premium (couple) - -Enhanced disability premium for a couple, invalid for Employment and Support Allowance - -**Type:** float - -**Current value:** 33.80069930069929 - ---- - -### gov.dwp.disability_premia.disability_couple -**Label:** Legacy benefit disability premium (couple) - -Disability premium for a couple - -**Type:** float - -**Current value:** 68.7050949050949 - ---- - -### gov.dwp.disability_premia.severe_single -**Label:** Legacy benefit severe disability premium (single) - -Severe disability premium for a single person - -**Type:** float - -**Current value:** 92.36558441558441 - ---- - -### gov.dwp.disability_premia.enhanced_single -**Label:** Legacy benefit enhanced disability premium (single) - -Enhanced disability premium for a single person, invalid for Employment and Support Allowance - -**Type:** float - -**Current value:** 23.591508491508492 - ---- - -### gov.dwp.JSA.income.income_disregard_single -**Label:** Jobseeker's Allowance income disregard (single) - -Threshold in income for a single person, above which the Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.JSA.income.couple -**Label:** Income-based JSA (couple) - -Weekly contributory Jobseeker's Allowance for couples - -**Type:** float - -**Current value:** 134.1653691813804 - ---- - -### gov.dwp.JSA.income.takeup -**Label:** Income-based Jobseeker's Allowance take-up rate - -Share of eligible Income-based Jobseeker's Allowance recipients that participate - -**Type:** float - -**Current value:** 0.56 - ---- - -### gov.dwp.JSA.income.amount_18_24 -**Label:** Income-based JSA (18-24) - -Income-based Jobseeker's Allowance for persons aged 18-24 - -**Type:** float - -**Current value:** 67.66456661316212 - ---- - -### gov.dwp.JSA.income.income_disregard_couple -**Label:** Jobseeker's Allowance income disregard (couple) - -Threshold in income for a couple, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.JSA.income.amount_over_25 -**Label:** Income-based JSA (over 25) - -Income-based Jobseeker's Allowance for persons aged over 25 - -**Type:** float - -**Current value:** 85.34269662921349 - ---- - -### gov.dwp.JSA.income.income_disregard_lone_parent -**Label:** Jobseeker's Allowance income disregard (lone parent) - -Threshold in income for a lone parent, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.JSA.contrib.earn_disregard -**Label:** Jobseeker's Allowance earnings disregard - -Threshold in earnings, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.JSA.contrib.amount_18_24 -**Label:** Income-based JSA (18-24) - -Income-based Jobseeker's Allowance for persons aged 18-24 - -**Type:** float - -**Current value:** 61.05 - ---- - -### gov.dwp.JSA.contrib.pension_disregard -**Label:** Jobseeker's Allowance pension disregard - -Threshold in occupational and personal pensions, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.JSA.contrib.amount_over_25 -**Label:** Contributory JSA (over 25) - -Contributory Jobseeker's Allowance for persons aged over 25 - -**Type:** float - -**Current value:** 77.0 - ---- - -### gov.dwp.JSA.hours.couple -**Label:** Jobseeker's Allowance hours requirement (couple) - -Hours requirement for joint claimants of Jobseeker's Allowance - -**Type:** int - -**Current value:** 24 - ---- - -### gov.dwp.JSA.hours.single -**Label:** Jobseeker's Allowance hours requirement (single) - -Hours requirement for single claimants of Jobseeker's Allowance - -**Type:** int - -**Current value:** 16 - ---- - -### gov.dwp.universal_credit.takeup_rate -**Label:** Universal Credit take-up rate - -Take-up rate of Universal Credit. - -**Type:** float - -**Current value:** 0.55 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.SINGLE_YOUNG -**Label:** Universal Credit single amount (under 25) - -Standard allowance for single claimants under 25 - -**Type:** float - -**Current value:** 316.98 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.SINGLE_OLD -**Label:** Universal Credit single amount (over 25) - -Standard allowance for single claimants over 25. - -**Type:** float - -**Current value:** 400.14 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.COUPLE_YOUNG -**Label:** Universal Credit couple amount (both under 25) - -Standard allowance for couples where both are under 25. - -**Type:** float - -**Current value:** 497.55 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.COUPLE_OLD -**Label:** Universal Credit couple amount (one over 25) - -Standard allowance for couples where one is over 25. - -**Type:** float - -**Current value:** 628.1 - ---- - -### gov.dwp.universal_credit.standard_allowance.claimant_type.age_threshold -**Label:** Universal Credit standard allowance claimant type age threshold - -A higher Universal Credit standard allowance is provided to claimants over this age threshold. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.dwp.universal_credit.rollout_rate -**Label:** Universal Credit roll-out rate - -Roll-out rate of Universal Credit - -**Type:** int - -**Current value:** 1 - ---- - -### gov.dwp.universal_credit.elements.housing.non_dep_deduction.age_threshold -**Label:** Universal Credit housing element non-dependent deduction age threshold - -The non-dependent deduction is limited to filers over this age threshold under the housing element of the Universal Credit. - -**Type:** int - -**Current value:** 21 - ---- - -### gov.dwp.universal_credit.elements.housing.non_dep_deduction.amount -**Label:** Universal Credit housing element non-dependent deduction amount - -Non-dependent deduction amount for the housing element of the Universal Credit. - -**Type:** float - -**Current value:** 93.77881959910913 - ---- - -### gov.dwp.universal_credit.elements.childcare.coverage_rate -**Label:** Universal Credit childcare element coverage rate - -Proportion of childcare costs covered by Universal Credit. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.dwp.universal_credit.elements.disabled.amount -**Label:** Universal Credit disability element amount - -Limited capability for work-related activity element amount under the Universal Credit. - -**Type:** float - -**Current value:** 423.27 - ---- - -### gov.dwp.universal_credit.elements.carer.amount -**Label:** Universal Credit carer element amount - -Carer element amount under the Universal Credit. - -**Type:** float - -**Current value:** 201.68 - ---- - -### gov.dwp.universal_credit.elements.child.limit.child_count -**Label:** Universal Credit child element child limit - -Limit on the number of children for which the Universal Credit child element is payable. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.dwp.universal_credit.elements.child.limit.start_year -**Label:** Universal Credit child element start year - -A higher Universal Credit child element is payable for the first child if the child is born before this year. - -**Type:** int - -**Current value:** 2017 - ---- - -### gov.dwp.universal_credit.elements.child.first.higher_amount -**Label:** Universal Credit child element higher amount - -Child element for the first child in Universal Credit. - -**Type:** float - -**Current value:** 339.0 - ---- - -### gov.dwp.universal_credit.elements.child.amount -**Label:** Universal Credit child element amount - -The following child element is provided under the Universal Credit. - -**Type:** float - -**Current value:** 292.81 - ---- - -### gov.dwp.universal_credit.elements.child.disabled.amount -**Label:** Universal Credit disabled child element amount - -The following disabled child element is provided under the Universal Credit. - -**Type:** float - -**Current value:** 158.76 - ---- - -### gov.dwp.universal_credit.elements.child.severely_disabled.amount -**Label:** Unversal Credit severely disabled element amount - -Severely disabled child element of Universal Credit. - -**Type:** float - -**Current value:** 495.87 - ---- - -### gov.dwp.universal_credit.means_test.reduction_rate -**Label:** Universal Credit earned income reduction rate - -Rate at which Universal Credit is reduced with earnings above the work allowance. - -**Type:** float - -**Current value:** 0.55 - ---- - -### gov.dwp.universal_credit.means_test.work_allowance.with_housing -**Label:** Universal Credit Work Allowance with housing support - -Universal Credit Work Allowance if household receives housing support. - -**Type:** int - -**Current value:** 411 - ---- - -### gov.dwp.universal_credit.means_test.work_allowance.without_housing -**Label:** Universal Credit Work Allowance without housing support - -Universal Credit Work Allowance if household does not receive housing support. - -**Type:** int - -**Current value:** 684 - ---- - -### gov.dwp.universal_credit.work_requirements.default_expected_hours -**Label:** Universal Credit minimum income floor expected weekly hours worked - -Default expected hours worked per week for Universal Credit. - -**Type:** int - -**Current value:** 35 - ---- - -### gov.dwp.tax_credits.child_tax_credit.elements.dis_child_element -**Label:** CTC disabled child element - -Child Tax Credit disabled child element - -**Type:** int - -**Current value:** 4240 - ---- - -### gov.dwp.tax_credits.child_tax_credit.elements.severe_dis_child_element -**Label:** CTC severely disabled child element - -Child Tax Credit severely disabled child element - -**Type:** float - -**Current value:** 1584.935794542536 - ---- - -### gov.dwp.tax_credits.child_tax_credit.elements.child_element -**Label:** CTC child element - -Child Tax Credit child element - -**Type:** int - -**Current value:** 3513 - ---- - -### gov.dwp.tax_credits.child_tax_credit.takeup -**Label:** Child Tax Credit take-up rate - -Share of eligible Child Tax Credit recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.tax_credits.min_benefit -**Label:** Tax credits minimum benefit - -Tax credit amount below which tax credits are not paid - -**Type:** int - -**Current value:** 26 - ---- - -### gov.dwp.tax_credits.means_test.income_threshold -**Label:** Tax Credits income threshold - -Yearly income threshold after which the Child Tax Credit is reduced for benefit units claiming Working Tax Credit - -**Type:** int - -**Current value:** 8080 - ---- - -### gov.dwp.tax_credits.means_test.income_threshold_CTC_only -**Label:** CTC income threshold - -Income threshold for benefit units only entitled to Child Tax Credit - -**Type:** int - -**Current value:** 20335 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.childcare_1 -**Label:** Working Tax Credit childcare element one child amount - -Working Tax Credit childcare element for one child - -**Type:** float - -**Current value:** 268.52777777777777 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.couple -**Label:** WTC couple element - -Working Tax Credit couple element - -**Type:** int - -**Current value:** 2542 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.lone_parent -**Label:** WTC lone parent element - -Working Tax Credit lone parent element - -**Type:** int - -**Current value:** 2542 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.childcare_2 -**Label:** Working Tax Credit childcare element two or more children amount - -Working Tax Credit childcare element for two or more children - -**Type:** float - -**Current value:** 460.33333333333326 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.severely_disabled -**Label:** WTC severe disability element - -Working Tax Credit severe disability element - -**Type:** int - -**Current value:** 1734 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.disabled -**Label:** WTC disability element - -Working Tax Credit disability element - -**Type:** int - -**Current value:** 4001 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.basic -**Label:** WTC basic element - -Working Tax Credit basic element - -**Type:** int - -**Current value:** 2476 - ---- - -### gov.dwp.tax_credits.working_tax_credit.takeup -**Label:** Working Tax Credit take-up rate - -Share of eligible Working Tax Credit recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.state_pension.basic_state_pension.amount -**Label:** basic State Pension amount - -Weekly amount paid to recipients of the basic State Pension. - -**Type:** float - -**Current value:** 172.38 - ---- - -### gov.dwp.state_pension.new_state_pension.active -**Label:** New State Pension active - -Individuals who reach State Pension age while this parameter is true receive the New State Pension. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dwp.state_pension.new_state_pension.amount -**Label:** New State Pension amount - -Weekly amount paid to recipients of the New State Pension. - -**Type:** float - -**Current value:** 224.96 - ---- - -### gov.dwp.pip.mobility.enhanced -**Label:** PIP (mobility) (enhanced rate) - -Enhanced rate for Personal Independence Payment (mobility component). - -**Type:** float - -**Current value:** 77.04 - ---- - -### gov.dwp.pip.mobility.standard -**Label:** PIP (mobility) (standard rate) - -Standard rate for Personal Independence Payment (mobility component). - -**Type:** float - -**Current value:** 29.19 - ---- - -### gov.dwp.pip.daily_living.enhanced -**Label:** PIP (daily living) (enhanced rate) - -Enhanced rate for Personal Independence Payment (daily living component). - -**Type:** float - -**Current value:** 110.4 - ---- - -### gov.dwp.pip.daily_living.standard -**Label:** PIP (daily living) (standard rate) - -Standard rate for Personal Independence Payment (daily living component). - -**Type:** float - -**Current value:** 73.89 - ---- - -### gov.dwp.ESA.income.income_disregard_single -**Label:** Income-based ESA single person earnings disregard - -Threshold for income for a single person, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.ESA.income.couple -**Label:** Income-based ESA personal allowance (couples) - -Income-based Employment and Support Allowance personal allowance for couples - -**Type:** float - -**Current value:** 116.8 - ---- - -### gov.dwp.ESA.income.earn_disregard -**Label:** Income-based ESA earnings disregard - -Earnings threshold above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.ESA.income.amount_18_24 -**Label:** Income-based ESA personal allowance (18-24) - -Income-based Employment and Support Allowance personal allowance for persons aged 18-24 - -**Type:** float - -**Current value:** 58.9 - ---- - -### gov.dwp.ESA.income.pension_disregard -**Label:** Income-based ESA pension disregard - -Threshold for occupational and personal pensions, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.ESA.income.income_disregard_couple -**Label:** Income-based ESA couple earnings disregard - -Threshold for income for a couple, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.ESA.income.amount_over_25 -**Label:** Income-based ESA personal allowance (over 25) - -Income-based Employment and Support Allowance personal allowance for persons aged over 25 - -**Type:** float - -**Current value:** 74.35 - ---- - -### gov.dwp.ESA.income.income_disregard_lone_parent -**Label:** Income-based ESA lone parent earnings disregard - -Threshold for income for a lone parent, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.IIDB.maximum -**Label:** Industrial Injuries Disablement Benefit maximum - -Maximum weekly Industrial Injuries Disablement Benefit; amount varies in 10% increments - -**Type:** int - -**Current value:** 182 - ---- - -### gov.dwp.benefit_cap.single.in_london -**Label:** Benefit cap (single claimants, in London) - -**Type:** int - -**Current value:** 17255 - ---- - -### gov.dwp.benefit_cap.single.outside_london -**Label:** Benefit cap (single claimants, outside London) - -**Type:** int - -**Current value:** 15004 - ---- - -### gov.dwp.benefit_cap.non_single.in_london -**Label:** Benefit cap (family claimants, in London) - -**Type:** int - -**Current value:** 25753 - ---- - -### gov.dwp.benefit_cap.non_single.outside_london -**Label:** Benefit cap (family claimants, outside London) - -**Type:** int - -**Current value:** 22020 - ---- - -### gov.dwp.attendance_allowance.lower -**Label:** Attendance Allowance (lower rate) - -Lower Attendance Allowance amount. - -**Type:** float - -**Current value:** 73.89 - ---- - -### gov.dwp.attendance_allowance.higher -**Label:** Attendance Allowance (higher rate) - -Upper Attendance Allowance amount. - -**Type:** float - -**Current value:** 110.4 - ---- - -### gov.dwp.LHA.means_test.withdrawal_rate -**Label:** Housing Benefit (LHA) withdrawal rate - -Withdrawal rate of Housing Benefit (LHA) - -**Type:** float - -**Current value:** 0.65 - ---- - -### gov.dwp.LHA.means_test.worker_income_disregard -**Label:** Housing Benefit (LHA) worker income disregard - -Additional disregard in income for meeting the 16/30 hours requirement - -**Type:** int - -**Current value:** 30 - ---- - -### gov.dwp.LHA.means_test.income_disregard_single -**Label:** Housing Benefit (LHA) income disregard (single) - -Threshold in income for a single person, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.LHA.means_test.earn_disregard -**Label:** Housing Benefit (LHA) earnings disregard - -Threshold earnings, above which the Housing Benefit (LHA) is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.LHA.means_test.income_disregard_lone -**Label:** Housing Benefit (LHA) income disregard (lone parent) - -Threshold in income for a lone parent, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.LHA.means_test.worker_hours -**Label:** LHA worker hours requirement - -Default hours requirement for the Working-Tax-Credit-related worker element of Housing Benefit (LHA) - -**Type:** int - -**Current value:** 30 - ---- - -### gov.dwp.LHA.means_test.pension_disregard -**Label:** Housing Benefit (LHA) pension disregard - -Threshold in occupational and personal pensions, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.LHA.means_test.income_disregard_couple -**Label:** Housing Benefit (LHA) income disregard (couple) - -Threshold in income for a couple, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.LHA.means_test.income_disregard_lone_parent -**Label:** Housing Benefit (LHA) income disregard (lone parent) - -Threshold in income for a lone parent, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.LHA.freeze -**Label:** LHA freeze - -While this parameter is true, LHA rates are frozen in cash terms. - -**Type:** bool - -**Current value:** False - ---- - -### gov.dwp.LHA.percentile -**Label:** LHA percentile - -Local Housing Allowance rates are set at this percentile of private rents in the family's Broad Rental Market Area. This parameter does not apply if LHA is frozen. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.dwp.income_support.amounts.amount_couples_age_gap -**Label:** Income Support applicable amount (couples, one under 18, one over 25) - -Income Support applicable amount for couples in which one is under 18 and one over 25 - -**Type:** float - -**Current value:** 102.57477522477521 - ---- - -### gov.dwp.income_support.amounts.amount_16_24 -**Label:** Income Support applicable amount (single, 18-24) - -Income Support applicable amount for single persons aged 18-24 - -**Type:** float - -**Current value:** 81.25964035964034 - ---- - -### gov.dwp.income_support.amounts.amount_couples_16_17 -**Label:** Income Support applicable amount (couples, both under 18) - -Income Support applicable amount for couples both aged under 18 - -**Type:** float - -**Current value:** 81.25964035964034 - ---- - -### gov.dwp.income_support.amounts.amount_lone_over_18 -**Label:** Income Support applicable amount (lone parent, over 18) - -Income Support applicable amount for lone parents aged over 18 - -**Type:** float - -**Current value:** 102.57477522477521 - ---- - -### gov.dwp.income_support.amounts.amount_couples_over_18 -**Label:** Income Support applicable amount (couples, both over 18) - -Income Support applicable amount for couples aged over 18 - -**Type:** float - -**Current value:** 161.1396603396603 - ---- - -### gov.dwp.income_support.amounts.amount_lone_16_17 -**Label:** Income Support applicable amount (lone parent, under 18) - -Income Support applicable amount for lone parents aged under 18 - -**Type:** float - -**Current value:** 81.25964035964034 - ---- - -### gov.dwp.income_support.amounts.amount_over_25 -**Label:** Income Support applicable amount (single, over 25) - -Income Support applicable amount for single persons aged over 25 - -**Type:** float - -**Current value:** 102.57477522477521 - ---- - -### gov.dwp.income_support.means_test.income_disregard_single -**Label:** Income Support income disregard (single) - -Threshold in income for a single person, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.income_support.means_test.earn_disregard -**Label:** Income Support earnings disregard - -Threshold in earnings, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.income_support.means_test.pension_disregard -**Label:** Income Support pension disregard - -Threshold in occupational and personal pensions, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.income_support.means_test.income_disregard_couple -**Label:** Income Support income disregard (couples) - -Threshold in income for a couple, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.income_support.means_test.income_disregard_lone_parent -**Label:** Income Support income disregard (lone parent) - -Threshold in income for a lone parent, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.income_support.takeup -**Label:** Income Support take-up rate - -Share of eligible Income Support recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.pension_credit.income.pension_contributions_deduction -**Label:** Pension Credit pension contribution deduction - -Percentage of pension contributions which are deductible from Pension Credit income. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.dwp.pension_credit.savings_credit.rate.phase_in -**Label:** Savings Credit phase-in rate - -The rate at which Savings Credit increases for income over the Savings Credit threshold. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.dwp.pension_credit.savings_credit.rate.phase_out -**Label:** Savings Credit phase-out rate - -The rate at which Savings Credit decreases for income over the Minimum Guarantee. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.dwp.pension_credit.savings_credit.threshold.SINGLE -**Label:** Pension Credit savings credit income threshold (single) - -**Type:** float - -**Current value:** 193.02 - ---- - -### gov.dwp.pension_credit.savings_credit.threshold.COUPLE -**Label:** Pension Credit savings credit income threshold (couple) - -**Type:** float - -**Current value:** 306.34 - ---- - -### gov.dwp.pension_credit.guarantee_credit.severe_disability.addition -**Label:** Pension Credit severe disability addition - -Addition to the Minimum Guarantee for each severely disabled adult. - -**Type:** float - -**Current value:** 76.91926163723917 - ---- - -### gov.dwp.pension_credit.guarantee_credit.carer.addition -**Label:** Pension Credit carer addition - -Addition to the Minimum Guarantee for each claimant who is a carer. - -**Type:** float - -**Current value:** 46.37 - ---- - -### gov.dwp.pension_credit.guarantee_credit.child.disability.severe.addition -**Label:** Pension Credit severely disabled child addition - -Addition to the Minimum Guarantee for each severely disabled child (above the child addition). - -**Type:** float - -**Current value:** 105.82494382022473 - ---- - -### gov.dwp.pension_credit.guarantee_credit.child.disability.addition -**Label:** Pension Credit disabled child addition - -Addition to the Minimum Guarantee for each disabled child (above the child addition). - -**Type:** float - -**Current value:** 33.89324237560192 - ---- - -### gov.dwp.pension_credit.guarantee_credit.child.addition -**Label:** Pension Credit child addition - -Addition to the Minimum Guarantee for each child. - -**Type:** float - -**Current value:** 62.45533707865169 - ---- - -### gov.dwp.pension_credit.takeup -**Label:** Pension Credit take-up rate - -Share of eligible Pension Credit recipients that participate. - -**Type:** float - -**Current value:** 0.7 - ---- - -### gov.obr.inflation.food_beverages_and_tobacco -**Label:** Food and beverages inflation - -OBR CPI category inflation projection for food, beverages and tobacco. - -**Type:** float - -**Current value:** 1.352 - ---- - -### gov.obr.inflation.utilities -**Label:** Utilities inflation - -OBR CPI category inflation projection for utilities - -**Type:** float - -**Current value:** 1.365 - ---- - -### gov.dcms.bbc.tv_licence.evasion_rate -**Label:** TV licence fee evasion rate - -Percent of households legally required to purchase a TV licence who evade the licence fee. - -**Type:** float - -**Current value:** 0.0725 - ---- - -### gov.dcms.bbc.tv_licence.discount.blind.discount -**Label:** Blind TV Licence discount - -Percentage discount for qualifying blind licence holders. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.dcms.bbc.tv_licence.discount.aged.discount -**Label:** Aged TV Licence discount - -Percentage discount for qualifying aged households. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.dcms.bbc.tv_licence.discount.aged.min_age -**Label:** Aged TV Licence discounted minimum age - -Minimum age required to qualify for a TV licence discount. - -**Type:** int - -**Current value:** 75 - ---- - -### gov.dcms.bbc.tv_licence.discount.aged.must_claim_pc -**Label:** Aged TV licence Pension Credit requirement - -Whether aged individuals must claim Pension Credit in order to qualify for a free TV licence. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dcms.bbc.tv_licence.colour -**Label:** TV Licence fee - -Full TV licence for a colour TV, before any discounts are applied. - -**Type:** float - -**Current value:** 159.0 - ---- - -### gov.dcms.bbc.tv_licence.tv_ownership -**Label:** TV ownership rate - -Percentage of households which own a TV. - -**Type:** float - -**Current value:** 0.9544 - ---- - -### gov.hmrc.fuel_duty.petrol_and_diesel -**Label:** Fuel duty rate (petrol and diesel) - -Fuel duty rate per litre of petrol and diesel. - -**Type:** float - -**Current value:** 0.5795 - ---- - -### gov.hmrc.national_insurance.class_4.rates.additional -**Label:** NI Class 4 additional rate - -The additional National Insurance rate paid above the Upper Profits Limit for self-employed profits - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.hmrc.national_insurance.class_4.rates.main -**Label:** NI Class 4 main rate - -The main National Insurance rate paid between the Lower and Upper Profits Limits for self-employed profits - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.hmrc.national_insurance.class_4.thresholds.upper_profits_limit -**Label:** NI Upper Profits Limit - -The Upper Profits Limit is the threshold at which self-employed earners pay the additional Class 4 National Insurance rate - -**Type:** int - -**Current value:** 50270 - ---- - -### gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit -**Label:** NI Lower Profits Limit - -The Lower Profits Limit is the threshold at which self-employed earners pay the main Class 4 National Insurance rate - -**Type:** float - -**Current value:** 12887.282850779511 - ---- - -### gov.hmrc.national_insurance.class_2.flat_rate -**Label:** NI Class 2 Flat Rate - -Flat rate National Insurance contribution for self-employed earners - -**Type:** int - -**Current value:** 0 - ---- - -### gov.hmrc.national_insurance.class_2.small_profits_threshold -**Label:** NI Class 2 Small Profits Threshold - -Small profits National Insurance threshold for self-employed earners - -**Type:** float - -**Current value:** 7453.631621187801 - ---- - -### gov.hmrc.national_insurance.class_1.rates.employee.additional -**Label:** NI Class 1 additional rate - -The Class 1 National Insurance additional rate is paid on employment earnings above the Upper Earnings Limit - -**Type:** float - -**Current value:** 0.0185 - ---- - -### gov.hmrc.national_insurance.class_1.rates.employee.main -**Label:** NI Class 1 main rate - -The Class 1 National Insurance main rate is paid on employment earnings between the Primary Threshold and the Upper Earnings Limit - -**Type:** float - -**Current value:** 0.08 - ---- - -### gov.hmrc.national_insurance.class_1.rates.employer -**Label:** NI Employer rate - -National Insurance contribution rate by employers on earnings above the Secondary Threshold - -**Type:** float - -**Current value:** 0.138 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.lower_earnings_limit -**Label:** NI Lower Earnings Limit - -Lower earnings limit for National Insurance - -**Type:** int - -**Current value:** 123 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.primary_threshold -**Label:** NI Primary Threshold - -The Primary Threshold is the lower bound for the main rate of Class 1 National Insurance - -**Type:** float - -**Current value:** 241.73 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold -**Label:** NI Secondary Threshold - -Secondary threshold for National Insurance - -**Type:** int - -**Current value:** 175 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.upper_earnings_limit -**Label:** NI Upper Earnings Limit - -The Upper Earnings Limit is the upper bound for the main rate of Class 1 National Insurance - -**Type:** float - -**Current value:** 966.73 - ---- - -### gov.hmrc.stamp_duty.abolish -**Label:** Abolish SDLT - -Abolish Stamp Duty Land Tax. - -**Type:** bool - -**Current value:** False - ---- - -### gov.hmrc.stamp_duty.residential.purchase.additional.min -**Label:** Stamp Duty secondary residence minimum value - -Minimum value for taxability of additional residential property - -**Type:** int - -**Current value:** 40000 - ---- - -### gov.hmrc.stamp_duty.residential.purchase.main.first.max -**Label:** Stamp Duty first home value limit - -Maximum value for a first-property purchase to receive the Stamp Duty relief for first-time buyers. Increasing this value will underestimate the number of claims for FTBR, as the model will not add new claims. - -**Type:** int - -**Current value:** 500000 - ---- - -### gov.hmrc.stamp_duty.property_sale_rate -**Label:** percentage of properties sold - -This percentage of properties are sold every year. - -**Type:** float - -**Current value:** 0.045 - ---- - -### gov.hmrc.income_tax.allowances.property_allowance -**Label:** Property Allowance - -Amount of income from property untaxed per year - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.hmrc.income_tax.allowances.marriage_allowance.takeup_rate -**Label:** Marriage Allowance take-up rate - -Percentage of eligible couples who claim Marriage Allowance. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.hmrc.income_tax.allowances.marriage_allowance.max -**Label:** Marriage Allowance maximum percentage - -Maximum Marriage Allowance taxable income reduction, as a percentage of the full Personal Allowance - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.hmrc.income_tax.allowances.marriage_allowance.rounding_increment -**Label:** Marriage Allowance rounding increment - -The Marriage Allowance is rounded up by this increment. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.hmrc.income_tax.allowances.personal_allowance.reduction_rate -**Label:** Personal Allowance phase-out rate - -Reduction rate for the Personal Allowance - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.hmrc.income_tax.allowances.personal_allowance.amount -**Label:** Personal allowance - -The Personal Allowance is deducted from general income - -**Type:** int - -**Current value:** 12570 - ---- - -### gov.hmrc.income_tax.allowances.personal_allowance.maximum_ANI -**Label:** Personal Allowance phase-out threshold - -Maximum adjusted net income before the Personal Allowance is reduced - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.hmrc.income_tax.allowances.trading_allowance -**Label:** Trading Allowance - -Amount of trading income untaxed per year - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.hmrc.income_tax.allowances.dividend_allowance -**Label:** Dividend Allowance - -Amount of dividend income untaxed per year - -**Type:** int - -**Current value:** 500 - ---- - -### gov.hmrc.income_tax.rates.uk[0].rate -**Label:** Basic rate - -The basic rate is the first of three tax brackets on all income, after allowances are deducted - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.income_tax.rates.uk[1].threshold -**Label:** Higher rate threshold - -The lower threshold for the higher rate of income tax (and therefore the upper threshold of the basic rate) - -**Type:** int - -**Current value:** 37700 - ---- - -### gov.hmrc.income_tax.rates.uk[1].rate -**Label:** Higher rate - -The higher rate is the middle tax bracket on earned income. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.hmrc.income_tax.rates.uk[2].threshold -**Label:** Additional rate threshold - -The lower threshold for the additional rate - -**Type:** int - -**Current value:** 125140 - ---- - -### gov.hmrc.income_tax.rates.uk[2].rate -**Label:** Additional rate - -The additional rate is the highest tax bracket, with no upper bound - -**Type:** float - -**Current value:** 0.45 - ---- - -### gov.hmrc.income_tax.rates.uk[3].threshold -**Label:** Extra tax bracket threshold - -The lower threshold for the extra bracket rate. - -**Type:** int - -**Current value:** 10000000 - ---- - -### gov.hmrc.income_tax.rates.uk[3].rate -**Label:** Extra tax bracket rate - -An extra tax bracket. - -**Type:** float - -**Current value:** 0.45 - ---- - -### gov.hmrc.income_tax.rates.dividends[0].threshold -**Label:** Dividends basic rate threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.hmrc.income_tax.rates.dividends[0].rate -**Label:** Dividends basic rate - -**Type:** float - -**Current value:** 0.0875 - ---- - -### gov.hmrc.income_tax.rates.dividends[1].threshold -**Label:** Dividends higher rate threshold - -**Type:** int - -**Current value:** 37500 - ---- - -### gov.hmrc.income_tax.rates.dividends[1].rate -**Label:** Dividends higher rate - -**Type:** float - -**Current value:** 0.3375 - ---- - -### gov.hmrc.income_tax.rates.dividends[2].threshold -**Label:** Dividends additional rate threshold - -**Type:** int - -**Current value:** 150000 - ---- - -### gov.hmrc.income_tax.rates.dividends[2].rate -**Label:** Dividends additional rate - -**Type:** float - -**Current value:** 0.3935 - ---- - -### gov.hmrc.income_tax.rates.dividends[3].threshold -**Label:** Extra dividend tax bracket threshold - -The lower threshold for the extra dividend bracket rate. - -**Type:** int - -**Current value:** 10000000 - ---- - -### gov.hmrc.income_tax.rates.dividends[3].rate -**Label:** Extra dividend tax bracket rate - -An extra dividend tax bracket. - -**Type:** float - -**Current value:** 0.3935 - ---- - -### gov.hmrc.income_tax.charges.CB_HITC.phase_out_end -**Label:** Child Benefit Tax Charge phase-out end - -Income after which the Child Benefit is fully phased out - -**Type:** int - -**Current value:** 80000 - ---- - -### gov.hmrc.income_tax.charges.CB_HITC.phase_out_start -**Label:** Child Benefit Tax Charge phase-out threshold - -Income after which the Child Benefit phases out - -**Type:** int - -**Current value:** 60000 - ---- - -### gov.hmrc.tax_free_childcare.minimum_weekly_hours -**Label:** Tax-free childcare weekly work hours minimum - -HMRC limits tax-free childcare to benefit units in which each spouse earns at least the product of their minimum wage and this number of hours per week. - -**Type:** int - -**Current value:** 16 - ---- - -### gov.hmrc.tax_free_childcare.income.income_limit -**Label:** Tax-free childcare maximum adjusted income threshold - -HMRC limits tax-free childcare eligibility to households where individual adjusted income does not exceed this yearly threshold. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.hmrc.tax_free_childcare.age.disability -**Label:** Tax-free childcare disability age limit - -HMRC extends the tax-free childcare program eligibility to children with disabilities up to this age threshold. - -**Type:** int - -**Current value:** 17 - ---- - -### gov.hmrc.tax_free_childcare.age.standard -**Label:** Tax-free childcare standard age limit - -HMRC extends the tax-free childcare program eligibility to children up to this age threshold. - -**Type:** int - -**Current value:** 12 - ---- - -### gov.hmrc.tax_free_childcare.contribution.standard_child -**Label:** Tax-free childcare standard yearly limit - -HMRC provides tax-free childcare contribution up to this yearly amount for households with children under standard eligibility. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.hmrc.tax_free_childcare.contribution.disabled_child -**Label:** Tax-free childcare disabled child yearly limit - -HMRC provides tax-free childcare contribution up to this yearly amount for households with disabled children. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.hmrc.vat.standard_rate -**Label:** VAT standard rate - -The highest VAT rate, applicable to most goods and services. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.vat.reduced_rate -**Label:** VAT reduced rate - -A reduced rate of VAT applicable to select goods and services (domestic fuel and power). - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.hmrc.cgt.additional_rate -**Label:** Capital Gains Tax additional rate - -Capital gains tax rate on additional rate taxpayers. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.cgt.annual_exempt_amount -**Label:** Annual Exempt Amount - -Annual Exempt Amount for individuals. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 3075.723830734966 - ---- - -### gov.hmrc.cgt.higher_rate -**Label:** Capital Gains Tax higher rate - -Capital gains tax rate on higher rate taxpayers. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.cgt.basic_rate -**Label:** Capital Gains Tax basic rate - -Capital gains tax rate on basic rate taxpayers. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.hmrc.child_benefit.amount.eldest -**Label:** Child Benefit (eldest) - -Child Benefit amount for the eldest or only child - -**Type:** float - -**Current value:** 26.04 - ---- - -### gov.hmrc.child_benefit.amount.additional -**Label:** Child Benefit (additional) - -Child Benefit amount for each additional child - -**Type:** float - -**Current value:** 17.24 - ---- - -### gov.hmrc.child_benefit.opt_out_rate -**Label:** Child Benefit HITC-liable opt-out rate - -Percentage of fully HITC-liable families who opt out of Child Benefit. - -**Type:** float - -**Current value:** 0.23 - ---- - -### gov.hmrc.pensions.pension_contributions_relief_age_limit -**Label:** pension contributions relief age limit - -The pensions contributions relief is limited to filers below this age threshold. - -**Type:** int - -**Current value:** 75 - ---- - -### gov.treasury.cost_of_living_support.pensioners.amount -**Label:** Payment to pensioner households - -Payment to pensioner households receiving benefits. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.cost_of_living_support.means_tested_households.amount -**Label:** Payment to households on means-tested benefits - -Payment to households on means-tested benefits. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.cost_of_living_support.disabled.amount -**Label:** Payment to households on disability benefits - -Payment to households receiving disability benefits. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.energy_bills_rebate.energy_bills_credit -**Label:** Energy bills credit - -Credit on energy bills paid to households. This is modeled as a flat transfer to households. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.energy_bills_rebate.council_tax_rebate.amount -**Label:** Council Tax rebate amount - -Council Tax rebate paid to households in qualifying Council Tax bands under the Energy Bills Rebate. - -**Type:** int - -**Current value:** 0 - ---- - -### calibration.uprating.equity_prices -**Label:** Equity prices - -Equity prices (OBR forecast). - -**Type:** int - -**Current value:** 4291 - ---- - -### calibration.programs.fuel_duty.revenue -**Label:** Fuel duty revenues - -Fuel duty revenues. - -**Type:** int - -**Current value:** 26621382708 - ---- - -### calibration.programs.capital_gains.total -**Label:** Total capital gains - -Total capital gains by individuals. - -**Type:** int - -**Current value:** 79881000000 - ---- - -### calibration.programs.capital_gains.tax -**Label:** Capital Gains Tax revenue - -Capital gains tax revenue. - -**Type:** int - -**Current value:** 16200000000 - ---- - -### household.wealth.financial_assets -**Label:** Financial assets - -Financial assets of households. - -**Type:** int - -**Current value:** 7300000000000 - ---- - -### household.consumption.fuel.prices.diesel -**Label:** Price of diesel per litre - -Average price of diesel per litre. - -**Type:** float - -**Current value:** 1.52 - ---- - -### household.consumption.fuel.prices.petrol -**Label:** Price of unleaded petrol per litre - -Average price of unleaded petrol per litre, including fuel duty. - -**Type:** float - -**Current value:** 1.44 - ---- - -### household.poverty.absolute_poverty_threshold_bhc -**Label:** Absolute poverty threshold, before housing costs - -Absolute poverty threshold for equivalised household net income, before housing costs - -**Type:** float - -**Current value:** 367.36108108108107 - ---- - -### household.poverty.absolute_poverty_threshold_ahc -**Label:** Absolute poverty threshold, after housing costs - -Absolute poverty threshold for equivalised household net income, after housing costs. - -**Type:** float - -**Current value:** 314.75567567567566 - ---- - -### gov.indices.private_rent_index -**Label:** Private rental prices index - -Index of private rental prices across the UK. - -**Type:** float - -**Current value:** 128.5577828397874 - ---- - -### gov.ons.rpi -**Label:** RPI - -Retail Price Index (RPI) is a measure of inflation published by the Office for National Statistics. - -**Type:** float - -**Current value:** 377.5 - ---- - -### gov.social_security_scotland.pawhp.amount.lower -**Label:** PAWHP lower amount - -**Type:** float - -**Current value:** 205.04825538233115 - ---- - -### gov.social_security_scotland.pawhp.amount.higher -**Label:** PAWHP lower amount - -**Type:** float - -**Current value:** 307.5723830734967 - ---- - -### gov.social_security_scotland.pawhp.amount.base -**Label:** PAWHP base payment - -Amount paid to non-benefit-claiming pensioners for the PAWHP. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.social_security_scotland.pawhp.eligibility.state_pension_age_requirement -**Label:** PAWHP State Pension Age requirement - -Whether individuals must be State Pension Age to qualify for the PAWHP. - -**Type:** bool - -**Current value:** True - ---- - -### gov.social_security_scotland.pawhp.eligibility.require_benefits -**Label:** PAWHP means-tested benefits requirement - -Whether receipt of means-tested benefits is required to qualify for the Winter Fuel Payment. - -**Type:** bool - -**Current value:** True - ---- - -### gov.social_security_scotland.pawhp.eligibility.higher_age_requirement -**Label:** Winter Fuel Payment higher amount age requirement - -Age requirement to qualify for the higher PAWHP. - -**Type:** int - -**Current value:** 80 - ---- - -### gov.ofgem.energy_price_guarantee -**Label:** Energy price guarantee - -The capped default tariff energy price level for Ofgem's central household (2,900kWh per annum in electricity consumption, 12,000kWh per annum for gas). The Energy Price Cap subsidy reduces household bills to this level. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.ofgem.energy_price_cap -**Label:** Ofgem energy price level - -The default tariff energy price for Ofgem's central household (2,900kWh per annum in electricity consumption, 12,000kWh per annum for gas). The Energy Price Cap subsidy reduces household energy bills by the difference between this amount and the subsity target parameter level. - -**Type:** int - -**Current value:** 2389 - ---- - -### gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change -**Label:** Effective wage rate change LSR bound - -Effective wage rate changes larger than this will be capped at this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.simulation.labor_supply_responses.bounds.income_change -**Label:** Income change LSR bound - -Net income changes larger than this will be capped at this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.simulation.labor_supply_responses.substitution_elasticity -**Label:** Substitution elasticity of labor supply - -Percent change in labor supply given a 1% change in the effective marginal wage. This applies only to employment income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.income_elasticity -**Label:** Income elasticity of labor supply - -Percent change in labor supply given a 1% change in disposable income. This applies only to employment income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.marginal_tax_rate_adults -**Label:** Number of adults to simulate a marginal tax rate for - -Number of adults to simulate a marginal tax rate for, in each household. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.simulation.capital_gains_responses.elasticity -**Label:** capital gains elasticity - -Elasticity of capital gains with respect to the capital gains marginal tax rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.private_school_vat.private_school_vat_basis -**Label:** private school tuition VAT basis - -Effective percentage of private school tuition subject to VAT - -**Type:** float - -**Current value:** 0.75 - ---- - -### gov.simulation.private_school_vat.private_school_factor -**Label:** student polulation adjustment factor - -student polulation adjustment factor, tested by Vahid - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.simulation.private_school_vat.private_school_fees -**Label:** mean annual private school fee - -Mean annual private school fee - -**Type:** float - -**Current value:** 17210.75043630017 - ---- - -### gov.revenue_scotland.lbtt.residential.additional_residence_surcharge -**Label:** LBTT fixed rate increase for secondary residences - -Increase in percentage rates for non-primary residence purchases. - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.benefit_uprating_cpi -**Label:** Benefit uprating index - -Most recent September CPIH index value, updated for each uprating occurrence (2005=100) - -**Type:** float - -**Current value:** 153.44444444444443 - ---- - -### gov.contrib.conservatives.pensioner_personal_allowance -**Label:** personal allowance for pensioners - -Personal Allowance for pensioners. - -**Type:** int - -**Current value:** 12570 - ---- - -### gov.contrib.conservatives.cb_hitc_household -**Label:** household-based High Income Tax Charge - -Child Benefit HITC assesses the joint income of a household to determine the amount of Child Benefit that is repayable. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.cps.marriage_tax_reforms.expanded_ma.remove_income_condition -**Label:** Remove MA high-income restrictions - -Allow higher and additional rate taxpayers to claim the Marriage Allowance. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.cps.marriage_tax_reforms.expanded_ma.max_child_age -**Label:** Expanded MA child age condition - -Only expand the Marriage Allowance for couples with a child under this age (zero does not limit by child age). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.cps.marriage_tax_reforms.expanded_ma.ma_rate -**Label:** Expanded Marriage Allowance rate - -Marriage Allowance maximum rate for eligible couples. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.contrib.cps.marriage_tax_reforms.marriage_neutral_it.neutralise_income_tax -**Label:** Marriage-neutral Income Tax - -Allow couples to split their taxable income equally for Income Tax. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.cps.marriage_tax_reforms.marriage_neutral_it.max_child_age -**Label:** Expanded MA child age condition - -Only marriage-neutralise Income Tax for couples with a child under this age (zero does not limit by child age). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.interactions.include_in_taxable_income -**Label:** Include basic income in taxable income - -Include basic income as earned income in benefit means tests. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.interactions.withdraw_cb -**Label:** Withdraw Child Benefit from basic income recipients - -Withdraw Child Benefit payments from basic income recipients. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.interactions.include_in_means_tests -**Label:** Include basic income in means tests - -Include basic income as earned income in benefit means tests. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.amount.adult_age -**Label:** Adult basic income threshold - -Age at which a person stops receiving the child basic income and begins receiving the adult basic income. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.contrib.ubi_center.basic_income.amount.by_age.child -**Label:** Child basic income - -Basic income payment to children. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.by_age.working_age -**Label:** Working-age basic income - -Basic income payment to working-age adults. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.by_age.senior -**Label:** Senior basic income - -Basic income payment to seniors (individuals over State Pension Age). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.child_min_age -**Label:** Child basic income minimum threshold - -Minimum age for children to receive the child basic income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.flat -**Label:** Basic income - -Flat per-person basic income amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.individual.rate -**Label:** Basic income individual phase-out rate - -Percentage of income over the phase-out threshold which is deducted from basic income payments. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.individual.threshold -**Label:** Basic income individual phase-out threshold - -Threshold for taxable income at which basic income is reduced. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.household.rate -**Label:** Basic income household phase-out rate - -Rate at which any remaining basic income (after individual phase-outs) is reduced over the household income threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.household.threshold -**Label:** Basic income household phase-out threshold - -Threshold for household taxable income, after which any remaining basic income (after individual phase-outs) is reduced. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[0].threshold -**Label:** First wealth tax threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[0].rate -**Label:** First wealth tax rate - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[1].threshold -**Label:** Second wealth tax threshold - -**Type:** int - -**Current value:** 100000000 - ---- - -### gov.contrib.ubi_center.wealth_tax[1].rate -**Label:** Second wealth tax rate - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.wealth_tax[2].threshold -**Label:** Third wealth tax threshold - -**Type:** int - -**Current value:** 1000000000 - ---- - -### gov.contrib.ubi_center.wealth_tax[2].rate -**Label:** Third wealth tax rate - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.carbon_tax.consumer_incidence -**Label:** Carbon tax consumer incidence - -Proportion of corporate carbon taxes which is passed on to consumers in the form of higher prices (as opposed to shareholders in the form of reduced profitability). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.contrib.ubi_center.carbon_tax.rate -**Label:** Carbon tax - -Price per tonne of carbon emissions - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.land_value_tax.rate -**Label:** Land value tax - -Tax rate on the unimproved value of land - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.land_value_tax.household_rate -**Label:** Land value tax (households) - -Tax rate on the unimproved value of land owned by households - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.land_value_tax.corporate_rate -**Label:** Land value tax (corporations) - -Tax rate on the unimproved value of land owned by corporations - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.freeze_pension_credit -**Label:** Freeze Pension Credit - -Freeze Pension Credit payments. Set all Pension Credit payments to what they are under baseline policy. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.abolish_council_tax -**Label:** Abolish Council Tax - -Abolish council tax payments (and council tax benefit). - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.labour.private_school_vat -**Label:** private school VAT rate - -VAT rate applied to private schools. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.benefit_uprating.non_sp -**Label:** Non-State Pension benefit uprating - -Increase all non-State Pension benefits by this amount (this multiplies the end value, not the maximum amount). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.benefit_uprating.all -**Label:** Benefit uprating - -Increase all benefit values by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.energy_bills -**Label:** Change to energy spending - -Raise energy spending by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.gdp_per_capita -**Label:** Change to GDP per capita - -Raise all market incomes by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.transport -**Label:** Change to transport spending - -Raise transport expenses by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.rent -**Label:** Change to rents - -Raise rental expenses by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.economy.interest_rates -**Label:** Change to interest rates - -Raise the interest rate on mortgages by this percentage. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.employer_ni.employee_incidence -**Label:** Employer NI employee incidence - -Fraction of employer NI that is borne by employees. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.contrib.policyengine.employer_ni.exempt_employer_pension_contributions -**Label:** exempt employer pension contributions from employers' NI - -Whether to exempt employer pension contributions from employer NI. - -**Type:** bool - -**Current value:** True - ---- - -### gov.contrib.policyengine.employer_ni.consumer_incidence -**Label:** Employer NI consumer incidence - -Fraction of (remaining after employee incidence) employer NI that is borne by consumers. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.contrib.policyengine.employer_ni.capital_incidence -**Label:** Employer NI capital incidence - -Fraction of (remaining after employee incidence) employer NI that is borne by capital. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.contrib.policyengine.disable_simulated_benefits -**Label:** disable simulated benefits - -Disable simulated benefits. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.policyengine.budget.nhs -**Label:** NHS spending change (£bn) - -Increase in NHS spending, distributed by income decile as estimated by the ONS Effects of Taxes and Benefits dataset. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.consumer_incident_tax_change -**Label:** tax on consumers (£bn) - -Tax increase incident on consumers. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.education -**Label:** education spending change (£bn) - -Increase in education, distributed by income decile as estimated by the ONS Effects of Taxes and Benefits dataset. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.high_income_incident_tax_change -**Label:** high income incident tax change (£bn) - -Tax rise for high income earners (functioning proportional to income over £100,000). - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.other_public_spending -**Label:** general public spending change (£bn) - -Increase in non-NHS, non-education public spending, distributed by income decile as estimated by the ONS Effects of Taxes and Benefits dataset. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.policyengine.budget.corporate_incident_tax_change -**Label:** tax on capital (£bn) - -Tax increase incident on owners of capital. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.cec.state_pension_increase -**Label:** State Pension increase - -Increase State Pension payments by this percentage. - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.cec.non_primary_residence_wealth_tax[0].threshold -**Label:** Wealth tax exemption on non-primary residence wealth - -This much wealth is exempt from the wealth tax. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.cec.non_primary_residence_wealth_tax[0].rate -**Label:** Wealth tax rate on non-primary residence wealth - -This is the marginal rate of tax on wealth above the threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.abolish_state_pension -**Label:** Abolish State Pension - -Remove all State Pension payments. - -**Type:** bool - -**Current value:** False - ---- - -### gov.dwp.carers_allowance.rate -**Label:** Carer's Allowance rate - -Weekly rate of Carer's Allowance. - -**Type:** float - -**Current value:** 81.9 - ---- - -### gov.dwp.carers_allowance.min_hours -**Label:** Carer's Allowance minimum hours - -Minimum number of hours spent providing care to qualify for Carer's Allowance. - -**Type:** int - -**Current value:** 35 - ---- - -### gov.dwp.winter_fuel_payment.amount.lower -**Label:** Winter Fuel Payment lower amount - -**Type:** int - -**Current value:** 200 - ---- - -### gov.dwp.winter_fuel_payment.amount.higher -**Label:** Winter Fuel Payment higher amount - -**Type:** int - -**Current value:** 300 - ---- - -### gov.dwp.winter_fuel_payment.eligibility.state_pension_age_requirement -**Label:** Winter Fuel Payment State Pension Age requirement - -Whether individuals must be State Pension Age to qualify for the Winter Fuel Payment. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dwp.winter_fuel_payment.eligibility.require_benefits -**Label:** Winter Fuel Payment means-tested benefits requirement - -Whether receipt of means-tested benefits is required to qualify for the Winter Fuel Payment. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dwp.winter_fuel_payment.eligibility.higher_age_requirement -**Label:** Winter Fuel Payment higher amount age requitement - -Age requirement to qualify for the higher Winter Fuel Payment. - -**Type:** int - -**Current value:** 80 - ---- - -### gov.dwp.carer_premium.couple -**Label:** Legacy benefit carer premium (two carers) - -Carer premium for two qualifying carers for legacy benefits. - -**Type:** float - -**Current value:** 45.6 - ---- - -### gov.dwp.carer_premium.single -**Label:** Legacy benefit carer premium (one carer) - -Carer premium for one qualifying carer, for legacy benefits. - -**Type:** float - -**Current value:** 45.6 - ---- - -### gov.dwp.sda.maximum -**Label:** Severe Disablement Allowance - -Maximum Severe Disablement Allowance rate. - -**Type:** float - -**Current value:** 113.1 - ---- - -### gov.dwp.dla.self_care.middle -**Label:** DLA (self-care) (middle rate) - -Middle rate for Disability Living Allowance (self-care component). - -**Type:** float - -**Current value:** 72.65 - ---- - -### gov.dwp.dla.self_care.lower -**Label:** DLA (self-care) (lower rate) - -Lower rate for Disability Living Allowance (self-care component). - -**Type:** float - -**Current value:** 28.7 - ---- - -### gov.dwp.dla.self_care.higher -**Label:** DLA (self-care) (higher rate) - -Higher rate for Disability Living Allowance (self-care component). - -**Type:** float - -**Current value:** 108.55 - ---- - -### gov.dwp.dla.mobility.lower -**Label:** DLA (mobility) (lower rate) - -Lower rate for Disability Living Allowance (mobility component). - -**Type:** float - -**Current value:** 28.7 - ---- - -### gov.dwp.dla.mobility.higher -**Label:** DLA (mobility) (higher rate) - -Higher rate for Disability Living Allowance (mobility component). - -**Type:** float - -**Current value:** 75.75 - ---- - -### gov.dwp.housing_benefit.allowances.lone_parent.younger -**Label:** Housing Benefit lone parent younger personal allowance - -The following younger lone parent personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 71.7 - ---- - -### gov.dwp.housing_benefit.allowances.lone_parent.aged -**Label:** Housing Benefit lone parent aged personal allowance - -Personal allowance for Housing Benefit for a lone parent over State Pension age. - -**Type:** float - -**Current value:** 235.2 - ---- - -### gov.dwp.housing_benefit.allowances.lone_parent.older -**Label:** Housing Benefit lone parent older personal allowance - -The following older lone parent personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 90.5 - ---- - -### gov.dwp.housing_benefit.allowances.single.younger -**Label:** Housing Benefit single younger personal allowance - -The following younger single person personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 71.7 - ---- - -### gov.dwp.housing_benefit.allowances.single.aged -**Label:** Housing Benefit single aged personal allowance - -The following personal allowance amount is provided to single filers over the pension age under the Housing Benefit. - -**Type:** float - -**Current value:** 235.2 - ---- - -### gov.dwp.housing_benefit.allowances.single.older -**Label:** Housing Benefit single older personal allowance - -The following older single person personal allowance is provided under the Housing Benefit. - -**Type:** float - -**Current value:** 90.5 - ---- - -### gov.dwp.housing_benefit.allowances.age_threshold.younger -**Label:** Housing Benefit allowance younger age threshold - -A lower Housing Benefit allowance amount is provided if both members of a couple are below this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.dwp.housing_benefit.allowances.age_threshold.older -**Label:** Housing Benefit allowance older age threshold - -A higher Houseing Benefit allowance amount is provided for filers over this age threshold. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.dwp.housing_benefit.allowances.couple.younger -**Label:** Housing Benefit younger couple personal allowance - -The following couple personal allowance is provided under the Housing Benefit, if both members are under the younger age threshold. - -**Type:** float - -**Current value:** 108.3 - ---- - -### gov.dwp.housing_benefit.allowances.couple.aged -**Label:** Housing Benefit aged couple personal allowance - -The following couple personal allowance is provided under the Housing Benefit if at least one member is over the state pension age threshold. - -**Type:** int - -**Current value:** 352 - ---- - -### gov.dwp.housing_benefit.allowances.couple.older -**Label:** Housing Benefit older couple personal allowance - -The following couple personal allowance is provided under the Housing Benefit, if at least one member is over the younger age threshold. - -**Type:** float - -**Current value:** 142.25 - ---- - -### gov.dwp.housing_benefit.non_dep_deduction.age_threshold -**Label:** Housing Benefit non dependent deduction age threshold - -A non dependent deduction is provided under Housing Benefit for filers at or above this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.dwp.housing_benefit.means_test.withdrawal_rate -**Label:** Housing Benefit withdrawal rate - -Withdrawal rate under the Housing Benefit. - -**Type:** float - -**Current value:** 0.65 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.worker -**Label:** Housing Benefit worker earnings disregard - -This amount of earnings is disreagrded for workers under the Housing Benefit. - -**Type:** float - -**Current value:** 51.18391608391608 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.couple -**Label:** Housing Benefit couple earnings disregard - -This amount of earnings is disreagrded for couples under the Housing Benefit. - -**Type:** float - -**Current value:** 13.796203796203795 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.lone_parent -**Label:** Housing Benefit lone parent earnings disregard - -This amount of earnings is disreagrded for lone parents under the Housing Benefit. - -**Type:** float - -**Current value:** 34.49050949050949 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.single -**Label:** Housing Benefit single person earnings disregard - -This amount of earnings is disreagrded for single filers under the Housing Benefit. - -**Type:** float - -**Current value:** 6.898101898101897 - ---- - -### gov.dwp.housing_benefit.means_test.income_disregard.worker_hours -**Label:** Housing Benefit worker element hours requirement - -Filers can receive an additional income disregard amount if the meet the following averge weekly work hour quota under the Housing Benefit. - -**Type:** int - -**Current value:** 30 - ---- - -### gov.dwp.housing_benefit.takeup -**Label:** Housing Benefit take-up rate - -Share of eligible Housing Benefit recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.constant_attendance_allowance.exceptional_rate -**Label:** Constant Attendance Allowance exceptional rate - -Exceptional rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 200.87272727272725 - ---- - -### gov.dwp.constant_attendance_allowance.full_day_rate -**Label:** Constant Attendance Allowance full day rate - -Full day rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 100.43636363636362 - ---- - -### gov.dwp.constant_attendance_allowance.part_day_rate -**Label:** Constant Attendance Allowance part day rate - -Part day rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 50.21818181818181 - ---- - -### gov.dwp.constant_attendance_allowance.intermediate_rate -**Label:** Constant Attendance Allowance intermediate rate - -Intermediate rate for Constant Attendance Allowance - -**Type:** float - -**Current value:** 150.65454545454543 - ---- - -### gov.dwp.disability_premia.disability_single -**Label:** Legacy benefit disability premium (single) - -Disability premium for a single person - -**Type:** float - -**Current value:** 48.217732267732266 - ---- - -### gov.dwp.disability_premia.severe_couple -**Label:** Legacy benefit severe disability premium (couple) - -Severe disability premium for a couple where both are eligible - -**Type:** float - -**Current value:** 184.73116883116882 - ---- - -### gov.dwp.disability_premia.enhanced_couple -**Label:** Legacy benefit enhanced disability premium (couple) - -Enhanced disability premium for a couple, invalid for Employment and Support Allowance - -**Type:** float - -**Current value:** 33.80069930069929 - ---- - -### gov.dwp.disability_premia.disability_couple -**Label:** Legacy benefit disability premium (couple) - -Disability premium for a couple - -**Type:** float - -**Current value:** 68.7050949050949 - ---- - -### gov.dwp.disability_premia.severe_single -**Label:** Legacy benefit severe disability premium (single) - -Severe disability premium for a single person - -**Type:** float - -**Current value:** 92.36558441558441 - ---- - -### gov.dwp.disability_premia.enhanced_single -**Label:** Legacy benefit enhanced disability premium (single) - -Enhanced disability premium for a single person, invalid for Employment and Support Allowance - -**Type:** float - -**Current value:** 23.591508491508492 - ---- - -### gov.dwp.JSA.income.income_disregard_single -**Label:** Jobseeker's Allowance income disregard (single) - -Threshold in income for a single person, above which the Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.JSA.income.couple -**Label:** Income-based JSA (couple) - -Weekly contributory Jobseeker's Allowance for couples - -**Type:** float - -**Current value:** 134.1653691813804 - ---- - -### gov.dwp.JSA.income.takeup -**Label:** Income-based Jobseeker's Allowance take-up rate - -Share of eligible Income-based Jobseeker's Allowance recipients that participate - -**Type:** float - -**Current value:** 0.56 - ---- - -### gov.dwp.JSA.income.amount_18_24 -**Label:** Income-based JSA (18-24) - -Income-based Jobseeker's Allowance for persons aged 18-24 - -**Type:** float - -**Current value:** 67.66456661316212 - ---- - -### gov.dwp.JSA.income.income_disregard_couple -**Label:** Jobseeker's Allowance income disregard (couple) - -Threshold in income for a couple, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.JSA.income.amount_over_25 -**Label:** Income-based JSA (over 25) - -Income-based Jobseeker's Allowance for persons aged over 25 - -**Type:** float - -**Current value:** 85.34269662921349 - ---- - -### gov.dwp.JSA.income.income_disregard_lone_parent -**Label:** Jobseeker's Allowance income disregard (lone parent) - -Threshold in income for a lone parent, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.JSA.contrib.earn_disregard -**Label:** Jobseeker's Allowance earnings disregard - -Threshold in earnings, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.JSA.contrib.amount_18_24 -**Label:** Income-based JSA (18-24) - -Income-based Jobseeker's Allowance for persons aged 18-24 - -**Type:** float - -**Current value:** 61.05 - ---- - -### gov.dwp.JSA.contrib.pension_disregard -**Label:** Jobseeker's Allowance pension disregard - -Threshold in occupational and personal pensions, above which the contributory Jobseeker's Allowance amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.JSA.contrib.amount_over_25 -**Label:** Contributory JSA (over 25) - -Contributory Jobseeker's Allowance for persons aged over 25 - -**Type:** float - -**Current value:** 77.0 - ---- - -### gov.dwp.JSA.hours.couple -**Label:** Jobseeker's Allowance hours requirement (couple) - -Hours requirement for joint claimants of Jobseeker's Allowance - -**Type:** int - -**Current value:** 24 - ---- - -### gov.dwp.JSA.hours.single -**Label:** Jobseeker's Allowance hours requirement (single) - -Hours requirement for single claimants of Jobseeker's Allowance - -**Type:** int - -**Current value:** 16 - ---- - -### gov.dwp.universal_credit.takeup_rate -**Label:** Universal Credit take-up rate - -Take-up rate of Universal Credit. - -**Type:** float - -**Current value:** 0.55 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.SINGLE_YOUNG -**Label:** Universal Credit single amount (under 25) - -Standard allowance for single claimants under 25 - -**Type:** float - -**Current value:** 311.68 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.SINGLE_OLD -**Label:** Universal Credit single amount (over 25) - -Standard allowance for single claimants over 25. - -**Type:** float - -**Current value:** 393.45 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.COUPLE_YOUNG -**Label:** Universal Credit couple amount (both under 25) - -Standard allowance for couples where both are under 25. - -**Type:** float - -**Current value:** 489.23 - ---- - -### gov.dwp.universal_credit.standard_allowance.amount.COUPLE_OLD -**Label:** Universal Credit couple amount (one over 25) - -Standard allowance for couples where one is over 25. - -**Type:** float - -**Current value:** 617.6 - ---- - -### gov.dwp.universal_credit.standard_allowance.claimant_type.age_threshold -**Label:** Universal Credit standard allowance claimant type age threshold - -A higher Universal Credit standard allowance is provided to claimants over this age threshold. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.dwp.universal_credit.rollout_rate -**Label:** Universal Credit roll-out rate - -Roll-out rate of Universal Credit - -**Type:** int - -**Current value:** 1 - ---- - -### gov.dwp.universal_credit.elements.housing.non_dep_deduction.age_threshold -**Label:** Universal Credit housing element non-dependent deduction age threshold - -The non-dependent deduction is limited to filers over this age threshold under the housing element of the Universal Credit. - -**Type:** int - -**Current value:** 21 - ---- - -### gov.dwp.universal_credit.elements.housing.non_dep_deduction.amount -**Label:** Universal Credit housing element non-dependent deduction amount - -Non-dependent deduction amount for the housing element of the Universal Credit. - -**Type:** float - -**Current value:** 93.77881959910913 - ---- - -### gov.dwp.universal_credit.elements.childcare.coverage_rate -**Label:** Universal Credit childcare element coverage rate - -Proportion of childcare costs covered by Universal Credit. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.dwp.universal_credit.elements.disabled.amount -**Label:** Universal Credit disability element amount - -Limited capability for work-related activity element amount under the Universal Credit. - -**Type:** float - -**Current value:** 416.19 - ---- - -### gov.dwp.universal_credit.elements.carer.amount -**Label:** Universal Credit carer element amount - -Carer element amount under the Universal Credit. - -**Type:** float - -**Current value:** 198.31 - ---- - -### gov.dwp.universal_credit.elements.child.limit.child_count -**Label:** Universal Credit child element child limit - -Limit on the number of children for which the Universal Credit child element is payable. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.dwp.universal_credit.elements.child.limit.start_year -**Label:** Universal Credit child element start year - -A higher Universal Credit child element is payable for the first child if the child is born before this year. - -**Type:** int - -**Current value:** 2017 - ---- - -### gov.dwp.universal_credit.elements.child.first.higher_amount -**Label:** Universal Credit child element higher amount - -Child element for the first child in Universal Credit. - -**Type:** float - -**Current value:** 333.33 - ---- - -### gov.dwp.universal_credit.elements.child.amount -**Label:** Universal Credit child element amount - -The following child element is provided under the Universal Credit. - -**Type:** float - -**Current value:** 287.92 - ---- - -### gov.dwp.universal_credit.elements.child.disabled.amount -**Label:** Universal Credit disabled child element amount - -The following disabled child element is provided under the Universal Credit. - -**Type:** float - -**Current value:** 156.11 - ---- - -### gov.dwp.universal_credit.elements.child.severely_disabled.amount -**Label:** Unversal Credit severely disabled element amount - -Severely disabled child element of Universal Credit. - -**Type:** float - -**Current value:** 487.58 - ---- - -### gov.dwp.universal_credit.means_test.reduction_rate -**Label:** Universal Credit earned income reduction rate - -Rate at which Universal Credit is reduced with earnings above the work allowance. - -**Type:** float - -**Current value:** 0.55 - ---- - -### gov.dwp.universal_credit.means_test.work_allowance.with_housing -**Label:** Universal Credit Work Allowance with housing support - -Universal Credit Work Allowance if household receives housing support. - -**Type:** int - -**Current value:** 404 - ---- - -### gov.dwp.universal_credit.means_test.work_allowance.without_housing -**Label:** Universal Credit Work Allowance without housing support - -Universal Credit Work Allowance if household does not receive housing support. - -**Type:** int - -**Current value:** 673 - ---- - -### gov.dwp.universal_credit.work_requirements.default_expected_hours -**Label:** Universal Credit minimum income floor expected weekly hours worked - -Default expected hours worked per week for Universal Credit. - -**Type:** int - -**Current value:** 35 - ---- - -### gov.dwp.tax_credits.child_tax_credit.elements.dis_child_element -**Label:** CTC disabled child element - -Child Tax Credit disabled child element - -**Type:** int - -**Current value:** 4170 - ---- - -### gov.dwp.tax_credits.child_tax_credit.elements.severe_dis_child_element -**Label:** CTC severely disabled child element - -Child Tax Credit severely disabled child element - -**Type:** float - -**Current value:** 1584.935794542536 - ---- - -### gov.dwp.tax_credits.child_tax_credit.elements.child_element -**Label:** CTC child element - -Child Tax Credit child element - -**Type:** int - -**Current value:** 3455 - ---- - -### gov.dwp.tax_credits.child_tax_credit.takeup -**Label:** Child Tax Credit take-up rate - -Share of eligible Child Tax Credit recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.tax_credits.min_benefit -**Label:** Tax credits minimum benefit - -Tax credit amount below which tax credits are not paid - -**Type:** int - -**Current value:** 26 - ---- - -### gov.dwp.tax_credits.means_test.income_threshold -**Label:** Tax Credits income threshold - -Yearly income threshold after which the Child Tax Credit is reduced for benefit units claiming Working Tax Credit - -**Type:** int - -**Current value:** 7955 - ---- - -### gov.dwp.tax_credits.means_test.income_threshold_CTC_only -**Label:** CTC income threshold - -Income threshold for benefit units only entitled to Child Tax Credit - -**Type:** int - -**Current value:** 19995 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.childcare_1 -**Label:** Working Tax Credit childcare element one child amount - -Working Tax Credit childcare element for one child - -**Type:** float - -**Current value:** 268.52777777777777 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.couple -**Label:** WTC couple element - -Working Tax Credit couple element - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.lone_parent -**Label:** WTC lone parent element - -Working Tax Credit lone parent element - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.childcare_2 -**Label:** Working Tax Credit childcare element two or more children amount - -Working Tax Credit childcare element for two or more children - -**Type:** float - -**Current value:** 460.33333333333326 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.severely_disabled -**Label:** WTC severe disability element - -Working Tax Credit severe disability element - -**Type:** int - -**Current value:** 1705 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.disabled -**Label:** WTC disability element - -Working Tax Credit disability element - -**Type:** int - -**Current value:** 3935 - ---- - -### gov.dwp.tax_credits.working_tax_credit.elements.basic -**Label:** WTC basic element - -Working Tax Credit basic element - -**Type:** int - -**Current value:** 2435 - ---- - -### gov.dwp.tax_credits.working_tax_credit.takeup -**Label:** Working Tax Credit take-up rate - -Share of eligible Working Tax Credit recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.state_pension.basic_state_pension.amount -**Label:** basic State Pension amount - -Weekly amount paid to recipients of the basic State Pension. - -**Type:** float - -**Current value:** 169.5 - ---- - -### gov.dwp.state_pension.new_state_pension.active -**Label:** New State Pension active - -Individuals who reach State Pension age while this parameter is true receive the New State Pension. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dwp.state_pension.new_state_pension.amount -**Label:** New State Pension amount - -Weekly amount paid to recipients of the New State Pension. - -**Type:** float - -**Current value:** 221.2 - ---- - -### gov.dwp.pip.mobility.enhanced -**Label:** PIP (mobility) (enhanced rate) - -Enhanced rate for Personal Independence Payment (mobility component). - -**Type:** float - -**Current value:** 75.75 - ---- - -### gov.dwp.pip.mobility.standard -**Label:** PIP (mobility) (standard rate) - -Standard rate for Personal Independence Payment (mobility component). - -**Type:** float - -**Current value:** 28.7 - ---- - -### gov.dwp.pip.daily_living.enhanced -**Label:** PIP (daily living) (enhanced rate) - -Enhanced rate for Personal Independence Payment (daily living component). - -**Type:** float - -**Current value:** 108.55 - ---- - -### gov.dwp.pip.daily_living.standard -**Label:** PIP (daily living) (standard rate) - -Standard rate for Personal Independence Payment (daily living component). - -**Type:** float - -**Current value:** 72.65 - ---- - -### gov.dwp.ESA.income.income_disregard_single -**Label:** Income-based ESA single person earnings disregard - -Threshold for income for a single person, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.ESA.income.couple -**Label:** Income-based ESA personal allowance (couples) - -Income-based Employment and Support Allowance personal allowance for couples - -**Type:** float - -**Current value:** 116.8 - ---- - -### gov.dwp.ESA.income.earn_disregard -**Label:** Income-based ESA earnings disregard - -Earnings threshold above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.ESA.income.amount_18_24 -**Label:** Income-based ESA personal allowance (18-24) - -Income-based Employment and Support Allowance personal allowance for persons aged 18-24 - -**Type:** float - -**Current value:** 58.9 - ---- - -### gov.dwp.ESA.income.pension_disregard -**Label:** Income-based ESA pension disregard - -Threshold for occupational and personal pensions, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.ESA.income.income_disregard_couple -**Label:** Income-based ESA couple earnings disregard - -Threshold for income for a couple, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.ESA.income.amount_over_25 -**Label:** Income-based ESA personal allowance (over 25) - -Income-based Employment and Support Allowance personal allowance for persons aged over 25 - -**Type:** float - -**Current value:** 74.35 - ---- - -### gov.dwp.ESA.income.income_disregard_lone_parent -**Label:** Income-based ESA lone parent earnings disregard - -Threshold for income for a lone parent, above which the income-based Employment and Support Allowance amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.IIDB.maximum -**Label:** Industrial Injuries Disablement Benefit maximum - -Maximum weekly Industrial Injuries Disablement Benefit; amount varies in 10% increments - -**Type:** int - -**Current value:** 182 - ---- - -### gov.dwp.benefit_cap.single.in_london -**Label:** Benefit cap (single claimants, in London) - -**Type:** int - -**Current value:** 16967 - ---- - -### gov.dwp.benefit_cap.single.outside_london -**Label:** Benefit cap (single claimants, outside London) - -**Type:** int - -**Current value:** 14753 - ---- - -### gov.dwp.benefit_cap.non_single.in_london -**Label:** Benefit cap (family claimants, in London) - -**Type:** int - -**Current value:** 25323 - ---- - -### gov.dwp.benefit_cap.non_single.outside_london -**Label:** Benefit cap (family claimants, outside London) - -**Type:** int - -**Current value:** 22020 - ---- - -### gov.dwp.attendance_allowance.lower -**Label:** Attendance Allowance (lower rate) - -Lower Attendance Allowance amount. - -**Type:** float - -**Current value:** 72.65 - ---- - -### gov.dwp.attendance_allowance.higher -**Label:** Attendance Allowance (higher rate) - -Upper Attendance Allowance amount. - -**Type:** float - -**Current value:** 108.55 - ---- - -### gov.dwp.LHA.means_test.withdrawal_rate -**Label:** Housing Benefit (LHA) withdrawal rate - -Withdrawal rate of Housing Benefit (LHA) - -**Type:** float - -**Current value:** 0.65 - ---- - -### gov.dwp.LHA.means_test.worker_income_disregard -**Label:** Housing Benefit (LHA) worker income disregard - -Additional disregard in income for meeting the 16/30 hours requirement - -**Type:** int - -**Current value:** 30 - ---- - -### gov.dwp.LHA.means_test.income_disregard_single -**Label:** Housing Benefit (LHA) income disregard (single) - -Threshold in income for a single person, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.LHA.means_test.earn_disregard -**Label:** Housing Benefit (LHA) earnings disregard - -Threshold earnings, above which the Housing Benefit (LHA) is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.LHA.means_test.income_disregard_lone -**Label:** Housing Benefit (LHA) income disregard (lone parent) - -Threshold in income for a lone parent, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.LHA.means_test.worker_hours -**Label:** LHA worker hours requirement - -Default hours requirement for the Working-Tax-Credit-related worker element of Housing Benefit (LHA) - -**Type:** int - -**Current value:** 30 - ---- - -### gov.dwp.LHA.means_test.pension_disregard -**Label:** Housing Benefit (LHA) pension disregard - -Threshold in occupational and personal pensions, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.LHA.means_test.income_disregard_couple -**Label:** Housing Benefit (LHA) income disregard (couple) - -Threshold in income for a couple, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.LHA.means_test.income_disregard_lone_parent -**Label:** Housing Benefit (LHA) income disregard (lone parent) - -Threshold in income for a lone parent, above which the Housing Benefit (LHA) amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.LHA.freeze -**Label:** LHA freeze - -While this parameter is true, LHA rates are frozen in cash terms. - -**Type:** bool - -**Current value:** False - ---- - -### gov.dwp.LHA.percentile -**Label:** LHA percentile - -Local Housing Allowance rates are set at this percentile of private rents in the family's Broad Rental Market Area. This parameter does not apply if LHA is frozen. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.dwp.income_support.amounts.amount_couples_age_gap -**Label:** Income Support applicable amount (couples, one under 18, one over 25) - -Income Support applicable amount for couples in which one is under 18 and one over 25 - -**Type:** float - -**Current value:** 102.57477522477521 - ---- - -### gov.dwp.income_support.amounts.amount_16_24 -**Label:** Income Support applicable amount (single, 18-24) - -Income Support applicable amount for single persons aged 18-24 - -**Type:** float - -**Current value:** 81.25964035964034 - ---- - -### gov.dwp.income_support.amounts.amount_couples_16_17 -**Label:** Income Support applicable amount (couples, both under 18) - -Income Support applicable amount for couples both aged under 18 - -**Type:** float - -**Current value:** 81.25964035964034 - ---- - -### gov.dwp.income_support.amounts.amount_lone_over_18 -**Label:** Income Support applicable amount (lone parent, over 18) - -Income Support applicable amount for lone parents aged over 18 - -**Type:** float - -**Current value:** 102.57477522477521 - ---- - -### gov.dwp.income_support.amounts.amount_couples_over_18 -**Label:** Income Support applicable amount (couples, both over 18) - -Income Support applicable amount for couples aged over 18 - -**Type:** float - -**Current value:** 161.1396603396603 - ---- - -### gov.dwp.income_support.amounts.amount_lone_16_17 -**Label:** Income Support applicable amount (lone parent, under 18) - -Income Support applicable amount for lone parents aged under 18 - -**Type:** float - -**Current value:** 81.25964035964034 - ---- - -### gov.dwp.income_support.amounts.amount_over_25 -**Label:** Income Support applicable amount (single, over 25) - -Income Support applicable amount for single persons aged over 25 - -**Type:** float - -**Current value:** 102.57477522477521 - ---- - -### gov.dwp.income_support.means_test.income_disregard_single -**Label:** Income Support income disregard (single) - -Threshold in income for a single person, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.income_support.means_test.earn_disregard -**Label:** Income Support earnings disregard - -Threshold in earnings, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 5.0 - ---- - -### gov.dwp.income_support.means_test.pension_disregard -**Label:** Income Support pension disregard - -Threshold in occupational and personal pensions, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 50.0 - ---- - -### gov.dwp.income_support.means_test.income_disregard_couple -**Label:** Income Support income disregard (couples) - -Threshold in income for a couple, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 10.0 - ---- - -### gov.dwp.income_support.means_test.income_disregard_lone_parent -**Label:** Income Support income disregard (lone parent) - -Threshold in income for a lone parent, above which the Income Support amount is reduced - -**Type:** float - -**Current value:** 20.0 - ---- - -### gov.dwp.income_support.takeup -**Label:** Income Support take-up rate - -Share of eligible Income Support recipients that participate. By definition, this is 100%, because only current claimants are eligible (no new claims). - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.dwp.pension_credit.income.pension_contributions_deduction -**Label:** Pension Credit pension contribution deduction - -Percentage of pension contributions which are deductible from Pension Credit income. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.dwp.pension_credit.savings_credit.rate.phase_in -**Label:** Savings Credit phase-in rate - -The rate at which Savings Credit increases for income over the Savings Credit threshold. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.dwp.pension_credit.savings_credit.rate.phase_out -**Label:** Savings Credit phase-out rate - -The rate at which Savings Credit decreases for income over the Minimum Guarantee. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.dwp.pension_credit.savings_credit.threshold.SINGLE -**Label:** Pension Credit savings credit income threshold (single) - -**Type:** float - -**Current value:** 189.8 - ---- - -### gov.dwp.pension_credit.savings_credit.threshold.COUPLE -**Label:** Pension Credit savings credit income threshold (couple) - -**Type:** float - -**Current value:** 301.22 - ---- - -### gov.dwp.pension_credit.guarantee_credit.severe_disability.addition -**Label:** Pension Credit severe disability addition - -Addition to the Minimum Guarantee for each severely disabled adult. - -**Type:** float - -**Current value:** 76.91926163723917 - ---- - -### gov.dwp.pension_credit.guarantee_credit.carer.addition -**Label:** Pension Credit carer addition - -Addition to the Minimum Guarantee for each claimant who is a carer. - -**Type:** float - -**Current value:** 45.6 - ---- - -### gov.dwp.pension_credit.guarantee_credit.child.disability.severe.addition -**Label:** Pension Credit severely disabled child addition - -Addition to the Minimum Guarantee for each severely disabled child (above the child addition). - -**Type:** float - -**Current value:** 105.82494382022473 - ---- - -### gov.dwp.pension_credit.guarantee_credit.child.disability.addition -**Label:** Pension Credit disabled child addition - -Addition to the Minimum Guarantee for each disabled child (above the child addition). - -**Type:** float - -**Current value:** 33.89324237560192 - ---- - -### gov.dwp.pension_credit.guarantee_credit.child.addition -**Label:** Pension Credit child addition - -Addition to the Minimum Guarantee for each child. - -**Type:** float - -**Current value:** 62.45533707865169 - ---- - -### gov.dwp.pension_credit.takeup -**Label:** Pension Credit take-up rate - -Share of eligible Pension Credit recipients that participate. - -**Type:** float - -**Current value:** 0.7 - ---- - -### gov.obr.inflation.food_beverages_and_tobacco -**Label:** Food and beverages inflation - -OBR CPI category inflation projection for food, beverages and tobacco. - -**Type:** float - -**Current value:** 1.352 - ---- - -### gov.obr.inflation.utilities -**Label:** Utilities inflation - -OBR CPI category inflation projection for utilities - -**Type:** float - -**Current value:** 1.365 - ---- - -### gov.dcms.bbc.tv_licence.evasion_rate -**Label:** TV licence fee evasion rate - -Percent of households legally required to purchase a TV licence who evade the licence fee. - -**Type:** float - -**Current value:** 0.0725 - ---- - -### gov.dcms.bbc.tv_licence.discount.blind.discount -**Label:** Blind TV Licence discount - -Percentage discount for qualifying blind licence holders. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.dcms.bbc.tv_licence.discount.aged.discount -**Label:** Aged TV Licence discount - -Percentage discount for qualifying aged households. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.dcms.bbc.tv_licence.discount.aged.min_age -**Label:** Aged TV Licence discounted minimum age - -Minimum age required to qualify for a TV licence discount. - -**Type:** int - -**Current value:** 75 - ---- - -### gov.dcms.bbc.tv_licence.discount.aged.must_claim_pc -**Label:** Aged TV licence Pension Credit requirement - -Whether aged individuals must claim Pension Credit in order to qualify for a free TV licence. - -**Type:** bool - -**Current value:** True - ---- - -### gov.dcms.bbc.tv_licence.colour -**Label:** TV Licence fee - -Full TV licence for a colour TV, before any discounts are applied. - -**Type:** float - -**Current value:** 159.0 - ---- - -### gov.dcms.bbc.tv_licence.tv_ownership -**Label:** TV ownership rate - -Percentage of households which own a TV. - -**Type:** float - -**Current value:** 0.9544 - ---- - -### gov.hmrc.fuel_duty.petrol_and_diesel -**Label:** Fuel duty rate (petrol and diesel) - -Fuel duty rate per litre of petrol and diesel. - -**Type:** float - -**Current value:** 0.5295 - ---- - -### gov.hmrc.national_insurance.class_4.rates.additional -**Label:** NI Class 4 additional rate - -The additional National Insurance rate paid above the Upper Profits Limit for self-employed profits - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.hmrc.national_insurance.class_4.rates.main -**Label:** NI Class 4 main rate - -The main National Insurance rate paid between the Lower and Upper Profits Limits for self-employed profits - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.hmrc.national_insurance.class_4.thresholds.upper_profits_limit -**Label:** NI Upper Profits Limit - -The Upper Profits Limit is the threshold at which self-employed earners pay the additional Class 4 National Insurance rate - -**Type:** int - -**Current value:** 50270 - ---- - -### gov.hmrc.national_insurance.class_4.thresholds.lower_profits_limit -**Label:** NI Lower Profits Limit - -The Lower Profits Limit is the threshold at which self-employed earners pay the main Class 4 National Insurance rate - -**Type:** float - -**Current value:** 12887.282850779511 - ---- - -### gov.hmrc.national_insurance.class_2.flat_rate -**Label:** NI Class 2 Flat Rate - -Flat rate National Insurance contribution for self-employed earners - -**Type:** int - -**Current value:** 0 - ---- - -### gov.hmrc.national_insurance.class_2.small_profits_threshold -**Label:** NI Class 2 Small Profits Threshold - -Small profits National Insurance threshold for self-employed earners - -**Type:** float - -**Current value:** 7453.631621187801 - ---- - -### gov.hmrc.national_insurance.class_1.rates.employee.additional -**Label:** NI Class 1 additional rate - -The Class 1 National Insurance additional rate is paid on employment earnings above the Upper Earnings Limit - -**Type:** float - -**Current value:** 0.0185 - ---- - -### gov.hmrc.national_insurance.class_1.rates.employee.main -**Label:** NI Class 1 main rate - -The Class 1 National Insurance main rate is paid on employment earnings between the Primary Threshold and the Upper Earnings Limit - -**Type:** float - -**Current value:** 0.08 - ---- - -### gov.hmrc.national_insurance.class_1.rates.employer -**Label:** NI Employer rate - -National Insurance contribution rate by employers on earnings above the Secondary Threshold - -**Type:** float - -**Current value:** 0.138 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.lower_earnings_limit -**Label:** NI Lower Earnings Limit - -Lower earnings limit for National Insurance - -**Type:** int - -**Current value:** 123 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.primary_threshold -**Label:** NI Primary Threshold - -The Primary Threshold is the lower bound for the main rate of Class 1 National Insurance - -**Type:** float - -**Current value:** 241.73 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.secondary_threshold -**Label:** NI Secondary Threshold - -Secondary threshold for National Insurance - -**Type:** int - -**Current value:** 175 - ---- - -### gov.hmrc.national_insurance.class_1.thresholds.upper_earnings_limit -**Label:** NI Upper Earnings Limit - -The Upper Earnings Limit is the upper bound for the main rate of Class 1 National Insurance - -**Type:** float - -**Current value:** 966.73 - ---- - -### gov.hmrc.stamp_duty.abolish -**Label:** Abolish SDLT - -Abolish Stamp Duty Land Tax. - -**Type:** bool - -**Current value:** False - ---- - -### gov.hmrc.stamp_duty.residential.purchase.additional.min -**Label:** Stamp Duty secondary residence minimum value - -Minimum value for taxability of additional residential property - -**Type:** int - -**Current value:** 40000 - ---- - -### gov.hmrc.stamp_duty.residential.purchase.main.first.max -**Label:** Stamp Duty first home value limit - -Maximum value for a first-property purchase to receive the Stamp Duty relief for first-time buyers. Increasing this value will underestimate the number of claims for FTBR, as the model will not add new claims. - -**Type:** int - -**Current value:** 500000 - ---- - -### gov.hmrc.stamp_duty.property_sale_rate -**Label:** percentage of properties sold - -This percentage of properties are sold every year. - -**Type:** float - -**Current value:** 0.045 - ---- - -### gov.hmrc.income_tax.allowances.property_allowance -**Label:** Property Allowance - -Amount of income from property untaxed per year - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.hmrc.income_tax.allowances.marriage_allowance.takeup_rate -**Label:** Marriage Allowance take-up rate - -Percentage of eligible couples who claim Marriage Allowance. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.hmrc.income_tax.allowances.marriage_allowance.max -**Label:** Marriage Allowance maximum percentage - -Maximum Marriage Allowance taxable income reduction, as a percentage of the full Personal Allowance - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.hmrc.income_tax.allowances.marriage_allowance.rounding_increment -**Label:** Marriage Allowance rounding increment - -The Marriage Allowance is rounded up by this increment. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.hmrc.income_tax.allowances.personal_allowance.reduction_rate -**Label:** Personal Allowance phase-out rate - -Reduction rate for the Personal Allowance - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.hmrc.income_tax.allowances.personal_allowance.amount -**Label:** Personal allowance - -The Personal Allowance is deducted from general income - -**Type:** int - -**Current value:** 12570 - ---- - -### gov.hmrc.income_tax.allowances.personal_allowance.maximum_ANI -**Label:** Personal Allowance phase-out threshold - -Maximum adjusted net income before the Personal Allowance is reduced - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.hmrc.income_tax.allowances.trading_allowance -**Label:** Trading Allowance - -Amount of trading income untaxed per year - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.hmrc.income_tax.allowances.dividend_allowance -**Label:** Dividend Allowance - -Amount of dividend income untaxed per year - -**Type:** int - -**Current value:** 500 - ---- - -### gov.hmrc.income_tax.rates.uk[0].rate -**Label:** Basic rate - -The basic rate is the first of three tax brackets on all income, after allowances are deducted - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.income_tax.rates.uk[1].threshold -**Label:** Higher rate threshold - -The lower threshold for the higher rate of income tax (and therefore the upper threshold of the basic rate) - -**Type:** int - -**Current value:** 37700 - ---- - -### gov.hmrc.income_tax.rates.uk[1].rate -**Label:** Higher rate - -The higher rate is the middle tax bracket on earned income. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.hmrc.income_tax.rates.uk[2].threshold -**Label:** Additional rate threshold - -The lower threshold for the additional rate - -**Type:** int - -**Current value:** 125140 - ---- - -### gov.hmrc.income_tax.rates.uk[2].rate -**Label:** Additional rate - -The additional rate is the highest tax bracket, with no upper bound - -**Type:** float - -**Current value:** 0.45 - ---- - -### gov.hmrc.income_tax.rates.uk[3].threshold -**Label:** Extra tax bracket threshold - -The lower threshold for the extra bracket rate. - -**Type:** int - -**Current value:** 10000000 - ---- - -### gov.hmrc.income_tax.rates.uk[3].rate -**Label:** Extra tax bracket rate - -An extra tax bracket. - -**Type:** float - -**Current value:** 0.45 - ---- - -### gov.hmrc.income_tax.rates.dividends[0].threshold -**Label:** Dividends basic rate threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.hmrc.income_tax.rates.dividends[0].rate -**Label:** Dividends basic rate - -**Type:** float - -**Current value:** 0.0875 - ---- - -### gov.hmrc.income_tax.rates.dividends[1].threshold -**Label:** Dividends higher rate threshold - -**Type:** int - -**Current value:** 37500 - ---- - -### gov.hmrc.income_tax.rates.dividends[1].rate -**Label:** Dividends higher rate - -**Type:** float - -**Current value:** 0.3375 - ---- - -### gov.hmrc.income_tax.rates.dividends[2].threshold -**Label:** Dividends additional rate threshold - -**Type:** int - -**Current value:** 150000 - ---- - -### gov.hmrc.income_tax.rates.dividends[2].rate -**Label:** Dividends additional rate - -**Type:** float - -**Current value:** 0.3935 - ---- - -### gov.hmrc.income_tax.rates.dividends[3].threshold -**Label:** Extra dividend tax bracket threshold - -The lower threshold for the extra dividend bracket rate. - -**Type:** int - -**Current value:** 10000000 - ---- - -### gov.hmrc.income_tax.rates.dividends[3].rate -**Label:** Extra dividend tax bracket rate - -An extra dividend tax bracket. - -**Type:** float - -**Current value:** 0.3935 - ---- - -### gov.hmrc.income_tax.charges.CB_HITC.phase_out_end -**Label:** Child Benefit Tax Charge phase-out end - -Income after which the Child Benefit is fully phased out - -**Type:** int - -**Current value:** 80000 - ---- - -### gov.hmrc.income_tax.charges.CB_HITC.phase_out_start -**Label:** Child Benefit Tax Charge phase-out threshold - -Income after which the Child Benefit phases out - -**Type:** int - -**Current value:** 60000 - ---- - -### gov.hmrc.tax_free_childcare.minimum_weekly_hours -**Label:** Tax-free childcare weekly work hours minimum - -HMRC limits tax-free childcare to benefit units in which each spouse earns at least the product of their minimum wage and this number of hours per week. - -**Type:** int - -**Current value:** 16 - ---- - -### gov.hmrc.tax_free_childcare.income.income_limit -**Label:** Tax-free childcare maximum adjusted income threshold - -HMRC limits tax-free childcare eligibility to households where individual adjusted income does not exceed this yearly threshold. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.hmrc.tax_free_childcare.age.disability -**Label:** Tax-free childcare disability age limit - -HMRC extends the tax-free childcare program eligibility to children with disabilities up to this age threshold. - -**Type:** int - -**Current value:** 17 - ---- - -### gov.hmrc.tax_free_childcare.age.standard -**Label:** Tax-free childcare standard age limit - -HMRC extends the tax-free childcare program eligibility to children up to this age threshold. - -**Type:** int - -**Current value:** 12 - ---- - -### gov.hmrc.tax_free_childcare.contribution.standard_child -**Label:** Tax-free childcare standard yearly limit - -HMRC provides tax-free childcare contribution up to this yearly amount for households with children under standard eligibility. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.hmrc.tax_free_childcare.contribution.disabled_child -**Label:** Tax-free childcare disabled child yearly limit - -HMRC provides tax-free childcare contribution up to this yearly amount for households with disabled children. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.hmrc.vat.standard_rate -**Label:** VAT standard rate - -The highest VAT rate, applicable to most goods and services. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.vat.reduced_rate -**Label:** VAT reduced rate - -A reduced rate of VAT applicable to select goods and services (domestic fuel and power). - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.hmrc.cgt.additional_rate -**Label:** Capital Gains Tax additional rate - -Capital gains tax rate on additional rate taxpayers. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.cgt.annual_exempt_amount -**Label:** Annual Exempt Amount - -Annual Exempt Amount for individuals. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 3075.723830734966 - ---- - -### gov.hmrc.cgt.higher_rate -**Label:** Capital Gains Tax higher rate - -Capital gains tax rate on higher rate taxpayers. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.hmrc.cgt.basic_rate -**Label:** Capital Gains Tax basic rate - -Capital gains tax rate on basic rate taxpayers. This parameter is under active development and reforms including it should not be cited. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.hmrc.child_benefit.amount.eldest -**Label:** Child Benefit (eldest) - -Child Benefit amount for the eldest or only child - -**Type:** float - -**Current value:** 25.6 - ---- - -### gov.hmrc.child_benefit.amount.additional -**Label:** Child Benefit (additional) - -Child Benefit amount for each additional child - -**Type:** float - -**Current value:** 16.95 - ---- - -### gov.hmrc.child_benefit.opt_out_rate -**Label:** Child Benefit HITC-liable opt-out rate - -Percentage of fully HITC-liable families who opt out of Child Benefit. - -**Type:** float - -**Current value:** 0.23 - ---- - -### gov.hmrc.pensions.pension_contributions_relief_age_limit -**Label:** pension contributions relief age limit - -The pensions contributions relief is limited to filers below this age threshold. - -**Type:** int - -**Current value:** 75 - ---- - -### gov.treasury.cost_of_living_support.pensioners.amount -**Label:** Payment to pensioner households - -Payment to pensioner households receiving benefits. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.cost_of_living_support.means_tested_households.amount -**Label:** Payment to households on means-tested benefits - -Payment to households on means-tested benefits. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.cost_of_living_support.disabled.amount -**Label:** Payment to households on disability benefits - -Payment to households receiving disability benefits. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.energy_bills_rebate.energy_bills_credit -**Label:** Energy bills credit - -Credit on energy bills paid to households. This is modeled as a flat transfer to households. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.treasury.energy_bills_rebate.council_tax_rebate.amount -**Label:** Council Tax rebate amount - -Council Tax rebate paid to households in qualifying Council Tax bands under the Energy Bills Rebate. - -**Type:** int - -**Current value:** 0 - ---- - diff --git a/docs/reference/parameters_us.md b/docs/reference/parameters_us.md deleted file mode 100644 index eb1edb9f..00000000 --- a/docs/reference/parameters_us.md +++ /dev/null @@ -1,13997 +0,0 @@ -# US parameters - -This page shows a list of available parameters for reforms for the US model. - -We exclude from this list: - -* Abolition parameters, which mirror each household property and allow the user to set the value of the property to zero (these take the format `gov.abolitions.variable_name`) because these roughly triple the size of this list and are repetitive. -### calibration.gov.cbo.snap -**Label:** Total SNAP outlays - -Total SNAP benefits. - -**Type:** int - -**Current value:** 93499000000 - ---- - -### calibration.gov.cbo.social_security -**Label:** Social Security benefits - -Social Security total benefits. - -**Type:** int - -**Current value:** 1549110000000 - ---- - -### calibration.gov.cbo.ssi -**Label:** SSI outlays - -SSI total outlays. - -**Type:** int - -**Current value:** 64000000000 - ---- - -### calibration.gov.cbo.unemployment_compensation -**Label:** Unemployment compensation outlays - -Unemployment compensation total outlays. - -**Type:** int - -**Current value:** 37801000000 - ---- - -### calibration.gov.cbo.income_by_source.adjusted_gross_income -**Label:** Total AGI - -**Type:** int - -**Current value:** 17326481000000 - ---- - -### calibration.gov.cbo.income_by_source.employment_income -**Label:** Total employment income - -**Type:** int - -**Current value:** 11422200000000 - ---- - -### calibration.gov.cbo.payroll_taxes -**Label:** Payroll tax revenues - -Historical total federal revenues from payroll taxes (2017-2022) - -**Type:** int - -**Current value:** 1737193000000 - ---- - -### calibration.gov.cbo.income_tax -**Label:** Income tax revenue - -Individual income tax revenue projections (excludes the Premium Tax Credit). - -**Type:** int - -**Current value:** 2550000000000 - ---- - -### calibration.gov.irs.soi.rental_income -**Label:** SOI rental income - -Total rental/royalty net income. - -**Type:** float - -**Current value:** 53884109207.42199 - ---- - -### calibration.gov.irs.soi.returns_by_filing_status.SINGLE -**Label:** Single - -**Type:** float - -**Current value:** 84359456.52088538 - ---- - -### calibration.gov.irs.soi.returns_by_filing_status.JOINT -**Label:** Joint (includes widow(er)s) - -**Type:** float - -**Current value:** 56204914.57638226 - ---- - -### calibration.gov.irs.soi.returns_by_filing_status.HEAD_OF_HOUSEHOLD -**Label:** Head of household - -**Type:** float - -**Current value:** 22006397.47974301 - ---- - -### calibration.gov.irs.soi.returns_by_filing_status.SEPARATE -**Label:** Married filing separately - -**Type:** float - -**Current value:** 4054069.106143078 - ---- - -### calibration.gov.irs.soi.partnership_s_corp_income -**Label:** SOI partnership and S-corp income - -Total partnership and S-corp income. - -**Type:** float - -**Current value:** 1145256886035.313 - ---- - -### calibration.gov.irs.soi.long_term_capital_gains -**Label:** SOI long-term capital gains - -Total long-term capital gains. - -**Type:** float - -**Current value:** 1411800425608.3333 - ---- - -### calibration.gov.irs.soi.social_security -**Label:** SOI social security - -Total social security. - -**Type:** float - -**Current value:** 1157378190142.132 - ---- - -### calibration.gov.irs.soi.employment_income -**Label:** SOI employment income - -Total employment income. - -**Type:** float - -**Current value:** 11422140424132.184 - ---- - -### calibration.gov.irs.soi.self_employment_income -**Label:** SOI self-employment income - -Total self-employment income. - -**Type:** float - -**Current value:** 681645787516.9231 - ---- - -### calibration.gov.irs.soi.farm_income -**Label:** SOI farm income - -Total farm income. - -**Type:** float - -**Current value:** -30622507943.26761 - ---- - -### calibration.gov.irs.soi.unemployment_compensation -**Label:** SOI unemployment compensation - -Total unemployment compensation. - -**Type:** float - -**Current value:** 311019579405.3662 - ---- - -### calibration.gov.irs.soi.farm_rent_income -**Label:** SOI farm rental income - -Total farm rental income. - -**Type:** float - -**Current value:** 7161930234.715397 - ---- - -### calibration.gov.irs.soi.tax_exempt_pension_income -**Label:** SOI tax-exempt pension income - -Total tax-exempt pension income. - -**Type:** float - -**Current value:** 810688304997.5155 - ---- - -### calibration.gov.irs.soi.non_qualified_dividend_income -**Label:** SOI non-qualified dividend income - -Total non-qualified dividend income. - -**Type:** float - -**Current value:** 96664769126.82927 - ---- - -### calibration.gov.irs.soi.qualified_dividend_income -**Label:** SOI qualified dividend income - -Total qualified dividend income. - -**Type:** float - -**Current value:** 371959126439.02435 - ---- - -### calibration.gov.irs.soi.short_term_capital_gains -**Label:** SOI short-term capital gains - -Total short-term capital gains. Taken from the IRS PUF in the absence of a SOI target. - -**Type:** float - -**Current value:** -80009944064.63641 - ---- - -### calibration.gov.irs.soi.taxable_interest_income -**Label:** SOI taxable interest income - -Total taxable interest income. - -**Type:** float - -**Current value:** 171032662482.98755 - ---- - -### calibration.gov.irs.soi.alimony_income -**Label:** SOI short-term capital gains - -Total alimony income. - -**Type:** float - -**Current value:** 9965167847.280357 - ---- - -### calibration.gov.irs.soi.taxable_pension_income -**Label:** SOI taxable pension income - -Total taxable pension income. - -**Type:** float - -**Current value:** 1156066637126.708 - ---- - -### calibration.gov.irs.soi.tax_exempt_interest_income -**Label:** SOI tax-exempt interest income - -Total tax-exempt interest income. - -**Type:** float - -**Current value:** 79824610063.07053 - ---- - -### calibration.gov.treasury.tax_expenditures.eitc -**Label:** EITC outlays - -EITC estimated outlays by the Treasury Department. - -**Type:** int - -**Current value:** 68650000000 - ---- - -### simulation.va.branch_to_determine_if_refundable_eitc -**Label:** Branch to determine Virginia refundability - -PolicyEngine branches to determine whether filers claim the refundable over non-refundable Virginia EITC, as they can choose depending on which minimizes tax liability. - -**Type:** bool - -**Current value:** False - ---- - -### simulation.marginal_tax_rate_adults -**Label:** Number of adults to simulate a marginal tax rate for - -Number of adults to simulate a marginal tax rate for, in each household. - -**Type:** int - -**Current value:** 2 - ---- - -### simulation.branch_to_determine_itemization -**Label:** Branch to determine itemization - -PolicyEngine branches to determine itemization if this is true; otherwise it compares the standard against itemized deductions. - -**Type:** bool - -**Current value:** False - ---- - -### simulation.reported_state_income_tax -**Label:** Use reported State income tax - -Whether to take State income tax liabilities as reported. - -**Type:** bool - -**Current value:** False - ---- - -### simulation.de.branch_to_determine_if_refundable_eitc -**Label:** Branch to determine delaware refundability - -PolicyEngine branches to determine whether filers claim the refundable over non-refundable Delaware EITC, as they can choose depending on which minimizes tax liability. - -**Type:** bool - -**Current value:** False - ---- - -### gov.territories.pr.tax.income.credits.low_income.amount.base -**Label:** Puerto Rico low income tax credit amount - -Puerto Rico provides the following low income tax credit amount. - -**Type:** int - -**Current value:** 400 - ---- - -### gov.territories.pr.tax.income.credits.low_income.age_threshold -**Label:** Puerto Rico low income tax credit age threshold - -Puerto Rico limits the low income tax credit to filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.ed.pell_grant.amount.max -**Label:** Maximum value of the Pell Grant - -The Department of Education limits Pell Grants to this amount. - -**Type:** int - -**Current value:** 7395 - ---- - -### gov.ed.pell_grant.amount.min -**Label:** Minimum value of the Pell Grant - -The Department of Education does not provide Pell Grants if the calculated amount is less than this value. - -**Type:** int - -**Current value:** 740 - ---- - -### gov.ed.pell_grant.months_in_school_year -**Label:** Months in school year - -The Department of Education defines a full school year as this number of months. - -**Type:** int - -**Current value:** 9 - ---- - -### gov.ed.pell_grant.efc.simplified.applies -**Label:** Pell Grant EFC simplified formula applies - -The simplified pell grant efc formula is applied if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.ed.pell_grant.efc.simplified.income_limit -**Label:** Simplified formula max income - -The Department of Education uses the simplified formula if the head and spouse income are below this amount. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.ed.pell_grant.efc.automatic_zero -**Label:** Max income for an automatic 0 EFC - -The Department of Education sets the Expected Family Contribution to zero if a family has income below this value. - -**Type:** int - -**Current value:** 29000 - ---- - -### gov.ed.pell_grant.head.negative_rate -**Label:** Percent of income for negative head available income - -The Department of Education defines the percent of negative available income that counts towards contibution as this value. - -**Type:** float - -**Current value:** 0.22 - ---- - -### gov.ed.pell_grant.head.min_contribution -**Label:** Minimum head contribution - -The Department of Education defines the minimum contribution as this value. - -**Type:** int - -**Current value:** -1500 - ---- - -### gov.ed.pell_grant.sai.limits.max_sai -**Label:** Pell Grant maximum SAI - -The Department of Eduction caps the Pell Grant student aid index at this amount. - -**Type:** int - -**Current value:** 999999 - ---- - -### gov.ed.pell_grant.sai.limits.min_sai -**Label:** Pell Grant minimum SAI - -The Department of Education floors the Pell Grant student aid index at this amount. - -**Type:** int - -**Current value:** -1500 - ---- - -### gov.ed.pell_grant.dependent.asset_assessment_rate -**Label:** EFC dependent asset assessment rate - -The Department of Education counts this share of a dependent student's assets towards the expected family contribution. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.ed.pell_grant.dependent.income_assessment_rate -**Label:** Pell Grant EFC dependent income assessment rate - -The Education Department counts this percent of a dependent student's income towards the Pell Grant expected family contribution. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.ed.pell_grant.dependent.ipa -**Label:** Income protection allowance - -The Department of Education disregards this amount of income when computing the expected family contribution. - -**Type:** int - -**Current value:** 7040 - ---- - -### gov.aca.slspc.last_same_child_age -**Label:** ACA last same-SLSPC child age - -Highest age for which ACA SLSPC amount is the same as for newborns. - -**Type:** int - -**Current value:** 14 - ---- - -### gov.aca.slspc.max_child_age -**Label:** ACA maximum SLSPC child age - -Maximum age for ACA SLSPC amounts. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.aca.slspc.max_adult_age -**Label:** ACA maximum SLSPC adult age - -Maximum age for ACA SLSPC amounts. - -**Type:** int - -**Current value:** 64 - ---- - -### gov.aca.max_child_count -**Label:** ACA maximum child count - -Maximum number of children who pay an age-based ACA plan premium. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change -**Label:** Effective wage rate change LSR bound - -Effective wage rate changes larger than this will be capped at this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.simulation.labor_supply_responses.bounds.income_change -**Label:** Income change LSR bound - -Net income changes larger than this will be capped at this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.all -**Label:** substitution elasticity of labor supply - -Percent change (of the change in the effective marginal wage) in labor supply given a 1% change in the effective marginal wage. This parameter overrides all other substitution elasticities if provided. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.1 -**Label:** primary adult, 1st decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.2 -**Label:** primary adult, 2nd decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.3 -**Label:** primary adult, 3rd decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.4 -**Label:** primary adult, 4th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.5 -**Label:** primary adult, 5th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.6 -**Label:** primary adult, 6th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.7 -**Label:** primary adult, 7th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.8 -**Label:** primary adult, 8th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.9 -**Label:** primary adult, 9th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.primary.10 -**Label:** primary adult, 10th decile substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.substitution.by_position_and_decile.secondary -**Label:** secondary adult, all deciles substitution elasticity - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.labor_supply_responses.elasticities.income -**Label:** income elasticity of labor supply - -Percent change (of the change in disposable income) in labor supply given a 1% change in disposable income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.capital_gains_responses.elasticity -**Label:** capital gains elasticity - -Elasticity of capital gains with respect to the capital gains marginal tax rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.simulation.reported_broadband_subsidy -**Label:** Use reported broadband subsidies - -Broadband subsidies are taken as reported in the CPS ASEC. - -**Type:** bool - -**Current value:** True - ---- - -### gov.simulation.reported_snap -**Label:** Use reported SNAP benefits - -SNAP benefits are taken as reported in the CPS ASEC. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.biden.budget_2025.medicare.rate -**Label:** President Biden additional Medicare tax rate - -President Biden proposed this additional Medicare tax rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.biden.budget_2025.medicare.threshold -**Label:** President Biden additional Medicare tax rate threshold - -President Biden proposed an additional Medicare tax rate for filers with adjusted gross income above this threshold. - -**Type:** float - -**Current value:** 411004.94825739285 - ---- - -### gov.contrib.biden.budget_2025.capital_gains.active -**Label:** Capital income over threshold taxed as ordinary income - -The proposal of President Biden to tax capital income as ordinary is active if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.biden.budget_2025.net_investment_income.rate -**Label:** President Biden additional NIIT rate - -President Biden proposed this additional net investment income tax rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.biden.budget_2025.net_investment_income.threshold -**Label:** President Biden additional NIIT rate threshold - -President Biden proposed an additional net investment income tax rate for filers with adjusted gross income above this threshold. - -**Type:** float - -**Current value:** 411004.94825739285 - ---- - -### gov.contrib.harris.rent_relief_act.rent_relief_credit.subsidized_rent_rate -**Label:** Rent Relief Credit subsidized rent rate - -Kamala Harris proposed to provide a rent relief credit of this share of after-subsidy rent to residents of government-subsidized housing. - -**Type:** float - -**Current value:** 0.083 - ---- - -### gov.contrib.harris.rent_relief_act.rent_relief_credit.high_income_area_threshold_increase -**Label:** Rent Relief Credit high income area threshold increase - -Kamala Harris proposed raising the Rent Relief Act thresholds by this amounts for residents of areas where HUD uses the small area fair market rent for the Housing Choice Voucher Program. - -**Type:** int - -**Current value:** 25000 - ---- - -### gov.contrib.harris.rent_relief_act.rent_relief_credit.in_effect -**Label:** Rent Relief Tax Credit in effect - -The Rent Relief Tax Credit proposed by Kamala Harris applies if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.harris.rent_relief_act.rent_relief_credit.safmr_share_rent_cap -**Label:** Rent Relief Credit rent cap as fraction of SAFMR - -Kamala Harris proposed capping rent at this fraction of small area fair market rent under the rent relief credit. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.contrib.harris.rent_relief_act.rent_relief_credit.rent_income_share_threshold -**Label:** Rent Relief Credit income share threshold - -Kamala Harris proposed to provide a rent relief credit to households who spend more than this share of income on rent. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.contrib.harris.capital_gains.in_effect -**Label:** Harris capital gains tax reform in effect - -Vice President Kamala Harris has proposed to add a top capital gains tax bracket, which comes into effect if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.harris.lift.middle_class_tax_credit.age_threshold -**Label:** Middle Class Tax Credit age threshold - -The Middle Class Tax Credit is limited to filers below this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.contrib.harris.lift.middle_class_tax_credit.in_effect -**Label:** Middle Class Tax Credit in effect - -The Middle Class Tax Credit applies if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.harris.lift.middle_class_tax_credit.joint_multiplier -**Label:** Middle Class Tax Credit joint multiplier - -The amount of the Middle Class Tax Credit is multiplied by this factor for joint filers. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.contrib.harris.lift.middle_class_tax_credit.cap -**Label:** Middle Class Tax Credit cap - -The Middle Class Tax Credit is capped at the following amount. - -**Type:** int - -**Current value:** 3700 - ---- - -### gov.contrib.cbo.payroll.secondary_earnings_threshold -**Label:** Social Security payroll tax secondary earnings threshold - -The US levies payroll taxes on earnings greater than this amount, in addition to earnings below the maximum taxable amount under current law. - -**Type:** float - -**Current value:** inf - ---- - -### gov.contrib.ubi_center.basic_income.amount.tax_unit.fpg_percent -**Label:** Basic income as a percent of tax unit's poverty line - -A basic income is provided to tax units at this percentage of the federal poverty guideline - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[0].amount -**Label:** Young child basic income - -Unconditional payment to young children. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[1].amount -**Label:** Older child basic income - -Unconditional payment to older children. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[1].threshold -**Label:** Older child basic income age - -**Type:** int - -**Current value:** 6 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[2].amount -**Label:** Young adult basic income - -Unconditional payment to working-age adults. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[2].threshold -**Label:** Young adult basic income age - -Age at which individuals receive the young adult payment, rather than the older child payment. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[3].amount -**Label:** Older adult basic income - -Unconditional payment to older adults. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[3].threshold -**Label:** Older adult basic income age - -Age at which individuals receive the older adult payment, rather than the young adult payment. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[4].amount -**Label:** Senior citizen basic income - -Unconditional payment to senior citizens. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.by_age[4].threshold -**Label:** Senior citizen basic income age - -Age at which individuals receive the senior citizen payment, rather than the working-age adult payment. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.disability -**Label:** Disability-based UBI - -Payment to individuals with SSI-qualifying disabilities. - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.flat -**Label:** Basic income - -Basic income amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.amount.person.marriage_bonus -**Label:** Basic income marriage bonus rate - -The following bonus is provided to married couples as a percentage of their basic income amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.agi_limit.in_effect -**Label:** Basic income AGI limit in effect - -Basic income is limited to tax units below an AGI level if this switch is activated. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.rate -**Label:** Basic income phase-out rate - -The basic income phases out at this rate for tax filers with adjusted gross income above the threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.basic_income.phase_out.by_rate -**Label:** Phase out basic income as a rate - -Basic incomes phase out as a rate above a threshold if this is selected; otherwise, they phase out between the threshold and a phase-out end. - -**Type:** bool - -**Current value:** True - ---- - -### gov.contrib.ubi_center.basic_income.taxable -**Label:** Basic income taxability - -Whether the IRS counts basic income in adjusted gross income. If true, this overrides and eliminates all other basic income phase-out parameters. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.phase_in.per_person -**Label:** Phase in basic income per person - -Basic incomes phase in per person if this is selected; otherwise, they phase in at a flat rate irrespective of household size. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.phase_in.rate -**Label:** Basic income phase-in rate - -The basic income phases in at this rate. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.contrib.ubi_center.basic_income.phase_in.in_effect -**Label:** Basic income phase-in in effect - -Basic income is phased in if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.basic_income.phase_in.include_ss_benefits_as_earnings -**Label:** SS benefits treated as earnings for basic income - -Social Security benefits are treated as earnings under the basic income phase in if this is selected. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.flat_tax.rate.gross_income -**Label:** Flat tax rate on gross income - -Flat tax rate applied to federal gross income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.flat_tax.rate.agi -**Label:** Flat tax rate on AGI - -Flat tax rate applied to federal adjusted gross income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ubi_center.flat_tax.abolish_self_emp_tax -**Label:** Abolish self-employment tax - -Abolish self-employment tax liabilities. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.flat_tax.abolish_federal_income_tax -**Label:** Abolish federal income tax - -Abolish all federal income tax liabilities. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.flat_tax.abolish_payroll_tax -**Label:** Abolish payroll taxes - -Abolish all payroll tax liabilities. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ubi_center.flat_tax.deduct_ptc -**Label:** Premium Tax Credit flat tax deduction - -Deduct the Premium Tax Credit from the flat tax. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.joint_eitc.in_effect -**Label:** Joint EITC phase-out rate halving in effect - -A proposal to halve the EITC phase out rate for joint filers. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.deductions.salt.limit_salt_deduction_to_property_taxes -**Label:** Limit SALT deduction to property taxes - -The State and Local Tax (SALT) deduction is limited to the amount of property taxes paid, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.repeal_state_dependent_exemptions.in_effect -**Label:** Repeal state dependent exemptions - -The state dependent exemptions are repealed, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.local.nyc.stc.adjust_income_limit_by_filing_status_and_eligibility_by_children -**Label:** Adjust NYC STC Income Limit by Filing Status and Eligibility by Children - -Adjust the NYC School Tax Credit (Fixed and Rate Reduction components) Income Limit by Filing Status and Eligibility by Children. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.local.nyc.stc.phase_out.in_effect -**Label:** NYC school tax credit phase out in effect - -The NYC school tax credit phases out with state adjusted gross income, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.local.nyc.stc.min_children -**Label:** NYC School Tax Credit Minimum Number of Children - -Limit NYC School Tax Credit eligibility to tax units with at least this many children. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.individual_eitc.agi_eitc_limit -**Label:** EITC AGI limit - -Tax filers with combined earned income over this cannot claim the EITC. This is only active if the Winship EITC reform is active. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.individual_eitc.enabled -**Label:** Individual-income EITCs - -A proposal by Scott Winship to assess EITC income at the individual level, regardless of filing status. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.mn.walz.hf1938.repeal -**Label:** Minnesota Bill HF1938 repeal - -The Minnesota Bill HF1938, implemented by Gov. Walz, is repealed if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.dc.property_tax.phase_out.applies -**Label:** DC property tax credit phase out applies - -The DC property tax credit phases out with adjusted gross income over the income limit, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.dc.property_tax.phase_out.rate -**Label:** DC property tax credit phase out rate - -DC phases the property tax credit out at this rate of adjusted gross income over the income limit. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.contrib.states.dc.property_tax.in_effect -**Label:** DC property tax credit reform in effect - -The DC property tax credit reform applies if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.ny.wftc.amount.max -**Label:** New York Working Families Tax Credit max amount - -New York provides the following maximum Working Families Tax Credit amount per child. - -**Type:** int - -**Current value:** 550 - ---- - -### gov.contrib.states.ny.wftc.child_age_threshold -**Label:** New York Working Families Tax Credit child age threshold - -New York limits the Working Families Tax Credit to children at or below this age. - -**Type:** int - -**Current value:** 16 - ---- - -### gov.contrib.states.ny.wftc.in_effect -**Label:** New York Working Families Tax Credit reform in effect - -The New York Working Families Tax Credit reform applies if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.ny.wftc.exemptions.in_effect -**Label:** New York Working Families Tax Credit exemption reform applies - -The Exemption reform of the New York Working Families Tax Credit reform applies if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.ny.wftc.eitc.match -**Label:** New York Working Families Tax Credit EITC match - -New York matches this fraction of the Earned Income Tax Credit under the Working Families Tax Credit. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.contrib.states.ny.inflation_rebates.in_effect -**Label:** New York inflation rebates in effect - -New York's inflation rebates are in effect if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.states.or.rebate.state_tax_exempt -**Label:** Oregon Basic Income state tax exempt - -The Basic Income amount is exempt from Oregon state income tax if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.snap.abolish_deductions.in_effect -**Label:** Abolish SNAP deductions in effect - -SNAP deductions are abolished, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.snap.abolish_net_income_test.in_effect -**Label:** Abolish SNAP net income test in effect - -SNAP net income test is abolished, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.dc_kccatc.expenses.max -**Label:** DC KCCATC maximum - -DC caps the KCCATC at this amount per eligible child. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.dc_kccatc.expenses.rate -**Label:** DC KCCATC expense share - -The DC KCCATC covers this percentage of child care expenses for the tax unit. - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.dc_kccatc.phase_out.rate -**Label:** DC KCCATC phase-out rate - -DC phases out the KCCATC at this rate of AGI above the threshold. - -**Type:** float - -**Current value:** 0.0 - ---- - -### gov.contrib.dc_kccatc.active -**Label:** DC KCCATC custom reforms active - -Whether to reform the DC KCCATC in line with the parameters in this folder. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.salt_phase_out.in_effect -**Label:** SALT deduction phase out in effect - -The SALT deduction is phased out based on earnings, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.dc_tax_threshold_joint_ratio -**Label:** DC single-joint tax threshold ratio - -Ratio of single to joint tax thresholds for DC's income tax. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.contrib.ctc.oldest_child_supplement.amount -**Label:** CTC oldest child supplement - -An increased Child Tax Credit of this amount is provided to the oldest child in a household. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.ctc.oldest_child_supplement.in_effect -**Label:** CTC oldest child supplement in effect - -An increased Child Tax Credit amount is provided to the oldest child in a household, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.ctc.eppc.expanded_ctc.in_effect -**Label:** Expanded CTC in effect - -An expanded Child Tax Credit amount with an alternative phase-in structure is provided, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.tax_exempt.in_effect -**Label:** Tax exemptions in effect - -Various income sources are exempt from federal income or payroll tax, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.tax_exempt.overtime.income_tax_exempt -**Label:** Overtime income, income tax exempt - -The propsal to exempt overtime income from income tax applies, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.tax_exempt.overtime.payroll_tax_exempt -**Label:** Overtime income payroll tax exempt - -The propsal to exempt overtime income from payroll tax applies, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.tax_exempt.tip_income.income_tax_exempt -**Label:** Tip income, income tax exempt - -The propsal to exempt tip income from payroll tax applies, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.tax_exempt.tip_income.payroll_tax_exempt -**Label:** Tip income payroll tax exempt - -The propsal to exempt tip income from payroll tax applies, if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.treasury.repeal_dependent_exemptions -**Label:** Repeal dependent exemptions - -The dependent exemptions will be repealed if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.delauro.american_family_act.baby_bonus -**Label:** American Family Act baby bonus - -The Child Tax Credit increases by this amount for newborns, above the normal amount for young children. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.phase_out.rate -**Label:** Bonus guaranteed deduction phase-out rate - -Rate at which the bonus guaranteed deduction reduces with AGI. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.phase_out.threshold.SINGLE -**Label:** WFTCA single filer phase-out threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.phase_out.threshold.SEPARATE -**Label:** WFTCA separate filer phase-out threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.phase_out.threshold.HEAD_OF_HOUSEHOLD -**Label:** WFTCA head-of-household filer phase-out threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.phase_out.threshold.JOINT -**Label:** WFTCA joint filer phase-out threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.phase_out.threshold.SURVIVING_SPOUSE -**Label:** WFTCA widow filer phase-out threshold - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.amount.SINGLE -**Label:** WFTCA single filer amount - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.amount.SEPARATE -**Label:** WFTCA separate filer amount - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.amount.HEAD_OF_HOUSEHOLD -**Label:** WFTCA head-of-household filer amount - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.amount.JOINT -**Label:** WFTCA joint filer amount - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wftca.bonus_guaranteed_deduction.amount.SURVIVING_SPOUSE -**Label:** WFTCA widow filer amount - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.wyden_smith.per_child_actc_phase_in -**Label:** Per-child ACTC phase-in - -The US phases in the Additional Child Tax Credit on a per child basis if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.wyden_smith.actc_lookback -**Label:** ACTC lookback - -The US phases in the Additional Child Tax Credit on the greater of current and prior year earnings if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.romney.family_security_act.remove_head_of_household -**Label:** Repeal head of household filing status - -The head of household filing status will be eliminated if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.romney.family_security_act_2024.pregnant_mothers_credit.income_phase_in_end -**Label:** Family Security Act 3.0 Child Tax Credit phase-in earnings limit - -Senator Mitt Romney proposed phasing in the Pregnant Mothers Tax Credit linearly from zero to this earnings level under the Family Security Act 3.0. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.romney.family_security_act_2_0.ctc.child_cap -**Label:** Family Security Act 2.0 Child Tax Credit child cap - -Senator Mitt Romney proposed limiting the Child Tax Credit to this number of children per filer under the Family Security Act 2.0. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.romney.family_security_act_2_0.ctc.apply_ctc_structure -**Label:** Apply Family Security Act 2.0 structure of CTC - -Senator Mitt Romney proposed structural changes to the Child Tax Credit in the Family Security Act 2.0, which apply if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.romney.family_security_act_2_0.ctc.phase_in.income_phase_in_end -**Label:** Family Security Act 2.0 Child Tax Credit phase-in earnings limit - -Senator Mitt Romney proposed phasing in the Child Tax Credit linearly from zero to this earnings level under the Family Security Act 2.0. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.contrib.congress.romney.family_security_act_2_0.eitc.apply_eitc_structure -**Label:** Apply Family Security Act 2.0 structure of EITC - -Senator Mitt Romney proposed structural changes to the Earned Income Tax Credit in the Family Security Act 2.0, which apply if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.tlaib.boost.middle_class_tax_credit.administered_through_ssa -**Label:** BOOST Act middle class credit administered through SSA - -The BOOST Act middle class credit is administered through the Social Security Administration if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.filer_credit.phase_out.rate -**Label:** End Child Poverty Act filer credit phase-out rate - -Phase-out rate for Rep Tlaib's End Child Poverty Act (2022) filer credit - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.filer_credit.eligibility.min_age -**Label:** End Child Poverty Act filer credit minimum age - -Minimum age to qualify for Rep Tlaib's End Child Poverty Act (2022) filer credit - -**Type:** int - -**Current value:** 19 - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.filer_credit.eligibility.max_age -**Label:** End Child Poverty Act filer credit maximum age - -Maximum age to qualify for Rep Tlaib's End Child Poverty Act (2022) filer credit - -**Type:** int - -**Current value:** 64 - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.child_benefit.age_limit -**Label:** End Child Poverty Act child benefit age limit - -The child benefit component under the End Child Poverty Act is limited to dependents below this age. - -**Type:** int - -**Current value:** 19 - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.in_effect -**Label:** End Child Poverty Act in effect - -Rep Tlaib's End Child Poverty Act applies if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.adult_dependent_credit.min_age -**Label:** End Child Poverty Act adult dependent credit minimum age - -Minimum age to qualify for Rep Tlaib's End Child Poverty Act (2022) adult dependent credit - -**Type:** int - -**Current value:** 19 - ---- - -### gov.contrib.congress.tlaib.end_child_poverty_act.adult_dependent_credit.amount -**Label:** End Child Poverty Act adult dependent credit amount - -Amount of Rep Tlaib's End Child Poverty Act (2022) adult dependent credit - -**Type:** float - -**Current value:** 651.7536401178518 - ---- - -### gov.contrib.maryland_child_alliance.abolish_non_refundable_child_eitc -**Label:** Abolish MD non-refundable EITC for families with children - -Abolish the non-refundable Maryland EITC for tax units with children. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.maryland_child_alliance.abolish_refundable_child_eitc -**Label:** Abolish MD refundable EITC for families with children - -Abolish the refundable Maryland EITC for tax units with children. - -**Type:** bool - -**Current value:** False - ---- - -### gov.contrib.second_earner_reform.in_effect -**Label:** Second earner tax reform in effect - -The second earner tax reform is in effect if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.local.co.denver.dhs.property_tax_relief.amount.homeowner -**Label:** Denver property tax relief program homeowner amount - -Denver provides the following Property Tax Relief Program amount for homeowners. - -**Type:** int - -**Current value:** 1800 - ---- - -### gov.local.co.denver.dhs.property_tax_relief.amount.renter -**Label:** Denver property tax relief program renter amount - -Denver provides the following Property Tax Relief Program amount for renters. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.local.co.denver.dhs.property_tax_relief.ami_rate.homeowner -**Label:** Denver homeowner AMI income limit - -Denver limits its Property Tax Relief Program to homeowners with income below this fraction of area median income. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.local.co.denver.dhs.elderly_age_threshold -**Label:** Denver property tax relief program elderly age threshold - -Denver limits the property tax relief program to households with at least one person above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.local.ca.sf.wftc.amount -**Label:** San Francisco Working Families Tax Credit amount - -San Francisco provides this working families tax credit amount. - -**Type:** int - -**Current value:** 250 - ---- - -### gov.local.ca.la.general_relief.amount.married -**Label:** Los Angeles County general relief married amount - -Los Angeles county provides a cash grant of this amount to married filers under the general relief program. - -**Type:** int - -**Current value:** 375 - ---- - -### gov.local.ca.la.general_relief.amount.single -**Label:** Los Angeles County general relief single amount - -Los Angeles county provides a cash grant of this amount to single filers under the general relief program. - -**Type:** int - -**Current value:** 221 - ---- - -### gov.local.ca.la.general_relief.phase_out.max -**Label:** Los Angeles County general relief phase out max - -Los Angeles county phases the general relief out for recipients with net income of up to this amount. - -**Type:** int - -**Current value:** 620 - ---- - -### gov.local.ca.la.general_relief.phase_out.start -**Label:** Los Angeles County general relief phase out start - -Los Angeles county phases the general relief out for recipients with net income starting at this amount. - -**Type:** int - -**Current value:** 201 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.personal_property -**Label:** Los Angeles County general relief personal property value limit - -Los Angeles county qualifies filers for the general relief program with personal property value below this limit. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.cash.recipient -**Label:** Los Angeles County general relief recipient cash value limit - -Los Angeles county qualifies recipient filers for the general relief program with cash in addition to money in the bank account below this limit. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.cash.applicant.married -**Label:** Los Angeles County general relief married applicant cash value limit - -Los Angeles county qualifies married applicant filers for the general relief program with cash in addition to money in the bank account below this limit. - -**Type:** int - -**Current value:** 200 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.cash.applicant.single -**Label:** Los Angeles County general relief single applicant cash value limit - -Los Angeles county qualifies single applicant filers for the general relief program with cash in addition to money in the bank account below this limit. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.income.recipient -**Label:** Los Angeles County general relief recipient income limit - -Los Angeles county qualifies recipient filers for the general relief program with income below this limit. - -**Type:** int - -**Current value:** 621 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.income.applicant.married -**Label:** Los Angeles County general relief married applicant income limit - -Los Angeles county qualifies married applicant filers for the general relief program with income below this limit. - -**Type:** int - -**Current value:** 375 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.income.applicant.single -**Label:** Los Angeles County general relief single applicant income limit - -Los Angeles county qualifies single applicant filers for the general relief program with income below this limit. - -**Type:** int - -**Current value:** 221 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.motor_vehicle.value.resident -**Label:** Los Angeles County general relief resident motor vehicle value limit - -Los Angeles county qualifies resident filers for the general relief program with motor vehicle value below this limit. - -**Type:** int - -**Current value:** 4500 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.motor_vehicle.value.homeless -**Label:** Los Angeles County general relief homeless motor vehicle value limit - -Los Angeles county qualifies homeless filers for the general relief program with motor vehicle value below this limit. - -**Type:** int - -**Current value:** 11500 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.motor_vehicle.cap -**Label:** Los Angeles County general relief resident motor vehicle cap - -Los Angeles county caps the number of motor vehicles that a filer can own to this number under the general relief program. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.local.ca.la.general_relief.eligibility.limit.home_value -**Label:** Los Angeles County general relief home value limit - -Los Angeles county qualifies filers for the general relief program with home value at or below this limit. - -**Type:** int - -**Current value:** 34000 - ---- - -### gov.local.ca.la.general_relief.eligibility.age_threshold -**Label:** Los Angeles County general relief age eligiblity threshold - -Los Angeles county qualifies filers for the general relief program at this age or older. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.local.ca.la.general_relief.housing_subsidy.amount.married -**Label:** Los Angeles County general relief housing subsidy married amount - -Los Angeles county provides a housing subsidy of this amount under the general relief program for couples. - -**Type:** int - -**Current value:** 950 - ---- - -### gov.local.ca.la.general_relief.housing_subsidy.amount.single -**Label:** Los Angeles County general relief housing subsidy single amount - -Los Angeles county provides a housing subsidy of this amount under the general relief program for single filers. - -**Type:** int - -**Current value:** 475 - ---- - -### gov.local.ca.la.general_relief.housing_subsidy.rent_contribution.married -**Label:** Los Angeles County general relief housing subsidy married rent contribution - -Los Angeles county requires married filers who receive the general relief grant to contribute this amout of the total garnt towards their rent. - -**Type:** int - -**Current value:** 200 - ---- - -### gov.local.ca.la.general_relief.housing_subsidy.rent_contribution.single -**Label:** Los Angeles County general relief housing subsidy single rent contribution - -Los Angeles county requires single filers who receive the general relief grant to contribute this amout of the total garnt towards their rent. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.local.ca.la.general_relief.housing_subsidy.move_in_assistance -**Label:** Los Angeles County general relief housing subsidy move-in assistance - -Los Angeles county provides this once-in-a-lifetime move-in assistance payment. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.local.ca.la.dss.expectant_parent_payment.pregnancy_month.max -**Label:** California Department of Social Services Expectant Parent Payment maximum pregnancy month - -The California Department of Social Services provides the Expectant Parent Payment on and before this pregnancy month. - -**Type:** int - -**Current value:** 9 - ---- - -### gov.local.ca.la.dss.expectant_parent_payment.pregnancy_month.min -**Label:** California Department of Social Services Expectant Parent Payment pregnancy months - -The California Department of Social Services provides the Expectant Parent Payment on and after this pregnancy month. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.local.ca.la.dss.expectant_parent_payment.amount -**Label:** California Department of Social Services Expectant Parent Payment amount - -The California Department of Social Services provides the following Expectant Parent Payment. - -**Type:** int - -**Current value:** 900 - ---- - -### gov.local.ca.la.dss.infant_supplement.amount.base -**Label:** California Department of Social Services Infant Supplement base amount - -The California Department of Social Services provides the following base Infant Supplement amount. - -**Type:** int - -**Current value:** 900 - ---- - -### gov.local.ca.la.dss.infant_supplement.amount.group_home -**Label:** California Department of Social Services Infant Supplement group home amount - -The California Department of Social Services provides the following Infant Supplement amount for filers in group homes or STRTP placements. - -**Type:** int - -**Current value:** 1379 - ---- - -### gov.local.ca.la.dwp.ez_save.eligibility.fpg_limit_increase -**Label:** Los Angeles County EZ Save FPG limit - -The Los Angeles Department of Water and Power limits the EZ Save program to households with income below this percentage of the federal poverty line. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.local.ca.la.dwp.ez_save.eligibility.household_size_floor -**Label:** Los Angeles County EZ Save household size floor - -Los Angeles County floors the household size to this number under the EZ Save program. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.local.ca.la.dwp.ez_save.amount -**Label:** Los Angeles County EZ Save amount - -The Los Angeles Department of Water and Power discounts electricity bills by this amount each month for EZ Save participants. - -**Type:** float - -**Current value:** 8.17 - ---- - -### gov.local.md.montgomery.tax.income.credits.eitc.refundable.match -**Label:** Montgomery County EITC match - -Montgomery County matches this percentage of the refundable Maryland Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.56 - ---- - -### gov.local.ny.nyc.tax.income.credits.cdcc.child_age_restriction -**Label:** NYC CDCC child age limit - -New York City limits its child and dependent care to expenses for children under this age. - -**Type:** int - -**Current value:** 4 - ---- - -### gov.local.ny.nyc.tax.income.credits.cdcc.max_rate -**Label:** NYC CDCC match - -New York City matches this fraction of the Child and Dependent Care Credit. - -**Type:** float - -**Current value:** 0.75 - ---- - -### gov.local.ny.nyc.tax.income.credits.cdcc.phaseout_end -**Label:** NYC Child and Dependent Care Credit income limit. - -New York City fully phases out its Child and Dependent Care Credit for filers with this income. - -**Type:** int - -**Current value:** 30000 - ---- - -### gov.local.ny.nyc.tax.income.credits.cdcc.phaseout_start -**Label:** NYC Child and Dependent Care Credit phaseout start. - -New York City reduces its Child and Dependent Care Credit match for filers with income above the threshold. - -**Type:** int - -**Current value:** 25000 - ---- - -### gov.local.ny.nyc.tax.income.credits.school.rate_reduction.income_limit -**Label:** NYC School Tax Credit Rate Reduction Amount Income Limit - -NYC limits its School Tax Credit Rate Reduction Amount to filers with NYC taxable income up to this amount. - -**Type:** int - -**Current value:** 500000 - ---- - -### gov.local.ny.nyc.tax.income.credits.school.fixed.income_limit -**Label:** NYC School Tax Credit Fixed Amount Income Limit - -NYC limits its School Tax Credit Fixed Amount to filers with NY AGI of this amount or less. - -**Type:** int - -**Current value:** 250000 - ---- - -### gov.local.ny.nyc.tax.income.credits.eitc.percent_reduction -**Label:** NYC EITC reduction percentage - -New York City reduces its earned income tax credit match by this fraction for filers with income above the threshold. - -**Type:** float - -**Current value:** 2e-05 - ---- - -### gov.usda.snap.abolish_snap -**Label:** Abolish SNAP - -Abolish SNAP payments. - -**Type:** bool - -**Current value:** False - ---- - -### gov.usda.snap.takeup_rate -**Label:** SNAP takeup rate - -Percentage of eligible SNAP recipients who do not claim SNAP. - -**Type:** float - -**Current value:** 0.82 - ---- - -### gov.usda.snap.student.working_hours_threshold -**Label:** SNAP student working hours threshold - -The United States includes students who work more than this number of weekly hours in the Supplemental Nutrition Assistance Program unit. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.usda.snap.income.limit.gross -**Label:** SNAP gross income limit - -SNAP gross income limit as a percentage of the poverty line. - -**Type:** float - -**Current value:** 1.3 - ---- - -### gov.usda.snap.income.limit.net -**Label:** SNAP net income limit - -SNAP standard net income limit as a percentage of the poverty line. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.usda.snap.income.deductions.earned_income -**Label:** SNAP earned income deduction - -Share of earned income that can be deducted from gross income for SNAP - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.usda.snap.income.deductions.excess_shelter_expense.homeless.deduction -**Label:** SNAP homeless shelter deduction - -SNAP homeless shelter deduction amount. - -**Type:** float - -**Current value:** 190.3 - ---- - -### gov.usda.snap.income.deductions.excess_shelter_expense.income_share_disregard -**Label:** Share of income disregarded for SNAP shelter deduction - -Share of income disregarded for SNAP shelter deduction - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.usda.snap.income.deductions.excess_medical_expense.disregard -**Label:** Medical expense disregard for SNAP excess medical expense deduction - -Monthly medical expenses disregarded for claiming SNAP excess medical expense deduction - -**Type:** int - -**Current value:** 35 - ---- - -### gov.usda.snap.emergency_allotment.minimum -**Label:** SNAP emergency allotment minimum - -States provide SNAP emergency allotments of at least this amount. - -**Type:** int - -**Current value:** 95 - ---- - -### gov.usda.snap.emergency_allotment.allowed -**Label:** SNAP emergency allotment allowed - -The federal government allows states to apply for SNAP emergency allotments when this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.usda.snap.uprating -**Label:** SNAP uprating - -The US sets SNAP benefits at the Thrifty Food Plan each year, updating in October. This approximates that uprating via CPI-U. - -**Type:** float - -**Current value:** 313.7 - ---- - -### gov.usda.csfp.min_age -**Label:** Commodity Supplemental Food Program min age - -The Commodity Supplemental Food Program is limited to filers at or above this age. - -**Type:** int - -**Current value:** 60 - ---- - -### gov.usda.csfp.fpg_limit -**Label:** Commodity Supplemental Food Program FPG limit - -The US limits the Commodity Supplemental Food Program to individuals with household income below this percentage of the federal poverty guidelines. - -**Type:** float - -**Current value:** 1.3 - ---- - -### gov.usda.csfp.amount -**Label:** Commodity Supplemental Food Program amount - -The following food value amount is provided under the Commodity Supplemental Food Program to each eligible person. - -**Type:** int - -**Current value:** 330 - ---- - -### gov.usda.school_meals.income.limit.FREE -**Label:** Free school meal income limit as a percent of the poverty line - -**Type:** float - -**Current value:** 1.3 - ---- - -### gov.usda.school_meals.income.limit.REDUCED -**Label:** Reduced school meal income limit as a percent of the poverty line - -**Type:** float - -**Current value:** 1.85 - ---- - -### gov.usda.wic.abolish_wic -**Label:** Abolish WIC - -Abolish WIC payments. - -**Type:** bool - -**Current value:** False - ---- - -### gov.ssa.sga.non_blind -**Label:** Non-blind Substantial Gainful Activity limit - -The Social Security Administration considers non-blind individuals earning more than this amount, net of impairment-related work expenses, to be engaging in Substantial Gainful Activity. - -**Type:** int - -**Current value:** 1620 - ---- - -### gov.ssa.ssi.abolish_ssi -**Label:** Abolish SSI - -Abolish SSI payments. - -**Type:** bool - -**Current value:** False - ---- - -### gov.ssa.ssi.amount.couple -**Label:** Monthly maximum Federal SSI payment amounts for an eligible individual with an eligible spouse - -Monthly maximum Federal SSI payment amounts for an eligible individual with an eligible spouse. - -**Type:** int - -**Current value:** 1450 - ---- - -### gov.ssa.ssi.amount.individual -**Label:** Monthly maximum Federal SSI payment amounts for an eligible individual - -Monthly maximum Federal SSI payment amounts for an eligible individual. - -**Type:** int - -**Current value:** 967 - ---- - -### gov.ssa.ssi.income.exclusions.blind_or_disabled_working_student.amount -**Label:** SSI blind or disabled working student earned income exclusion amount - -The Social Security Administration excludes the following earned income amount for blind or disabled student filers under the Supplemental Security Income. - -**Type:** int - -**Current value:** 2360 - ---- - -### gov.ssa.ssi.income.exclusions.blind_or_disabled_working_student.age_limit -**Label:** SSI blind or disabled working student earned income exclusion age limit - -The Social Security Administration limits the blind or disabled Supplemental Security Income amount to student filers below this age limit. - -**Type:** int - -**Current value:** 22 - ---- - -### gov.ssa.ssi.income.exclusions.blind_or_disabled_working_student.cap -**Label:** SSI blind or disabled working student earned income exclusion cap - -The Social Security Administration caps the annual earned income exclusion for blind or disabled students receiving Supplemental Security Income at this amount. - -**Type:** int - -**Current value:** 9530 - ---- - -### gov.ssa.ssi.income.exclusions.general -**Label:** SSI flat general income exclusion - -Flat amount of income excluded from SSI countable income. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.ssa.ssi.income.exclusions.earned_share -**Label:** SSI earned income share excluded above flat exclusion - -Share of earned income above the flat exclusion that is excluded from SSI countable income. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.ssa.ssi.income.exclusions.earned -**Label:** SSI flat earned income exclusion - -Flat amount of earned income excluded from SSI countable income. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.ssa.ssi.income.sources.qualifying_quarters_threshold -**Label:** SSI qualifying quarters threshold - -The US provides SSI to legal permanent residents with this minimum number of qualifying quarters of earnings. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.ssa.ssi.eligibility.resources.limit.couple -**Label:** SSI resource limit for couples - -SSI resource limit for couples. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.ssa.ssi.eligibility.resources.limit.individual -**Label:** SSI resource limit for individuals - -SSI resource limit for individuals. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.ssa.ssi.eligibility.aged_threshold -**Label:** Age to qualify for Supplemental Security Income - -Age to qualify for Supplemental Security Income. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.ssa.uprating -**Label:** SSA uprating - -The US indexes Social Security benefits (OASDI and SSI) according to this schedule, annually updating based on CPI-W in the third quarter of the prior year. - -**Type:** float - -**Current value:** 310.866 - ---- - -### gov.fcc.lifeline.amount.rural_tribal_supplement -**Label:** Lifeline supplement for rural Tribal areas - -Lifeline supplement for rural Tribal areas - -**Type:** int - -**Current value:** 25 - ---- - -### gov.fcc.lifeline.amount.standard -**Label:** Lifeline maximum benefit - -Maximum Lifeline benefit amount - -**Type:** float - -**Current value:** 9.25 - ---- - -### gov.fcc.lifeline.fpg_limit -**Label:** Lifeline maximum income as a percent of the poverty line - -Maximum percent of the federal poverty guideline to be eligible for Lifeline - -**Type:** float - -**Current value:** 1.35 - ---- - -### gov.fcc.acp.amount.tribal -**Label:** Affordable Connectivity Program amount for households on Tribal lands - -Maximum monthly Affordable Connectivity Program (ACP) amount for Tribal lands - -**Type:** int - -**Current value:** 0 - ---- - -### gov.fcc.acp.amount.standard -**Label:** Affordable Connectivity Program amount for households not on Tribal lands - -Maximum monthly Affordable Connectivity Program (ACP) amount for non-Tribal lands - -**Type:** int - -**Current value:** 0 - ---- - -### gov.fcc.acp.fpg_limit -**Label:** Affordable Connectivity Program income limit as a percent of the poverty line - -Maximum percent of the federal poverty guideline to be eligible for the Affordable Connectivity Program - -**Type:** int - -**Current value:** 2 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.total -**Label:** High efficiency electric home rebate total annual cap - -The US caps high-efficiency home program rebates at this amount per year for appliance and non-appliance upgrades. - -**Type:** int - -**Current value:** 14000 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.heat_pump_water_heater -**Label:** High efficiency electric home rebate annual cap on electric heat pump water heaters - -The US caps high-efficiency home program rebates at this amount per year for heat pump water heaters. - -**Type:** int - -**Current value:** 1750 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.insulation_air_sealing_ventilation -**Label:** High efficiency electric home rebate annual cap on insulation, air sealing, and ventilation - -The US caps high-efficiency home program rebates at this amount per year for insulation, air sealing, and ventilation. - -**Type:** int - -**Current value:** 1600 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.electric_stove_cooktop_range_or_oven -**Label:** High efficiency electric home rebate annual cap on electric stoves, cooktops ranges, or ovens - -The US caps high-efficiency home program rebates at this amount per year for electric stoves, cooktops, ranges, or ovens. - -**Type:** int - -**Current value:** 840 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.electric_heat_pump_clothes_dryer -**Label:** High efficiency electric home rebate annual cap on electric heat pump clothes dryers - -The US caps high-efficiency home program rebates at this amount per year for heat pump clothes dryers. - -**Type:** int - -**Current value:** 840 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.electric_load_service_center_upgrade -**Label:** High efficiency electric home rebate annual cap on electric load service center upgrades - -The US caps high-efficiency home program rebates at this amount per year for electric load service center upgrades. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.electric_wiring -**Label:** High efficiency electric home rebate annual cap on electric wiring - -The US caps high-efficiency home program rebates at this amount per year for electric wiring. - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.doe.high_efficiency_electric_home_rebate.cap.heat_pump -**Label:** High efficiency electric home rebate annual cap on electric heat pumps - -The US caps high-efficiency home program rebates at this amount per year for heat pumps. - -**Type:** int - -**Current value:** 8000 - ---- - -### gov.doe.residential_efficiency_electrification_rebate.threshold.high -**Label:** Energy savings to qualify for a high residential efficiency and electrification rebate - -The US limits high residential efficiency and electrification rebates to retrofits achieving at least this percentage of modeled energy savings. - -**Type:** float - -**Current value:** 0.35 - ---- - -### gov.doe.residential_efficiency_electrification_rebate.threshold.medium -**Label:** Energy savings to qualify for a medium residential efficiency and electrification rebate - -The US limits medium residential efficiency and electrification rebates to retrofits achieving at least this percentage of modeled energy savings. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.doe.residential_efficiency_electrification_rebate.threshold.low -**Label:** Energy savings to qualify for a residential efficiency and electrification rebate - -The US limits residential efficiency and electrification rebates to retrofits achieving at least this percentage of modeled energy savings. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.vt.tax.income.agi.exclusions.capital_gain.flat.cap -**Label:** Vermont flat capital gains exclusion cap - -Vermont caps the flat capital gains exclusion at this amount. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.vt.tax.income.agi.exclusions.capital_gain.income_share_cap -**Label:** Vermont capital gains exclusion cap as fraction of taxable income - -Vermont caps the net capital gains exclusion at this fraction of federal taxable income. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.vt.tax.income.agi.exclusions.capital_gain.percentage.rate -**Label:** Vermont capital gains percentage exclusion calculation rate - -Vermont multiplies the adjusted net capital gains by this rate under the capital gains percentage exclusion. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.vt.tax.income.agi.exclusions.capital_gain.percentage.cap -**Label:** Vermont capital gains percentage exclusion max amount - -Vermont caps the capital gains percentage exclusion at this amount. - -**Type:** int - -**Current value:** 350000 - ---- - -### gov.states.vt.tax.income.agi.retirement_income_exemption.divisor -**Label:** Vermont retirement income exemption divisor - -Vermont divides the retirement income by this amount under the retirement income exemption. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.vt.tax.income.agi.retirement_income_exemption.csrs.amount -**Label:** Vermont CSRS retirement income exemption cap - -Vermont caps the retirement income exemption from Civil Service Retirement System (CSRS) retirement system at this amount. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.vt.tax.income.agi.retirement_income_exemption.military_retirement.amount -**Label:** Vermont military retirement income exemption cap - -Vermont caps the retirement income exemption from military retirement system at this amount. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.vt.tax.income.deductions.standard.additional -**Label:** Vermont additional aged or blind, head or spouse, standard deduction amount - -Vermont provides this additional standard deduction amount for each aged or blind head or spouse. - -**Type:** float - -**Current value:** 1249.1944768925491 - ---- - -### gov.states.vt.tax.income.credits.elderly_or_disabled -**Label:** Vermont elderly or the disabled tax credit match - -Vermont matches this fraction of the federal credit for elderly or the disabled. - -**Type:** float - -**Current value:** 0.24 - ---- - -### gov.states.vt.tax.income.credits.renter.fmr_rate -**Label:** Vermont renter credit fair market rent rate - -Vermont provides a renter credit of this fraction of fair market rent. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.vt.tax.income.credits.renter.shared_residence_reduction -**Label:** Vermont renter credit shared rent fraction - -Vermont reduces the renter credit by this fraction for filers who reside with people outside their filing unit. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.vt.tax.income.credits.renter.countable_tax_exempt_ss_fraction -**Label:** Vermont renter credit non-taxable social security rate - -Vermont counts this fraction of tax-exempt social security benefits as income for the renter credit. - -**Type:** float - -**Current value:** 0.75 - ---- - -### gov.states.vt.tax.income.credits.ctc.amount -**Label:** Vermont Child Tax Credit amount - -Vermont provides this amount per qualifying child under the child tax credit. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.vt.tax.income.credits.ctc.reduction.increment -**Label:** Vermont Child Tax Credit reduction increment - -Vermont reduces the child tax credit for each of these increments of adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.vt.tax.income.credits.ctc.reduction.amount -**Label:** Vermont Child Tax Credit reduction amount - -Vermont reduces the child tax credit by this amount for each increment of adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.states.vt.tax.income.credits.ctc.reduction.start -**Label:** Vermont Child Tax Credit reduction threshold - -Vermont reduces the child tax credit for filers with adjusted gross income above this amount. - -**Type:** int - -**Current value:** 125000 - ---- - -### gov.states.vt.tax.income.credits.ctc.age_limit -**Label:** Vermont Child Tax Credit age limit - -Vermont limits its child tax credit to children this age or younger. - -**Type:** int - -**Current value:** 5 - ---- - -### gov.states.vt.tax.income.credits.cdcc.rate -**Label:** Vermont child and dependent care credit match - -Vermont matches this percent of the federal child and dependent care credit. - -**Type:** float - -**Current value:** 0.72 - ---- - -### gov.states.vt.tax.income.credits.cdcc.low_income.rate -**Label:** Vermont low-income child and dependent care credit match - -Vermont matches this percent of the federal child and dependent care credit for low-income filers. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.vt.tax.income.credits.eitc.match -**Label:** Vermont earned income tax credit match - -Vermont matches this fraction of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.38 - ---- - -### gov.states.va.tax.income.subtractions.military_basic_pay.threshold -**Label:** Virginia military basic pay subtraction - -Virginia provides a military basic pay subtraction up to this amount for military personnel stationed inside or outside Virginia. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.va.tax.income.subtractions.disability_income.amount -**Label:** Virginia disability income subtraction - -Virginia provides a disability income subtraction up to this amount for personnel with permanent and total disability on federal return - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.va.tax.income.subtractions.military_benefit.age_threshold -**Label:** Virginia military benefit subtraction age threshold - -Virginia provides a military benefit subtraction for military personnel of this age or older. - -**Type:** int - -**Current value:** 55 - ---- - -### gov.states.va.tax.income.subtractions.military_benefit.amount -**Label:** Virginia military benefit subtraction amount - -Virginia provides a military benefit subtraction up to this amount. - -**Type:** int - -**Current value:** 40000 - ---- - -### gov.states.va.tax.income.subtractions.military_benefit.availability -**Label:** Virginia military benefit subtraction age threshold availability - -Virginia allows for the military benefit subtraction to be claimed regardless of age if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.va.tax.income.subtractions.national_guard_pay.cap -**Label:** Virginia national guard pay subtraction cap - -Virginia caps the national guard pay subtraction to this amount. - -**Type:** int - -**Current value:** 5500 - ---- - -### gov.states.va.tax.income.subtractions.age_deduction.age_minimum -**Label:** Age threshold for Virginia Age Deduction - -Virginia allows an age deduction for taxpayers this age and older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.va.tax.income.subtractions.age_deduction.birth_year_limit_for_full_amount -**Label:** Birth year threshold for Virginia Age Deduction. - -Virginia allows a full age deduction for taxpayers born before this year. - -**Type:** int - -**Current value:** 1939 - ---- - -### gov.states.va.tax.income.subtractions.age_deduction.amount -**Label:** Virginia age deduction amount - -Virginia provides an age deduction of up to this amount. - -**Type:** int - -**Current value:** 12000 - ---- - -### gov.states.va.tax.income.subtractions.federal_state_employees.amount -**Label:** Virginia federal state employees subtraction - -Virginia provides a federal state employees subtraction up to this amount for head and spouse who is a federal or state employee. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.va.tax.income.exemptions.aged_blind -**Label:** Virginia aged and blind exemption - -Virginia provides an income tax exemption of this value for each aged and blind head or spouse in the filing unit. - -**Type:** int - -**Current value:** 800 - ---- - -### gov.states.va.tax.income.exemptions.personal -**Label:** Virginia personal exemption amount - -Virginia provides an income tax exemption of this value for each person in the filing unit. - -**Type:** int - -**Current value:** 930 - ---- - -### gov.states.va.tax.income.exemptions.spouse_tax_adjustment.divisor -**Label:** Virginia spouse tax adjustment divisor - -Virginia divides the taxable income by this amount when calculating the spouse tax adjustment. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.va.tax.income.exemptions.spouse_tax_adjustment.cap -**Label:** Virginia spouse tax adjustment cap - -Virginia caps the spouse tax adjustment at the following amount. - -**Type:** int - -**Current value:** 259 - ---- - -### gov.states.va.tax.income.credits.eitc.match.non_refundable -**Label:** Virginia non-refundable earned income tax credit match - -Virginia matches this percent of the federal earned income tax credit as a non-refundable credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.va.tax.income.credits.eitc.match.refundable -**Label:** Virginia refundable earned income tax credit match - -Virginia matches this percent of the federal earned income tax credit as a refundable credit. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.va.tax.income.credits.eitc.low_income_tax.base -**Label:** Virginia earned income tax credit low income credit base - -Virginia multiplies the number of personal exemptions by this amount under the low income tax credit. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.sc.tax.income.subtractions.retirement.subtract_military -**Label:** South Carolina choice to subtract survivors retirement deduction from military retirement deduction - -South Carolina subtracts the survivors retirement deduction from the military retirement deduction if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.sc.tax.income.deductions.net_capital_gain.rate -**Label:** South Carolina net capital gain deduction rate - -South Carolina deducts this fraction of net capital gains from taxable income. - -**Type:** float - -**Current value:** 0.44 - ---- - -### gov.states.sc.tax.income.deductions.young_child.ineligible_age -**Label:** South Carolina young child deduction ineligible age - -South Carolina limits its young child deduction to children below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.sc.tax.income.deductions.young_child.amount -**Label:** South Carolina young child deduction amount - -South Carolina provides a young child deduction of this amount. - -**Type:** int - -**Current value:** 4610 - ---- - -### gov.states.sc.tax.income.exemptions.senior.age_threshold -**Label:** South Carolina senior exemption age threshold - -South Carolina allows filers above this age to be eligible for the senior exemption. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.sc.tax.income.exemptions.senior.amount -**Label:** South Carolina senior exemption amount - -South Carolina provides the following senior exemption amount for self. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.sc.tax.income.exemptions.senior.spouse_amount -**Label:** South Carolina senior exemption spouse amount - -South Carolina provides the following senior exemption amount for spouse. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.sc.tax.income.credits.cdcc.max_care_expense_year_offset -**Label:** Decoupled year offset for maximum CDCC expense cap - -Decoupled year offset for maximum CDCC expense cap - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.sc.tax.income.credits.cdcc.rate -**Label:** South Carolina Child and Dependent Care Credit match - -South Carolina matches this share of the federal Child and Dependent Care Credit. - -**Type:** float - -**Current value:** 0.07 - ---- - -### gov.states.sc.tax.income.credits.eitc.rate -**Label:** South Carolina EITC Rate - -South Carolina matches the federal EITC at this rate. - -**Type:** float - -**Current value:** 1.25 - ---- - -### gov.states.ut.tax.income.rate -**Label:** Utah income tax rate - -Utah taxes personal income at this flat rate. - -**Type:** float - -**Current value:** 0.0455 - ---- - -### gov.states.ut.tax.income.credits.at_home_parent.parent_max_earnings -**Label:** Utah at-home parent credit maximum earnings - -Maximum earnings for the claimant to qualify for the Utah at-home parent credit. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.ut.tax.income.credits.at_home_parent.max_agi -**Label:** Utah at-home parent credit maximum AGI - -Maximum adjusted gross income for a tax unit to qualify for the Utah at-home parent credit. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.states.ut.tax.income.credits.at_home_parent.max_child_age -**Label:** Utah at-home parent credit maximum child age - -Maximum age for a child to quality for the Utah at-home parent credit. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ut.tax.income.credits.at_home_parent.amount -**Label:** Utah at-home parent credit amount - -The amount of at-home credit per qualifying child. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.ut.tax.income.credits.taxpayer.rate -**Label:** Utah taxpayer credit rate - -The maximum taxpayer credit is this percentage of federal deductions plus the personal exemption. - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.states.ut.tax.income.credits.taxpayer.phase_out.rate -**Label:** Utah taxpayer credit phase-out rate - -The Utah taxpayer credit reduces by this rate for each dollar of income above the phase-out threshold. - -**Type:** float - -**Current value:** 0.013 - ---- - -### gov.states.ut.tax.income.credits.taxpayer.personal_exemption -**Label:** Utah taxpayer credit personal exemption - -This exemption is added to federal standard or itemized deductions for the taxpayer credit. - -**Type:** float - -**Current value:** 2108.4230257812505 - ---- - -### gov.states.ut.tax.income.credits.taxpayer.in_effect -**Label:** Utah additional qualifying dependent for personal exemption in effect - -Utah provides an additional qualifying dependent personal exemption if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ut.tax.income.credits.retirement.birth_year -**Label:** Utah retirement credit birth year - -Utah limits the retirement credit to filers born in or before this year. - -**Type:** int - -**Current value:** 1952 - ---- - -### gov.states.ut.tax.income.credits.earned_income.rate -**Label:** Utah EITC match - -Utah matches this percentage of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ut.tax.income.credits.ctc.amount -**Label:** Utah child tax credit amount - -Utah provides the following child tax credit amount, per eligible child. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ut.tax.income.credits.ctc.reduction.rate -**Label:** Utah child tax credit reduction rate - -Utah reduces the child tax credit by the following rate, based on state adjusted gross income and tax exempt interest income. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.ga.tax.income.agi.exclusions.retirement.cap.younger -**Label:** Georgia retirement income exclusion younger cap - -Georgia subtracts this lower retirement income amount for filers meeting the younger age threshold. - -**Type:** int - -**Current value:** 35000 - ---- - -### gov.states.ga.tax.income.agi.exclusions.retirement.cap.earned_income -**Label:** Georgia retirement exclusion earned income cap - -Georgia limits the earned income portion of the retirement exclusion to the following amount. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.states.ga.tax.income.agi.exclusions.retirement.cap.older -**Label:** Georgia retirement income exclusion older cap - -Georgia subtracts this higher retirement income amount for filers meeting the older age threshold. - -**Type:** int - -**Current value:** 65000 - ---- - -### gov.states.ga.tax.income.agi.exclusions.retirement.age_threshold.younger -**Label:** Georgia retirement income exclusion younger age threshold - -Georgia allows filers to receive the lower retirement income exclusion amount at or above the following younger age threshold. - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.ga.tax.income.agi.exclusions.retirement.age_threshold.older -**Label:** Georgia retirement income exclusion older age threshold - -Georgia allows filers to receive the higher retirement income exclusion amount at or above the following older age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ga.tax.income.agi.exclusions.military_retirement.age_limit -**Label:** Georgia military retirement income exclusion age limit - -Georgia qualifies filers for the military retirement income exclusions below the following age. - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.ga.tax.income.agi.exclusions.military_retirement.additional.earned_income_threshold -**Label:** Georgia additional retirement exclusion earned income threshold - -Georgia qualifies filers for the additional military retirement income exclusion with earned income above this threshold. - -**Type:** int - -**Current value:** 17500 - ---- - -### gov.states.ga.tax.income.agi.exclusions.military_retirement.additional.amount -**Label:** Georgia military retirement income exclusion additional amount - -Georgia subtracts this additional amount of military retirement income exclusion from adjusted gross income. - -**Type:** int - -**Current value:** 17500 - ---- - -### gov.states.ga.tax.income.agi.exclusions.military_retirement.base -**Label:** Georgia military retirement income exclusion base amount - -Georgia provides military retirement income exclusion for the age filer at this amount. - -**Type:** int - -**Current value:** 17500 - ---- - -### gov.states.ga.tax.income.deductions.standard.blind.head -**Label:** Georgia additional standard deduction for blind head - -Georgia allows for this additional standard deduction for blind filers. - -**Type:** int - -**Current value:** 1300 - ---- - -### gov.states.ga.tax.income.deductions.standard.blind.spouse -**Label:** Georgia additional standard deduction for blind spouse - -Georgia allows for this additional standard deduction for the blind spouse. - -**Type:** int - -**Current value:** 1300 - ---- - -### gov.states.ga.tax.income.deductions.standard.aged.amount.head -**Label:** Georgia additional standard deduction for aged head - -Georgia provides this additional standard deduction for aged filers. - -**Type:** int - -**Current value:** 1300 - ---- - -### gov.states.ga.tax.income.deductions.standard.aged.amount.spouse -**Label:** Georgia additional standard deduction for aged spouse - -Georgia provides this additional standard deduction for the aged spouse. - -**Type:** int - -**Current value:** 1300 - ---- - -### gov.states.ga.tax.income.deductions.standard.aged.age_threshold -**Label:** Georgia additional standard deduction age threshold - -Georgia provides additional standard deduction for the taxpayer or spouse at or above the following age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ga.tax.income.exemptions.dependent -**Label:** Georgia dependent exemption amount - -Georgia issues the following exemption amount for each dependent. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.states.ga.tax.income.credits.low_income.supplement_age_eligibility -**Label:** Georgia low income credit supplement age eligibility - -Georgia provides an additional exemption under the low income credit for head and spouse at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ga.tax.income.credits.cdcc.rate -**Label:** Georgia tax credits for qualified child and dependent care expenses - -Georgia matches this percentage of the federal child and dependent care credit. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.states.ms.tax.income.adjustments.self_employment.rate -**Label:** Mississippi self-employment tax adjustment rate - -Mississippi subtracts this fraction of self-employment taxes from adjusted gross income. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ms.tax.income.adjustments.national_guard_or_reserve_pay.cap -**Label:** Mississippi national guard or reserve pay adjustment cap - -Mississippi limits the national guard or reserve pay adjustment to the following amount. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.ms.tax.income.exemptions.blind.amount -**Label:** Mississippi blind exemption amount - -Mississippi provides an exemption of this amount per blind filer or spouse. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.states.ms.tax.income.exemptions.dependents.amount -**Label:** Mississippi dependent exemption - -Mississippi provides an exemption of this amount per dependent. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.states.ms.tax.income.exemptions.aged.age_threshold -**Label:** Mississippi senior exemption age threshold - -Mississippi provides the aged exemption amount for aged filers or spouse at or above this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ms.tax.income.exemptions.aged.amount -**Label:** Mississippi aged exemption amount - -Mississippi provides an exemption of this amount per aged filer or spouse. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.states.ms.tax.income.credits.cdcc.match -**Label:** Mississippi CDCC match - -Mississippi matches this percentage of the federal child and dependent care credit. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ms.tax.income.credits.cdcc.income_limit -**Label:** Mississippi CDCC income limit - -Mississippi limits the child and dependent care credit to filers with income below the following amount. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.states.mt.tax.income.subtractions.disability_income.age_threshold -**Label:** Montana disability income exclusion age limit - -Montana limits the disability income exclusion to filers under this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mt.tax.income.subtractions.disability_income.cap -**Label:** Montana disability income exclusion cap - -Montana caps the individual disability income exclusion at this amount. - -**Type:** int - -**Current value:** 5200 - ---- - -### gov.states.mt.tax.income.subtractions.tuition.cap -**Label:** Montana tuition subtraction cap - -Montana caps the tuition subtraction at this maximum amount. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.mt.tax.income.deductions.standard.rate -**Label:** Montana standard deduction rate - -Montana provides a standard deduction equal to this percentage of Montana adjusted gross income, subject to minimum and maximum values. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.mt.tax.income.deductions.child_dependent_care_expense.age_limit -**Label:** Montana Child and Dependent Care Expense deduction age threshold - -Montana limits the child and dependent care expense deduction to expenses for dependents who have a disability or are below this age. - -**Type:** int - -**Current value:** 15 - ---- - -### gov.states.mt.tax.income.main.capital_gains.in_effect -**Label:** Montana capital gains tax rate in effect - -Montana taxes capital gains at a separate tax rate from other income if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.mt.tax.income.exemptions.interest.age_threshold -**Label:** Montana senior interest income exclusion age threshold - -Montana partially excludes interest from adjusted gross income of filers and spouses at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mt.tax.income.exemptions.age_threshold -**Label:** Montana income tax aged exemption age threshold - -Montana provides an additional tax exemption to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mt.tax.income.exemptions.amount -**Label:** Montana income tax exemption amount - -Montana deducts this amount for each eligible exemption when computing taxable income. - -**Type:** int - -**Current value:** 2960 - ---- - -### gov.states.mt.tax.income.credits.elderly_homeowner_or_renter.net_household_income.standard_exclusion -**Label:** Montana elderly homeowner or renter credit net household income standard exclusion - -Montana excludes this amount of net household income when computing net household income for elderly homeowner or renter credit. - -**Type:** int - -**Current value:** 12600 - ---- - -### gov.states.mt.tax.income.credits.elderly_homeowner_or_renter.age_threshold -**Label:** Montana elderly homeowner or renter credit age threshold - -Montana limits the elderly homeowner or renter credit to filers of this age or older. - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.mt.tax.income.credits.elderly_homeowner_or_renter.rent_equivalent_tax_rate -**Label:** Montana elderly homeowner or renter credit rent equivalent rate - -Montana counts this fraction of rent as property tax for its elderly homeowner or renter credit. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.mt.tax.income.credits.elderly_homeowner_or_renter.cap -**Label:** Montana elderly homeowner or renter credit pre multiplier cap - -Montana caps the pre-multiplier amount of the elderly homeowner or renter credit to this amount. - -**Type:** int - -**Current value:** 1150 - ---- - -### gov.states.mt.tax.income.credits.rebate.property.amount -**Label:** Montana property tax rebate amount - -Montana provides the following property tax rebate amount. - -**Type:** int - -**Current value:** 675 - ---- - -### gov.states.mt.tax.income.credits.ctc.income_limit.investment -**Label:** Montana child tax credit investment income limit - -Montana limits its child tax credit to filers with investment income below this amount. - -**Type:** int - -**Current value:** 10300 - ---- - -### gov.states.mt.tax.income.credits.ctc.income_limit.agi -**Label:** Montana child tax credit adjusted gross income limit - -Montana limits its child tax credit to filers with federal adjusted gross income below this amount. - -**Type:** int - -**Current value:** 56000 - ---- - -### gov.states.mt.tax.income.credits.ctc.reduction.increment -**Label:** Montana child tax credit reduction increment - -Montana reduces the child tax credit for each of these increments that a filer's adjusted gross income exceeds the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.mt.tax.income.credits.ctc.reduction.amount -**Label:** Montana child tax credit reduction amount - -Montana reduces the child tax credit by this amount for each income increment. - -**Type:** int - -**Current value:** 90 - ---- - -### gov.states.mt.tax.income.credits.ctc.reduction.threshold -**Label:** Montana child tax credit reduction threshold - -Montana reduces the child tax credit for filers with income above this income threshold. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.states.mt.tax.income.credits.capital_gain.percentage -**Label:** Montana capital gains credit rate - -Montana provides a credit for this fraction of the filer's net capital gains. - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.states.mt.tax.income.credits.eitc.match -**Label:** Montana EITC match - -Montana matches this fraction of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.mo.tax.income.deductions.mo_max_social_security_benefit -**Label:** Missouri max social security benefit - -Missouri provides maximum amount of social security benefit. - -**Type:** float - -**Current value:** 48537.179835643285 - ---- - -### gov.states.mo.tax.income.deductions.business_income.rate -**Label:** Missouri business income deduction rate - -Missouri caps the business income deduction at this percentage of total business income. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.mo.tax.income.deductions.mo_max_private_pension -**Label:** Missouri maximum private pension amount - -Missouri provides this maximum amount of private pension. - -**Type:** int - -**Current value:** 6000 - ---- - -### gov.states.mo.tax.income.minimum_taxable_income -**Label:** Missouri minimum taxable income - -Missouri only levies tax on taxable income of at least this amount. - -**Type:** int - -**Current value:** 1273 - ---- - -### gov.states.mo.tax.income.credits.wftc.match -**Label:** Missouri EITC match - -Missouri matches this percentage of the federal Earned Income Tax Credit under the Working Families Tax Credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.mo.tax.income.credits.property_tax.income_offset.joint_renter -**Label:** Missouri income offset for married joint unit that paid some rent - -Gross income offset for a married couple filing jointly who rent. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.mo.tax.income.credits.property_tax.income_offset.non_joint -**Label:** Missouri income offset for all tax units that did not file as married joint - -Gross income offset for those not a married couple filing jointly. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.mo.tax.income.credits.property_tax.income_offset.joint_owner -**Label:** Missouri income offset for married joint unit that owns house (and paid no rent) - -Gross income offset for a married couple filing jointly who own. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.states.mo.tax.income.credits.property_tax.age_threshold -**Label:** Missouri property tax credit age threshold - -Age threshold for qualification for the MO Property Tax Credit - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mo.tax.income.credits.property_tax.phase_out.step -**Label:** Missouri property tax credit phaseout step size - -Step size by which maximum MO property tax credit is phased out. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.mo.tax.income.credits.property_tax.phase_out.rate -**Label:** Missouri property tax credit phaseout rate - -Rate at which maximum MO property tax credit is phased out. - -**Type:** float - -**Current value:** 0.000625 - ---- - -### gov.states.mo.tax.income.credits.property_tax.phase_out.threshold -**Label:** Missouri property tax credit phaseout threshold - -Net household income above which MO property tax credit is reduced. - -**Type:** int - -**Current value:** 14300 - ---- - -### gov.states.mo.tax.income.credits.property_tax.rent_property_tax_limit -**Label:** Missouri property tax credit limit for property renters - -Maximum claimable property tax associated with a rented property. - -**Type:** int - -**Current value:** 750 - ---- - -### gov.states.mo.tax.income.credits.property_tax.property_tax_rent_ratio -**Label:** Missouri property tax credit property-tax-to-total-rent ratio - -Ratio of property tax to total rent. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.mo.tax.income.credits.property_tax.property_tax_limit -**Label:** Missouri property tax credit limit for property owners - -Maximum claimable property tax associated with an owned property. - -**Type:** int - -**Current value:** 1100 - ---- - -### gov.states.mo.tax.income.credits.property_tax.aged_survivor_min_age -**Label:** Missouri property tax credit aged survivor minimum age - -Minimum age for person with social security survivors benefits - -**Type:** int - -**Current value:** 60 - ---- - -### gov.states.ma.tax.income.rates.part_b -**Label:** Massachusetts main income tax rate - -The tax rate on all taxable income that is not dividends or capital gains. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.ma.tax.income.rates.part_a.capital_gains -**Label:** Massachusetts short-term capital gains tax rate - -Massachusetts taxes Part A short-term capital gains at this rate. - -**Type:** float - -**Current value:** 0.085 - ---- - -### gov.states.ma.tax.income.rates.part_a.dividends -**Label:** Massachusetts dividend tax rate - -The tax rate on Part A dividend income. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.ma.tax.income.rates.part_c -**Label:** Massachusetts long-term capital gains rate - -The tax rate on long-term capital gains. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.ma.tax.income.deductions.rent.share -**Label:** Rent share for state income tax deduction - -Share of rent that can be deducted from income for Massachusetts income tax. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ma.tax.income.deductions.public_retirement_contributions -**Label:** Massachusetts income tax pension contributions maximum deduction - -Maximum pension contributions deductible per person for Massachusetts state income tax. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.ma.tax.income.capital_gains.long_term_collectibles_deduction -**Label:** MA Long-term capital gains on collectibles deduction rate - -Percent of long-term capital gains on collectibles that is deductible from Part A (interest, dividends and short-term capital gains) gross income, after loss deductions. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ma.tax.income.capital_gains.deductible_against_interest_dividends -**Label:** MA income tax max capital gains deductible against interest or dividends - -Maximum capital losses deductible against interest or dividends. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.ma.tax.income.exemptions.blind -**Label:** Massachusetts income tax blind exemption - -Massachusetts income tax exemption per blind head or spouse. - -**Type:** int - -**Current value:** 2200 - ---- - -### gov.states.ma.tax.income.exemptions.dependent -**Label:** Massachusetts income tax dependent exemption - -State income tax exemption per dependent. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ma.tax.income.exemptions.aged.amount -**Label:** Massachusetts income tax aged exemption - -Massachusetts income tax exemption per aged head or spouse. - -**Type:** int - -**Current value:** 700 - ---- - -### gov.states.ma.tax.income.exemptions.aged.age -**Label:** Massachusetts income tax aged exemption age threshold - -Age threshold to be eligible for a Massachusetts income tax aged exemption - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ma.tax.income.credits.dependent_care.dependent_cap -**Label:** Massachusetts dependent care credit dependent cap - -Massachusetts dependent care credit maximum number of qualifying individuals. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.ma.tax.income.credits.dependent_care.amount -**Label:** Massachusetts dependent care credit - -Massachusetts dependent care credit amount per dependent - -**Type:** int - -**Current value:** 240 - ---- - -### gov.states.ma.tax.income.credits.dependent_care.in_effect -**Label:** Massachusetts Dependent Care Tax Credit in effect - -Massachusetts provides the greater of the Dependent Tax Credit and the Dependent Care Tax Credit if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.ma.tax.income.credits.limited_income_credit.income_limit -**Label:** Massachusetts limited income tax credit income limit - -Maximum income for the Massachusetts Limited Income Credit, as a percentage of the AGI exempt limit. - -**Type:** float - -**Current value:** 1.75 - ---- - -### gov.states.ma.tax.income.credits.limited_income_credit.percent -**Label:** Massachusetts limited income tax credit percentage - -Massachusetts limited income tax credit percentage. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.ma.tax.income.credits.senior_circuit_breaker.amount.min_real_estate_tax -**Label:** Massachusetts Senior Circuit Breaker real estate tax threshold - -Real estate taxes (or equivalent rents) over this percentage of income (for the MA SCB) increase the Massachusetts Senior Circuit Breaker credit. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.ma.tax.income.credits.senior_circuit_breaker.amount.max -**Label:** Massachusetts Senior Circuit Breaker maximum payment - -Maximum payment under the Massachusetts Senior Circuit Breaker credit. - -**Type:** int - -**Current value:** 2590 - ---- - -### gov.states.ma.tax.income.credits.senior_circuit_breaker.amount.rent_tax_share -**Label:** Massachusetts Senior Circuit Breaker rent tax share - -Percentage of rent which is regarded as 'real estate tax payment' for the Massachusetts Senior Circuit Breaker. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ma.tax.income.credits.senior_circuit_breaker.eligibility.min_age -**Label:** Massachusetts Senior Circuit Breaker minimum age - -Minimum age to qualify for the Massachusetts Senior Circuit Breaker credit. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ma.tax.income.credits.senior_circuit_breaker.eligibility.max_property_value -**Label:** Massachusetts Senior Circuit Breaker maximum property value - -Maximum assessed property value for the Massachusetts Senior Circuit Breaker credit. - -**Type:** int - -**Current value:** 1025000 - ---- - -### gov.states.ma.tax.income.credits.covid_19_essential_employee_premium_pay_program.min_earnings -**Label:** Massachusetts COVID-19 Essential Employee Premium Pay Program minimum earnings - -Minimum earned income to qualify for Massachusetts COVID-19 Essential Employee Premium Pay Program. - -**Type:** int - -**Current value:** 13500 - ---- - -### gov.states.ma.tax.income.credits.covid_19_essential_employee_premium_pay_program.amount -**Label:** Massachusetts COVID-19 Essential Employee Premium Pay Program amount - -Amount of Massachusetts COVID-19 Essential Employee Premium Pay Program. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.ma.tax.income.credits.covid_19_essential_employee_premium_pay_program.max_poverty_ratio -**Label:** Massachusetts COVID-19 Essential Employee Premium Pay Program maximum poverty ratio - -Maximum poverty ratio to qualify for Massachusetts COVID-19 Essential Employee Premium Pay Program. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.ma.tax.income.credits.dependent.dependent_cap -**Label:** Massachusetts child and dependent credit dependent cap - -Massachusetts limits its child and dependent tax credit to this number of dependents. - -**Type:** float - -**Current value:** inf - ---- - -### gov.states.ma.tax.income.credits.dependent.amount -**Label:** Massachusetts child and dependent credit amount - -Massachusetts provides this amount for each dependent in its child and dependent credit. - -**Type:** int - -**Current value:** 440 - ---- - -### gov.states.ma.tax.income.credits.dependent.child_age_limit -**Label:** Massachusetts dependent credit child age limit - -Age at which children no longer qualify for the Massachusetts dependent tax credit. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.states.ma.tax.income.credits.dependent.elderly_age_limit -**Label:** Massachusetts dependent credit elderly age limit - -Age at which elderly dependents qualify for the Massachusetts dependent tax credit. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ma.tax.income.credits.eitc.match -**Label:** Massachusetts EITC match - -Massachusetts matches this fraction of the federal earned income credit. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.ak.dor.permanent_fund_dividend -**Label:** Alaska taxable permanent fund dividend - -Alaska provides this Permanent Fund Dividend amount. - -**Type:** float - -**Current value:** 1403.83 - ---- - -### gov.states.ak.dor.energy_relief -**Label:** Alaska energy relief - -Alaska provides this one-time energy relief payment. - -**Type:** float - -**Current value:** 298.17 - ---- - -### gov.states.ky.tax.income.deductions.standard -**Label:** Kentucky standard deduction amount - -Kentucky provides this standard deduction amount. - -**Type:** int - -**Current value:** 3270 - ---- - -### gov.states.ky.tax.income.rate -**Label:** Kentucky income tax rate - -Kentucky taxes individual income at this rate. - -**Type:** float - -**Current value:** 0.04 - ---- - -### gov.states.ky.tax.income.exclusions.pension_income.threshold -**Label:** Kentucky income tax rate - -Kentucky caps the pension income at this amount for most individuals. - -**Type:** int - -**Current value:** 31110 - ---- - -### gov.states.ky.tax.income.credits.personal.amount.blind -**Label:** Kentucky personal tax credits blind amount - -Kentucky provides this personal tax credit for blind filers. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.ky.tax.income.credits.personal.amount.military -**Label:** Kentucky personal tax credits military service amount - -Kentucky provides this personal tax credit for filers who served in the military. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.states.ky.tax.income.credits.tuition_tax.rate -**Label:** Kentucky tuition tax credit rate - -Kentucky matches this fraction of the American Opportunity and the Lifetime Learning credits, for undergraduate education at Kentucky institutions. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ky.tax.income.credits.dependent_care_service.match -**Label:** Kentucky dependent care service credit rate - -Kentucky matches the federal child and dependent care credit at the following rate for its dependent care service credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ky.tax.income.credits.family_size.family_size_cap -**Label:** Kentucky family size tax credit family size cap - -Kentucky caps the family size at this number when calculating the poverty threshold for the family size tax credit. - -**Type:** int - -**Current value:** 4 - ---- - -### gov.states.al.tax.income.deductions.itemized.work_related_expense_rate -**Label:** Alabama work-related expense deduction rate - -Alabama deducts work-related expense over this percentage of adjusted gross income. - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.states.al.tax.income.deductions.itemized.medical_expense.income_floor -**Label:** Alabama medical expenses deduction income floor - -Alabama deducts medical expenses over this percentage of adjusted gross income. - -**Type:** float - -**Current value:** 0.04 - ---- - -### gov.states.al.tax.income.exemptions.retirement.age_threshold -**Label:** Alabama retirement exemption age threshold - -Alabama provides the retirement exemption to filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.al.tax.income.exemptions.retirement.cap -**Label:** Alabama retirement exemption cap - -Alabama caps the retirement exemption at this amount. - -**Type:** int - -**Current value:** 6000 - ---- - -### gov.states.nh.tax.income.rate -**Label:** New Hampshire tax rate - -New Hampshire taxes interest and dividends at this rate. - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.states.nh.tax.income.exemptions.amount.old_age_addition -**Label:** New Hampshire old age exemption amount - -New Hampshire provides an old age exemption amount for filers of or above the age 65. - -**Type:** int - -**Current value:** 1200 - ---- - -### gov.states.nh.tax.income.exemptions.amount.disabled_addition -**Label:** New Hampshire disabled exemption amount - -New Hampshire provided an exemption amount for disabled filers below the age of 65. - -**Type:** int - -**Current value:** 1200 - ---- - -### gov.states.nh.tax.income.exemptions.amount.blind_addition -**Label:** New Hampshire blind exemption - -New Hampshire provides an exemption of this amount per blind filer. - -**Type:** int - -**Current value:** 1200 - ---- - -### gov.states.nh.tax.income.exemptions.disability_age_threshold -**Label:** New Hampshire disabled exemption age threshold - -New Hampshire provides an exemption for disabled filers below this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nh.tax.income.exemptions.old_age_eligibility -**Label:** New Hampshire old age exemption eligibility - -New Hampshire provides an exemption for taxpayers on or older than this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mn.tax.income.subtractions.elderly_disabled.agi_offset_extra -**Label:** Minnesota extra AGI offset in elderly/disabled subtraction calculations - -Minnesota allows a subtraction from federal adjusted gross income to get its taxable income that is available to tax units with elderly or disabled heads or spouses that met certain eligibility conditions with this variable being extra offset against US AGI when there are two aged/disabled spouses in the tax unit. - -**Type:** int - -**Current value:** 3500 - ---- - -### gov.states.mn.tax.income.subtractions.elderly_disabled.net_agi_fraction -**Label:** Minnesota elderly/disabled subraction net AGI fraction - -Minnesota allows a subtraction from federal adjusted gross income to get its taxable income that is available to tax units with elderly or disabled heads or spouses that met certain eligibility conditions with this variable being the fraction of net AGI that reduces the subtraction amount. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.mn.tax.income.subtractions.elderly_disabled.minimum_age -**Label:** Minnesota elderly/disabled subtraction minimum age for age eligibility - -Minnesota allows a subtraction from federal adjusted gross income to get its taxable income that is available to tax units with elderly or disabled heads or spouses that met certain eligibility conditions such as being at least this old to be considered age eligible. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mn.tax.income.subtractions.social_security.reduction.applies -**Label:** Minnesota social security subtraction reduction applies - -Minnesota reduced the social security subtraction if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.mn.tax.income.subtractions.social_security.reduction.rate -**Label:** Minnesota social security subtraction reduction rate - -Minnesota reduces the social security subtraction by this fraction for each increment of adjusted gross income. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.mn.tax.income.subtractions.social_security.net_income_fraction -**Label:** Minnesota social security subtraction net income fraction - -Minnesota allows subtraction from federal adjusted gross income of the lesser of US-taxable social security and an alternative amount with the complex calculation of the alternative subtraction amount including this fraction which is applied to a net income amout. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.mn.tax.income.subtractions.social_security.total_benefit_fraction -**Label:** Minnesota social security subtraction total benefit fraction - -Minnesota allows subtraction from federal adjusted gross income of the lesser of US-taxable social security and an alternative amount with the complex calculation of the alternative subtraction amount including this fraction which is applied to total social security benefits. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.mn.tax.income.subtractions.pension_income.reduction.increment -**Label:** Minnesota public pension subtraction reduction increment - -Minnesota reduces the public pension subtraction by this fraction for each increments of adjusted gross income. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.mn.tax.income.subtractions.pension_income.reduction.rate -**Label:** Minnesota public pension subtraction reduction rate - -Minnesota reduces the public pension subtraction by this fraction for each increment of adjusted gross income. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.mn.tax.income.subtractions.charity.threshold -**Label:** Minnesota charity subtraction threshold - -Minnesota allows subtraction from federal adjusted gross income of a fraction of charitable contributions in excess of this threshold for tax units that do not itemize Minnesota deductions. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.mn.tax.income.subtractions.charity.fraction -**Label:** Minnesota charity subtraction fraction - -Minnesota allows subtraction from federal adjusted gross income of this fraction of charitable contributions in excess of a threshold for tax units that do not itemize Minnesota deductions. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.mn.tax.income.amt.rate -**Label:** Minnesota AMT rate - -Minnesota has an alternative income tax (AMT) the calculation of which involves this tax rate. - -**Type:** float - -**Current value:** 0.0675 - ---- - -### gov.states.mn.tax.income.deductions.itemized.reduction.alternate.income_threshold -**Label:** Minnesota itemized deduction alternate reduction income threshold - -Minnesota reduces the itemized deductions by a flat rate for filers with adjusted gross income above this threshold. - -**Type:** int - -**Current value:** 1000000 - ---- - -### gov.states.mn.tax.income.deductions.itemized.reduction.alternate.rate -**Label:** Minnesota alternate itemized deduction reduction rate - -Minnesota reduces the itemized deductions when federal adjusted gross income is above a threshold by applying this fraction to a subset of itemized deductions. - -**Type:** float - -**Current value:** 0.8 - ---- - -### gov.states.mn.tax.income.deductions.itemized.reduction.excess_agi_fraction.high -**Label:** Minnesota itemized deductions higher excess AGI fraction - -Minnesota reduces itemized deductions by this fraction of the excess of adjusted gross income above the higher threshold. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.mn.tax.income.deductions.itemized.reduction.excess_agi_fraction.low -**Label:** Minnesota itmeized deductions lower excess AGI fraction - -Minnesota reduces itemized deductions by this fraction of the excess of adjusted gross income above the lower threshold. - -**Type:** float - -**Current value:** 0.03 - ---- - -### gov.states.mn.tax.income.deductions.itemized.alternate_reduction_applies -**Label:** Minnesota itemized deduction alternate reduction applies - -Minnesota applies an alternate itemized deduction reduction if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.mn.tax.income.deductions.standard.reduction.alternate.income_threshold -**Label:** Minnesota standard deduction alternate reduction income threshold - -Minnesota reduces the standard deduction by a flat rate for filers with adjusted gross income above this threshold. - -**Type:** int - -**Current value:** 1053750 - ---- - -### gov.states.mn.tax.income.deductions.standard.reduction.alternate.rate -**Label:** Minnesota fraction of subset of itemized deductions that can limit total itemized deductions - -Minnesota reduces the standard deduction when federal adjusted gross income is above a threshold by applying this fraction to a subset of the standard deduction. - -**Type:** float - -**Current value:** 0.8 - ---- - -### gov.states.mn.tax.income.deductions.standard.reduction.excess_agi_fraction.high -**Label:** Minnesota standard deduction higher excess AGI fraction - -Minnesota reduces the standard deduction by this fraction of the excess of adjusted gross income above the higher threshold. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.mn.tax.income.deductions.standard.reduction.excess_agi_fraction.low -**Label:** Minnesota standard deduction lower excess AGI fraction - -Minnesota reduces the standard deduction by this fraction of the excess of adjusted gross income above the lower threshold. - -**Type:** float - -**Current value:** 0.03 - ---- - -### gov.states.mn.tax.income.deductions.standard.reduction.alternate_reduction_applies -**Label:** Minnesota standard deduction alternate reduction applies - -Minnesota applies an alternate standard deduction reduction if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.mn.tax.income.exemptions.agi_step_fraction -**Label:** Minnesota fraction of federal adjusted gross income steps above threshold that is used to limit exemptions - -Minnesota limits exemptions when federal adjusted gross income is above a threshold by this fraction of AGI per step above the threshold. - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.states.mn.tax.income.credits.marriage.minimum_taxable_income -**Label:** Minnesota marriage credit minimum taxable income for eligibility - -Minnesota provides a marriage credit for joint filers where their taxable income is at least this minimum amount. - -**Type:** int - -**Current value:** 44000 - ---- - -### gov.states.mn.tax.income.credits.marriage.minimum_individual_income -**Label:** Minnesota marriage credit minimum individual income for eligibility - -Minnesota provides a marriage credit for joint filers where the lesser income of the two spouses is at least this minimum amount. - -**Type:** int - -**Current value:** 28000 - ---- - -### gov.states.mn.tax.income.credits.marriage.standard_deduction_fraction -**Label:** Minnesota marriage credit standard deduction fraction - -Minnesota provides a marriage credit for joint filers the calculation of which involves this fraction of their standard deduction. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.mn.tax.income.credits.marriage.maximum_amount -**Label:** Minnesota marriage credit minimum amount - -Minnesota provides a marriage credit for joint filers where this is the maximum credit amount. - -**Type:** float - -**Current value:** 1857.4978743358774 - ---- - -### gov.states.mn.tax.income.credits.cwfc.wfc.additional.age_threshold -**Label:** Minnesota working family credit additional amount age threshold - -Minnesota provides an additional working family credit amount for each qualifying child over this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.mn.tax.income.credits.cwfc.wfc.eligible.childless_adult_age.minimum -**Label:** Minnesota WFC minimum eligibility age for childless adults - -Minnesota has a working family credit (WFC) for which childless adults must be at least this age and no more than a maximum age. - -**Type:** int - -**Current value:** 19 - ---- - -### gov.states.mn.tax.income.credits.cwfc.wfc.eligible.childless_adult_age.maximum -**Label:** Minnesota WFC maximum eligibility age for childless adults - -Minnesota has a working family credit (WFC) for which childless adults must be at least a minimum age and no more than this age. - -**Type:** int - -**Current value:** 64 - ---- - -### gov.states.mn.tax.income.credits.cwfc.phase_out.rate.main -**Label:** Minnesota child and working families tax credit main phase-out rate - -Minnesota phases the child and working families tax credit out at this rate, for filers without qualifying older children. - -**Type:** float - -**Current value:** 0.12 - ---- - -### gov.states.mn.tax.income.credits.cwfc.phase_out.rate.ctc_ineligible_with_qualifying_older_children -**Label:** Minnesota child and working families tax credit phase-out ctc ineligible with qualifying older children rate - -Minnesota phases the child and working families tax credit out at this rate, for filers ineligible for the child tax credit with eligible older children. - -**Type:** float - -**Current value:** 0.09 - ---- - -### gov.states.mn.tax.income.credits.cwfc.phase_out.threshold.other -**Label:** Minnesota child and working families tax credit non-joint phase-out threshold - -Minnesota phases the child and working families tax credit out over this threshold for non-joint filers with the larger of earned income or adjusted gross income. - -**Type:** int - -**Current value:** 29500 - ---- - -### gov.states.mn.tax.income.credits.cwfc.phase_out.threshold.joint -**Label:** Minnesota child and working families tax credit joint phase-out threshold - -Minnesota phases the child and working families tax credit out over this threshold for joint filers with the larger of earned income or adjusted gross income. - -**Type:** int - -**Current value:** 35000 - ---- - -### gov.states.mn.tax.income.credits.cwfc.ctc.amount -**Label:** Minnesota child tax credit amount - -Minnesota provides the following child tax credit amount for each qualifying child. - -**Type:** int - -**Current value:** 1920 - ---- - -### gov.states.mn.tax.income.credits.cdcc.maximum_dependents -**Label:** Minnesota CDCC maximum number of qualified dependents - -Minnesota has a child/dependent care credit in which this is the maximum number of qualified dependents allowed. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.mn.tax.income.credits.cdcc.child_age -**Label:** Minnesota CDCC dependent child age - -Minnesota has a child/dependent care credit in which children under this age qualify as a dependent. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.states.mn.tax.income.credits.cdcc.phaseout_rate -**Label:** Minnesota CDCC excess AGI phaseout rate - -Minnesota has a child/dependent care credit which is phased out at this rate above a federal AGI threshold. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.mn.tax.income.credits.cdcc.phaseout_threshold -**Label:** Minnesota CDCC phaseout threshold - -Minnesota has a child/dependent care credit which begins to be phased out when federal AGI exceeds this threshold. - -**Type:** int - -**Current value:** 64320 - ---- - -### gov.states.mn.tax.income.credits.cdcc.separate_filers_excluded -**Label:** Minnesota CDCC separate filers excluded - -Minnesota excludes separate filers from the dependent care credit if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.mn.tax.income.credits.cdcc.maximum_expense -**Label:** Minnesota CDCC maximum allowed care expense per qualified dependent - -Minnesota has a child/dependent care credit in which this is the maximum care expense allowed per qualified dependent. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.mi.tax.income.senior_age -**Label:** Michigan senior age threshold - -Michigan defines "Senior citizen" as filers of this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.mi.tax.income.deductions.standard.tier_three.age_threshold -**Label:** Michigan tier three standard deduction age threshold - -Michigan limits the tier three standard deduction to filers at or above this age threshold. - -**Type:** int - -**Current value:** 67 - ---- - -### gov.states.mi.tax.income.deductions.standard.tier_two.retirement_year -**Label:** Michigan retirement benefit tier three retirement age - -Michigan limits the tier three pension benefit to filers who retired after this year. - -**Type:** int - -**Current value:** 2013 - ---- - -### gov.states.mi.tax.income.deductions.standard.tier_two.amount.increase -**Label:** Michigan increased tier two standard deduction amount - -Michigan provides this increased tier two standard deduction amount. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.mi.tax.income.deductions.standard.tier_two.age_threshold -**Label:** Michigan additional standard deduction age threshold - -Michigan limits the additional standard deduction to filers of this age or older. - -**Type:** int - -**Current value:** 67 - ---- - -### gov.states.mi.tax.income.deductions.interest_dividends_capital_gains.birth_year -**Label:** Michigan interest, dividends, and capital gains deduction birth year - -Michigan provides a interest, dividends, and capital gains deduction to filers born prior to this year. - -**Type:** int - -**Current value:** 1946 - ---- - -### gov.states.mi.tax.income.deductions.retirement_benefits.expanded.rate -**Label:** Michigan expanded retirement and pension benefits rate - -Michigan multiplies the reduced tier one deduction amount by this rate under the expanded retirement and pension benefits deduction. - -**Type:** float - -**Current value:** 0.75 - ---- - -### gov.states.mi.tax.income.deductions.retirement_benefits.expanded.availability -**Label:** Michigan expanded retirement and pension benefits deduction availability - -Michigan allows for an expanded retirement and pension benefits deduction calculation if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.mi.tax.income.deductions.retirement_benefits.tier_three.ss_exempt.not_retired.amount -**Label:** Michigan non-retired tier three retirement and pension benefits deduction amount - -Michigan provides this non-retired tier three retirement and pension benefits amount. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.mi.tax.income.deductions.retirement_benefits.tier_three.ss_exempt.retired.retirement_year -**Label:** Michigan tier three retirement benefit retirement year - -Michigan limits the tier three pension benefit to filers, retired after this year. - -**Type:** int - -**Current value:** 2013 - ---- - -### gov.states.mi.tax.income.deductions.retirement_benefits.tier_one.birth_year -**Label:** Michigan tier one retirement and pension benefits birth year threshold - -Michigan limits the tier one retirement and pension benefits addition to filers born before this year. - -**Type:** int - -**Current value:** 1946 - ---- - -### gov.states.mi.tax.income.rate -**Label:** Michigan income tax rate - -Michigan taxes individual income at this rate. - -**Type:** float - -**Current value:** 0.0425 - ---- - -### gov.states.mi.tax.income.exemptions.disabled.amount.veteran -**Label:** Michigan disabled veteran exemption amount - -Michigan provides this exemption amount for each disabled veteran in the household. - -**Type:** int - -**Current value:** 400 - ---- - -### gov.states.mi.tax.income.exemptions.disabled.amount.base -**Label:** Michigan disabled exemption base amount - -Michigan provides this exemption amount for each disabled person or dependent in the household. - -**Type:** int - -**Current value:** 3100 - ---- - -### gov.states.mi.tax.income.exemptions.disabled.age_limit -**Label:** Michigan disabled exemption age limit - -Michigan limits the disabled exemption to totally and permanently disabled filers under this age. - -**Type:** int - -**Current value:** 66 - ---- - -### gov.states.mi.tax.income.exemptions.personal -**Label:** Michigan exemption base amount - -Michigan provides this exemption amount for the filer and spouse of the tax unit, each dependent, and each of the filers stillborn children. - -**Type:** int - -**Current value:** 5400 - ---- - -### gov.states.mi.tax.income.credits.home_heating.alternate.household_resources.rate -**Label:** Michigan home heating credit alternate household resource rate - -Michigan provides a credit for this fraction of reduced heating costs less reduced adjusted household resources under the alternate home heating credit. - -**Type:** float - -**Current value:** 0.11 - ---- - -### gov.states.mi.tax.income.credits.home_heating.alternate.heating_costs.rate -**Label:** Michigan alternate home heating credit household resource rate - -Michigan provides a credit for this fraction of reduced heating costs less reduced adjusted household resources under the alternate home heating credit. - -**Type:** float - -**Current value:** 0.7 - ---- - -### gov.states.mi.tax.income.credits.home_heating.alternate.heating_costs.cap -**Label:** Michigan alternate home heating credit heating costs cap - -Michigan caps the total heating costs at this amount under the alternate home heating credit computation. - -**Type:** int - -**Current value:** 3500 - ---- - -### gov.states.mi.tax.income.credits.home_heating.additional_exemption.amount -**Label:** Michigan home heating additional base amount per additional exemption - -Michigan increases the home heating base by this amount for each additional exemption. - -**Type:** int - -**Current value:** 198 - ---- - -### gov.states.mi.tax.income.credits.home_heating.additional_exemption.limit -**Label:** Michigan home heating credit additional exemption limit - -Michigan increases the home heating credit base for each exemption over this number. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.mi.tax.income.credits.home_heating.standard.included_heating_cost_rate -**Label:** Michigan standard home heating credit rate if rent includes heating - -Michigan multiplies the standard home heating credit by this fraction if rent includes heating. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.mi.tax.income.credits.home_heating.standard.reduction_rate -**Label:** Michigan standard home heating credit reduction rate - -Michigan reduces the standard heating credit amount by this fraction of household resources. - -**Type:** float - -**Current value:** 0.035 - ---- - -### gov.states.mi.tax.income.credits.home_heating.standard.fpg_rate -**Label:** Michigan standard home heating credit federal poverty guidelines rate - -Michigan limits the home heating credit to filers with household resources below this fraction of the federal poverty guidelines. - -**Type:** float - -**Current value:** 1.1 - ---- - -### gov.states.mi.tax.income.credits.home_heating.credit_percentage -**Label:** Michigan home heating credit percentage - -Michigan provides a credit for this fraction of the greater of the standard and alternate home heating credit. - -**Type:** float - -**Current value:** 0.56 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.rate.senior.alternate -**Label:** Michigan alternate property tax senior credit alternate rate - -Michigan provides senior renters with an alternate homestead property tax credit of this fraction of total household resources subtracted from total rent payments. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.rate.non_senior_disabled -**Label:** Michigan homestead property tax non-disabled/senior credit rate - -Michigan provides a maximum homestead property tax credit as this fraction of the excess of property taxes over the household resource exemption, for filers without a disabled or senior member. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.exemption.non_senior_disabled -**Label:** Michigan homestead property tax credit non-disabled/senior exemption rate - -Michigan subtracts this fraction of the household resources from the total household resources under the homestead property tax credit computation, for filers without a disabled or senior member. - -**Type:** float - -**Current value:** 0.032 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.rent_equivalization -**Label:** Michigan homestead property tax credit rent equivalization - -Michigan multiplies the rent amount by this rate under the homestead property tax credit. - -**Type:** float - -**Current value:** 0.23 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.reduction.increment -**Label:** Michigan homestead property tax credit phase out increment - -Michigan phases its homestead property tax credit out in these increments. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.reduction.rate -**Label:** Michigan household resources reduction rate phase out brackets - -Michigan phases its homestead property tax credit at this rate multiple for each reduction increment. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.reduction.start -**Label:** Michigan homestead property tax credit reduction start - -Michigan phases its homestead property tax credit out for filers with household resources above this threshold. - -**Type:** int - -**Current value:** 58300 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.property_value_limit -**Label:** Michigan homestead property tax credit property value limit - -Michigan limits the homestead property tax credit to filers with property value below this amount. - -**Type:** int - -**Current value:** 154400 - ---- - -### gov.states.mi.tax.income.credits.homestead_property_tax.cap -**Label:** Michigan homestead property tax credit cap - -Michigan caps the homestead property tax credit at this amount. - -**Type:** int - -**Current value:** 1700 - ---- - -### gov.states.mi.tax.income.credits.eitc.match -**Label:** Michigan EITC match - -Michigan matches this share of the federal Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.states.ok.tax.income.agi.subtractions.pension_limit -**Label:** Oklahoma limit on taxable pension benefit AGI subtraction per person - -Oklahoma limit on taxable pension benefit AGI subtraction per person. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.ok.tax.income.agi.subtractions.military_retirement.floor -**Label:** Oklahoma military retirement benefit subtraction floor - -Oklahoma provides a minimum military retirement benefit subtraction for this amount, not to exceed military retirement income. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.ok.tax.income.agi.subtractions.military_retirement.rate -**Label:** Oklahoma military retirement exclusion rate - -Oklahoma excludes this percentage of military retirement benefits under the retirement benefit subtraction. - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.states.ok.tax.income.deductions.itemized.limit -**Label:** Oklahoma itemized deduction limit - -Oklahoma allows this maximum amount of itemized deductions. - -**Type:** int - -**Current value:** 17000 - ---- - -### gov.states.ok.tax.income.exemptions.special_age_minimum -**Label:** Oklahoma special exemption age minimum - -Oklahoma provides a special exemption for people this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ok.tax.income.exemptions.amount -**Label:** Oklahoma per-person exemption amount - -Oklahoma provides this exemption amount per person. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ok.tax.income.credits.property_tax.age_minimum -**Label:** Oklahoma property tax credit minimum age - -Oklahoma limits its property tax credit to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ok.tax.income.credits.property_tax.income_limit -**Label:** Oklahoma property tax credit gross income limit - -Oklahoma limits its property tax credit to filers with gross income below this amount. - -**Type:** int - -**Current value:** 12000 - ---- - -### gov.states.ok.tax.income.credits.property_tax.maximum_credit -**Label:** Oklahoma property tax credit maximum amount - -Oklahoma provides a property tax credit up to this amount. - -**Type:** int - -**Current value:** 200 - ---- - -### gov.states.ok.tax.income.credits.property_tax.income_fraction -**Label:** Oklahoma property tax credit gross income fraction - -Oklahoma provides a property tax credit of this percent of gross income. - -**Type:** float - -**Current value:** 0.01 - ---- - -### gov.states.ok.tax.income.credits.earned_income.eitc_fraction -**Label:** Oklahoma EITC match - -Oklahoma matches this share of the federal Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.ok.tax.income.credits.sales_tax.age_minimum -**Label:** Oklahoma sales tax credit minimum age for second income limit - -Oklahoma limits its sales tax credit to filers this age or above for the second income limit - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ok.tax.income.credits.sales_tax.income_limit1 -**Label:** Oklahoma sales tax credit gross income limit 1 - -Oklahoma applies this first gross income limit to the sales tax credit. - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.ok.tax.income.credits.sales_tax.amount -**Label:** Oklahoma sales tax credit amount per exemption - -Oklahoma provides a sales tax credit of this amount per exemption. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.ok.tax.income.credits.sales_tax.income_limit2 -**Label:** Oklahoma sales tax credit gross income limit 2 - -Oklahoma applies this second gross income limit to its sales tax credit. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.states.ok.tax.income.credits.child.agi_limit -**Label:** Oklahoma Child Care/Child Tax Credit income limit - -Oklahoma limits its Child Care/Child Tax Credit to filers with federal AGI below this amount. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.ok.tax.income.credits.child.ctc_fraction -**Label:** Oklahoma CTC match - -Oklahoma matches this percent of the federal Child Tax Credit. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.ok.tax.income.credits.child.cdcc_fraction -**Label:** Oklahoma CDCC match - -Oklahoma matches this percent of the federal Child and Dependent Care Credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ok.tax.use.rate -**Label:** Oklahoma use tax rate - -Oklahoma levies a use tax at this percent of federal adjusted gross income. - -**Type:** float - -**Current value:** 0.00056 - ---- - -### gov.states.in.tax.income.deductions.military_service.max -**Label:** Indiana max military service deduction - -Indiana provides up a military service deduction of up to this amount per person. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.in.tax.income.deductions.nonpublic_school.amount -**Label:** Indiana nonpublic school deduction - -Indiana provides a deduction of this amount for qualified dependent children in private, parochial, or home school with unreimbursed expenses. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.in.tax.income.deductions.unemployment_compensation.reduced_agi_haircut -**Label:** Indiana haircut to reduced AGI for computing maximum unemployment compensation deduction - -Indiana applies this haircut when reducing adjusted gross income for computing the maximum unemployment compensation deduction. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.in.tax.income.agi_rate -**Label:** Indiana AGI tax rate - -Indiana taxes Indiana adjusted gross income at this rate. - -**Type:** float - -**Current value:** 0.03 - ---- - -### gov.states.in.tax.income.exemptions.adoption.amount -**Label:** Indiana adopted children exemption additional amount - -Indiana provides an additional exemption for eligible adopted dependents of this amount. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.in.tax.income.exemptions.aged_low_agi.amount -**Label:** Indiana exemptions additional amount for low AGI aged - -Indiana provides this additional exemption amount for low-income aged filers. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.in.tax.income.exemptions.qualifying_child.max_ages.student -**Label:** Indiana additional exemption age limit for students - -Indiana considers as children people below this age when compute its additional exemption for student dependents. - -**Type:** int - -**Current value:** 23 - ---- - -### gov.states.in.tax.income.exemptions.qualifying_child.max_ages.non_student -**Label:** Indiana additional exemption age limit for non-students - -Indiana considers as children people below this age when compute its additional exemption for non-student dependents. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.in.tax.income.exemptions.aged_blind.amount -**Label:** Indiana exemptions additional amount for aged and or blind - -Indiana provides this additional exemption amount for aged and/or blind filers. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.in.tax.income.exemptions.additional.amount -**Label:** Indiana exemptions additional amount for dependent children - -Indiana provides this additional exemption amount for qualifying dependent children. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.states.in.tax.income.exemptions.base.amount -**Label:** Indiana exemptions base amount - -Indiana provides this base exemption amount. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.in.tax.income.credits.earned_income.decoupled -**Label:** Whether IN EITC is decoupled from federal EITC - -Indiana has a state EITC that is decoupled from the federal EITC if this parameter is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.in.tax.income.credits.earned_income.childless.min_age -**Label:** Indiana EITC minimum age for childless eligibility - -Indiana limits its earned income tax credit to filers this age or above if they have no children. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.states.in.tax.income.credits.earned_income.childless.phase_out_rate -**Label:** Indiana EITC phase-out rate for childless credit in 2021 - -Indiana has a state EITC that used this phase-out rate for childless credit in 2021. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.in.tax.income.credits.earned_income.childless.phase_in_rate -**Label:** Indiana EITC phase-in rate for childless credit in 2021 - -Indiana has a state EITC that used this phase-in rate for childless credit in 2021. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.in.tax.income.credits.earned_income.childless.phase_out_start -**Label:** Indiana EITC phase-out start income for childless credit in 2021 - -Indiana has a state EITC that used this phase-out start income for childless credit in 2021. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.in.tax.income.credits.earned_income.childless.max_age -**Label:** Indiana EITC maximum age for childless eligibility - -Indiana limits its earned income tax credit to filers this age or below if they have no children. - -**Type:** int - -**Current value:** 64 - ---- - -### gov.states.in.tax.income.credits.earned_income.childless.maximum -**Label:** Indiana EITC maximum childless credit in 2021 - -Indiana has a state EITC that used this maximum childless credit in 2021. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.in.tax.income.credits.earned_income.max_children -**Label:** IN EITC maximum allowable children - -Indiana has a state EITC that recognizes at most this maximum number of eligible children. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.in.tax.income.credits.earned_income.investment_income_limit -**Label:** Indiana EITC investment income limit - -Indiana makes any taxpayer with investment income that exceeds this limit EITC ineligible. - -**Type:** int - -**Current value:** 3800 - ---- - -### gov.states.in.tax.income.credits.earned_income.match_rate -**Label:** Indiana federal-EITC match rate - -Indiana matches this fraction of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.in.tax.income.credits.unified_elderly.min_age -**Label:** Indiana unified elderly tax credit minimum age for eligibility - -Indiana allows filers at or above this age to receive the unified tax credit for the elderly. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.co.tax.income.subtractions.charitable_contribution.adjustment -**Label:** Colorado charitable contributions subtraction adjustment - -Colorado subtracts charitable contributions above this amount from the adjusted gross income of filers who do not itemize on their federal return. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.co.tax.income.subtractions.pension.cap.younger -**Label:** Colorado capped pension and annuity income amount - -Colorado allows a pension and annuity subtraction to get its net income that is capped at this amount. - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.co.tax.income.subtractions.pension.cap.older -**Label:** Colorado capped pension and annuity income amount - -Colorado allows a pension and annuity subtraction to get its net income that is capped at this amount. - -**Type:** int - -**Current value:** 24000 - ---- - -### gov.states.co.tax.income.subtractions.pension.social_security_subtraction_available -**Label:** Colorado social security subtraction available - -Colorado separates Social Security income from pension income for the pension subtraction if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.co.tax.income.subtractions.pension.age_threshold.younger -**Label:** Colorado pension subtraction lower age threshold - -Colorado limits its younger pension subtraction to filers below this age threshold. - -**Type:** int - -**Current value:** 55 - ---- - -### gov.states.co.tax.income.subtractions.pension.age_threshold.older -**Label:** Colorado pension subtraction upper age threshold - -Colorado limits its older pension subtraction to filers above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.co.tax.income.subtractions.military_retirement.age_threshold -**Label:** Colorado military retirement subtraction age threshold - -Colorado limits its military retirement subtraction to filers below this age. - -**Type:** int - -**Current value:** 55 - ---- - -### gov.states.co.tax.income.subtractions.military_retirement.max_amount -**Label:** Colorado military retirement subtraction max amount - -Colorado allows for this maximum military retirement subtraction for each eligible individual. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.co.tax.income.additions.federal_deductions.agi_threshold -**Label:** Colorado federal deductions add-back AGI threshold - -Colorado adds back federal deductions for filers with adjusted gross income above this threshold. - -**Type:** int - -**Current value:** 300000 - ---- - -### gov.states.co.tax.income.additions.federal_deductions.itemized_only -**Label:** Colorado federal deduction addback itemized only - -Whether the Colorado federal deductions addback is only itemized. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.co.tax.income.rate -**Label:** Colorado income tax rate - -Colorado taxes personal income at this flat rate. - -**Type:** float - -**Current value:** 0.044 - ---- - -### gov.states.co.tax.income.credits.income_qualified_senior_housing.income_threshold -**Label:** Colorado Income Qualified Senior Housing Tax Credit AGI threshold - -Colorado provides the Income Qualified Senior Housing Tax Credit for filers with adjusted gross income at or below this threshold. - -**Type:** int - -**Current value:** 75000 - ---- - -### gov.states.co.tax.income.credits.income_qualified_senior_housing.reduction.increment -**Label:** Colorado income qualified senior housing income tax credit increment amount - -Colorado reduces the income qualified senior housing income tax credit for each of these increments of adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.co.tax.income.credits.income_qualified_senior_housing.reduction.start -**Label:** Colorado personal income qualified senior housing income tax credit start - -Colorado reduces the income qualified senior housing income tax credit for filers with adjusted gross income above this amount, based on filing status. - -**Type:** int - -**Current value:** 25499 - ---- - -### gov.states.co.tax.income.credits.income_qualified_senior_housing.age_limit -**Label:** Colorado Age Income-Qualified Senior Housing Tax Credit age threshold - -Colorado provides the Income Qualified Senior Housing Tax Credit for filers' at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.co.tax.income.credits.sales_tax_refund.amount.amount -**Label:** Colorado sales tax refund credit flat amount - -Colorado provides a flat sales tax refund credit of this amount. - -**Type:** int - -**Current value:** 800 - ---- - -### gov.states.co.tax.income.credits.sales_tax_refund.amount.flat_amount_enabled -**Label:** Colorado sales tax refund credit flat amount enabled - -Colorado allows for a flat sales tax refund credit if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.co.tax.income.credits.sales_tax_refund.age_threshold -**Label:** Colorado sales tax refund age threshold - -Colorado limits its sales tax refund to filers this age or older. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.co.tax.income.credits.family_affordability.amount -**Label:** Colorado family affordability tax credit young child amount - -Colorado provides this family affordability tax credit base amount for each younger child. - -**Type:** int - -**Current value:** 3200 - ---- - -### gov.states.co.tax.income.credits.family_affordability.reduction.rate -**Label:** Colorado family affordability tax credit reduction rate - -Colorado reduces the family affordability tax credit by this rate for each increment above the adjusted gross income threshold. - -**Type:** float - -**Current value:** 0.06875 - ---- - -### gov.states.co.tax.income.credits.ctc.ctc_matched_federal_credit -**Label:** Colorado child tax credit federal CTC match - -Colorado matches a fraction of the federal child tax credit when this is true; otherwise, Colorado provides an amount based on income. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.co.tax.income.credits.ctc.age_threshold -**Label:** Colorado child tax credit age threshold - -Colorado issues the child tax credit to taxpayers with children below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.co.tax.income.credits.cdcc.low_income.federal_agi_threshold -**Label:** Colorado low-income child care expenses credit income threshold - -Colorado limits the low-income child care expenses credit to filers with adjusted gross income up to this amount. - -**Type:** int - -**Current value:** 25000 - ---- - -### gov.states.co.tax.income.credits.cdcc.low_income.rate -**Label:** Colorado low income child care expense credit rate - -Colorado matches up to this fraction of qualifying child care expenses in its low income child care expenses credit. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.co.tax.income.credits.cdcc.low_income.child_age_threshold -**Label:** Colorado low-income child care expenses credit child age threshold - -Colorado qualifies children for the low-income family child care expenses credit below this age threshold. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.states.co.tax.income.credits.eitc.match -**Label:** Colorado EITC match - -Colorado matches this fraction of the federal Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.35 - ---- - -### gov.states.co.ccap.re_determination.smi_rate -**Label:** Colorado Child Care Assistance Program household size state median income re-determination rate - -Colorado limits its Child Care Assistance Program re-determination to households with income below this fraction of state median income. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.states.co.ccap.entry.smi_rate -**Label:** Colorado Child Care Assistance Program household size state median income entry rate - -Colorado limits its Child Care Assistance Program application to applicants with adjusted gross income lower than these rates of household size state median income. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.states.co.ccap.implementing_month -**Label:** Colorado Child Care Assistance Program implementing month - -Colorado Child Care Assistance Program annually implements in this month. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.states.co.ccap.parent_fee.add_on -**Label:** Colorado Child Care Assistance Program parent fee add on rate - -Colorado multiplies the number of additional eligible children by this amount under the Child Care Assistance Program to calculate add on parent fee. - -**Type:** int - -**Current value:** 15 - ---- - -### gov.states.co.ccap.disabled_age_limit -**Label:** Colorado Child Care Assistance Program disabled child age limit - -Colorado limits its Child Care Assistance Program to disabled children below this age. - -**Type:** int - -**Current value:** 19 - ---- - -### gov.states.co.ccap.age_limit -**Label:** Colorado Child Care Assistance Program non-disabled child age limit - -Colorado limits its Child Care Assistance Program to non-disabled children below this age. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.states.co.ssa.oap.resources.couple -**Label:** Colorado OAP resource limit for couples - -Colorado OAP resource limit for couples. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.co.ssa.oap.resources.single -**Label:** Colorado OAP resource limit for singles - -Colorado OAP resource limit for singles. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.co.ssa.oap.grant_standard -**Label:** Colorado OAP grant standard - -Grant Standard for OAP - -**Type:** int - -**Current value:** 1005 - ---- - -### gov.states.co.ssa.state_supplement.grant_standard -**Label:** Colorado State Supplement grant standard - -Grant Standard for Colorado State Supplement - -**Type:** int - -**Current value:** 967 - ---- - -### gov.states.co.hcpf.chp.out_of_pocket -**Label:** Colorado CHP+ out of pocket maximum percent - -Colorado limits its Child Health Plan Plus out of pocket expense to this fraction of income. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.co.hcpf.chp.income_limit -**Label:** Colorado CHP+ maximum household income as percent of FPL - -Colorado limits the Child Health Plan Plus to households with income up to this percentage of the federal poverty level. - -**Type:** float - -**Current value:** 2.65 - ---- - -### gov.states.co.cdhs.tanf.income.earned_exclusion.percent -**Label:** Colorado TANF earnings exclusion percent - -Colorado excludes this share of earnings from TANF countable income, except for determining need for new applicants. - -**Type:** float - -**Current value:** 0.67 - ---- - -### gov.states.co.cdhs.tanf.income.earned_exclusion.flat -**Label:** Colorado TANF flat earnings exclusion - -Colorado excludes this amount of earnings from TANF countable income when determining need for new applicants. - -**Type:** int - -**Current value:** 90 - ---- - -### gov.states.ca.cpuc.care.discount -**Label:** CARE poverty line threshold - -California CARE recipient households recieve a discount on their energy expenses between 30 and 35%, ballparked here at 32.5% for simplicity. - -**Type:** float - -**Current value:** 0.325 - ---- - -### gov.states.ca.cpuc.care.eligibility.fpl_limit -**Label:** CARE poverty line threshold - -California provides CARE eligibility to households with income below this percent of the (CARE-adjusted) poverty line. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.ca.cpuc.fera.discount -**Label:** FERA poverty line threshold - -California FERA recipient households recieve a discount on their energy expenses of 18% - -**Type:** float - -**Current value:** 0.18 - ---- - -### gov.states.ca.cpuc.fera.eligibility.minimum_household_size -**Label:** CARE poverty line threshold - -Eligibility for California's FERA program requires a minimum household of this size to qualify. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.ca.cpuc.fera.eligibility.fpl_limit -**Label:** FERA poverty line threshold - -Eligibility for California's FERA program requires that a household make no more than this value times the poverty line. - -**Type:** float - -**Current value:** 2.5 - ---- - -### gov.states.ca.dhcs.ffyp.foster_care_age_minimum -**Label:** California Former Foster Youth Program foster care age minimum - -California limits participation in the Former Foster Youth Program to individuals who were in foster care at this age or older. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ca.dhcs.ffyp.age_threshold -**Label:** California Former Foster Youth Program age limit - -California limits participation in the Former Foster Youth Program to individuals below this age. - -**Type:** int - -**Current value:** 26 - ---- - -### gov.states.ca.cpi -**Label:** California income tax CPI uprating - -California CPI (from the current year's June) - -**Type:** float - -**Current value:** 360.6750331608849 - ---- - -### gov.states.ca.tax.income.amt.tentative_min_tax_rate -**Label:** California tentative alternative minimum tax rate - -California multiplies the alternative minimum tax by this rate to calculate the tentative alternative minimum tax. - -**Type:** float - -**Current value:** 0.07 - ---- - -### gov.states.ca.tax.income.deductions.itemized.limit.agi_fraction -**Label:** fraction of AGI used to compute CA itemized deductions limitation - -Fraction of AGI used in CA itemized deduction limitation. - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.states.ca.tax.income.deductions.itemized.limit.ded_fraction -**Label:** California fraction of itemized deductions subject to limitation - -Fraction of itemized deductions subject to CA limitation. - -**Type:** float - -**Current value:** 0.8 - ---- - -### gov.states.ca.tax.income.exemptions.dependent_amount -**Label:** California dependent exemption amount - -California exempts this amount from taxable income per dependent. - -**Type:** float - -**Current value:** 473.6832028666453 - ---- - -### gov.states.ca.tax.income.exemptions.phase_out.amount -**Label:** California exemption phase out amount - -California reduces its exemption by this amount for each increment of income exceeding the threshold. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.ca.tax.income.exemptions.amount -**Label:** California income exemption amount - -California exempts this amount from taxable income. - -**Type:** float - -**Current value:** 153.09934322587884 - ---- - -### gov.states.ca.tax.income.credits.young_child.ineligible_age -**Label:** California young child tax credit ineligible age - -California limits the young child tax credit to filers with children below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.ca.tax.income.credits.young_child.phase_out.increment -**Label:** California young child tax credit phase out increment - -California phases out its young child tax credit at a given amount per increment of this value. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.ca.tax.income.credits.young_child.phase_out.amount -**Label:** California young child tax credit phase out amount - -California phases out its young child tax credit at this amount per increment. - -**Type:** float - -**Current value:** 21.67 - ---- - -### gov.states.ca.tax.income.credits.young_child.phase_out.start -**Label:** California young child tax credit phase out start - -California begins to phase out its young child tax credit at this income level. - -**Type:** float - -**Current value:** 27358.544380753356 - ---- - -### gov.states.ca.tax.income.credits.young_child.amount -**Label:** California young child tax credit amount - -California provides a young child tax credit of this amount. - -**Type:** float - -**Current value:** 1185.7492757225784 - ---- - -### gov.states.ca.tax.income.credits.young_child.loss_threshold -**Label:** California Young Child Tax Credit loss threshold - -California limits its Young Child Tax Credit to filers with losses not exceeding this value. - -**Type:** float - -**Current value:** 35553.983049005765 - ---- - -### gov.states.ca.tax.income.credits.earned_income.adjustment.factor -**Label:** CalEITC adjustment factor - -California defines the following adjustment factor to the federal EITC in its annual Budget Act. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.states.ca.tax.income.credits.earned_income.phase_out.final.end -**Label:** CalEITC max earnings - -California limits CalEITC to filers with less than this amount of earnings. - -**Type:** int - -**Current value:** 31950 - ---- - -### gov.states.ca.tax.income.credits.earned_income.eligibility.age.max -**Label:** CalEITC max age - -California limits CalEITC to filers below this age. - -**Type:** float - -**Current value:** inf - ---- - -### gov.states.ca.tax.income.credits.earned_income.eligibility.age.min -**Label:** CalEITC minimum age - -CalEITC is limited to filers this age and above. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ca.tax.income.credits.earned_income.eligibility.max_investment_income -**Label:** CalEITC investment income limit - -California limits the CalEITC to filers with investment income below this threshold. - -**Type:** float - -**Current value:** 4915.308702555465 - ---- - -### gov.states.ca.tax.income.credits.foster_youth.phase_out.increment -**Label:** California foster youth credit phase out increment - -California reduces the foster youth tax credit for each of these increments of earned income exceeding the threshold. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.ca.tax.income.credits.foster_youth.phase_out.amount -**Label:** California foster youth tax credit phase out amount - -California reduces the foster youth tax credit by this amount for each increment of earned income in excess of the phase-out threshold. - -**Type:** float - -**Current value:** 21.66 - ---- - -### gov.states.ca.tax.income.credits.foster_youth.phase_out.start -**Label:** California foster youth tax credit phase out start - -California phases the foster youth tax credit out for filers with earned income above this threshold. - -**Type:** float - -**Current value:** 27358.544380753356 - ---- - -### gov.states.ca.calepa.carb.cvrp.increased_rebate.amount -**Label:** Amount of increased California CVRP rebate - -Amount of the increased rebate for low- and moderate-income participants in California's Clean Vehicle Rebate Project, based on the date of purchase. - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.states.ca.calepa.carb.cvrp.increased_rebate.fpl_limit -**Label:** Maximum FPL percent to qualify for an increased California CVRP rebate - -Income limit as a percent of the federal poverty guideline to qualify for an increased rebate under California's Clean Vehicle Rebate Project. - -**Type:** int - -**Current value:** 4 - ---- - -### gov.states.ca.cdss.capi.payment_standard_offset.couple -**Label:** California CAPI couple payment standard offset - -California reduces the Supplemental Security Income / State Supplemental Payment payment standard by this amount for couples when calculating the Cash Assistance Program for Immigrants. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.states.ca.cdss.capi.payment_standard_offset.single -**Label:** California CAPI single payment standard offset - -California reduces the Supplemental Security Income / State Supplemental Payment payment standard by this amount for single filers when calculating the Cash Assistance Program for Immigrants. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.states.ca.cdss.capi.resources.vehicle.disregard -**Label:** California CAPI vehicle value disregard - -California counts the value of a vehicle exceeding this threshold as resources for the Cash Assistance Program for Immigrants. - -**Type:** int - -**Current value:** 4500 - ---- - -### gov.states.ca.cdss.capi.resources.limit.couple -**Label:** California CAPI couple resource limit - -California limits the Cash Assistance Program for Immigrants to couples with resources at or below this amount. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.ca.cdss.capi.resources.limit.single -**Label:** California CAPI single resource limit - -California limits the Cash Assistance Program for Immigrants to single filers with resources at or below this amount. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.blind.married.two_blind -**Label:** California state supplement blind allowance married two blind amount - -California provides the following state supplement amount to married filers with two blind members who are both eligible. - -**Type:** int - -**Current value:** 1372 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.blind.married.one_blind -**Label:** California state supplement blind allowance married one blind amount - -California provides the following state supplement amount to married filers with one blind member who are both eligible. - -**Type:** int - -**Current value:** 1295 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.blind.single -**Label:** California state supplement blind allowance single amount - -California provides the following state supplement amount to single filers who are blind. - -**Type:** int - -**Current value:** 704 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.allowance.medical_care_facility -**Label:** California state supplement medical care facility allowance amount - -California provides the following state supplement allowance for filers receiving care in a medical facility. - -**Type:** int - -**Current value:** 42 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.allowance.out_of_home_care -**Label:** California state supplement out-of-home care allowance amount - -California provides the following state supplement allowance for filers in a nonmedical out-of-home care facility. - -**Type:** int - -**Current value:** 709 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.allowance.food.married -**Label:** California state supplement food allowance married amount - -California provides the following state supplement food allowance for married adults whose living arrangements prevents them from preparing their own meals. - -**Type:** int - -**Current value:** 136 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.allowance.food.single -**Label:** California state supplement food allowance single amount - -California provides the following state supplement food allowance for single adults whose living arrangements prevents them from preparing their own meals. - -**Type:** int - -**Current value:** 68 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.aged_or_disabled.amount.married -**Label:** California state supplement aged or disabled allowance married amount - -California provides the following state supplement amount to two eligible aged or disabled married filers. - -**Type:** int - -**Current value:** 1167 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.aged_or_disabled.amount.single -**Label:** California state supplement aged or disabled allowance single amount - -California provides the following state supplement amount to aged or disabled single filers. - -**Type:** int - -**Current value:** 630 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.aged_or_disabled.age_threshold -**Label:** California state supplement aged or disabled age threshold - -California provides a state supplement amount for dependents below this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.dependent.amount -**Label:** California state supplement dependent amount - -California provides the following state supplement amount for eligible dependents. - -**Type:** int - -**Current value:** 499 - ---- - -### gov.states.ca.cdss.state_supplement.payment_standard.dependent.age_limit -**Label:** California state supplement dependent age limit - -California provides a state supplement amount for dependents below this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.weekly_care.weekly_child_care_hours_threshold -**Label:** California CalWORKs weekly child care hours per week requirement - -California CalWORKs weekly child care requires the corresponding weekly child care hours. - -**Type:** int - -**Current value:** 30 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.hourly_care.daily_child_care_hours_limit -**Label:** California CalWORKs hourly child care hours per day limit - -California CalWORKs hourly child care limits the following maximum daily child care hours. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.hourly_care.weekly_child_care_hours_limit -**Label:** California CalWORKs hourly child care hours per week limit - -California CalWORKs hourly child care limits the following maximum weekly child care hours. - -**Type:** int - -**Current value:** 30 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.monthly_care.child_care_weeks_requirement -**Label:** California CalWORKs monthly child care weeks per month requirement - -California CalWORKs monthly child care requires the child care need occurs in every week of the month - -**Type:** int - -**Current value:** 4 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.monthly_care.weekly_child_care_hours_threshold -**Label:** California CalWORKs monthly child care hours per week requirement - -California CalWORKs monthly child care requires the corresponding weekly child care hours. - -**Type:** int - -**Current value:** 30 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.daily_care.daily_child_care_hours_limit -**Label:** California CalWORKs daily child care hours per day limit - -California CalWORKs daily child care limits the following minimum daily child care hours. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.ca.cdss.tanf.child_care.child_care_time.daily_care.child_care_days_limit -**Label:** California CalWORKs daily child care days per month limit - -California CalWORKs daily child care limits the following maximum number of days per month. - -**Type:** int - -**Current value:** 14 - ---- - -### gov.states.ca.cdss.tanf.child_care.eligibility.disabled_age_threshold -**Label:** California CalWORKs Child Care disabled age threshold - -California provides the CalWORKs Child Care to disabled children below this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ca.cdss.tanf.child_care.eligibility.age_threshold -**Label:** California CalWORKs Child Care age threshold - -California provides the CalWORKs Child Care to children below this age. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.states.ca.cdss.tanf.child_care.rate_ceilings.exceptional_needs -**Label:** California CalWORKs Child Care Exceptional Needs Regional Market Rate Ceilings - -California multiplies the child care reimbursement for Exceptional Needs under the CalWORKs Child Care by this factor. - -**Type:** float - -**Current value:** 1.2 - ---- - -### gov.states.ca.cdss.tanf.child_care.rate_ceilings.evening_or_weekend_II -**Label:** California CalWORKs Child Care Evening/Weekend (at least 10% but less than 50% of time) Regional Market Rate Ceilings - -California multiplies the child care reimbursement for Evening/Weekend Care Ii under the CalWORKs Child Care by this factor. - -**Type:** float - -**Current value:** 1.125 - ---- - -### gov.states.ca.cdss.tanf.child_care.rate_ceilings.evening_or_weekend_I -**Label:** California CalWORKs Child Care Evening/Weekend (50% or more of time) Regional Market Rate Ceilings - -California multiplies the child care reimbursement for Evening/Weekend Care I under the CalWORKs Child Care by this factor. - -**Type:** float - -**Current value:** 1.25 - ---- - -### gov.states.ca.cdss.tanf.child_care.rate_ceilings.severely_disabled -**Label:** California CalWORKs Child Care Severely Disabled Regional Market Rate Ceilings - -California multiplies the child care reimbursement for Severely Disabled under the CalWORKs Child Care by this factor. - -**Type:** float - -**Current value:** 1.5 - ---- - -### gov.states.ca.cdss.tanf.child_care.rate_ceilings.age_threshold.lower -**Label:** California CalWORKs Child Care lower age threshold - -California partition payment level based on age threshold. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.ca.cdss.tanf.child_care.rate_ceilings.age_threshold.higher -**Label:** California CalWORKs Child Care lower age threshold - -California partition payment level based on age threshold. - -**Type:** int - -**Current value:** 5 - ---- - -### gov.states.ca.cdss.tanf.cash.monthly_payment.max_au_size -**Label:** California CalWORKs maximum assistance unit size for payment standards - -California CalWORKs provide the maximum monthly payment for the AU which is over this size. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.states.ca.cdss.tanf.cash.resources.limit.vehicle -**Label:** California CalWORKs vehicle value limit - -California limits CalWORKs to households with vehicle value below this amount. - -**Type:** int - -**Current value:** 32968 - ---- - -### gov.states.ca.cdss.tanf.cash.resources.limit.age_threshold -**Label:** California CalWORKs resource limit age threshold - -California CalWORKs provides a higher resource limit to households with at least one person at or over this age. - -**Type:** int - -**Current value:** 60 - ---- - -### gov.states.ca.cdss.tanf.cash.resources.limit.with_elderly_or_disabled_member -**Label:** California CalWORKs resources limit for households with elderly or disabled people - -California imposes this CalWORKs resource limit for households with an elderly or disabled member. - -**Type:** int - -**Current value:** 18206 - ---- - -### gov.states.ca.cdss.tanf.cash.resources.limit.without_elderly_or_disabled_member -**Label:** California CalWORKs resources limit for households without elderly or disabled people - -California imposes this CalWORKs resource limit for households without an elderly or disabled member. - -**Type:** int - -**Current value:** 12137 - ---- - -### gov.states.ca.cdss.tanf.cash.income.monthly_limit.region1.additional -**Label:** California CalWORKs monthly income limit additional for region 1 - -California CalWORKs increases the income limit by this amount for each person above the max relevant AU size in Region 1. - -**Type:** int - -**Current value:** 34 - ---- - -### gov.states.ca.cdss.tanf.cash.income.monthly_limit.max_au_size -**Label:** California CalWORKs maximum assistance unit size for MBSAC - -California provides an extra monthly income limit for the CalWORKS assistance unit over this size. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.states.ca.cdss.tanf.cash.income.monthly_limit.region2.additional -**Label:** California CalWORKs monthly income limit additional for region 2 - -California CalWORKs increases the income limit by this amount for each person above the max relevant AU size in Region 2. - -**Type:** int - -**Current value:** 34 - ---- - -### gov.states.ca.cdss.tanf.cash.income.disregards.recipient.percentage -**Label:** California CalWORKs monthly percentage earnings exclusion - -California disregards this percentage of monthly earned income when computing CalWORKS payments for recipients. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ca.cdss.tanf.cash.income.disregards.recipient.flat -**Label:** California CalWORKs flat monthly income exclusion for recipients - -California disregards this amount of monthly income when computing CalWORKS payments for recipients. - -**Type:** int - -**Current value:** 600 - ---- - -### gov.states.ca.cdss.tanf.cash.income.disregards.applicant.flat -**Label:** California CalWORKs recipient flat earnings exclusion for applicants - -California disregards this amount of monthly earned income when determining CalWORKS eligibility for new applicants. - -**Type:** int - -**Current value:** 450 - ---- - -### gov.states.ca.fcc.lifeline.max_amount -**Label:** California Lifeline maximum benefit - -California provides the following maximum Lifeline benefit amount. - -**Type:** int - -**Current value:** 19 - ---- - -### gov.states.ca.fcc.lifeline.in_effect -**Label:** California Lifeline maximum benefit in effect - -California provides a separate maximum Lifeline benefit amount if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ca.infant.age_limit -**Label:** California infant age limit - -California defines infants as children at or below this age threshold. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ca.foster_care.age_threshold -**Label:** California foster care minor dependent age threshold - -California considers the foster child a minor dependent below the following age. - -**Type:** int - -**Current value:** 21 - ---- - -### gov.states.ia.tax.income.rates.by_filing_status.active -**Label:** Iowa post 2023 income tax structure applies - -Iowa applies a new income tax rate structure if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ia.tax.income.alternative_minimum_tax.rate -**Label:** Iowa alternative minimum tax rate - -Iowa imposes an alternative minimum tax with this rate. - -**Type:** float - -**Current value:** 0.064 - ---- - -### gov.states.ia.tax.income.alternative_minimum_tax.in_effect -**Label:** Iowa alternative minimum tax availability - -Iowa imposes an alternative minimum tax if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.ia.tax.income.alternative_minimum_tax.fraction -**Label:** Iowa alternative minimum tax fraction - -Iowa imposes an alternative minimum tax that uses this fraction. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ia.tax.income.deductions.itemized.applies_federal -**Label:** Iowa federal itemized deduction applies - -Iowa applies the federal itemized deduction if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ia.tax.income.deductions.qualified_business_income.fraction -**Label:** Iowa federal QBID fraction - -Iowa allows a deduction of this fraction of the federal qualified buiness income deduction (QBID). - -**Type:** float - -**Current value:** 0.75 - ---- - -### gov.states.ia.tax.income.deductions.standard.applies_federal -**Label:** Iowa federal standard deduction applies - -Iowa applies the federal standard deduction if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ia.tax.income.tax_reduction.elderly_age -**Label:** Iowa elderly age threshold used in tax reduction worksheet - -Iowa considers single tax units with head this age or older to be elderly in tax reduction worksheet calculations. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ia.tax.income.tax_reduction.threshold.elderly -**Label:** Iowa tax reduction worksheet modified income threshold for elderly - -Iowa has a tax reduction worksheet for single tax units that uses this modified income threshold for the elderly. - -**Type:** int - -**Current value:** 24000 - ---- - -### gov.states.ia.tax.income.tax_reduction.threshold.nonelderly -**Label:** Iowa tax reduction worksheet modified income threshold for nonelderly - -Iowa has a tax reduction worksheet for single tax units that uses this modified income threshold for the nonelderly. - -**Type:** int - -**Current value:** 9000 - ---- - -### gov.states.ia.tax.income.pension_exclusion.minimum_age -**Label:** Iowa pension exclusion minimum age for age eligibility - -Iowa allows an exclusion of taxable pension income to get its net income that is available to elderly or disabled heads or spouses where elderly is defined as being at least this minimum age. - -**Type:** int - -**Current value:** 55 - ---- - -### gov.states.ia.tax.income.reportable_social_security.fraction -**Label:** Iowa reportable social security fraction - -Iowa calculates reportable social security using this fraction. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ia.tax.income.tax_exempt.elderly_age -**Label:** Iowa elderly age threshold used in tax exemption calculations - -Iowa considers tax units with head or spouse this age or older to be elderly in exempt from income taxation calculations. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ia.tax.income.tax_exempt.income_limit.single_elderly -**Label:** Iowa tax exemption income limit for nonelderly single tax units - -Iowa considers single tax units with modified net income no greater than this limit to be exempt from income taxation. - -**Type:** int - -**Current value:** 24000 - ---- - -### gov.states.ia.tax.income.tax_exempt.income_limit.other_elderly -**Label:** Iowa tax exemption income limit for elderly nonsingle tax units - -Iowa considers tax units other than singles with modified net income no greater than this limit to be exempt from income taxation. - -**Type:** int - -**Current value:** 32000 - ---- - -### gov.states.ia.tax.income.tax_exempt.income_limit.single_nonelderly -**Label:** Iowa tax exemption income limit for nonelderly single tax units - -Iowa considers single tax units with modified net income no greater than this limit to be exempt from income taxation. - -**Type:** int - -**Current value:** 9000 - ---- - -### gov.states.ia.tax.income.tax_exempt.income_limit.other_nonelderly -**Label:** Iowa tax exemption income limit for nonelderly nonsingle tax units - -Iowa considers tax units other than singles with modified net income no greater than this limit to be exempt from income taxation. - -**Type:** int - -**Current value:** 13500 - ---- - -### gov.states.ia.tax.income.married_filing_separately_on_same_return.availability -**Label:** Iowa married filing separately on the same return availability - -Iowa allows married couples to file separately on the same tax return if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.ia.tax.income.credits.exemption.elderly_age -**Label:** Iowa elderly age threshold used in additional exemption credit calculations - -Iowa gives an additional exemption credit to a head or spouse who is at least this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ia.tax.income.credits.exemption.additional -**Label:** Iowa additional (elderly and/or blind) exemption amount - -Iowa has an nonrefundable exemption credit in which each elderly and/blind head and spouse receive this additional exemption amount for each condition. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.states.ia.tax.income.credits.exemption.dependent -**Label:** Iowa dependent exemption amount - -Iowa has an nonrefundable exemption credit in which each tax unit dependent receives this dependent exemption amount. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.ia.tax.income.credits.exemption.personal -**Label:** Iowa personal exemption amount - -Iowa has an nonrefundable exemption credit in which each tax unit head and spouse receive this personal exemption amount. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.ia.tax.income.credits.earned_income.fraction -**Label:** Iowa EITC fraction - -Iowa provides an earned income tax credit (EITC) that is this fraction of the federal EITC amount. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.ia.tax.income.alternate_tax.elderly_age -**Label:** Iowa alternate tax age threshold that determines deduction amount - -Iowa allows an alternate tax for non-single filing units where the deduction varies depending on whether head or spouse age is at least this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ia.tax.income.alternate_tax.rate -**Label:** Iowa alternate tax rate - -Iowa allows an alternate tax for non-single filing units that has this flat tax rate. - -**Type:** float - -**Current value:** 0.0853 - ---- - -### gov.states.ia.tax.income.alternate_tax.deduction.elderly -**Label:** Iowa deduction used in tax alternate tax calculations for elderly - -Iowa has a alternate tax with this deduction against modified income for tax units with elderly head or spouse. - -**Type:** int - -**Current value:** 32000 - ---- - -### gov.states.ia.tax.income.alternate_tax.deduction.nonelderly -**Label:** Iowa deduction used in tax alternate tax calculations for nonelderly - -Iowa has a alternate tax with this deduction against modified income for tax units without an elderly head or spouse. - -**Type:** int - -**Current value:** 13500 - ---- - -### gov.states.ct.tax.income.subtractions.pensions_or_annuity.rate -**Label:** Connecticut annuity and pension subtraction rate - -Connecticut subtracts this fraction of annuity and pension income from adjusted gross income. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ct.tax.income.subtractions.social_security.combined_income_excess -**Label:** Connecticut combined income excess rate - -Connecticut calculates this fraction of the combined income excess, which is then compared to a portion of taxable Social Security benefits, to determine the minimum as part of the social security benefit adjustment. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ct.tax.income.subtractions.social_security.rate.social_security -**Label:** Connecticut social security benefit adjustment rate - -Connecticut multiplies the taxable social security amount by this rate under the social security benefit adjustment. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ct.tax.income.rebate.child_cap -**Label:** Connecticut tax rebate child cap - -Connecticut caps the child for tax rebate at this number. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.ct.tax.income.rebate.amount -**Label:** Connecticut child tax rebate amount - -Connecticut provides a child tax rebate of this amount, for each eligible child. - -**Type:** int - -**Current value:** 250 - ---- - -### gov.states.ct.tax.income.rebate.reduction.increment -**Label:** Connecticut child tax rebate reduction increment - -Connecticut reduces the child tax rebate amount for each of these increments of state adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ct.tax.income.rebate.reduction.rate -**Label:** Connecticut child tax rebate reduction rate - -Connecticut reduces the personal exemption amount by this rate for each increment of state adjusted gross income exceeding the threshold. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.ct.tax.income.exemptions.personal.reduction.increment -**Label:** Connecticut personal exemption reduction increment - -Connecticut reduces the personal exemption amount for each of these increments of state adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ct.tax.income.exemptions.personal.reduction.amount -**Label:** Connecticut personal exemption reduction amount - -Connecticut reduces the personal exemption amount by this amount for each increment of state adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ct.tax.income.credits.property_tax.age_threshold -**Label:** Connecticut property tax credit age threshold - -Connecticut limits its property tax credit to filers at or above this age. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.ct.tax.income.credits.property_tax.reduction.rate -**Label:** Connecticut Property Tax Credit reduction rate - -Connecticut reduces its property tax credit by this percentage for each increment of state adjusted gross income exceeding the threshold. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.ct.tax.income.credits.property_tax.cap -**Label:** Connecticut property tax credit cap - -Connecticut caps the property tax credit at this amount. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.ct.tax.income.credits.eitc.match -**Label:** Connecticut EITC match - -Connecticut matches this percent of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.wv.tax.income.subtractions.social_security_benefits.rate -**Label:** West Virginia social security benefits subtraction rate - -West Virginia subtracts this fraction of taxable social security benefits from adjusted gross income. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.wv.tax.income.subtractions.public_pension.max_amount -**Label:** West Virginia public pension subtraction max amount - -West Virginia provides a pension subtraction of up to this maximum amount. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.wv.tax.income.subtractions.senior_citizen_disability_deduction.age_threshold -**Label:** West Virginia senior citizen deduction age threshold - -West Virginia limits the senior citizen deduction to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.wv.tax.income.subtractions.senior_citizen_disability_deduction.cap -**Label:** West Virginia senior citizen or disability deduction cap - -West Virginia caps the reduced adjusted gross income at this amount under the senior citizen or disability deduction. - -**Type:** int - -**Current value:** 8000 - ---- - -### gov.states.wv.tax.income.exemptions.base_personal -**Label:** West Virginia personal exemption - -West Virginia provides an income tax exemption of this value for tax units with no exemptions claimed. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.wv.tax.income.exemptions.homestead_exemption.max_amount -**Label:** West Virginia homestead exemption max amount - -West Virginia provides a homestead exemption of up to this maximum amount. - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.wv.tax.income.exemptions.personal -**Label:** West Virginia personal exemption - -West Virginia provides an income tax exemption of this value for each person in the filing unit. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.wv.tax.income.credits.heptc.rate.fpg -**Label:** West Virginia homestead excess property tax credit poverty guidelines rate - -West Virginia limits the homestead excess property tax credit to filers with adjusted gross income below this multiple of the federal poverty guidelines. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.wv.tax.income.credits.heptc.rate.household_income -**Label:** West Virginia homestead excess property tax credit gross household income rate - -West Virginia provides a homestead property tax credit for property taxes in excess of this fraction of gross household income less the amount of the senior citizen tax credit. - -**Type:** float - -**Current value:** 0.04 - ---- - -### gov.states.wv.tax.income.credits.heptc.cap -**Label:** West Virginia homestead excess property tax credit cap - -West Virginia caps the homestead excess property tax credit at this amount. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.wv.tax.income.credits.sctc.max_amount -**Label:** West Virginia senior citizens tax credit max amount - -West Virginia provides a senior citizens tax credit of up to this maximum amount. - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.wv.tax.income.credits.sctc.fpg_percentage -**Label:** West Virginia senior citizens tax credit federal poverty guidelines percentage - -West Virginia qualifies filers for the senior citizens tax credit with modified gross income below this percentage of the federal poverty guidelines. - -**Type:** float - -**Current value:** 1.5 - ---- - -### gov.states.wv.tax.income.credits.liftc.max_family_size -**Label:** West Virginia family size of low-income family tax credit max family size - -West Virginia limits the number of eligible tax unit members for the low-income family tax credit to this amount. - -**Type:** int - -**Current value:** 8 - ---- - -### gov.states.ri.tax.income.agi.subtractions.taxable_retirement_income.cap -**Label:** Rhode Island taxable retirement income subtraction cap - -Rhode Island subtracts up to this amount of taxable retirement income from adjusted gross income. - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.ri.tax.income.agi.subtractions.social_security.limit.birth_year -**Label:** Rhode Island social security modification birth year threshold - -Rhode Island allows social security modifications for taxpayers or spouses born on or before this date. - -**Type:** int - -**Current value:** 1957 - ---- - -### gov.states.ri.tax.income.deductions.standard.phase_out.percentage -**Label:** Rhode Island standard deduction phase out rate - -Rhode Island phases out this percentage of its standard deduction for each increment by which their income exceeds the threshold. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ri.tax.income.exemption.reduction.rate -**Label:** Rhode Island exemption phase out rate - -Rhode Island reduces the personal exemption amount by this rate, increased for each increment of state adjusted gross income exceeding the threshold. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ri.tax.income.credits.property_tax.rate.rent -**Label:** Rhode Island property tax credit rent rate - -Rhode Island accounts for the following percentage of rent paid under the property tax credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ri.tax.income.credits.property_tax.age_threshold -**Label:** Rhode Island property tax credit age threshold - -Rhode Island limits its property tax credit to filers this age or older, or who have a disability. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ri.tax.income.credits.child_tax_rebate.limit.age -**Label:** Rhode Island child tax rebate child age limit - -Rhode Island limits its child tax rebate to children this age or younger. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ri.tax.income.credits.child_tax_rebate.limit.child -**Label:** Rhode Island child tax rebate child cap - -Rhode Island caps the child tax rebate to this number of children. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.ri.tax.income.credits.child_tax_rebate.amount -**Label:** Rhode Island child tax rebate amount - -Rhode Island provides this child tax rebate amount for each eligible child. - -**Type:** int - -**Current value:** 250 - ---- - -### gov.states.ri.tax.income.credits.cdcc.rate -**Label:** Rhode Island CDCC match percent - -Rhode Island matches the Federal Credit for child and dependent care expenses by this rate. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ri.tax.income.credits.eitc.match -**Label:** Rhode Island EITC match - -Rhode Island matches this fraction of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.16 - ---- - -### gov.states.pa.dhs.tanf.resource_limit -**Label:** Pennsylvania TANF resource limit - -Pennsylvania limits TANF benefits to households with resources at or below this amount. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.pa.dhs.tanf.cash_assistance.age_limit -**Label:** Pennsylvania TANF age eligibility - -Pennsylvania limits TANF eligibility to people below this age, or students exactly this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.pa.dhs.tanf.pregnancy_eligibility.age_limit -**Label:** Pennsylvania TANF age limitation for pregnant women with child receiving TANF - -Pennsylvania has limitation for applying TANF to pregnant women above or equal to this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.pa.tax.income.forgiveness.tax_back -**Label:** PA tax forgiveness percentage - -Pennsylvania reduces its tax forgiveness by this percent per given amount of eligibility income. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.pa.tax.income.forgiveness.dependent_rate -**Label:** PA tax forgiveness rate increase for each additional dependent - -Pennsylvania increases the tax forgiveness eligibility income threshold by this amount for each dependent. - -**Type:** int - -**Current value:** 9500 - ---- - -### gov.states.pa.tax.income.forgiveness.base -**Label:** PA base eligibility income - -Pennsylvania starts reducing its tax forgiveness when eligibility income exceeds this amount, or double for joint filers. - -**Type:** int - -**Current value:** 6500 - ---- - -### gov.states.pa.tax.income.forgiveness.rate_increment -**Label:** PA tax forgiveness rate decrease for each additional increment of eligibility income - -Pennsylvania reduces its tax forgiveness by a given percent per this amount of eligibility income. - -**Type:** int - -**Current value:** 250 - ---- - -### gov.states.pa.tax.income.rate -**Label:** PA income tax rate - -Pennsylvania taxes income at this rate. - -**Type:** float - -**Current value:** 0.0307 - ---- - -### gov.states.pa.tax.income.credits.cdcc.match -**Label:** Pennsylvania Child and Dependent Care Credit match - -Pennsylvania matches this percentage of the federal Child and Dependent Care Credit. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.pa.tax.use_tax.higher.rate.rest_of_pa -**Label:** Rest of PA Use Tax Rate - -Pennsylvania levies a use tax at this percent of taxable income for residents outside Philadelphia and Allegheny County with taxable income over the higher threshold. - -**Type:** float - -**Current value:** 0.0003 - ---- - -### gov.states.pa.tax.use_tax.higher.rate.allegheny_county -**Label:** PA Allegheny County Use Tax Rate - -Pennsylvania levies a use tax at this percent of taxable income for Allegheny County residents with taxable income over the higher threshold. - -**Type:** float - -**Current value:** 0.00035 - ---- - -### gov.states.pa.tax.use_tax.higher.rate.philadelphia_county -**Label:** PA Philadelphia Use Tax Rate - -Pennsylvania levies a use tax at this percent of taxable income for Philadelphia residents with taxable income over the higher threshold. - -**Type:** float - -**Current value:** 0.0004 - ---- - -### gov.states.pa.tax.use_tax.higher.cap.rest_of_pa -**Label:** Rest of PA use tax cap - -Pennsylvania caps the use tax at this amount for people outside Philadelphia and Allegheny County. - -**Type:** int - -**Current value:** 75 - ---- - -### gov.states.pa.tax.use_tax.higher.cap.allegheny_county -**Label:** PA Alleghney County use tax cap - -Pennsylvania caps the use tax for Allegheny County at this amount. - -**Type:** int - -**Current value:** 88 - ---- - -### gov.states.pa.tax.use_tax.higher.cap.philadelphia_county -**Label:** PA Philadelphia use tax cap - -Pennsylvania caps the use tax for Philadelphia at this amount. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.pa.tax.use_tax.higher.threshold -**Label:** PA use Tax higher threshold - -Pennsylvania moves to a percentage based use tax system at this threshold. - -**Type:** int - -**Current value:** 200000 - ---- - -### gov.states.nc.ncdhhs.tanf.need_standard.average_reduced_need_standard_thresold -**Label:** North Carolina TANF monthly minimum benefit - -North Carolina disqualifies households from the Temporary Assistance for Needy Families program if their average per-person need standard, after subtracting income, falls below this amount. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.states.nc.ncdhhs.tanf.need_standard.payment_percentage -**Label:** North Carolina TANF payment percentage - -North Carolina provides this fraction of the difference between the need standard and household income for its Temporary Assistance for Needy Families program. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.nc.ncdhhs.tanf.need_standard.age_limit -**Label:** North Carolina TANF program child age limit - -North Carolina limits its Temporary Assistance for Needy Families program to children below this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.nc.ncdhhs.tanf.need_standard.additional_person -**Label:** North Carolina TANF monthly income limit per additional person - -North Carolina provides an additional need standard amount for each household member exceeding the maximum specified household size for its Temporary Assistance for Needy Families program. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.states.nc.tax.income.deductions.military_retirement.minimum_years -**Label:** North Carolina minimum years serving in the military - -North Carolina requires a filer to have served for at least this many years in the military to qualify for specific military retirement deductions, given the filer is not medically retired. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.states.nc.tax.income.deductions.military_retirement.fraction -**Label:** North Carolina military retirement subtraction fraction - -North Carolina subtracts this fraction of military retirement benefits from federal adjusted gross income. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.nc.tax.income.rate -**Label:** North Carolina individual income tax rate - -North Carolina taxes individual taxable income at this rate. - -**Type:** float - -**Current value:** 0.0425 - ---- - -### gov.states.nd.tax.income.taxable_income.subtractions.ltcg_fraction -**Label:** North Dakota fraction of long-term capital gains that can be subtracted from taxable income - -North Dakota subtracts this fraction of long-term capital gains from US taxable income when calculating its taxable income. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.nd.tax.income.taxable_income.subtractions.qdiv_fraction -**Label:** North Dakota fraction of qualified dividends that can be subtracted from taxable income - -North Dakota subtracts this fraction of qualified dividends from US taxable income when calculating its taxable income. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.nd.tax.income.credits.marriage_penalty.qualified_income_threshold -**Label:** North Dakota marriage-penalty credit qualified income threshold - -North Dakota has a nonrefundable marriage-penalty credit for joint filers with smaller of head and spouse qualified income more than this amount. - -**Type:** float - -**Current value:** 47773.54182063854 - ---- - -### gov.states.nd.tax.income.credits.marriage_penalty.maximum -**Label:** North Dakota marriage-penalty credit maximum amount - -North Dakota has a nonrefundable marriage-penalty credit for joint filers in which this is the maximum credit amount. - -**Type:** float - -**Current value:** 311.75549118970577 - ---- - -### gov.states.nd.tax.income.credits.marriage_penalty.taxable_income_threshold -**Label:** North Dakota marriage-penalty credit taxable income threshold - -North Dakota has a nonrefundable marriage-penalty credit for joint filers with state taxable income more than this amount. - -**Type:** float - -**Current value:** 81319.30167750437 - ---- - -### gov.states.nd.tax.income.credits.resident_tax_relief.other_amount -**Label:** North Dakota resident-tax-relief credit amount for non-joint filing units - -North Dakota had for 2021-2022 a nonrefundable resident-tax-relief credit of this amount for non-joint filing units. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.nd.tax.income.credits.resident_tax_relief.joint_amount -**Label:** North Dakota resident-tax-relief credit amount for joint filing units - -North Dakota had for 2021-2022 a nonrefundable resident-tax-relief credit of this amount for joint filing units. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.nm.tax.income.rebates.property_tax.rent_rate -**Label:** New Mexico property tax rebate rent rate - -New Mexico treats this percentage of rent as property tax for the property tax rebate. - -**Type:** float - -**Current value:** 0.06 - ---- - -### gov.states.nm.tax.income.rebates.property_tax.age_eligibility -**Label:** New Mexico property tax rebate age threshold - -New Mexico provides the property tax rebate for filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nm.tax.income.rebates.property_tax.income_threshold -**Label:** New Mexico property tax rebate income threshold - -New Mexico provides the property tax rebate for filers with income below this threshold. - -**Type:** int - -**Current value:** 16000 - ---- - -### gov.states.nm.tax.income.rebates.low_income.divisor -**Label:** New Mexico low income rebate divisor for married filing separately - -New Mexico divides its low income comprehensive tax rebate by this number for married filing separately filers. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.nm.tax.income.rebates.low_income.exemptions.blind -**Label:** New Mexico low income rebate blind exemption - -New Mexico provides an additional exemption under the low income comprehensive tax rebate for blind filers. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.nm.tax.income.deductions.net_capital_gains.uncapped_element_percent -**Label:** New Mexico net capital gain deduction uncapped element percent - -New Mexico allows filers to deduct this percentage of their net capital gains, or an amount of it, whichever is greater. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.nm.tax.income.exemptions.low_and_middle_income.max_amount -**Label:** New Mexico low- and middle-income exemption maximum amount - -New Mexico provides this maximum low- and middle-income exemption amount. - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.states.nm.tax.income.exemptions.unreimbursed_medical_care_expense.age_eligibility -**Label:** New Mexico medical care expense exemption age threshold - -New Mexico provides the unreimbursed medical care expense exemption for filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nm.tax.income.exemptions.unreimbursed_medical_care_expense.amount -**Label:** New Mexico medical care expense exemption amount - -New Mexico provides this amount under the unreimbursed medical care expense exemption. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.nm.tax.income.exemptions.unreimbursed_medical_care_expense.min_expenses -**Label:** New Mexico medical care expense exemption minimum expenses - -New Mexico provides the unreimbursed medical care expense exemption for filers with expenses at or above this amount. - -**Type:** int - -**Current value:** 28000 - ---- - -### gov.states.nm.tax.income.exemptions.hundred_year.age_eligibility -**Label:** New Mexico hundred year exemption age threshold - -New Mexico provides the hundred year exemption for filers at or above this age threshold. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.nm.tax.income.exemptions.blind_and_aged.age_threshold -**Label:** New Mexico aged and blind exemption age threshold - -New Mexico provides the aged or blind exemption for filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nm.tax.income.exemptions.armed_forces_retirement_pay.cap -**Label:** New Mexico armed forces retirement pay exemption cap - -New Mexico exempts this amount of armed forces retirement pay. - -**Type:** int - -**Current value:** 30000 - ---- - -### gov.states.nm.tax.income.credits.unreimbursed_medical_care_expense.age_eligibility -**Label:** New Mexico medical care expense credit age threshold - -New Mexico provides the unreimbursed medical care expense credit for filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nm.tax.income.credits.unreimbursed_medical_care_expense.amount -**Label:** New Mexico medical care expense credit amount - -New Mexico provides this amount under the unreimbursed medical care expense credit. - -**Type:** int - -**Current value:** 2800 - ---- - -### gov.states.nm.tax.income.credits.unreimbursed_medical_care_expense.min_expenses -**Label:** New Mexico medical care expense credit minimum expenses - -New Mexico provides the unreimbursed medical care expense credit for filers with expenses at or above this amount. - -**Type:** int - -**Current value:** 28000 - ---- - -### gov.states.nm.tax.income.credits.cdcc.age_eligible -**Label:** New Mexico credit for dependent day care child eligible age - -New Mexico provides the credit for dependent day care for dependents below this age threshold. - -**Type:** int - -**Current value:** 15 - ---- - -### gov.states.nm.tax.income.credits.cdcc.divisor -**Label:** New Mexico credit for dependent day care separate divisor - -New Mexico divides the credit for dependent day care for separate filers by this divisor. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.nm.tax.income.credits.cdcc.rate -**Label:** New Mexico dependent day care credit rate - -New Mexico matches up to this share of the federal Child and Dependent Care Credit for its Child Day Care Credit. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.nm.tax.income.credits.cdcc.max_amount.per_child -**Label:** New Mexico credit for child and dependent care one dependent max amount - -New Mexico provides up to this amount per child under its Child Day Care Credit. - -**Type:** int - -**Current value:** 480 - ---- - -### gov.states.nm.tax.income.credits.cdcc.max_amount.total -**Label:** New Mexico credit for child and dependent care max amount - -New Mexico provides up to this total amount under its Child Day Care Credit. - -**Type:** int - -**Current value:** 1200 - ---- - -### gov.states.nm.tax.income.credits.cdcc.full_time_hours -**Label:** New Mexico credit for dependent day care full time hours - -New Mexico provides the credit for child and dependent day care for filers with modified gross income based on these full time working hours. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.nm.tax.income.credits.cdcc.income_limit_as_fraction_of_minimum_wage -**Label:** New Mexico CDCC MAGI limit as fraction of minimum wage - -New Mexico provides the child and dependent day care credit for filers with modified gross income at or below this fraction of full-time minimum wage. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.nm.tax.income.credits.eitc.match -**Label:** New Mexico EITC match - -New Mexico matches this percentage of the federal Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.nm.tax.income.credits.eitc.eligibility.age.min -**Label:** New Mexico EITC minimum childless age - -New Mexico limits Earned Income Tax Credit eligibility for filers without children to those this age or older. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.nj.tax.income.deductions.property_tax.qualifying_rent_fraction -**Label:** New Jersey percent of rent considered property taxes - -New Jersey considers this percent of rent paid property taxes. - -**Type:** float - -**Current value:** 0.18 - ---- - -### gov.states.nj.tax.income.deductions.property_tax.limit -**Label:** New Jersey property tax deduction/credit property tax limit - -New Jersey allows for a property tax credit or deduction on up to this amount of paid property taxes. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.nj.tax.income.deductions.medical_expenses.rate -**Label:** New Jersey medical expense deduction rate - -New Jersey deducts from taxable income the excess of medical expenses over this fraction of state adjusted gross income. - -**Type:** float - -**Current value:** 0.02 - ---- - -### gov.states.nj.tax.income.exclusions.retirement.other_retirement_income.earned_income_threshold -**Label:** NJ other retirement earned income exclusion threshold. - -New Jersey filers with more than this amount of earned income are not eligible for other retirement exclusion. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.nj.tax.income.exclusions.retirement.age_threshold -**Label:** NJ pension/retirement exclusion and other retirement income exclusion qualifying age - -Filers (and/or spouses) must be at or above this age to subtract retirement income from taxable income - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.nj.tax.income.exemptions.senior.age_threshold -**Label:** New Jersey senior exemption age threshold - -New Jersey provides an additional exemption amount for filers above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nj.tax.income.exemptions.senior.amount -**Label:** New Jersey senior exemption amount - -New Jersey provides this exemption amount per qualifying person. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.nj.tax.income.exemptions.dependents_attending_college.age_threshold -**Label:** New Jersey dependent attending college exemption age limit - -New Jersey limits its exemption for dependents attending college to people below this age. - -**Type:** int - -**Current value:** 22 - ---- - -### gov.states.nj.tax.income.exemptions.dependents_attending_college.amount -**Label:** New Jersey dependent attending college exemption - -New Jersey provides an exemption of this value per dependent attending colleges. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.nj.tax.income.exemptions.dependents.amount -**Label:** New Jersey dependent exemption - -New Jersey provides an exemption of this value per dependent. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.states.nj.tax.income.exemptions.blind_or_disabled.amount -**Label:** New Jersey blind or disabled exemption - -New Jersey provides an exemption of this amount per blind or disabled filer or spouse. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.nj.tax.income.credits.property_tax.age_threshold -**Label:** New Jersey property tax credit senior age threshold - -New Jersey limits the property tax credit to filers of this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.nj.tax.income.credits.property_tax.amount -**Label:** New Jersey property tax credit amount - -New Jersey offers a refundable property tax credit of this amount. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.states.nj.tax.income.credits.ctc.age_limit -**Label:** New Jersey child tax credit age limit - -New Jersey provides a child tax credit to filers for each dependent below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.nj.tax.income.credits.eitc.match -**Label:** New Jersey EITC match - -New Jersey matches this fraction of the federal earned income tax credit. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.nj.tax.income.credits.eitc.eligibility.age.min -**Label:** New Jersey EITC minimum childless age - -New Jersey limits the earned income tax credit for filers without children to this age or older. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.nj.njdhs.tanf.maximum_benefit.additional -**Label:** New Jersey TANF monthly maximum benefit per additional person - -New Jersey limits its TANF program to households with this maximum benefit for people beyond size. - -**Type:** int - -**Current value:** 66 - ---- - -### gov.states.nj.njdhs.tanf.eligibility.resources.limit -**Label:** New Jersey TANF resource limit - -New Jersey limits its TANF eligibility to households with up to this amount of resources. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.nj.njdhs.tanf.maximum_allowable_income.additional -**Label:** New Jersey TANF monthly income limit per additional person - -New Jersey limits its TANF program to households with up to this income level for people beyond size. - -**Type:** int - -**Current value:** 99 - ---- - -### gov.states.nj.snap.amount -**Label:** New Jersey SNAP minimum allotment amount - -New Jersey provides a minimum monthly SNAP allotment of this amount. - -**Type:** int - -**Current value:** 95 - ---- - -### gov.states.nj.snap.in_effect -**Label:** New Jersey SNAP minimum allotment in effect - -New Jersey provides a separate SNAP minimum allotment amount if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.me.tax.income.agi.subtractions.pension_exclusion.cap -**Label:** Maine pension exclusion cap - -Maine subtracts this amount from pensions and annuities included in federal AGI from Maine AGI. - -**Type:** int - -**Current value:** 35000 - ---- - -### gov.states.me.tax.income.credits.child_care.max_amount -**Label:** Maine child care credit amount refundable max - -Maine provides up to this amount in its child care credit. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.me.tax.income.credits.child_care.share_of_federal_credit.step_4 -**Label:** Maine child care credit match for step 4 child care expenses - -Maine matches this share of the federal child and dependent care credit for child care expenses that qualify as Step 4. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.me.tax.income.credits.child_care.share_of_federal_credit.non_step_4 -**Label:** Maine child care credit match for non-Step 4 child care expenses - -Maine matches this share of the federal child and dependent care credit for child care expenses that don't qualify as Step 4. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.rate.income -**Label:** Maine property tax fairness credit income rate - -Maine allows for a the property tax fairness credit amount which exceedes this rate of the filers income. - -**Type:** float - -**Current value:** 0.04 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.rate.rent -**Label:** Maine property tax fairness credit income rate - -Maine considers this percentage of the gross rent as rent constituting property taxes under the property tax fairness credit. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.dependent_count_threshold -**Label:** Maine property tax fairness credit dependent amount threshold - -Maine assigns same amount of benefit base for household who have dependent of more than this value. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.benefit_base.head_of_household_one_child -**Label:** Maine property tax fairness credit benefit base for household with one child or joint filers with no child - -Maine allows for this property tax fairness credit benefit base for head of household with one child or joint filers with no child - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.benefit_base.joint_or_head_of_household_multiple_children -**Label:** Maine property tax fairness credit benefit base for household with multiple children or joint filers with one child or more - -Maine allows for this property tax fairness credit benefit base for head of household with multiple children or joint filers with one child or more. - -**Type:** int - -**Current value:** 3700 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.benefit_base.single -**Label:** Maine property tax fairness credit benefit base for single filers - -Maine allows for this property tax fairness credit benefit base for single filers - -**Type:** int - -**Current value:** 2300 - ---- - -### gov.states.me.tax.income.credits.fairness.property_tax.veterans_matched -**Label:** Maine additional credit for permanently and totally disabled veterans in effect - -Maine provides additional credit for permanently and totally disabled veterans if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.me.tax.income.credits.dependent_exemption.phase_out.step -**Label:** Maine dependent exemption phaseout amount per phaseout increment - -Maine reduces the dependent exemption credit by this amount for each increment in of Maine adjusted gross income above the threshold. - -**Type:** float - -**Current value:** 7.5 - ---- - -### gov.states.me.tax.income.credits.dependent_exemption.phase_out.increment -**Label:** Maine dependent exemption phaseout increment - -Maine reduces the dependent exemption credit by an amount for each of these increments of Maine adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.me.tax.income.credits.dependent_exemption.amount -**Label:** Maine dependent exemption credit amount - -Maine provides up to this dependent exemption credit amount. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.me.tax.income.credits.eitc.rate.with_qualifying_child -**Label:** Maine EITC percent - -Maine matches this share of the federal EITC for filers with qualifying children. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.me.tax.income.credits.eitc.rate.no_qualifying_child -**Label:** Maine EITC percent - -Maine matches this share of the federal EITC for filers without qualifying children. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ar.tax.income.deductions.itemized.tuition.rate -**Label:** Arkansas post-secondary education deduction tuition expense rate - -Arkansas calculates this rate of education tuition expenses under the post secondary eduction tuition deduction. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ar.tax.income.deductions.itemized.tuition.weighted_average_tuition.two_year_college -**Label:** Arkansas post secondary eduction tuition deduction two-year college weighted average tuition - -Arkansas defines the weighted average tuition for four-year colleges at this amount under the post secondary education tuition deduction. - -**Type:** int - -**Current value:** 2405 - ---- - -### gov.states.ar.tax.income.deductions.itemized.tuition.weighted_average_tuition.technical_institutes -**Label:** Arkansas post secondary eduction tuition deduction technical institutes weighted average tuition - -Arkansas defines the weighted average tuition for technical institutes at this amount under the post secondary education tuition deduction. - -**Type:** int - -**Current value:** 780 - ---- - -### gov.states.ar.tax.income.deductions.itemized.tuition.weighted_average_tuition.four_year_college -**Label:** Arkansas post secondary eduction tuition deduction four-year college weighted average tuition - -Arkansas defines the weighted average tuition for four-year colleges at this amount under the post secondary education tuition deduction. - -**Type:** int - -**Current value:** 4819 - ---- - -### gov.states.ar.tax.income.gross_income.capital_gains.exempt.rate -**Label:** Arkansas long-term capital gains tax exempt rate - -Arkansas exempts this percentage of long-term capital gains. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ar.tax.income.gross_income.capital_gains.exempt.cap -**Label:** Arkansas long-term capital gains tax exempt cap - -Arkansas exempts all net capital gains in excess of this threshold. - -**Type:** int - -**Current value:** 10000000 - ---- - -### gov.states.ar.tax.income.exemptions.retirement_or_disability_benefits.cap -**Label:** Arkansas retirement or disability benefits exemption cap - -Arkansas caps the retirement and benefit exemption at this amount. - -**Type:** int - -**Current value:** 6000 - ---- - -### gov.states.ar.tax.income.credits.personal.amount.disabled_dependent -**Label:** Arkansas disabled dependent personal tax credit amount - -Arkansas provides this personal tax credit amount to each disabled dependent. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.ar.tax.income.credits.personal.amount.base -**Label:** Arkansas personal tax credit base amount - -Arkansas provides this base personal tax credit amount. - -**Type:** int - -**Current value:** 29 - ---- - -### gov.states.ar.tax.income.credits.personal.age_threshold -**Label:** Arkansas aged personal credit age threshold - -Arkansas limits its aged personal credit to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ar.tax.income.credits.cdcc.match -**Label:** Arkansas household and dependents care credit match - -Arkansas matches this percentage of the federal child and dependent care credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.dc.dhs.tanf.resource_limit.lower_limit -**Label:** DC TANF resource limit for households without elderly or disabled people - -DC limits TANF to households with up to this resource amount if they do not have elderly or disabled members. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.dc.dhs.tanf.resource_limit.higher_limit -**Label:** DC TANF resource limit for households with elderly or disabled people - -DC limits TANF to households with up to this resource amount if they have elderly or disabled members. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.dc.dhs.tanf.resource_limit.elderly_age_threshold -**Label:** DC TANF resource limit threshold for an elderly - -DC provide higher limit for resource amount to households have at least one elderly over 60. - -**Type:** int - -**Current value:** 60 - ---- - -### gov.states.dc.dhs.tanf.income.deductions.earned.percentage -**Label:** DC TANF earnings exclusion percent - -DC excludes this share of earnings from TANF countable income, except for determining need for new applicants. - -**Type:** float - -**Current value:** 0.67 - ---- - -### gov.states.dc.dhs.tanf.income.deductions.earned.flat -**Label:** DC TANF flat earnings exclusion - -DC excludes this amount of earnings from TANF countable income when determining need for new applicants. - -**Type:** int - -**Current value:** 160 - ---- - -### gov.states.dc.dhs.tanf.income.deductions.child_support -**Label:** DC TANF child support exclusion - -DC excludes this amount of monthly child support when computing unearned income. - -**Type:** int - -**Current value:** 150 - ---- - -### gov.states.dc.dhs.snap.min_allotment.amount -**Label:** DC SNAP minimum allotment amount - -DC provides the following monthly SNAP minimum allotment amount. - -**Type:** int - -**Current value:** 30 - ---- - -### gov.states.dc.dhs.snap.min_allotment.in_effect -**Label:** DC SNAP minimum allotment in effect - -DC provides a separate SNAP minimum allotment amount if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.dc.tax.income.subtractions.disabled_exclusion.income_limit -**Label:** DC disabled exclusion income limit - -DC allows an AGI subtraction for disabled persons who meet certain eligibility requirements and have household income below this limit. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.dc.tax.income.subtractions.disabled_exclusion.amount -**Label:** DC disabled exclusion amount - -DC allows an AGI subtraction of this amount for disabled persons who meet certain eligibility requirements. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.dc.tax.income.additions.self_employment_loss.threshold -**Label:** DC AGI addition self-employment loss threshold - -DC AGI excludes self-employment losses in excess of this threshold. - -**Type:** int - -**Current value:** 12000 - ---- - -### gov.states.dc.tax.income.deductions.itemized.phase_out.rate -**Label:** DC itemized deduction phase-out rate - -DC phases out some itemized deductions at this rate on DC AGI above a threshold. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.dc.tax.income.joint_separately_option -**Label:** Whether DC offers filing separate option to married-joint taxpayers - -DC offers taxpayers who file married joint on federal return the option to file separately on DC return if this parameter is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.dc.tax.income.snap.temporary_local_benefit.rate -**Label:** DC temporary local SNAP benefit rate - -DC provides a temporary local SNAP benefit of this percentage of the maximum allotment. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.dc.tax.income.credits.ptc.takeup -**Label:** DC property tax credit takeup rate - -The share of eligible individuals who claim the DC property tax credit. - -**Type:** float - -**Current value:** 0.32 - ---- - -### gov.states.dc.tax.income.credits.ptc.rent_ratio -**Label:** DC property tax credit property tax to rent ratio - -DC property tax credit assumes property taxes are this ratio to rent. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.dc.tax.income.credits.ptc.min_elderly_age -**Label:** DC property tax minimum elderly age - -DC property tax credit has a different credit rate for those this age or older. - -**Type:** int - -**Current value:** 70 - ---- - -### gov.states.dc.tax.income.credits.kccatc.max_age -**Label:** DC KCCATC maximum child age - -DC keep child care affordable tax credit is for children this age or less. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.dc.tax.income.credits.ctc.phase_out.increment -**Label:** DC Child Tax Credit phase-out increment - -DC reduces the Child Tax Credit by a certain amount for each of this increment by which one's income exceeds the phase-out thresholds. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.dc.tax.income.credits.ctc.phase_out.amount -**Label:** DC Child Tax Credit phase-out amount - -DC reduces the Child Tax Credit by this amount for each increment by which one's income exceeds the phase-out thresholds. - -**Type:** int - -**Current value:** 20 - ---- - -### gov.states.dc.tax.income.credits.ctc.amount -**Label:** DC Child Tax Credit amount - -DC provides a Child Tax Credit of this amount per eligible child. - -**Type:** int - -**Current value:** 420 - ---- - -### gov.states.dc.tax.income.credits.ctc.child.child_cap -**Label:** DC Child Tax Credit child cap - -DC limits the number of eligible children for the Child Tax Credit to this number. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.dc.tax.income.credits.ctc.child.age_threshold -**Label:** DC Child Tax Credit child age threshold - -DC provides a Child Tax Credit amount for children below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.dc.tax.income.credits.cdcc.match -**Label:** DC CDCC match rate - -DC matches this share of the federal child/dependent care credit. - -**Type:** float - -**Current value:** 0.32 - ---- - -### gov.states.dc.tax.income.credits.eitc.with_children.match -**Label:** DC EITC match for filers with qualifying children - -DC matches this percentage of the federal earned income tax credit for filers with qualifying children. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.states.dc.tax.income.credits.eitc.without_children.phase_out.rate -**Label:** DC EITC phase-out rate for filers without qualifying children - -DC phases out its EITC for filers without qualifying children at this rate for income above the threshold. - -**Type:** float - -**Current value:** 0.0848 - ---- - -### gov.states.dc.tax.income.credits.eitc.without_children.phase_out.start -**Label:** DC EITC phase-out threshold for filers without qualifying children - -DC phases out its EITC for filers without qualifying children for income above this threshold. - -**Type:** float - -**Current value:** 23775.972791499233 - ---- - -### gov.states.md.tax.income.agi.subtractions.max_care_expense_year_offset -**Label:** Decoupled year offset for maximum CDCC expense cap - -Decoupled year offset for maximum CDCC expense cap - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.md.tax.income.agi.subtractions.pension.min_age -**Label:** Maryland pension AGI subtraction minimum eligibility age - -Maryland pension AGI subtraction minimum eligibility age - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.md.tax.income.agi.subtractions.pension.max_amount -**Label:** Maryland max pension AGI subtraction - -Maryland provides the following maximum pension subtarction from adjusted gross income. - -**Type:** int - -**Current value:** 36200 - ---- - -### gov.states.md.tax.income.agi.subtractions.hundred_year.age_threshold -**Label:** Maryland hundred year subtraction age eligibility - -Maryland limits the hundred year subtraction to individuals this age or older. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.md.tax.income.agi.subtractions.hundred_year.amount -**Label:** Maryland hundred year subtraction amount - -Maryland subtracts this amount from adjusted gross income under the hundred year subtraction. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.md.tax.income.agi.subtractions.max_two_income_subtraction -**Label:** MD max two-income AGI subtraction - -Maryland maximum two-income AGI subtraction - -**Type:** int - -**Current value:** 1200 - ---- - -### gov.states.md.tax.income.deductions.standard.rate -**Label:** Maryland standard deduction as a percent of AGI - -Maryland provides a standard deduction of this share of a filer's adjusted gross income. - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.states.md.tax.income.exemptions.blind -**Label:** Maryland income tax blind exemption - -Maryland provides an exemption of this amount per blind head or spouse. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.md.tax.income.exemptions.aged.aged_dependent -**Label:** Maryland income tax aged dependent exemption - -Maryland provides a tax exemption of this amount per aged dependent. - -**Type:** int - -**Current value:** 3200 - ---- - -### gov.states.md.tax.income.exemptions.aged.amount -**Label:** Maryland income tax aged exemption - -Maryland provides a tax exemption of this amount per aged head or spouse. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.md.tax.income.exemptions.aged.age -**Label:** Maryland income tax aged exemption age threshold - -Maryland provides an additional tax exemption to people of at least this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.md.tax.income.credits.poverty_line.earned_income_share -**Label:** Maryland Poverty Line Credit rate - -Maryland provides up to this share of earned income in its Poverty Line Credit. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.md.tax.income.credits.ctc.agi_cap -**Label:** Maryland Child Tax Credit AGI cap - -Maryland limits its Child Tax Credit to filers below this adjusted gross income. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.md.tax.income.credits.ctc.reduced_by_federal_credit -**Label:** Maryland CTC reduced by federal credit - -Maryland reduces its child tax credit by the federal child tax credit amount when this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.md.tax.income.credits.ctc.amount -**Label:** Maryland Child Tax Credit amount per eligible child - -Maryland's Child Tax Credit provides this amount to eligible children. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.md.tax.income.credits.ctc.age_threshold.main -**Label:** Maryland Child Tax Credit main age limit - -Maryland limits its Child Tax Credit to children below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.md.tax.income.credits.ctc.age_threshold.disabled -**Label:** Maryland Child Tax Credit disabled age limit - -Maryland limits its Child Tax Credit to disabled children below this age. - -**Type:** int - -**Current value:** 17 - ---- - -### gov.states.md.tax.income.credits.cdcc.phase_out.percent -**Label:** Maryland CDCC phase-out percent - -Maryland reduces its Child and Dependent Care Credit by this percentage for each increment of a filer's income above its phase-out start. - -**Type:** float - -**Current value:** 0.01 - ---- - -### gov.states.md.tax.income.credits.cdcc.percent -**Label:** Maryland percent of federal CDCC - -Maryland matches up to this share of the federal Child and Dependent Care Credit. - -**Type:** float - -**Current value:** 0.32 - ---- - -### gov.states.md.tax.income.credits.senior_tax.age_eligibility -**Label:** Maryland Senior Tax Credit age eligibility - -Maryland allows filers at or above this age to receive the senior tax credit. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.md.tax.income.credits.senior_tax.amount.head_of_household -**Label:** Maryland Senior Tax Credit head of houshehold amount - -Maryland provides this senior tax credit amount for head of household filers. - -**Type:** int - -**Current value:** 1750 - ---- - -### gov.states.md.tax.income.credits.senior_tax.amount.widow -**Label:** Maryland Senior Tax Credit widow(er) amount - -Maryland provides this senior tax credit amount for widow(er) filers. - -**Type:** int - -**Current value:** 1750 - ---- - -### gov.states.md.tax.income.credits.senior_tax.amount.separate -**Label:** Maryland Senior Tax Credit separate amount - -Maryland provides this senior tax credit amount for separate filers. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.md.tax.income.credits.senior_tax.amount.single -**Label:** Maryland Senior Tax Credit single amount - -Maryland provides this senior tax credit amount for single filers. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.md.tax.income.credits.eitc.refundable.married_or_has_child.match -**Label:** Maryland refundable EITC match - -Maryland matches this percent of the federal Earned Income Tax Credit as a refundable credit for filers who are not single and childless. - -**Type:** float - -**Current value:** 0.45 - ---- - -### gov.states.md.tax.income.credits.eitc.non_refundable.married_or_has_child.match -**Label:** Maryland non-refundable EITC match - -Maryland matches this percent of the federal Earned Income Tax Credit for individuals with qualifying child or married couples filing jointly or separately with or without a qualifying child. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.md.tax.income.credits.eitc.non_refundable.unmarried_childless.match -**Label:** Maryland childless EITC match - -Maryland matches this percentage of the federal Earned Income Tax Credit to individuals without a qualifying child. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.md.tax.income.credits.eitc.non_refundable.unmarried_childless.max_amount -**Label:** Maryland childless EITC maximum - -Maryland provides up to this amount for its Earned Income Tax Credit to individuals without a qualifying child. - -**Type:** float - -**Current value:** inf - ---- - -### gov.states.md.usda.snap.min_allotment.age_threshold -**Label:** Maryland SNAP age threshold for supplement minimum allotment - -Maryland supplements the Supplemental Nutritional Assistant Program minimum allotment for households that include individuals this age or older. - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.md.usda.snap.min_allotment.amount -**Label:** Maryland SNAP minimum allotment amount - -Maryland provides the following monthly SNAP minimum allotment amount. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.md.usda.snap.min_allotment.in_effect -**Label:** Maryland SNAP minimum allotment in effect - -Maryland provides a separate SNAP minimum allotment amount if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.md.tanf.income.deductions.earned.new -**Label:** Maryland TANF earnings exclusion percent for new enrollees - -Maryland excludes this share of earnings from TANF countable earned income, for individuals not currently enrolled in TANF. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.md.tanf.income.deductions.earned.not_self_employed -**Label:** Maryland TANF earnings exclusion percent for non-self-employed individuals - -Maryland excludes this share of earnings from TANF countable earned income, for individuals without self employment income. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.md.tanf.income.deductions.earned.self_employed -**Label:** Maryland TANF earnings exclusion percent for self-employed individuals - -Maryland excludes this share of earnings from TANF countable earned income, for individuals with self employment income. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ks.tax.income.agi.subtractions.oasdi.agi_limit -**Label:** Kansas federal AGI limit for taxable social security AGI subtraction - -Kansas limits its taxable OASDI subtraction to filers with AGI at or below this amount. - -**Type:** float - -**Current value:** inf - ---- - -### gov.states.ks.tax.income.exemptions.consolidated.amount -**Label:** Kansas personal exemption consolidated amount - -Kansas provides this exemption for each person in a filing unit, pre 2024. - -**Type:** int - -**Current value:** 2250 - ---- - -### gov.states.ks.tax.income.exemptions.disabled_veteran.in_effect -**Label:** Kansas additional exemptions for disabled veterans in effect - -Kansas provides additional exemptions for disabled veterans if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ks.tax.income.exemptions.disabled_veteran.base -**Label:** Kansas disabled veteran exemption amount - -Kansas provides the following exemption amount for disabled veterans. - -**Type:** int - -**Current value:** 2250 - ---- - -### gov.states.ks.tax.income.exemptions.by_filing_status.dependent -**Label:** Kansas personal exemption by filing status dependent amount - -Kansas provides this exemption amount for each dependent in a filing unit post 2024. - -**Type:** int - -**Current value:** 2320 - ---- - -### gov.states.ks.tax.income.exemptions.by_filing_status.in_effect -**Label:** Kansas person exemptions by filing status in effect - -Kansas provides an updated personal exemption structure by filing status as well as a separate dependent exemption amount if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ks.tax.income.exemptions.base -**Label:** Kansas personal exemption - -Kansas provides the following exemption amount for each person in a filing unit. - -**Type:** int - -**Current value:** 2250 - ---- - -### gov.states.ks.tax.income.credits.eitc_fraction -**Label:** Kansas EITC match - -Kansas matches this percentage of the federal EITC. - -**Type:** float - -**Current value:** 0.17 - ---- - -### gov.states.ks.tax.income.credits.cdcc_fraction -**Label:** Kansas CDCC match - -Kansas matches this percentage of the federal Child and Dependent Care Credit. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ks.tax.income.credits.food_sales_tax.agi_limit -**Label:** Kansas food sales tax credit AGI limit - -Kansas limits its food sales tax credit to filers with federal AGI below this amount. - -**Type:** int - -**Current value:** 30615 - ---- - -### gov.states.ks.tax.income.credits.food_sales_tax.child_age -**Label:** Kansas food sales tax credit adult age - -Kansas considers people children for the purposes of the food sales tax credit if they are below this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ks.tax.income.credits.food_sales_tax.min_adult_age -**Label:** Kansas food sales tax credit adult age - -Kansas limits its food sales tax credit to adults of this age and above. - -**Type:** int - -**Current value:** 55 - ---- - -### gov.states.ks.tax.income.credits.food_sales_tax.amount -**Label:** Kansas food sales tax credit amount - -Kansas provides a food sales tax credit of this amount per qualifying exemption. - -**Type:** int - -**Current value:** 125 - ---- - -### gov.states.ne.tax.income.agi.subtractions.social_security.fraction -**Label:** fraction of taxable social security allowed as NE AGI subtraction when federal AGI is above threshold (fraction is 1.0 for others) - -Fraction of taxable social security allowed as NE AGI subtraction when federal AGI is above threshold (fraction is 1.0 for others). - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ne.tax.income.agi.subtractions.military_retirement.age_threshold -**Label:** Nebraska military retirement benefits age threshold - -Nebraska limits the military retirement benefits to filers this age or older. - -**Type:** int - -**Current value:** 67 - ---- - -### gov.states.ne.tax.income.agi.subtractions.military_retirement.fraction -**Label:** Nebraska military retirement subtraction fraction - -Nebraska subtracts this fraction of military retirement benefits from federal adjusted gross income. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ne.tax.income.deductions.standard.age_minimum -**Label:** Nebraska extra standard deduction age threshold - -Nebraska limits its extra standard deduction to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ne.tax.income.exemptions.amount -**Label:** Nebraska per-person exemption amount - -Nebraska per-person exemption amount - -**Type:** float - -**Current value:** 170.54220249750455 - ---- - -### gov.states.ne.tax.income.credits.ctc.refundable.age_threshold -**Label:** Nebraska refundable child tax credit age threshold - -Nebraska limits the refundable child tax credit to children this age or younger. - -**Type:** int - -**Current value:** 5 - ---- - -### gov.states.ne.tax.income.credits.ctc.refundable.fpg_fraction -**Label:** Nebraska refundable child tax credit FPG limit - -Nebraska limits the refundable child tax credit to filers with an total household income at or below this fraction of the federal poverty guideline. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ne.tax.income.credits.cdcc.refundable.match -**Label:** Nebraska refundable CDCC match - -Nebraska matches this fraction of the federal child and dependent care credit as a refundable credit. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ne.tax.income.credits.cdcc.refundable.income_limit -**Label:** Nebraska CDCC refundability AGI limit - -Nebraska provides the child and dependent care credit as a refundable credit to filers with federal adjusted gross income of this amount or less. - -**Type:** int - -**Current value:** 29000 - ---- - -### gov.states.ne.tax.income.credits.cdcc.refundable.reduction.increment -**Label:** Nebraska refundable CDCC reduction incrememnt - -Nebraska reduces the refundable child and dependent tax credit match percentage for each of these increments of federal adjusted gross income exceeding the threshold. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ne.tax.income.credits.cdcc.refundable.reduction.amount -**Label:** Nebraska refundable CDCC reduction amount - -Nebraska reduces the refundable child and dependent tax credit match percentage by this amount for each increment of federal adjusted gross income exceeding the threshold. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.ne.tax.income.credits.cdcc.refundable.reduction.start -**Label:** Nebraska refundable CDCC reduction start - -Nebraska reduces the refundable child and dependent tax credit match percentage for filers with federal adjusted gross income above this amount. - -**Type:** int - -**Current value:** 22000 - ---- - -### gov.states.ne.tax.income.credits.cdcc.nonrefundable.fraction -**Label:** Nebraska nonrefundable CDCC match - -Nebraska matches this fraction of the federal child and dependent care credit as a non-refundable credit. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ne.tax.income.credits.eitc.fraction -**Label:** Nebraska EITC match - -Nebraska matches this fraction of the federal earned income tax credit. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ne.tax.income.credits.nonrefundable_adjust_limit -**Label:** Nebraska AGI adjustment limit - -Nebraska limits the net adjusted gross income adjustments to this amount. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.ne.dhhs.child_care_subsidy.fpg_fraction.initial_eligibility -**Label:** Nebraska child care subsidy initial eligibility federal poverty guideline limit - -Nebraska limits the child care subsidy to families with income at or below this fraction of the federal poverty guidelines for initial eligibility. - -**Type:** float - -**Current value:** 1.85 - ---- - -### gov.states.ne.dhhs.child_care_subsidy.fpg_fraction.fee_free_limit -**Label:** Nebraska child care subsidy federal poverty guideline limit threshold - -Nebraska provides a fee-free child care subsidy to families with a income at or below this fraction of the federal poverty guidelines. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ne.dhhs.child_care_subsidy.rate -**Label:** Nebraska child care subsidy family fee rate - -Nebraska obligates families participating in the child care subsidy program to pay childcare expenses of this fraction of income excess over federal poverty guidelines. - -**Type:** float - -**Current value:** 0.07 - ---- - -### gov.states.ne.dhhs.child_care_subsidy.age_threshold.special_needs -**Label:** Nebraska child care subsidy special needs age threshold - -Nebraska limits the child care subsidy to children of this age or younger, requiring special needs care. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ne.dhhs.child_care_subsidy.age_threshold.base -**Label:** Nebraska child care subsidy base age threshold - -Nebraska limits the child care subsidy to children of this age or younger, not requiring special needs care. - -**Type:** int - -**Current value:** 12 - ---- - -### gov.states.hi.tax.income.subtractions.military_pay.cap -**Label:** Hawaii military reserve or national guard duty pay exclusion cap - -Hawaii caps the military reserve or Hawaii national guard duty pay exclusion at this amount. - -**Type:** int - -**Current value:** 7683 - ---- - -### gov.states.hi.tax.income.deductions.itemized.threshold.dependent -**Label:** Hawaii itemized deductions dependent threshold - -Hawaii allows for itemized deductions for dependent filers with deductions above this amount. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.hi.tax.income.alternative_tax.rate -**Label:** Hawaii alternative tax on capital gains rate - -Hawaii taxes the excess of the eligible taxable income for the alternative capital gains over the total taxable income at this rate. - -**Type:** float - -**Current value:** 0.0725 - ---- - -### gov.states.hi.tax.income.alternative_tax.availability -**Label:** Hawaii alternative tax on capital gain availability - -Hawaii allows for an alternative tax on capital gains calculation if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.hi.tax.income.exemptions.disabled -**Label:** Hawaii disability exemption amount - -Hawaii allows this exemption amount for each disabled head or spouse. - -**Type:** int - -**Current value:** 7000 - ---- - -### gov.states.hi.tax.income.exemptions.aged_threshold -**Label:** Hawaii aged exemption age threshold - -Hawaii provides an additional exemption for filer heads and spouses this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.hi.tax.income.exemptions.base -**Label:** Hawaii exemption base amount - -Hawaii provides this base exemption amount. - -**Type:** int - -**Current value:** 1144 - ---- - -### gov.states.hi.tax.income.credits.food_excise_tax.minor_child.support_proportion_threshold -**Label:** Hawaii Food/Excise Tax Credit minor child public agency support's proportion threshold - -Hawaii allows for an additional food/excise credit amount for each minor child receiving more than this proportion of support from public agencies. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.hi.tax.income.credits.food_excise_tax.minor_child.age_threshold -**Label:** Hawaii Food/Excise Tax Credit minor child age threshold - -Hawaii extends an additional food/excise credit amount to filers with minor children below this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.hi.tax.income.credits.food_excise_tax.minor_child.amount -**Label:** Hawaii Food/Excise Tax Credit minor child amount - -Hawaii provides this amount under the Food/Excise Tax Credit for each minor child receiving support from public agencies. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.hi.tax.income.credits.food_excise_tax.minor_child.in_effect -**Label:** Hawaii Food/Excise Tax Credit minor child fixed amount in effect - -Hawaii multiplies the number of minor children by a fixed amount, if this is true, under the Food/Excise Tax Credit. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.hi.tax.income.credits.lihrtc.eligibility.agi_limit -**Label:** Hawaii low-income household renters credit AGI limit - -Hawaii limits the tax credit for low-income household renters to filers with adjusted gross income below this amount. - -**Type:** int - -**Current value:** 30000 - ---- - -### gov.states.hi.tax.income.credits.lihrtc.eligibility.rent_threshold -**Label:** Hawaii tax credit for low-income household renters rent threshold - -Hawaii limits the tax credit for low-income household renters to filers that paid more than this amount in rent. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.hi.tax.income.credits.lihrtc.amount -**Label:** Hawaii income tax credit for low-income household renters base amount - -Hawaii extends this amount for each exemption under the income tax credit for low-income household renters. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.states.hi.tax.income.credits.lihrtc.aged_age_threshold -**Label:** Hawaii low-income household renters credit age threshold - -Hawaii counts filer heads and spouses as additional exemptions for the income tax credit for low-income household renters if they are this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.hi.tax.income.credits.eitc.match -**Label:** Hawaii EITC match rate - -Hawaii matches this percent of the federal EITC. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.states.de.tax.income.subtractions.exclusions.pension.military_retirement_exclusion_available -**Label:** Delaware military retirement exclusion available - -Delaware allows for an exclusion of military retirement pay under the pension exclusion if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.de.tax.income.subtractions.exclusions.pension.cap.military -**Label:** Delaware military pension exclusion cap - -Delaware caps the military pension income exclusion at this amount. - -**Type:** int - -**Current value:** 12500 - ---- - -### gov.states.de.tax.income.subtractions.exclusions.elderly_or_disabled.eligibility.age_threshold -**Label:** Delaware aged or disabled exclusion age threshold - -Delaware qualifies filers above his age threshold to receive the aged or disabled exclusion. - -**Type:** int - -**Current value:** 60 - ---- - -### gov.states.de.tax.income.deductions.standard.additional.age_threshold -**Label:** Delaware additional aged deduction age eligibility - -Delaware provides the aged deduction amount to filers at or above this age. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.de.tax.income.deductions.standard.additional.amount -**Label:** Delaware aged deduction amount - -Delaware provides this deduction amount for aged or blind filers. - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.states.de.tax.income.credits.relief_rebate.amount -**Label:** Delaware relief rebate amount - -Delaware provides a relief rebate of this amount to each adult in the household. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.de.tax.income.credits.personal_credits.personal -**Label:** Delaware personal credits amount - -Delaware provides this personal credit amount. - -**Type:** int - -**Current value:** 110 - ---- - -### gov.states.de.tax.income.credits.cdcc.match -**Label:** Delaware federal CDCC match - -Delaware matches up to this share of the federal Child and Dependent Care Credit. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.de.tax.income.credits.eitc.non_refundable -**Label:** Delaware non-refundable EITC match - -Delaware matches this percent of the federal Earned Income Tax Credit as a non-refundable credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.de.tax.income.credits.eitc.refundable -**Label:** Delaware refundable EITC match - -Delaware matches this percent of the federal Earned Income Tax Credit as a refundable credit. - -**Type:** float - -**Current value:** 0.045 - ---- - -### gov.states.az.tax.income.subtractions.pension.public_pension_cap -**Label:** Arizona pension exclusion cap - -Arizona caps the pension exclusion at this amount. - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.states.az.tax.income.subtractions.capital_gains.rate -**Label:** Arizona long-term net capital gains subtraction rate - -Arizona subtracts this fraction of long term capital gains from adjusted gross income. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.az.tax.income.subtractions.military_retirement.max_amount -**Label:** Arizona military retirement subtraction max amount - -Arizona caps the military retirement subtraction at this amount for each eligible individual. - -**Type:** float - -**Current value:** inf - ---- - -### gov.states.az.tax.income.deductions.standard.increased.rate -**Label:** Arizona increased standard deduction for charitable contributions rate - -Arizona increases the standard deduction by this fraction of charitable contributions that would have been allowed if the taxpayer elected to claim itemized deductions. - -**Type:** float - -**Current value:** 0.31 - ---- - -### gov.states.az.tax.income.exemptions.stillborn -**Label:** Arizona stillborn exemption amount - -Arizona provides an exemption of this amount for each stillborn child. - -**Type:** int - -**Current value:** 2300 - ---- - -### gov.states.az.tax.income.exemptions.blind -**Label:** Arizona blind exemption amount - -Arizona provides an exemption of this amount per blind filer or spouse. - -**Type:** int - -**Current value:** 1500 - ---- - -### gov.states.az.tax.income.exemptions.parent_grandparent.cost_rate -**Label:** Arizona parents and grandparents exemption cost rate - -Arizona allows for the parent and grandparent exemptions if the filer paid care and support costs over this percentage of total costs. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.az.tax.income.exemptions.parent_grandparent.min_age -**Label:** Arizona parents and grandparents exemption age threshold - -Arizona extends the parents and grandparents exemption to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.az.tax.income.exemptions.parent_grandparent.amount -**Label:** Arizona parents and grandparents exemption amount - -Arizona provides an exemption of this amount per qualifying parent and grandparent. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.az.tax.income.credits.dependent_credit.reduction.percentage -**Label:** Arizona dependent tax credit reduction percentage - -Arizona reduces the dependent tax credit amount by this percentage based on the federal adjusted gross income increments. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.az.tax.income.credits.dependent_credit.reduction.increment -**Label:** Arizona dependent tax credit reduction increment - -Arizona reduces the dependent tax credit amount in these increments of federal adjusted gross income. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.az.tax.income.credits.property_tax.age_threshold -**Label:** Arizona property tax credit age threshold - -Arizona limits the property tax credit to filers of this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.az.tax.income.credits.increased_excise.max_amount -**Label:** Arizona increase excise tax credit max amount - -Arizona allows for the following increase excise tax credit maximum amount. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.az.tax.income.credits.increased_excise.amount -**Label:** Arizona increase excise tax credit amount - -Arizona provides the following amount per personal or dependent exemption under the Increased Excise Tax Credit. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.states.az.tax.income.credits.family_tax_credits.amount.per_person -**Label:** Arizona Family Income Tax Credit amount - -Arizona provides the following family income tax credit amount per person. - -**Type:** int - -**Current value:** 40 - ---- - -### gov.states.az.tax.income.credits.family_tax_credits.income_limit.separate -**Label:** Arizona family tax credit separate maximum income - -Arizona qualifies separate filers with income below this amount for the family tax credit. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.az.tax.income.credits.family_tax_credits.income_limit.single -**Label:** Arizona family tax credit single maximum income - -Arizona qualifies single filers with income below this amount for the family tax credit. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.az.hhs.tanf.eligibility.age_threshold.student -**Label:** Arizona cash assistance student age threshold - -Arizona limits the cash assistance to filers with student children below this age threshold. - -**Type:** int - -**Current value:** 19 - ---- - -### gov.states.az.hhs.tanf.eligibility.age_threshold.non_student -**Label:** Arizona cash assistance non-student age threshold - -Arizona limits the cash assistance to filers with non-student children below this age threshold. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.ny.otda.tanf.need_standard.additional -**Label:** New York TANF monthly income limit per additional person - -New York limits its TANF program to households with up to this income level for people beyond size. - -**Type:** int - -**Current value:** 85 - ---- - -### gov.states.ny.otda.tanf.income.earned_income_deduction.percent -**Label:** New York TANF earned income deduction - -New York excludes this percentage of earned income for the purposes of its TANF program. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ny.otda.tanf.income.earned_income_deduction.flat -**Label:** New York TANF flat earnings exclusion - -New York excludes this amount of earned income for the purposes of its TANF program, after the percentage deduction. - -**Type:** int - -**Current value:** 150 - ---- - -### gov.states.ny.otda.tanf.eligibility.resources.lower_limit -**Label:** New York TANF resource limit for households without elderly people - -New York limits its TANF eligibility to households with up to this amount of resources, if they have no elderly members. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.states.ny.otda.tanf.eligibility.resources.higher_resource_limit_age_threshold -**Label:** New York TANF asset limit elderly age - -New York provide higher limit for amount of asset to households with family members over this age. - -**Type:** int - -**Current value:** 60 - ---- - -### gov.states.ny.otda.tanf.eligibility.resources.higher_limit -**Label:** New York TANF resource limit for households with elderly people - -New York limits TANF to households with up to this resource amount if they have elderly members. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.ny.otda.tanf.grant_standard.additional -**Label:** New York TANF monthly income limit per additional person - -New York limits its TANF grant standard to households with up to this income level for people beyond size. - -**Type:** int - -**Current value:** 85 - ---- - -### gov.states.ny.tax.income.college_tuition.cap -**Label:** New York allowable college tuition expenses cap - -New York caps college tuition expenses at this amount per eligible student when calculating the credit and deduction. - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.states.ny.tax.income.agi.subtractions.pension_exclusion.min_age -**Label:** New York pension exclusion minimum age - -New York State residents over this age can make use of the NY State AGI exclusion for pensions and annuities. - -**Type:** float - -**Current value:** 59.5 - ---- - -### gov.states.ny.tax.income.agi.subtractions.pension_exclusion.cap -**Label:** New York pension exclusion cap - -New York State residents can subtract this amount from pensions and annuities included in federal AGI from their NY State AGI. - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.states.ny.tax.income.deductions.itemized.college_tuition.applicable_percentage -**Label:** New York college tuition deduction applicable percentage - -New York provides an itemized deduction for this fraction of allowable college tuition expenses. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ny.tax.income.deductions.standard.dependent_elsewhere -**Label:** New York standard deduction for dependent filers - -New York standard deduction for filers who can be claimed as a dependent elsewhere. - -**Type:** int - -**Current value:** 3100 - ---- - -### gov.states.ny.tax.income.supplemental.min_agi -**Label:** New York State supplemental tax minimum AGI - -New York imposes the NY supplemental tax on filers with AGI over this amount. - -**Type:** int - -**Current value:** 107650 - ---- - -### gov.states.ny.tax.income.supplemental.phase_in_length -**Label:** New York State supplemental tax phase-in length - -Each bracket of the New York supplemental tax phases in over this length. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.states.ny.tax.income.supplemental.in_effect -**Label:** New York supplemental tax availability - -New York state provides a incremental benefit under the supplemental tax if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ny.tax.income.exemptions.dependent -**Label:** New York dependent exemption amount - -New York dependent exemption amount. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.ny.tax.income.credits.college_tuition.applicable_percentage -**Label:** New York college tuition credit applicable percentage - -New York provides a credit for this fraction of allowable college tuition expenses, after applying the rate structure. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.ny.tax.income.credits.solar_energy_systems_equipment.rate -**Label:** New York solar energy systems equipment credit rate - -New York provides a credit for this fraction of total solar energy systems equipment expenditures. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ny.tax.income.credits.solar_energy_systems_equipment.cap -**Label:** New York solar energy systems equipment credit cap - -New York caps the solar energy systems equipment credit at this amount. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.ny.tax.income.credits.real_property_tax.elderly_age -**Label:** New York real property tax credit elderly age - -New York applies the maximum real property tax credit for the elderly at this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.ny.tax.income.credits.real_property_tax.rent_tax_equivalent -**Label:** New York real property tax rent equivalent - -New York deems this percentage of rent as equivalent to property tax for the real property tax credit. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ny.tax.income.credits.real_property_tax.rate -**Label:** New York real property tax credit rate - -New York credits this percentage of excess real property tax (or rent equivalent) from the New York State income tax as the real property tax credit. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.ny.tax.income.credits.real_property_tax.max_agi -**Label:** New York real property tax credit maximum AGI - -New York sets this maximum AGI for eligibility for the real property tax credit. - -**Type:** int - -**Current value:** 18000 - ---- - -### gov.states.ny.tax.income.credits.real_property_tax.max_rent -**Label:** New York real property tax maximum rent - -New York disqualifies renters whose annual rent exceeds this value from receiving the real property tax credit. - -**Type:** int - -**Current value:** 5400 - ---- - -### gov.states.ny.tax.income.credits.real_property_tax.max_property_value -**Label:** New York real property tax credit maximum property value - -New York disqualifies property owners who own property valued above this amount from receiving the real property tax credit. - -**Type:** int - -**Current value:** 85000 - ---- - -### gov.states.ny.tax.income.credits.ctc.amount.percent -**Label:** New York CTC share of federal credit - -New York's Empire State Child Credit share of federal credit. - -**Type:** float - -**Current value:** 0.33 - ---- - -### gov.states.ny.tax.income.credits.ctc.amount.minimum -**Label:** New York CTC minimum amount - -New York sets this minimum amount per child for its Empire State Child Credit. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.ny.tax.income.credits.ctc.minimum_age -**Label:** NY CTC minimum age - -New York provides the Empire State Child Credit for children this age or older. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.ny.tax.income.credits.ctc.pre_tcja -**Label:** Use pre-TCJA parameters for the federal CTC - -Whether the NY CTC uses pre-TCJA parameters to calculate the federal CTC. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.ny.tax.income.credits.ctc.additional.min_credit_value -**Label:** New York additional Empire State Child Credit minimum credit - -New York provides the additional Empire State Child Credit if the calculated credit value is at least this amount. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.alternate.multiplier -**Label:** New York CDCC alternate maximum AGI - -New York sets this minimum numerator for the alternate fraction for the CDCC. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.alternate.max_agi -**Label:** New York CDCC alternate maximum AGI - -New York filers with AGI under this amount use the alternate parameters. - -**Type:** int - -**Current value:** 40000 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.alternate.base_percentage -**Label:** New York CDCC alternate base percentage - -New York sets this base percentage for the alternate fraction for the CDCC. - -**Type:** float - -**Current value:** 1.0 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.alternate.fraction.denominator -**Label:** New York CDCC alternate fraction denominator - -New York sets this denominator for the alternate fraction for the CDCC. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.alternate.fraction.numerator.min -**Label:** New York CDCC alternate fraction numerator minimum - -New York sets this minimum numerator for the alternate fraction for the CDCC. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.alternate.fraction.numerator.top -**Label:** New York CDCC alternate fraction numerator top - -New York AGI is subtracted from this to determine the NY CDCC percentage under the alternate fraction. - -**Type:** int - -**Current value:** 40000 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.main.multiplier -**Label:** New York CDCC main maximum AGI - -New York sets this minimum numerator for the main fraction for the CDCC. - -**Type:** float - -**Current value:** 0.8 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.main.base_percentage -**Label:** New York CDCC main base percentage - -New York sets this base percentage for the main fraction for the CDCC. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.main.fraction.denominator -**Label:** New York CDCC main fraction denominator - -New York sets this denominator for the main fraction for the CDCC. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.main.fraction.numerator.min -**Label:** New York CDCC main fraction numerator minimum - -New York sets this minimum numerator for the main fraction for the CDCC. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.states.ny.tax.income.credits.cdcc.percentage.main.fraction.numerator.top -**Label:** New York CDCC main fraction numerator top - -New York AGI is subtracted from this to determine the NY CDCC percentage under the main fraction. - -**Type:** int - -**Current value:** 65000 - ---- - -### gov.states.ny.tax.income.credits.geothermal_energy_system.rate -**Label:** New York geothermal energy system equipment credit rate - -New York provides a geothermal energy systems credit of this percentage of total solar geothermal systems equipment expenditures. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.ny.tax.income.credits.geothermal_energy_system.cap -**Label:** New York geothermal energy system equipment credit cap - -New York caps the geothermal energy system credit at this amount. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.ny.tax.income.credits.eitc.match -**Label:** New York EITC percent - -New York matches this fraction of the federal Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.states.ny.tax.income.credits.eitc.supplemental_match -**Label:** New York supplemental EITC match - -New York matches this fraction of the federal earned income tax credit in its supplemental EITC. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.ny.nyserda.drive_clean.flat_rebate.msrp_threshold -**Label:** New York Drive Clean point-of-sale flat rebate MSRP threshold - -New York provides a flat Drive Clean point-of-sale rebate for vehicles with base MSRP over this amount. - -**Type:** int - -**Current value:** 42000 - ---- - -### gov.states.ny.nyserda.drive_clean.flat_rebate.amount -**Label:** New York Drive Clean point-of-sale flat rebate MSRP amount - -New York provides the following flat Drive Clean point-of-sale rebate vehicles with a base MSRP over a certain threshold. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.id.tax.income.subtractions.aged_or_disabled.person_cap -**Label:** Idaho aged or disabled deduction maximum household members - -Idaho limits the aged or disabled deduction to this number of people per filing unit. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.id.tax.income.subtractions.aged_or_disabled.age_threshold -**Label:** Idaho development disabilities deduction age threshold - -Idaho limits the aged or disabled deduction to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.id.tax.income.subtractions.aged_or_disabled.support_fraction_threshold -**Label:** Idaho aged or disabled deduction support fraction threshold - -Idaho limits its aged or disabled deduction to family members of filers for whom the filer pays more than this fraction of their care and support costs. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.id.tax.income.subtractions.aged_or_disabled.amount -**Label:** Idaho aged or disabled deduction - -Idaho subtracts this amount from adjusted gross income for each aged or disabled person in the taxpayer's household. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.id.tax.income.deductions.dependent_care_expenses.cap -**Label:** Idaho dependent care expense deduction cap amount - -Idaho caps the household and dependent care expense deduction at the greater of the federal cap and this amount. - -**Type:** int - -**Current value:** 12000 - ---- - -### gov.states.id.tax.income.deductions.retirement_benefits.age_eligibility.main -**Label:** Idaho retirement benefit deduction age threshold - -Idaho limits the retirement benefit deduction to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.id.tax.income.deductions.retirement_benefits.age_eligibility.disabled -**Label:** Idaho retirement benefit deduction disabled age threshold - -Idaho limits the retirement benefit deduction to disabled filers at or above this age threshold. - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.id.tax.income.deductions.capital_gains.percentage -**Label:** Idaho capital gains deduction percentage - -Idaho allows filers to deduct this fraction of capital gains on qualified property sales. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.states.id.tax.income.other_taxes.pbf.amount -**Label:** Idaho permanent building fund tax amount - -Idaho levies a permanent building fund tax of this amount. - -**Type:** int - -**Current value:** 10 - ---- - -### gov.states.id.tax.income.credits.grocery.amount.base -**Label:** Idaho grocery credit amount - -Idaho provides this amount under the grocery tax credit. - -**Type:** int - -**Current value:** 120 - ---- - -### gov.states.id.tax.income.credits.aged_or_disabled.person_cap -**Label:** Idaho aged or disabled credit maximum household members - -Idaho limits the aged or disabled credit to this number of people per filing unit. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.id.tax.income.credits.aged_or_disabled.age_threshold -**Label:** Idaho aged or disabled credit age threshold - -Idaho limits the aged or disabled credit to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.id.tax.income.credits.aged_or_disabled.support_fraction_threshold -**Label:** Idaho aged or disabled credit support fraction threshold - -Idaho limits its aged or disabled credit to family members of filers for whom the filer pays more than this fraction of their care and support costs. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.id.tax.income.credits.aged_or_disabled.amount -**Label:** Idaho aged or disabled credit - -Idaho provides this credit for each aged or disabled person in the taxpayer's household. - -**Type:** int - -**Current value:** 100 - ---- - -### gov.states.id.tax.income.credits.ctc.amount -**Label:** Idaho child tax credit amount - -Idaho provides this child tax credit amount for each qualifying child. - -**Type:** int - -**Current value:** 205 - ---- - -### gov.states.oh.tax.income.agi_threshold -**Label:** Ohio assigns minimum income threshold to pay individual income tax. - -Ohio requires filers with this adjusted gross income or more to pay individual income tax. - -**Type:** int - -**Current value:** 26050 - ---- - -### gov.states.oh.tax.income.deductions.unreimbursed_medical_care_expenses.rate -**Label:** Ohio Unreimbursed Medical Care Expenses Deduction AGI threshold - -Ohio deducts medical care expenses in excess of this fraction of federal adjusted gross income. - -**Type:** float - -**Current value:** 0.075 - ---- - -### gov.states.oh.tax.income.deductions.plan_529_contributions.cap -**Label:** Ohio 529 plan contribution deduction cap - -Ohio caps the 529 plan contributions deduction to this amount. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.states.oh.tax.income.credits.retirement.pension_based.income_limit -**Label:** Ohio pension based retirement income credit retirement credit income limit - -Ohio limits its pension based retirement income credit to filers with state adjusted gross income below this amount. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.oh.tax.income.credits.retirement.lump_sum.age_threshold -**Label:** Ohio lump sum retirement income credit age threshold - -Ohio limits the lump sum retirement income credit to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.oh.tax.income.credits.retirement.lump_sum.income_limit -**Label:** Ohio lump sum retirement income credit retirement credit income limit - -Ohio limits its lump sum retirement income credit to filers with state adjusted gross income below this amount. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.oh.tax.income.credits.adoption.amount.max -**Label:** Ohio adoption credit maximum amount - -Ohio issues the adoption credit of up to this maximum amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.oh.tax.income.credits.adoption.amount.min -**Label:** Ohio adoption credit minimum amount - -Ohio issues the adoption credit of this minimum amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.states.oh.tax.income.credits.adoption.age_limit -**Label:** Ohio adoption credit child age limit - -Ohio provides an adoption credit for children younger than this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.oh.tax.income.credits.lump_sum_distribution.age_threshold -**Label:** Ohio Lump Sum Distribution Credit age threshold - -Ohio limits the lump sum distribution credit to filers of this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.oh.tax.income.credits.lump_sum_distribution.income_limit -**Label:** Ohio lump sum distribution credit income limit - -Ohio limits its lump sum distribution credit to filers with Ohio modified adjusted gross income below this amount. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.oh.tax.income.credits.lump_sum_distribution.base_amount -**Label:** Ohio lump sum distribution credit base amount - -Ohio multiplies the filer's expected remaining life in years by the following amount when calculating the lump sum distribution credit. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.states.oh.tax.income.credits.joint_filing.income_threshold -**Label:** Ohio joint filing credit income threshold - -Ohio limits the joint filing credit to filers with head and spouse each having at least this adjusted gross income. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.states.oh.tax.income.credits.joint_filing.cap -**Label:** Ohio joint filing credit cap - -Ohio caps the joint filing credit at this amount. - -**Type:** int - -**Current value:** 650 - ---- - -### gov.states.oh.tax.income.credits.senior_citizen.age_threshold -**Label:** Ohio Senior Citizen Credit age threshold - -Ohio provides the Senior Citizen Credit to filers at or above this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.oh.tax.income.credits.eitc.rate -**Label:** Ohio earned income credit rate - -Ohio matches the federal earned income tax credit at this rate. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.states.or.tax.income.deductions.standard.aged_or_blind.age -**Label:** Oregon standard deduction addition age threshold - -Oregon provides a standard deduction addition at this age threshold. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.or.tax.income.deductions.standard.claimable_as_dependent.earned_income_addition -**Label:** Oregon earned income addition if claimable as dependent - -Oregon adds this to your earned income for you total standard deduction if you can be claimed as a dependent, up to the filing status maximum. - -**Type:** int - -**Current value:** 400 - ---- - -### gov.states.or.tax.income.deductions.standard.claimable_as_dependent.min -**Label:** Oregon minimum deduction if claimable as dependent - -Oregon provides a minimum standard deduction of this amount for filers who are claimable as a dependent. - -**Type:** float - -**Current value:** 1357.820083578858 - ---- - -### gov.states.or.tax.income.credits.exemption.income_limit.disabled_child_dependent -**Label:** Oregon exemption credit income limit (disabled child dependent) - -Oregon limits its disabled child exemption credit to filers with adjusted gross income below this threshold. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.or.tax.income.credits.exemption.income_limit.severely_disabled -**Label:** Oregon exemption credit income limit (severely disabled) - -Oregon limits its severely disabled exemption credit to filers with adjusted gross income below this threshold. - -**Type:** int - -**Current value:** 100000 - ---- - -### gov.states.or.tax.income.credits.exemption.amount -**Label:** Oregon exemption amount - -Oregon provides a nonrefundable tax credit of this amount per exemption. - -**Type:** int - -**Current value:** 236 - ---- - -### gov.states.or.tax.income.credits.wfhdc.age_range.young -**Label:** Oregon working family household and dependent care credit youngest qualifying individual young age threshold - -Oregon assigns filers a percentage value when the youngest qualifying individual is below this young age threshold under the working family household and dependent care credit. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.or.tax.income.credits.wfhdc.age_range.youngest -**Label:** Oregon working family household and dependent care credit youngest qualifying individual youngest age threshold - -Oregon assigns filers a percentage value when the youngest qualifying individual is below this youngest age threshold under the working family household and dependent care credit. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.or.tax.income.credits.wfhdc.age_range.oldest -**Label:** Oregon working family household and dependent care credit youngest qualifying individual oldest age threshold - -Oregon assigns filers a percentage value when the youngest qualifying individual is below this oldest age threshold under the working family household and dependent care credit. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.states.or.tax.income.credits.wfhdc.age_range.old -**Label:** Oregon working family household and dependent care credit youngest qualifying individual old age threshold - -Oregon assigns filers a percentage value when the youngest qualifying individual is below this old age threshold under the working family household and dependent care credit. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.states.or.tax.income.credits.wfhdc.fpg_limit -**Label:** Oregon working family household and dependent care credit federal poverty guidelines rate - -Oregon limits the working family household and dependent care credit to filers with the greater of federal or state adjusted gross income below this percentage of the federal poverty guidelines. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.or.tax.income.credits.wfhdc.child_age_limit -**Label:** Oregon working family household and dependent care credit child age threshold - -Oregon qualifies children without disabilities for the working family household and dependent care credit at or below this age. - -**Type:** int - -**Current value:** 12 - ---- - -### gov.states.or.tax.income.credits.wfhdc.cap -**Label:** Oregon working family household and dependent care expense credit child and dependent care expense cap - -Oregon caps the childcare expenses under the working family household and dependent care at this amount, for each dependent. - -**Type:** int - -**Current value:** 12000 - ---- - -### gov.states.or.tax.income.credits.wfhdc.min_tax_unit_size -**Label:** Oregon working family household and dependent care credit minimum household size - -Oregon limits its working family household and dependent care credit to filers with at least this number of people. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.or.tax.income.credits.retirement_income.percentage -**Label:** Oregon retirement income credit percentage - -Oregon multplies the lesser of the retirement income base credit amount or the filers retirement income by the following percentage. - -**Type:** float - -**Current value:** 0.09 - ---- - -### gov.states.or.tax.income.credits.retirement_income.age_eligibility -**Label:** Oregon retirement income credit age eligiblity - -Oregon qualifies filers for the retirement income credit at or above this age threshold. - -**Type:** int - -**Current value:** 62 - ---- - -### gov.states.or.tax.income.credits.ctc.ineligible_age -**Label:** Oregon Child Tax Credit ineligible age - -Oregon provides this Child Tax Credit to children below this age. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.or.tax.income.credits.ctc.child_limit -**Label:** Oregon Child Tax Credit child limit - -Oregon caps its Child Tax Credit at this number of children per filer. - -**Type:** int - -**Current value:** 5 - ---- - -### gov.states.or.tax.income.credits.ctc.amount -**Label:** Oregon Child Tax Credit amount - -Oregon provides this maximum Child Tax Credit per qualifying child. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.or.tax.income.credits.ctc.reduction.width -**Label:** Oregon Child Tax Credit phase-out width - -Oregon reduces its Child Tax Credit over this income range exceeding the phase-out start. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.or.tax.income.credits.ctc.reduction.start -**Label:** Oregon Child Tax Credit phase-out start - -Oregon reduces its Child Tax Credit for filers with Oregon adjusted gross income exceeding this amount. - -**Type:** int - -**Current value:** 25000 - ---- - -### gov.states.or.tax.income.credits.kicker.percent -**Label:** Oregon kicker rate - -Oregon returns this portion of the filer's prior-year tax liability before credits via its kicker credit. - -**Type:** float - -**Current value:** 0.4428 - ---- - -### gov.states.or.tax.income.credits.eitc.old_child_age -**Label:** Oregon EITC young child age limit - -Oregon defines young children as those up to this age for its Earned Income Tax Credit match. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.states.or.tax.income.credits.eitc.match.no_young_child -**Label:** Oregon EITC match for filers with no young children - -Oregon matches the federal Earned Income Tax Credit at this rate for filers with no young children. - -**Type:** float - -**Current value:** 0.09 - ---- - -### gov.states.or.tax.income.credits.eitc.match.has_young_child -**Label:** Oregon EITC match for filers with young children - -Oregon matches the federal Earned Income Tax Credit at this rate for filers with young children. - -**Type:** float - -**Current value:** 0.12 - ---- - -### gov.states.or.fcc.lifeline.max_amount -**Label:** Oregon Lifeline maximum benefit - -Oregon provides the following maximum Lifeline benefit amount. - -**Type:** float - -**Current value:** 15.25 - ---- - -### gov.states.or.fcc.lifeline.in_effect -**Label:** Oregon Lifeline maximum benefit in effect - -Oregon provides a separate maximum Lifeline benefit amount if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.il.tax.income.exemption.dependent -**Label:** Illinois dependent exemption amount - -Illinois provides the following exemption amount for each dependent. - -**Type:** int - -**Current value:** 2425 - ---- - -### gov.states.il.tax.income.exemption.aged_and_blind -**Label:** Illinois Senior & Blind Exemption - -Illinois Senior & Blind Exemption Allowance - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.il.tax.income.exemption.personal -**Label:** Illinois personal exemption amount - -Illinois provides the following personal exemption allowance amount. - -**Type:** int - -**Current value:** 2875 - ---- - -### gov.states.il.tax.income.rate -**Label:** Illinois tax rate - -Illinois Individual Income Tax Rates - -**Type:** float - -**Current value:** 0.0495 - ---- - -### gov.states.il.tax.income.credits.property_tax.rate -**Label:** Illinois Property Tax Credit Rate - -Illinois provides a non-refundable credit for this fraction of property taxes. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.il.tax.income.credits.ctc.amount -**Label:** Illinois Child Tax Credit amount - -Illinois provides the following child tax credit amount for each individual child. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.il.tax.income.credits.k12.rate -**Label:** Illinois K-12 Education Expense Credit Rate - -Illinois provides a non-refundable credit for this fraction of K-12 education expenses. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.states.il.tax.income.credits.k12.reduction -**Label:** Illinois K-12 Education Expense Credit Reduction - -Illinois provides a non-refundable credit for a capped fraction of K-12 education expenses in excess of this amount. - -**Type:** int - -**Current value:** 250 - ---- - -### gov.states.il.tax.income.credits.k12.cap -**Label:** Illinois K-12 Education Expense Credit Cap - -Illinois caps its K-12 Education Expense Credit at this amount. - -**Type:** int - -**Current value:** 750 - ---- - -### gov.states.il.tax.income.credits.eitc.match -**Label:** Illinois EITC match - -Illinois matches this fraction of the federal Earned Income Tax Credit. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.la.tax.income.deductions.federal_tax.availability -**Label:** Louisiana federal tax deduction availability - -Louisiana allows for a federal tax deduction if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.la.tax.income.deductions.itemized.excess_fraction -**Label:** Louisiana itemized deductions excess fraction - -Louisiana subtracts this fraction of the excess of the either the federal itemized deductions or the medical expense deduction amount over the federal standard deduction from adjusted gross income. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.la.tax.income.deductions.standard.applies -**Label:** Lousiana standard deduction applies - -Louisiana applies a standard deduction and repeals personal exemptions, if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.la.tax.income.exempt_income.military_pay_exclusion.max_amount -**Label:** Louisiana military pay exclusion max amount - -Louisiana allows for this maximum military pay exclusion amount. - -**Type:** int - -**Current value:** 50000 - ---- - -### gov.states.la.tax.income.exempt_income.reduction.in_effect -**Label:** Louisiana exempt adjusted gross income reduction in effect - -Louisiana reduces the exempt adjusted gross income if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.states.la.tax.income.exempt_income.disability.cap -**Label:** Louisiana disability income exemption cap - -Louisiana caps the disability income exemption at this amount. - -**Type:** int - -**Current value:** 12000 - ---- - -### gov.states.la.tax.income.main.flat.applies -**Label:** Lousiana flat income tax rate applies - -Louisiana applies a flat income tax rate if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.la.tax.income.main.flat.rate -**Label:** Louisiana flat income tax rate post 2024 - -Louisiana taxes income at this flat rate, post 2024. - -**Type:** float - -**Current value:** 0.03 - ---- - -### gov.states.la.tax.income.exemptions.blind -**Label:** Louisiana blind exemption amount - -Louisiana reduces taxable income by this amount for each blind head or spouse. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.la.tax.income.exemptions.dependent -**Label:** Louisiana dependent exemption amount - -Louisiana reduces taxable income by this amount for each dependent. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.la.tax.income.exemptions.widow -**Label:** Louisiana qualifying widow exemption amount - -Louisiana reduces taxable income by this amount for each qualifying widow(er). - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.states.la.tax.income.credits.school_readiness.age_threshold -**Label:** Louisiana school readiness tax credit child age threshold - -Louisiana provides the school readiness tax credit to filers with children below this age threshold. - -**Type:** int - -**Current value:** 6 - ---- - -### gov.states.la.tax.income.credits.cdcc.non_refundable.upper_bracket_cap -**Label:** Louisiana non-refundable CDCC upper bracket cap - -Louisiana limits its non-refundable child and dependent care credit to this maximum amount, for filers with income in the top bracket. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.states.la.tax.income.credits.eitc.match -**Label:** Louisiana EITC match - -Louisiana matches this percent of the federal EITC. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.states.wi.tax.income.subtractions.childcare_expense.max_dependents -**Label:** Wisconsin maximum dependents for care expense AGI subtraction - -Wisconsin recognizes this maximum number of dependents as eligible for care expense AGI subtraction. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.states.wi.tax.income.subtractions.childcare_expense.max_amount -**Label:** Wisconsin maximum care expenses per dependent for AGI subtraction - -Wisconsin subtracts from AGI this maximum of child and dependent care expenses per dependent. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.states.wi.tax.income.subtractions.unemployment_compensation.income_phase_out.rate -**Label:** Wisconsin income phase-out rate for unemployment compensation subtraction - -Wisconsin uses this rate to phase-out income in calculation of unemployment compensation subtraction. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.states.wi.tax.income.subtractions.retirement_income.min_age -**Label:** Wisconsin minimum age for retirement income subtraction - -Wisconsin limits its retirement income subtraction to filers this age or older. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.wi.tax.income.subtractions.retirement_income.max_amount -**Label:** Wisconsin maximum retirement income AGI subtraction per person - -Wisconsin limits retirement income AGI subtraction to this maximum per person. - -**Type:** int - -**Current value:** 5000 - ---- - -### gov.states.wi.tax.income.subtractions.capital_gain.fraction -**Label:** Wisconsin fraction of capital gains subtracted from AGI - -Wisconsin subtracts from AGI this fraction of long-term capital gains. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.states.wi.tax.income.exemption.extra -**Label:** Wisconsin personal exemption additional amount - -Wisconsin exemption includes this amount for each elderly taxpayer. - -**Type:** int - -**Current value:** 250 - ---- - -### gov.states.wi.tax.income.exemption.old_age -**Label:** Wisconsin personal exemption old age threshold - -Wisconsin gives an extra exemption to head/spouse this age or more. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.states.wi.tax.income.exemption.base -**Label:** Wisconsin personal exemption base amount - -Wisconsin exemption includes this base amount. - -**Type:** int - -**Current value:** 700 - ---- - -### gov.states.wi.tax.income.credits.married_couple.max -**Label:** Wisconsin married couple credit cap - -Wisconsin married couple credit is limited to this maximum. - -**Type:** int - -**Current value:** 480 - ---- - -### gov.states.wi.tax.income.credits.married_couple.rate -**Label:** Wisconsin married couple credit rate - -Wisconsin married couple credit is calculated using this rate. - -**Type:** float - -**Current value:** 0.03 - ---- - -### gov.states.wi.tax.income.credits.childcare_expense.fraction -**Label:** Wisconsin CDCC fraction of federal CDCC - -Wisconsin allows this faction of the federal child and dependent care credit as an AGI income subtraction. - -**Type:** int - -**Current value:** 1 - ---- - -### gov.states.wi.tax.income.credits.property_tax.max -**Label:** Wisconsin property tax credit limit - -Wisconsin property tax credit is limited to this maximum. - -**Type:** int - -**Current value:** 300 - ---- - -### gov.states.wi.tax.income.credits.property_tax.rate -**Label:** Wisconsin property tax credit rate - -Wisconsin propery tax credit is calculated using this rate. - -**Type:** float - -**Current value:** 0.12 - ---- - -### gov.states.wi.tax.income.credits.property_tax.rent_fraction -**Label:** Wisconsin property tax credit fraction of rent considered property tax - -Wisconsin property tax credit considers property taxes to be this fraction of rent. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.states.wi.tax.income.credits.earned_income.investment_income_limit -**Label:** Wisconsin EITC investment income limit - -Wisconsin limits EITC eligibility to this investment income amount. - -**Type:** int - -**Current value:** 3800 - ---- - -### gov.states.wi.tax.income.credits.earned_income.apply_federal_investment_income_limit -**Label:** Wisconsin EITC apply federal investment income limit - -Wisconsin applies the federal investment income limit for the earned income tax credit if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.wa.tax.income.in_effect -**Label:** Washington income tax rules in effect - -Washington applies its income tax rules if this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.states.wa.tax.income.capital_gains.deductions.charitable.exemption -**Label:** Washington capital gains charitable contribution exemption - -Washington capital gains charitable contribution exemption. - -**Type:** int - -**Current value:** 285000 - ---- - -### gov.states.wa.tax.income.capital_gains.deductions.charitable.cap -**Label:** Washington capital gains charitable contribution cap - -Washington capital gains charitable contribution cap. - -**Type:** int - -**Current value:** 114000 - ---- - -### gov.states.wa.tax.income.capital_gains.deductions.standard -**Label:** Washington capital gains standard deduction - -Washington capital gains standard deduction. - -**Type:** int - -**Current value:** 285000 - ---- - -### gov.states.wa.tax.income.capital_gains.rate -**Label:** Washington capital gains tax rate - -Washington capital gains tax rate. - -**Type:** float - -**Current value:** 0.07 - ---- - -### gov.states.wa.tax.income.credits.working_families_tax_credit.min_amount -**Label:** Washington Working Families Tax Credit minimum amount - -Washington Working Families Tax Credit minimum amount for those with nonzero benefit. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.states.wa.dshs.tanf.eligibility.resources.limit -**Label:** Washington TANF resource limit - -Washington limits its TANF eligibility to household withs up to this resource amount. - -**Type:** int - -**Current value:** 6000 - ---- - -### gov.bls.cpi.c_cpi_u -**Label:** Chained CPI-U - -The Bureau of Labor Statistics estimates this Chained Consumer Price Index for All Urban Consumers. - -**Type:** float - -**Current value:** 173.7 - ---- - -### gov.bls.cpi.cpi_u -**Label:** CPI-U - -The Bureau of Labor Statistics estimates this Consumer Price Index for All Urban Consumers. - -**Type:** float - -**Current value:** 311.2 - ---- - -### gov.bls.cpi.cpi_w -**Label:** CPI-W - -The Bureau of Labor Statistics estimates this Consumer Price Index for Urban Wage Earners and Clerical Workers. - -**Type:** float - -**Current value:** 312.639 - ---- - -### gov.dol.minimum_wage -**Label:** Federal minimum wage - -The US requires each employer to pay each of its employees the following federal minimum wage rate. - -**Type:** float - -**Current value:** 7.25 - ---- - -### gov.irs.vita.eligibility.income_limit -**Label:** VITA Program Income Limit - -The IRS extends the Volunteer Income Tax Assistance (VITA) program to filers with gross income at or below this amount. - -**Type:** int - -**Current value:** 64000 - ---- - -### gov.irs.self_employment.social_security_rate -**Label:** Self-employment Social Security tax rate - -Self-employment Social Security tax rate - -**Type:** float - -**Current value:** 0.124 - ---- - -### gov.irs.self_employment.net_earnings_exemption -**Label:** Self-employment net earnings exemption - -Minimum self-employment net earnings to have to pay self-employment tax. - -**Type:** int - -**Current value:** 400 - ---- - -### gov.irs.self_employment.medicare_rate -**Label:** Self-employment Medicare tax rate - -Self-employment Medicare tax rate. - -**Type:** float - -**Current value:** 0.029 - ---- - -### gov.irs.deductions.qbi.max.w2_wages.alt_rate -**Label:** Alternative QBID rate on W-2 wages - -Alternative QBID cap rate on pass-through business W-2 wages paid. QBID is capped at this fraction of W-2 wages paid by the pass-through business plus some fraction of business property if pre-QBID taxable income is above the QBID thresholds and the alternative cap is higher than the main wage-only cap. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.irs.deductions.qbi.max.w2_wages.rate -**Label:** QBID rate on W-2 wages - -QBID cap rate on pass-through business W-2 wages paid. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.irs.deductions.qbi.max.rate -**Label:** Qualified business income deduction rate - -Pass-through qualified business income deduction rate. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.irs.deductions.qbi.max.business_property.rate -**Label:** Alternative QBID rate on business property - -Alternative QBID cap rate on pass-through business property owned - -**Type:** float - -**Current value:** 0.025 - ---- - -### gov.irs.deductions.itemized.limitation.agi_rate -**Label:** The US itemized deductions limitation fraction - -The US limits itemized deductions to this fraction of the excess of adjusted gross income over the applicable amount. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.deductions.itemized.limitation.itemized_deduction_rate -**Label:** The US itemized deductions limitation rate - -The US limits itemized deductions to this fraction of the amount of the itemized deductions otherwise allowable for such taxable year. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.deductions.itemized.casualty.floor -**Label:** Casualty expense deduction floor - -Floor (as a fraction of AGI) for deductible casualty loss. - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.irs.deductions.itemized.casualty.active -**Label:** Casualty expense deduction active - -Casualty expense deduction is active. - -**Type:** bool - -**Current value:** False - ---- - -### gov.irs.deductions.itemized.reduction.rate.excess_agi -**Label:** IRS itemized deductions reduced adjusted gross income rate - -IRS multiplies the excess of adjusted gross income over the applicable amount by this rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.deductions.itemized.reduction.rate.base -**Label:** IRS reduced itemized deductions base rate - -IRS multiplies the excess of the total and reduced itemized deductions by this rate. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.deductions.itemized.medical.floor -**Label:** Medical expense deduction floor - -Medical expenses over this percentage of AGI are deductible from taxable income. - -**Type:** float - -**Current value:** 0.075 - ---- - -### gov.irs.deductions.itemized.charity.ceiling.all -**Label:** Charitable deduction limit - -Ceiling (as a decimal fraction of AGI) for all charitable contribution deductions. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.irs.deductions.itemized.charity.ceiling.non_cash -**Label:** Non-cash charitable deduction limit - -Ceiling (as a fraction of AGI) for noncash charitable contribution deductions. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.irs.deductions.standard.aged_or_blind.age_threshold -**Label:** Aged standard deduction age - -Age at which a person qualifies for the aged standard deduction addition - -**Type:** int - -**Current value:** 65 - ---- - -### gov.irs.income.amt.capital_gains.capital_gain_excess_tax_rate -**Label:** Alternative Minimum Tax capital gain excess tax rate - -The IRS multiplies the taxable excess capital gain by this rate. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.irs.income.exemption.traditional_distribution.age_threshold -**Label:** Traditional IRA distribution age threshold - -The exemption for traditional IRA distributions is limited to filers above this age. - -**Type:** float - -**Current value:** 59.5 - ---- - -### gov.irs.income.disability_income_exclusion.amount -**Label:** Disability income reduction amount - -IRS reduces the excludable disability income by this amount. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.irs.income.disability_income_exclusion.cap -**Label:** Disability exclusion cap - -IRS caps the disability exclusion to this amount per disabled person. - -**Type:** int - -**Current value:** 5200 - ---- - -### gov.irs.gross_income.retirement_contributions.limit.401k -**Label:** 401(k) contribution limit - -The US limits annual 401(k) contributions to this amount. - -**Type:** int - -**Current value:** 23000 - ---- - -### gov.irs.gross_income.retirement_contributions.limit.ira -**Label:** IRA contribution limit - -The US limits annual IRA contributions to this amount. - -**Type:** int - -**Current value:** 7000 - ---- - -### gov.irs.gross_income.retirement_contributions.catch_up.limit.401k -**Label:** 401(k) catch-up amount - -IRS limits the 401(k) contributions catch-up to this amount. - -**Type:** int - -**Current value:** 7500 - ---- - -### gov.irs.gross_income.retirement_contributions.catch_up.limit.ira -**Label:** IRA catch-up amount - -The US allows for catch-up IRA contributions of this amount. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.irs.gross_income.retirement_contributions.catch_up.age_threshold -**Label:** Pension contribution catch-up age threshold - -The US limits catch-up pension contributions to individuals this age or older. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.irs.social_security.taxability.rate.additional -**Label:** Social Security benefit additional taxable rate - -The IRS includes this additional portion of Social Security benefits in taxable income for filers whose modified adjusted gross income exceeds the additional threshold. - -**Type:** float - -**Current value:** 0.85 - ---- - -### gov.irs.social_security.taxability.rate.base -**Label:** Social Security benefit base taxable rate - -The IRS includes this portion of Social Security benefits in taxable income for filers whose modified adjusted gross income is between the base and additional thresholds. - -**Type:** float - -**Current value:** 0.5 - ---- - -### gov.irs.social_security.taxability.threshold.adjusted_base.separate_cohabitating -**Label:** Social Security taxability additional threshold for cohabitating separate filers - -The IRS taxes Social Security benefits at the additional rate, for cohabitating married filing separately filers with modified adjusted gross income above this threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.social_security.taxability.threshold.base.separate_cohabitating -**Label:** Social Security taxability base threshold for cohabitating separate filers - -The IRS taxes Social Security benefits at the base rate, for cohabitating married filing separately filers with modified adjusted gross income between this threshold and the respective additional threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.tce.age_threshold -**Label:** TCE age threshold - -IRS provides free tax assistance under the Tax Counseling for the Elderly (TCE) grant program for individuals this age or older. - -**Type:** int - -**Current value:** 60 - ---- - -### gov.irs.dependent.ineligible_age.student -**Label:** IRS student dependent age limit - -The IRS permits filers to claim dependents who are full-time students if they are younger than this age at the end of the year. - -**Type:** int - -**Current value:** 24 - ---- - -### gov.irs.dependent.ineligible_age.non_student -**Label:** IRS non-student dependent age limit - -The IRS permits filers to claim dependents who are non-students if they are younger than this age at the end of the year. - -**Type:** int - -**Current value:** 19 - ---- - -### gov.irs.uprating -**Label:** Uprating index for IRS tax parameters - -Uprating index for IRS tax parameters (December 1999 = 100%). - -**Type:** float - -**Current value:** 172.57558333333336 - ---- - -### gov.irs.capital_gains.unrecaptured_s_1250_rate -**Label:** Tax rate on net un-recaptured Section 1250 gains. - -Tax rate on net un-recaptured Section 1250 gains. - -**Type:** float - -**Current value:** 0.25 - ---- - -### gov.irs.capital_gains.other_cg_rate -**Label:** Other capital gain tax rate - -Capital gains tax rate applying to special categories of gains (including small business stock and collectibles). - -**Type:** float - -**Current value:** 0.28 - ---- - -### gov.irs.payroll.medicare.rate.employee -**Label:** Employee-side Medicare tax rate - -Employee-side Medicare FICA rate. - -**Type:** float - -**Current value:** 0.0145 - ---- - -### gov.irs.payroll.medicare.rate.employer -**Label:** Employer-side Medicare tax rate - -Employer-side Medicare FICA rate. - -**Type:** float - -**Current value:** 0.0145 - ---- - -### gov.irs.payroll.medicare.additional.rate -**Label:** Additional Medicare Tax rate - -Additional Medicare Tax rate (same for wages and self-employment earnings). - -**Type:** float - -**Current value:** 0.009 - ---- - -### gov.irs.payroll.social_security.rate.employee -**Label:** Employee-side Social Security tax rate - -Employee-side Social Security payroll tax rate - -**Type:** float - -**Current value:** 0.062 - ---- - -### gov.irs.payroll.social_security.rate.employer -**Label:** Employer-side Social Security tax rate - -Employer-side Social Security payroll tax rate - -**Type:** float - -**Current value:** 0.062 - ---- - -### gov.irs.payroll.social_security.cap -**Label:** Social Security earnings cap - -Individual earnings below this amount are subjected to Social Security (OASDI) payroll tax. This parameter is indexed by the rate of growth in average wages, not by the price inflation rate. - -**Type:** int - -**Current value:** 176100 - ---- - -### gov.irs.credits.recovery_rebate_credit.caa.phase_out.rate -**Label:** CAA Recovery Rebate Credit phase-out rate - -Phase-out rate for the CAA Recovery Rebate Credit. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.caa.max.adult -**Label:** CAA Recovery Rebate Credit maximum amount (non-dependent adults) - -Maximum credit per non-dependent adult. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.caa.max.child -**Label:** CAA Recovery Rebate Credit maximum amount (dependent children) - -Maximum credit per dependent child. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.arpa.max.dependent -**Label:** ARPA Recovery Rebate Credit maximum amount (dependent children) - -Maximum credit per dependent. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.arpa.max.adult -**Label:** ARPA Recovery Rebate Credit maximum amount (non-dependent adults) - -Maximum credit per non-dependent adult. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.cares.phase_out.rate -**Label:** CARES Recovery Rebate Credit phase-out rate - -Phase-out rate for the CARES Recovery Rebate Credit. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.cares.max.adult -**Label:** CARES Recovery Rebate Credit maximum amount (non-dependent adults) - -Maximum credit per non-dependent adult. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.recovery_rebate_credit.cares.max.child -**Label:** CARES Recovery Rebate Credit maximum amount (dependent children) - -Maximum credit per dependent child. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.retirement_saving.age_threshold -**Label:** Retirement Savings Contributions Credit (Saver's Credit) age threshold - -The IRS limits the saver's credit to taxpayers at or over to following age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.irs.credits.retirement_saving.contributions_cap -**Label:** Saver's Credit contributions cap - -The IRS caps the qualifying contributions at the following amount under the saver's credit. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.irs.credits.estate.base -**Label:** Estate tax credit base exclusion amount - -The IRS provides this base exclusion amount under the estate tax credit. - -**Type:** int - -**Current value:** 13990000 - ---- - -### gov.irs.credits.education.phase_out.start.single -**Label:** Education credits phase-out start (single filers) - -Phase-out start for both the American Opportunity Credit and Lifetime Learning Credit on AGI. - -**Type:** int - -**Current value:** 80000 - ---- - -### gov.irs.credits.education.phase_out.start.joint -**Label:** Education credits phase-out start (joint filers) - -Phase-out start for both the American Opportunity Credit and Lifetime Learning Credit on AGI. - -**Type:** int - -**Current value:** 160000 - ---- - -### gov.irs.credits.education.phase_out.length.single -**Label:** Education credits phase-out length (single filers) - -Length of the phase-out for both the American Opportunity Credit and Lifetime Learning Credit on AGI (when excess income totals this amount, the credit is reduced to zero). - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.irs.credits.education.phase_out.length.joint -**Label:** Education credits phase-out length (joint filers) - -Length of the phase-out for both the American Opportunity Credit and Lifetime Learning Credit on AGI (when excess income totals this amount, the credit is reduced to zero). - -**Type:** int - -**Current value:** 20000 - ---- - -### gov.irs.credits.education.american_opportunity_credit.abolition -**Label:** American Opportunity Credit abolition - -**Type:** bool - -**Current value:** False - ---- - -### gov.irs.credits.education.american_opportunity_credit.refundability -**Label:** American Opportunity Credit refundable percentage - -Percentage of the American Opportunity Credit which is refundable. - -**Type:** float - -**Current value:** 0.4 - ---- - -### gov.irs.credits.education.lifetime_learning_credit.expense_limit -**Label:** Lifetime Learning Credit maximum expense - -Maximum expenses for relief under the Lifetime Learning Credit - -**Type:** int - -**Current value:** 10000 - ---- - -### gov.irs.credits.education.lifetime_learning_credit.abolition -**Label:** Abolish the Lifetime Learning Credit - -**Type:** bool - -**Current value:** False - ---- - -### gov.irs.credits.energy_efficient_home_improvement.rates.improvements -**Label:** Energy efficient home improvement credit rate on improvements - -The IRS provides an energy efficient home improvement tax credit for this share of qualified energy efficiency improvements. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.rates.home_energy_audit -**Label:** Energy efficient home improvement credit rate on home energy audits - -The IRS provides an energy efficient home improvement tax credit for this share of home energy audit expenditures. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.rates.property -**Label:** Energy efficient home improvement credit rate on property - -The IRS provides an energy efficient home improvement tax credit for this share of residential energy property expenditures. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.energy_efficient_building_property -**Label:** Energy efficient home improvement credit cap on energy-efficient building property - -The IRS caps energy efficient home improvement credits on energy efficient building property at this amount per year. - -**Type:** int - -**Current value:** 600 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.total -**Label:** Energy efficient home improvement credit total cap - -The IRS caps energy efficient total home improvement credits at this amount per year (the cap on heat pumps, heat pump water heaters, and biomass stoves and boilers supersedes this cap). - -**Type:** int - -**Current value:** 1200 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.energy_efficient_central_air_conditioner -**Label:** Energy efficient home improvement credit cap on energy-efficient central air conditioners - -The IRS caps energy efficient home improvement credits on energy efficient central air conditioners at this amount per year. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.heat_pump_heat_pump_water_heater_biomass_stove_boiler -**Label:** Energy efficient home improvement credit cap on heat pumps, heat pump water heaters, and biomass stoves and boilers - -The IRS caps energy efficient home improvement credits on heat pumps, heat pump water heaters, and biomass stoves and boilers at this amount per year. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.home_energy_audit -**Label:** Energy efficient home improvement credit cap on home energy audits - -The IRS caps energy efficient home improvement credits on home energy audits at this amount per year. - -**Type:** int - -**Current value:** 150 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.roof -**Label:** Energy efficient home improvement credit cap on roofs - -The IRS caps energy efficient home improvement credits on roofs and roof material at this amount per year. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.qualified_furnace_or_hot_water_boiler -**Label:** Energy efficient home improvement credit cap on qualified furnaces or boilers - -The IRS caps energy efficient home improvement credits on qualified natural gas, propane, or oil furnaces or hot water boilers at this amount per year. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.door -**Label:** Energy efficient home improvement credit cap on exterior doors - -The IRS caps energy efficient home improvement credits on exterior doors at this amount per year. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.insulation_material -**Label:** Energy efficient home improvement credit cap on energy efficient insulation material - -The IRS caps energy efficient home improvement credits on energy efficient insulation material at this amount per year. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.advanced_main_air_circulating_fan -**Label:** Energy efficient home improvement credit cap on advanced main air circulating fans - -The IRS caps energy efficient home improvement credits on advance main air circulating fans at this amount per year. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.annual.window -**Label:** Energy efficient home improvement credit cap on windows and skylights - -The IRS caps energy efficient home improvement credits on energy efficient windows and skylights at this amount per year. - -**Type:** int - -**Current value:** 600 - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.lifetime.total -**Label:** Energy efficient home improvement credit lifetime limit - -The IRS caps lifetime energy efficient home improvement credits at this amount. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.cap.lifetime.window -**Label:** Energy efficient home improvement credit lifetime window limit - -The IRS caps lifetime energy efficient home improvement credits on windows at this amount. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.energy_efficient_home_improvement.in_effect -**Label:** Energy efficient home improvement tax credit in effect - -The IRS provides the energy efficient home improvement tax credit when this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.irs.credits.clean_vehicle.new.critical_minerals.amount -**Label:** Credit for clean vehicles meeting the critical mineral requirement. - -The IRS provides a credit of this amount to filers purchasing new clean vehicles meeting the critical mineral requirement. - -**Type:** int - -**Current value:** 3750 - ---- - -### gov.irs.credits.clean_vehicle.new.critical_minerals.threshold -**Label:** Share of clean vehicle battery critical minerals made in North America to qualify for credit - -The IRS limits the new clean vehicle tax credit to vehicles with at least this share of battery critical minerals (by value) extracted or processed in a country with which the United States has a free trade agreement in effect, or recycled in North America. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.irs.credits.clean_vehicle.new.eligibility.min_kwh -**Label:** Minimum kWh of battery capacity for new clean vehicle to be eligible for credit - -The IRS limits the new clean vehicle credit to vehicles with at least this battery capacity, in kilowatt hours. - -**Type:** int - -**Current value:** 4 - ---- - -### gov.irs.credits.clean_vehicle.new.base_amount -**Label:** New clean vehicle credit base amount - -The IRS sets the new clean vehicle credit at this base amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.clean_vehicle.new.capacity_bonus.max -**Label:** New clean vehicle credit maximum amount for capacity bonus - -The IRS caps its new clean vehicle credit capacity bonus at this amount. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.clean_vehicle.new.capacity_bonus.amount -**Label:** New clean vehicle credit amount per excess kilowatt-hour - -The IRS enhances its new clean vehicle credit with capacity bonus of this amount per kilowatt-hour in excess of the threshold. - -**Type:** int - -**Current value:** 0 - ---- - -### gov.irs.credits.clean_vehicle.new.capacity_bonus.kwh_threshold -**Label:** New clean vehicle credit kilowatt-hour threshold for battery capacity bonus - -The IRS provides a capacity bonus for its new clean vehicle credit to filers purchasing vehicles with at least this battery capacity, in kilowatt hours. - -**Type:** int - -**Current value:** 5 - ---- - -### gov.irs.credits.clean_vehicle.new.battery_components.amount -**Label:** Credit for clean vehicles meeting the battery components requirement - -The IRS provides a credit of this amount for filers purchasing new clean vehicles meeting the battery components requirement. - -**Type:** int - -**Current value:** 3750 - ---- - -### gov.irs.credits.clean_vehicle.new.battery_components.threshold -**Label:** Share of clean vehicle battery components made in North America to qualify for credit - -The IRS limits its clean vehicle credit battery component amount to filers purchasing vehicles with this share of battery components (by value) made in North America. - -**Type:** float - -**Current value:** 0.6 - ---- - -### gov.irs.credits.clean_vehicle.used.amount.percent_of_sale_price -**Label:** Used clean vehicle credit as a percent of sale price - -The IRS provides a tax credit for up to this percentage of a used clean vehicle's purchase price. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.irs.credits.clean_vehicle.used.amount.max -**Label:** Maximum amount of used clean vehicle credit - -The IRS caps the used clean vehicle credit at this amount. - -**Type:** int - -**Current value:** 4000 - ---- - -### gov.irs.credits.clean_vehicle.used.eligibility.sale_price_limit -**Label:** Sale price limit for used clean vehicle credit - -The IRS limits the used clean vehicle credit to vehicle purchases below this threshold. - -**Type:** int - -**Current value:** 25000 - ---- - -### gov.irs.credits.residential_clean_energy.applicable_percentage -**Label:** Residential Clean Energy Credit applicable percentage - -The IRS provides a tax credit for this share of qualifying residential clean energy expenditures. - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.irs.credits.residential_clean_energy.fuel_cell_cap_per_kw -**Label:** Residential Clean Energy Credit fuel cell cap per kilowatt - -The IRS caps the tax credit for fuel cell property expenditures at this amount per kilowatt. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.irs.credits.ctc.refundable.individual_max -**Label:** Child tax credit refundable maximum amount - -Maximum refundable amount of the CTC for qualifying children. - -**Type:** int - -**Current value:** 1700 - ---- - -### gov.irs.credits.ctc.refundable.phase_in.rate -**Label:** CTC refundable phase-in rate - -Additional Child Tax Credit rate - -**Type:** float - -**Current value:** 0.15 - ---- - -### gov.irs.credits.ctc.refundable.phase_in.min_children_for_ss_taxes_minus_eitc -**Label:** Minimum children to consider Social Security taxes minus EITC in refundable CTC - -Minimum number of qualifying children to increase the refundable Child Tax Credit by Social Security taxes minus the Earned Income Tax Credit. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.irs.credits.ctc.refundable.phase_in.threshold -**Label:** CTC refundable phase-in threshold - -Additional Child Tax Credit income threshold - -**Type:** int - -**Current value:** 2500 - ---- - -### gov.irs.credits.ctc.refundable.fully_refundable -**Label:** Fully refundable CTC - -The IRS makes the Child Tax Credit fully refundable if this is true. - -**Type:** bool - -**Current value:** False - ---- - -### gov.irs.credits.ctc.amount.adult_dependent -**Label:** Child tax credit for adult dependents - -Maximum value of the CTC for adult dependents. - -**Type:** int - -**Current value:** 500 - ---- - -### gov.irs.credits.ctc.amount.arpa_expansion_cap_percent_of_threshold_diff -**Label:** ARPA CTC expansion cap as percent of threshold difference - -The IRS caps the American Rescue Plan Act Child Tax Credit expansion by this percentage of the difference in phase-out thresholds between base and ARPA. - -**Type:** float - -**Current value:** 0.05 - ---- - -### gov.irs.credits.ctc.phase_out.increment -**Label:** CTC phase-out increment (ARPA) - -The IRS reduces the American Rescue Plan Act Child Tax Credit expansion by a certain amount for each of this increment by which one's income exceeds the phase-out thresholds. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.irs.credits.ctc.phase_out.arpa.increment -**Label:** CTC phase-out increment - -The IRS reduces the Child Tax Credit by a certain amount for each of this increment by which one's income exceeds the phase-out thresholds. - -**Type:** int - -**Current value:** 1000 - ---- - -### gov.irs.credits.ctc.phase_out.arpa.amount -**Label:** CTC phase-out amount (ARPA) - -The IRS reduces the American Rescue Plan Act Child Tax Credit expansion by this amount for each increment by which one's income exceeds the phase-out thresholds. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.irs.credits.ctc.phase_out.arpa.in_effect -**Label:** CTC ARPA phase-out in effect - -The IRS adds a second phase-out when this is in effect. - -**Type:** bool - -**Current value:** False - ---- - -### gov.irs.credits.ctc.phase_out.amount -**Label:** CTC phase-out amount - -The IRS reduces the Child Tax Credit by this amount for each increment by which one's income exceeds the phase-out thresholds. - -**Type:** int - -**Current value:** 50 - ---- - -### gov.irs.credits.cdcc.max -**Label:** Maximum care expenses per dependent for CDCC. - -Maximum child and dependent care expenses per dependent. - -**Type:** int - -**Current value:** 3000 - ---- - -### gov.irs.credits.cdcc.phase_out.second_start -**Label:** CDCC second phase-out start - -Child & dependent care credit second phase-out start. - -**Type:** float - -**Current value:** inf - ---- - -### gov.irs.credits.cdcc.phase_out.max -**Label:** CDCC maximum rate - -Child and dependent care credit maximum percentage rate. - -**Type:** float - -**Current value:** 0.35 - ---- - -### gov.irs.credits.cdcc.phase_out.increment -**Label:** CDCC phase-out increment - -Child and dependent care credit phase-out increment. Income after the phase-out start(s) reduce the CDCC applicable percentage by the rate for each full or partial increment. - -**Type:** int - -**Current value:** 2000 - ---- - -### gov.irs.credits.cdcc.phase_out.rate -**Label:** CDCC phase-out rate - -Child and dependent care credit phase-out percentage rate. This is the reduction to the applicable percentage for each full or partial increment beyond which AGI exceeds the phase-out start(s). - -**Type:** float - -**Current value:** 0.01 - ---- - -### gov.irs.credits.cdcc.phase_out.min -**Label:** CDCC minimum rate - -Child and dependent care credit phase-out percentage rate floor. The first phase-out does not reduce the childcare credit rate below this percentage. - -**Type:** float - -**Current value:** 0.2 - ---- - -### gov.irs.credits.cdcc.phase_out.start -**Label:** CDCC phase-out start - -Child & dependent care credit phase-out AGI start. - -**Type:** int - -**Current value:** 15000 - ---- - -### gov.irs.credits.cdcc.eligibility.child_age -**Label:** CDCC dependent child maximum age - -The age under which a child qualifies as a dependent for the CDCC. - -**Type:** int - -**Current value:** 13 - ---- - -### gov.irs.credits.cdcc.eligibility.max -**Label:** CDCC maximum dependents - -Maximum number of dependents qualifiable for CDCC. - -**Type:** int - -**Current value:** 2 - ---- - -### gov.irs.credits.eitc.phase_out.joint_bonus[0].amount -**Label:** EITC phase-out start joint filer bonus (no children) - -**Type:** int - -**Current value:** 7110 - ---- - -### gov.irs.credits.eitc.phase_out.joint_bonus[1].amount -**Label:** EITC phase-out start joint filer bonus (with children) - -**Type:** int - -**Current value:** 7120 - ---- - -### gov.irs.credits.eitc.phase_out.max_investment_income -**Label:** EITC maximum investment income - -Maximum investment income for EITC. - -**Type:** int - -**Current value:** 11950 - ---- - -### gov.irs.credits.eitc.eligibility.separate_filer -**Label:** EITC separate filers eligible - -The US makes married filing separate filers eligible for the EITC when this is true. - -**Type:** bool - -**Current value:** True - ---- - -### gov.irs.credits.eitc.eligibility.age.max -**Label:** EITC maximum childless age - -The US limits EITC eligibility for filers without children to those below this age. - -**Type:** int - -**Current value:** 64 - ---- - -### gov.irs.credits.eitc.eligibility.age.min -**Label:** EITC minimum non-student childless age - -The US limits EITC eligibility for non-student filers without children to those this age or older. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.irs.credits.eitc.eligibility.age.min_student -**Label:** EITC minimum childless student age - -The US limits EITC eligibility for students without children to those this age or older. - -**Type:** int - -**Current value:** 25 - ---- - -### gov.hhs.head_start.early_head_start.age_limit -**Label:** Early Head Start children age limit - -The Administration for Children and Families limits the Early Head Start participants to children below this age limit. - -**Type:** int - -**Current value:** 3 - ---- - -### gov.hhs.medicare.eligibility.min_months_receiving_social_security_disability -**Label:** Minimum number of months of receiving social security disability for Medicare eligibility - -Minimum number of months of receiving social security disability for Medicare eligibility. - -**Type:** int - -**Current value:** 24 - ---- - -### gov.hhs.medicare.eligibility.min_age -**Label:** Minimum age for age-based Medicare eligibility - -Minimum age for age-based Medicare eligibility. - -**Type:** int - -**Current value:** 65 - ---- - -### gov.hhs.tanf.cash.eligibility.age_limit.student -**Label:** TANF minor child student age limit - -The Temporary Assistance for Needy Families (TANF) program defines one of the qualifying criteria of a minor child as an individual who has not yet reached this age and is a full-time student in a secondary school (or an equivalent level of vocational or technical training). - -**Type:** int - -**Current value:** 19 - ---- - -### gov.hhs.tanf.cash.eligibility.age_limit.non_student -**Label:** TANF minor child non student age limit - -The Temporary Assistance for Needy Families (TANF) program defines one of the qualifying criteria of a minor child as an individual who has not yet reached this age. - -**Type:** int - -**Current value:** 18 - ---- - -### gov.hhs.tanf.abolish_tanf -**Label:** Abolish TANF - -Abolish TANF cash payments. - -**Type:** bool - -**Current value:** False - ---- - -### gov.hhs.uprating -**Label:** Poverty line uprating - -The US indexes the federal poverty guidelines according to this schedule, annually updating based on CPI-U in the calendar year. - -**Type:** float - -**Current value:** 312.6 - ---- - -### gov.hud.abolition -**Label:** Housing subsidy abolition - -HUD stops providing housing subsidies when this is toggled. - -**Type:** bool - -**Current value:** False - ---- - -### gov.hud.adjusted_income.deductions.elderly_disabled.amount -**Label:** HUD elderly or disabled deduction - -HUD adjusted income elderly or disabled deduction - -**Type:** int - -**Current value:** 400 - ---- - -### gov.hud.adjusted_income.deductions.moop.threshold -**Label:** HUD medical expense deduction income threshold - -Percent of annual income beyond which medical expenses are deducted from HUD adjusted income. - -**Type:** float - -**Current value:** 0.03 - ---- - -### gov.hud.adjusted_income.deductions.dependent.amount -**Label:** HUD dependent deduction - -HUD adjusted income dependent deduction - -**Type:** int - -**Current value:** 480 - ---- - -### gov.hud.total_tenant_payment.income_share -**Label:** TTP Income Share - -HUD total tenant payment share, monthly income - -**Type:** float - -**Current value:** 0.1 - ---- - -### gov.hud.total_tenant_payment.adjusted_income_share -**Label:** Total tenant payment adjusted income share - -HUD total tenant payment as a share of adjusted monthly income - -**Type:** float - -**Current value:** 0.3 - ---- - -### gov.hud.elderly_age_threshold -**Label:** HUD elderly age threshold - -HUD applies special rules to people this age or older. - -**Type:** int - -**Current value:** 62 - ---- - diff --git a/docs/reference/uk_parameters.ipynb b/docs/reference/uk_parameters.ipynb deleted file mode 100644 index 806d4e8b..00000000 --- a/docs/reference/uk_parameters.ipynb +++ /dev/null @@ -1,87 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# UK parameters\n", - "\n", - "This page shows a list of available parameters for reforms for the UK model.\n", - "\n", - "We exclude from this list:\n", - "\n", - "* Some parameters without documentation (we're a large, fast-growing model maintained by a small team- we're working on it!)\n", - "* Abolition parameters, which mirror each household property and allow the user to set the value of the property to zero (these take the format `gov.abolitions.variable_name`) because these roughly triple the size of this list and are repetitive.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [], - "source": [ - "from IPython.display import Markdown\n", - "from policyengine_uk.system import system\n", - "from policyengine_core.parameters import Parameter\n", - "import pandas as pd\n", - "\n", - "parameters = system.parameters\n", - "\n", - "markdown = \"\"\"# UK parameters\n", - "\n", - "This page shows a list of available parameters for reforms for the UK model.\n", - "\n", - "We exclude from this list:\n", - "\n", - "* Some parameters without documentation (we're a large, fast-growing model maintained by a small team- we're working on it!)\n", - "* Abolition parameters, which mirror each household property and allow the user to set the value of the property to zero (these take the format `gov.abolitions.variable_name`) because these roughly triple the size of this list and are repetitive.\n", - "\"\"\"\n", - "i = 0\n", - "for parameter in parameters.get_descendants():\n", - " if isinstance(parameter, Parameter):\n", - " if not parameter.metadata.get(\"label\"):\n", - " continue\n", - " if \".abolitions.\" in parameter.name:\n", - " continue\n", - " if type(parameter(2025)) not in (int, float, bool):\n", - " continue\n", - " markdown += f\"### {parameter.name}\\n\"\n", - " markdown += f\"**Label:** {parameter.metadata.get('label')}\\n\\n\"\n", - " if parameter.description:\n", - " markdown += f\"{parameter.description}\\n\\n\"\n", - " markdown += f\"**Type:** {type(parameter(2025)).__name__}\\n\\n\"\n", - " markdown += f\"**Current value:** {parameter(2025)}\\n\\n---\"\n", - " markdown += \"\\n\\n\"\n", - " i += 1\n", - "\n", - "with open(\"./parameters_uk.md\", \"w+\") as f:\n", - " f.write(markdown)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.14" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/docs/reference/us_parameters.ipynb b/docs/reference/us_parameters.ipynb deleted file mode 100644 index 7802de1c..00000000 --- a/docs/reference/us_parameters.ipynb +++ /dev/null @@ -1,85 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# US parameters\n", - "\n", - "This page shows a list of available parameters for reforms for the US model.\n", - "\n", - "We exclude from this list:\n", - "\n", - "* Abolition parameters, which mirror each household property and allow the user to set the value of the property to zero (these take the format `gov.abolitions.variable_name`) because these roughly triple the size of this list and are repetitive.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "tags": [ - "hide-input" - ] - }, - "outputs": [], - "source": [ - "from IPython.display import Markdown\n", - "from policyengine_us.system import system\n", - "from policyengine_core.parameters import Parameter\n", - "import pandas as pd\n", - "\n", - "parameters = system.parameters\n", - "\n", - "markdown = \"\"\"# US parameters\n", - "\n", - "This page shows a list of available parameters for reforms for the US model.\n", - "\n", - "We exclude from this list:\n", - "\n", - "* Abolition parameters, which mirror each household property and allow the user to set the value of the property to zero (these take the format `gov.abolitions.variable_name`) because these roughly triple the size of this list and are repetitive.\n", - "\"\"\"\n", - "i = 0\n", - "for parameter in parameters.get_descendants():\n", - " if isinstance(parameter, Parameter):\n", - " if not parameter.metadata.get(\"label\"):\n", - " continue\n", - " if \".abolitions.\" in parameter.name:\n", - " continue\n", - " if type(parameter(2025)) not in (int, float, bool):\n", - " continue\n", - " markdown += f\"### {parameter.name}\\n\"\n", - " markdown += f\"**Label:** {parameter.metadata.get('label')}\\n\\n\"\n", - " if parameter.description:\n", - " markdown += f\"{parameter.description}\\n\\n\"\n", - " markdown += f\"**Type:** {type(parameter(2025)).__name__}\\n\\n\"\n", - " markdown += f\"**Current value:** {parameter(2025)}\\n\\n---\"\n", - " markdown += \"\\n\\n\"\n", - " i += 1\n", - "\n", - "with open(\"./parameters_us.md\", \"w+\") as f:\n", - " f.write(markdown)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "base", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.14" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/policyengine/__init__.py b/policyengine/__init__.py deleted file mode 100644 index 4bb8a90c..00000000 --- a/policyengine/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from .simulation import Simulation, SimulationOptions - -__version__ = "0.1.1" diff --git a/policyengine/outputs/household/comparison/__init__.py b/policyengine/outputs/household/comparison/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/policyengine/outputs/household/comparison/calculate_household_comparison.py b/policyengine/outputs/household/comparison/calculate_household_comparison.py deleted file mode 100644 index 756be8e2..00000000 --- a/policyengine/outputs/household/comparison/calculate_household_comparison.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Calculate comparison statistics between two economic scenarios.""" - -import typing - -from policyengine import Simulation - -from pydantic import BaseModel -from policyengine.utils.calculations import get_change -from policyengine_core.simulations import Simulation as CountrySimulation -from policyengine.outputs.household.single.calculate_single_household import ( - SingleHousehold, - fill_and_calculate, - FullHouseholdSpecification, -) -from typing import Literal, List - - -class HouseholdComparison(BaseModel): - full_household_baseline: FullHouseholdSpecification - """The full completion of the household under the baseline scenario.""" - - full_household_reform: FullHouseholdSpecification - """The full completion of the household under the reform scenario.""" - - change: FullHouseholdSpecification - """The change in the household from the baseline to the reform scenario.""" - - -def calculate_household_comparison( - simulation: Simulation, -) -> HouseholdComparison: - """Calculate comparison statistics between two household scenarios.""" - if not simulation.is_comparison: - raise ValueError("Simulation must be a comparison simulation.") - - baseline_household = fill_and_calculate( - simulation.options.data, simulation.baseline_simulation - ) - reform_household = fill_and_calculate( - simulation.options.data, simulation.reform_simulation - ) - change = get_change( - baseline_household, - reform_household, - relative=False, - skip_mismatch=True, - ) - - return HouseholdComparison( - full_household_baseline=baseline_household, - full_household_reform=reform_household, - change=change, - ) diff --git a/policyengine/outputs/household/single/__init__.py b/policyengine/outputs/household/single/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/policyengine/outputs/household/single/calculate_single_household.py b/policyengine/outputs/household/single/calculate_single_household.py deleted file mode 100644 index 19cab8e2..00000000 --- a/policyengine/outputs/household/single/calculate_single_household.py +++ /dev/null @@ -1,203 +0,0 @@ -"""Calculate comparison statistics between two economic scenarios.""" - -import typing - -from policyengine import Simulation - -from pydantic import BaseModel -from policyengine_core.simulations import Simulation as CountrySimulation -from typing import List, Dict -from datetime import date -from policyengine_core.variables import Variable -from policyengine_core.entities import Entity -from policyengine_core.model_api import YEAR, MONTH, ETERNITY, Enum -import dpath.util -import math -import json - -Value = float | str | bool | list | None -Axes = List[List[Dict[str, str | int]]] -TimePeriodValues = Dict[str, Value] -EntityValues = Dict[str, TimePeriodValues] -EntityGroupValues = Dict[str, EntityValues] -FullHouseholdSpecification = Dict[ - str, EntityGroupValues | Axes -] # {people: {person: {variable: {time_period: value}}}} - - -class SingleHousehold(BaseModel): - """Statistics for a single household scenario.""" - - full_household: FullHouseholdSpecification - """Full variable calculations for the household.""" - - -def calculate_single_household( - simulation: Simulation, -) -> SingleHousehold: - """Calculate household statistics for a single household scenario.""" - if simulation.is_comparison: - raise ValueError( - "This function is for single household simulations only." - ) - - return SingleHousehold( - full_household=fill_and_calculate( - simulation.options.data, simulation.baseline_simulation - ) - ) - - -def fill_and_calculate( - household: FullHouseholdSpecification, simulation: CountrySimulation -): - """Fill in missing variables and calculate all variables for a household""" - # Copy the household to avoid modifying the original - household = json.loads(json.dumps(household)) - household = add_yearly_variables(household, simulation) - household = calculate_all_variables(household, simulation) - household.pop("axes", None) - return household - - -def get_requested_computations( - household: FullHouseholdSpecification, -) -> List[tuple[str, str, str, str]]: - requested_computations = dpath.util.search( - {k: v for k, v in household.items() if k != "axes"}, - "*/*/*/*", - # afilter=lambda t: t is None, - yielded=True, - ) - requested_computation_data = [] - - for computation in requested_computations: - path = computation[0] - entity_plural, entity_id, variable_name, period = path.split("/") - requested_computation_data.append( - (entity_plural, entity_id, variable_name, period) - ) - - return requested_computation_data - - -def calculate_all_variables( - household: FullHouseholdSpecification, simulation: CountrySimulation -) -> FullHouseholdSpecification: - requested_computations = get_requested_computations(household) - - for ( - entity_plural, - entity_id, - variable_name, - period, - ) in requested_computations: - variable = simulation.tax_benefit_system.get_variable(variable_name) - result = simulation.calculate(variable_name, period) - population = simulation.get_population(entity_plural) - - if "axes" in household: - count_entities = len(household[entity_plural]) - entity_index = 0 - for _entity_id in household[entity_plural].keys(): - if _entity_id == entity_id: - break - entity_index += 1 - try: - result = result.astype(float) - except: - pass - result = ( - result.reshape((-1, count_entities)).T[entity_index].tolist() - ) - # If the result contains infinities, throw an error - if any( - [ - not isinstance(value, str) and math.isinf(value) - for value in result - ] - ): - raise ValueError("Infinite value") - else: - household[entity_plural][entity_id][variable_name][ - period - ] = result - else: - entity_index = population.get_index(entity_id) - if variable.value_type == Enum: - entity_result = result.decode()[entity_index].name - elif variable.value_type == float: - entity_result = float(str(result[entity_index])) - # Convert infinities to JSON infinities - if entity_result == float("inf"): - entity_result = "Infinity" - elif entity_result == float("-inf"): - entity_result = "-Infinity" - elif variable.value_type == str: - entity_result = str(result[entity_index]) - else: - entity_result = result.tolist()[entity_index] - - household[entity_plural][entity_id][variable_name][ - period - ] = entity_result - - return household - - -def get_household_year(household: FullHouseholdSpecification) -> str: - """Given a household dict, get the household's year - - Args: - household (dict): The household itself - """ - - # Set household_year based on current year - household_year = date.today().year - - # Determine if "age" variable present within household and return list of values at it - household_age_list = list( - household.get("people", {}).get("you", {}).get("age", {}).keys() - ) - # If it is, overwrite household_year with the value present - if len(household_age_list) > 0: - household_year = household_age_list[0] - - return str(household_year) - - -def add_yearly_variables( - household: FullHouseholdSpecification, simulation: CountrySimulation -) -> FullHouseholdSpecification: - """ - Add yearly variables to a household dict before enqueueing calculation - """ - - variables: Dict[str, Variable] = simulation.tax_benefit_system.variables - entities: Dict[str, Entity] = ( - simulation.tax_benefit_system.entities_by_singular() - ) - household_year = get_household_year(household) - - for variable in variables: - if variables[variable].definition_period in (YEAR, MONTH, ETERNITY): - entity_plural = entities[variables[variable].entity.key].plural - if entity_plural in household: - possible_entities = household[entity_plural].keys() - for entity in possible_entities: - if ( - not variables[variable].name - in household[entity_plural][entity] - ): - if variables[variable].is_input_variable(): - value = variables[variable].default_value - if isinstance(value, Enum): - value = value.name - household[entity_plural][entity][ - variables[variable].name - ] = {household_year: value} - else: - household[entity_plural][entity][ - variables[variable].name - ] = {household_year: None} - return household diff --git a/policyengine/outputs/macro/__init__.py b/policyengine/outputs/macro/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/policyengine/outputs/macro/comparison/__init__.py b/policyengine/outputs/macro/comparison/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/policyengine/outputs/macro/comparison/calculate_economy_comparison.py b/policyengine/outputs/macro/comparison/calculate_economy_comparison.py deleted file mode 100644 index 7e6457da..00000000 --- a/policyengine/outputs/macro/comparison/calculate_economy_comparison.py +++ /dev/null @@ -1,874 +0,0 @@ -"""Calculate comparison statistics between two economic scenarios.""" - -from microdf import MicroSeries -import numpy as np -from policyengine.utils.data_download import download -import pandas as pd -import h5py -from pydantic import BaseModel -from policyengine import Simulation -from policyengine.outputs.macro.single.calculate_single_economy import ( - SingleEconomy, -) -from typing import List, Dict, Optional -import logging - -logger = logging.getLogger(__file__) - - -class BudgetaryImpact(BaseModel): - budgetary_impact: float - tax_revenue_impact: float - state_tax_revenue_impact: float - benefit_spending_impact: float - households: float - baseline_net_income: float - - -def budgetary_impact( - baseline: SingleEconomy, reform: SingleEconomy -) -> BudgetaryImpact: - tax_revenue_impact = reform.total_tax - baseline.total_tax - state_tax_revenue_impact = ( - reform.total_state_tax - baseline.total_state_tax - ) - benefit_spending_impact = reform.total_benefits - baseline.total_benefits - budgetary_impact = tax_revenue_impact - benefit_spending_impact - return BudgetaryImpact( - budgetary_impact=budgetary_impact, - tax_revenue_impact=tax_revenue_impact, - state_tax_revenue_impact=state_tax_revenue_impact, - benefit_spending_impact=benefit_spending_impact, - households=sum(baseline.household_weight), - baseline_net_income=baseline.total_net_income, - ) - - -DecileValues = Dict[int, float] - - -class HoursResponse(BaseModel): - baseline: float - reform: float - change: float - income_effect: float - substitution_effect: float - - -class LaborSupplyResponse(BaseModel): - substitution_lsr: float - income_lsr: float - relative_lsr: dict - total_change: float - revenue_change: float - decile: Dict[str, Dict[str, DecileValues]] - hours: HoursResponse - - -def labor_supply_response( - baseline: SingleEconomy, reform: SingleEconomy -) -> LaborSupplyResponse: - substitution_lsr = reform.substitution_lsr - baseline.substitution_lsr - income_lsr = reform.income_lsr - baseline.income_lsr - total_change = substitution_lsr + income_lsr - revenue_change = ( - reform.budgetary_impact_lsr - baseline.budgetary_impact_lsr - ) - - substitution_lsr_hh = np.array(reform.substitution_lsr_hh) - np.array( - baseline.substitution_lsr_hh - ) - income_lsr_hh = np.array(reform.income_lsr_hh) - np.array( - baseline.income_lsr_hh - ) - decile = np.array(baseline.household_income_decile) - household_weight = baseline.household_weight - - total_lsr_hh = substitution_lsr_hh + income_lsr_hh - - emp_income = MicroSeries( - baseline.employment_income_hh, weights=household_weight - ) - self_emp_income = MicroSeries( - baseline.self_employment_income_hh, weights=household_weight - ) - earnings = emp_income + self_emp_income - original_earnings = earnings - total_lsr_hh - substitution_lsr_hh = MicroSeries( - substitution_lsr_hh, weights=household_weight - ) - income_lsr_hh = MicroSeries(income_lsr_hh, weights=household_weight) - - decile_avg = dict( - income=income_lsr_hh.groupby(decile).mean().to_dict(), - substitution=substitution_lsr_hh.groupby(decile).mean().to_dict(), - ) - decile_rel = dict( - income=( - income_lsr_hh.groupby(decile).sum() - / original_earnings.groupby(decile).sum() - ).to_dict(), - substitution=( - substitution_lsr_hh.groupby(decile).sum() - / original_earnings.groupby(decile).sum() - ).to_dict(), - ) - - relative_lsr = dict( - income=(income_lsr_hh.sum() / original_earnings.sum()), - substitution=(substitution_lsr_hh.sum() / original_earnings.sum()), - ) - - decile_rel["income"] = { - int(k): v for k, v in decile_rel["income"].items() if k > 0 - } - decile_rel["substitution"] = { - int(k): v for k, v in decile_rel["substitution"].items() if k > 0 - } - - hours = dict( - baseline=baseline.weekly_hours, - reform=reform.weekly_hours, - change=reform.weekly_hours - baseline.weekly_hours, - income_effect=reform.weekly_hours_income_effect - - baseline.weekly_hours_income_effect, - substitution_effect=reform.weekly_hours_substitution_effect - - baseline.weekly_hours_substitution_effect, - ) - - return LaborSupplyResponse( - substitution_lsr=substitution_lsr, - income_lsr=income_lsr, - relative_lsr=relative_lsr, - total_change=total_change, - revenue_change=revenue_change, - decile=dict( - average=decile_avg, - relative=decile_rel, - ), - hours=hours, - ) - - -class ProgramSpecificImpact(BaseModel): - baseline: float - reform: float - difference: float - - -DetailedBudgetaryImpact = Dict[str, ProgramSpecificImpact] | None - - -def detailed_budgetary_impact( - baseline: SingleEconomy, reform: SingleEconomy, country_id: str -) -> DetailedBudgetaryImpact: - result = {} - if country_id == "uk": - for program in baseline.programs: - # baseline[programs][program] = total budgetary impact of program - result[program] = dict( - baseline=baseline.programs[program], - reform=reform.programs[program], - difference=reform.programs[program] - - baseline.programs[program], - ) - return result - - -class DecileImpact(BaseModel): - relative: DecileValues - average: DecileValues - - -def decile_impact( - baseline: SingleEconomy, reform: SingleEconomy -) -> DecileImpact: - """ - Compare the impact of a reform on the deciles of the population. - - Args: - baseline (dict): The baseline economy. - reform (dict): The reform economy. - - Returns: - dict: The impact of the reform on the deciles of the population. - """ - baseline_income = MicroSeries( - baseline.household_net_income, weights=baseline.household_weight - ) - reform_income = MicroSeries( - reform.household_net_income, weights=baseline_income.weights - ) - - # Filter out negative decile values - decile = MicroSeries(baseline.household_income_decile) - baseline_income_filtered = baseline_income[decile >= 0] - reform_income_filtered = reform_income[decile >= 0] - - income_change = reform_income_filtered - baseline_income_filtered - rel_income_change_by_decile = ( - income_change.groupby(decile).sum() - / baseline_income_filtered.groupby(decile).sum() - ) - - avg_income_change_by_decile = ( - income_change.groupby(decile).sum() - / baseline_income_filtered.groupby(decile).count() - ) - rel_decile_dict = rel_income_change_by_decile.to_dict() - avg_decile_dict = avg_income_change_by_decile.to_dict() - return DecileImpact( - relative={int(k): v for k, v in rel_decile_dict.items()}, - average={int(k): v for k, v in avg_decile_dict.items()}, - ) - - -class WealthDecileImpactWithValues(BaseModel): - relative: DecileValues - average: DecileValues - - -WealthDecileImpact = WealthDecileImpactWithValues | None - - -def wealth_decile_impact( - baseline: SingleEconomy, reform: SingleEconomy, country_id: str -) -> WealthDecileImpact: - """ - Compare the impact of a reform on the deciles of the population. - - Args: - baseline (dict): The baseline economy. - reform (dict): The reform economy. - - Returns: - dict: The impact of the reform on the deciles of the population. - """ - if country_id != "uk": - return None - baseline_income = MicroSeries( - baseline.household_net_income, weights=baseline.household_weight - ) - reform_income = MicroSeries( - reform.household_net_income, weights=baseline_income.weights - ) - - # Filter out negative decile values - decile = MicroSeries(baseline.household_wealth_decile) - baseline_income_filtered = baseline_income[decile >= 0] - reform_income_filtered = reform_income[decile >= 0] - - income_change = reform_income_filtered - baseline_income_filtered - rel_income_change_by_decile = ( - income_change.groupby(decile).sum() - / baseline_income_filtered.groupby(decile).sum() - ) - avg_income_change_by_decile = ( - income_change.groupby(decile).sum() - / baseline_income_filtered.groupby(decile).count() - ) - rel_decile_dict = rel_income_change_by_decile.to_dict() - avg_decile_dict = avg_income_change_by_decile.to_dict() - return WealthDecileImpactWithValues( - relative={int(k): v for k, v in rel_decile_dict.items()}, - average={int(k): v for k, v in avg_decile_dict.items()}, - ) - - -class BaselineReformValues(BaseModel): - baseline: float - reform: float - - -class InequalityImpact(BaseModel): - gini: BaselineReformValues - top_10_pct_share: BaselineReformValues - top_1_pct_share: BaselineReformValues - - -def inequality_impact( - baseline: SingleEconomy, reform: SingleEconomy -) -> InequalityImpact: - """ - Compare the impact of a reform on inequality. - - Args: - baseline (dict): The baseline economy. - reform (dict): The reform economy. - - Returns: - dict: The impact of the reform on inequality. - """ - - values = dict( - gini=dict( - baseline=baseline.gini, - reform=reform.gini, - ), - top_10_pct_share=dict( - baseline=baseline.top_10_percent_share, - reform=reform.top_10_percent_share, - ), - top_1_pct_share=dict( - baseline=baseline.top_1_percent_share, - reform=reform.top_1_percent_share, - ), - ) - - return InequalityImpact(**values) - - -class AgeGroupBaselineReformValues(BaseModel): - child: BaselineReformValues - adult: BaselineReformValues - senior: BaselineReformValues - all: BaselineReformValues - - -class PovertyImpact(BaseModel): - poverty: AgeGroupBaselineReformValues - deep_poverty: AgeGroupBaselineReformValues - - -def poverty_impact(baseline: SingleEconomy, reform: SingleEconomy) -> dict: - """ - Compare the impact of a reform on poverty. - - Args: - baseline (dict): The baseline economy. - reform (dict): The reform economy. - - Returns: - dict: The impact of the reform on poverty. - """ - baseline_poverty = MicroSeries( - baseline.person_in_poverty, weights=baseline.person_weight - ) - baseline_deep_poverty = MicroSeries( - baseline.person_in_deep_poverty, weights=baseline.person_weight - ) - reform_poverty = MicroSeries( - reform.person_in_poverty, weights=baseline_poverty.weights - ) - reform_deep_poverty = MicroSeries( - reform.person_in_deep_poverty, weights=baseline_poverty.weights - ) - age = MicroSeries(baseline.age) - - poverty = dict( - child=dict( - baseline=float(baseline_poverty[age < 18].mean()), - reform=float(reform_poverty[age < 18].mean()), - ), - adult=dict( - baseline=float(baseline_poverty[(age >= 18) & (age < 65)].mean()), - reform=float(reform_poverty[(age >= 18) & (age < 65)].mean()), - ), - senior=dict( - baseline=float(baseline_poverty[age >= 65].mean()), - reform=float(reform_poverty[age >= 65].mean()), - ), - all=dict( - baseline=float(baseline_poverty.mean()), - reform=float(reform_poverty.mean()), - ), - ) - - deep_poverty = dict( - child=dict( - baseline=float(baseline_deep_poverty[age < 18].mean()), - reform=float(reform_deep_poverty[age < 18].mean()), - ), - adult=dict( - baseline=float( - baseline_deep_poverty[(age >= 18) & (age < 65)].mean() - ), - reform=float(reform_deep_poverty[(age >= 18) & (age < 65)].mean()), - ), - senior=dict( - baseline=float(baseline_deep_poverty[age >= 65].mean()), - reform=float(reform_deep_poverty[age >= 65].mean()), - ), - all=dict( - baseline=float(baseline_deep_poverty.mean()), - reform=float(reform_deep_poverty.mean()), - ), - ) - - return PovertyImpact( - poverty=poverty, - deep_poverty=deep_poverty, - ) - - -class IntraDecileImpact(BaseModel): - deciles: Dict[str, List[float]] - all: Dict[str, float] - - -def intra_decile_impact( - baseline: SingleEconomy, reform: SingleEconomy -) -> IntraDecileImpact: - baseline_income = MicroSeries( - baseline.household_net_income, weights=baseline.household_weight - ) - reform_income = MicroSeries( - reform.household_net_income, weights=baseline_income.weights - ) - people = MicroSeries( - baseline.household_count_people, weights=baseline_income.weights - ) - decile = MicroSeries(baseline.household_income_decile).values - absolute_change = (reform_income - baseline_income).values - capped_baseline_income = np.maximum(baseline_income.values, 1) - capped_reform_income = ( - np.maximum(reform_income.values, 1) + absolute_change - ) - income_change = ( - capped_reform_income - capped_baseline_income - ) / capped_baseline_income - - # Within each decile, calculate the percentage of people who: - # 1. Gained more than 5% of their income - # 2. Gained between 0% and 5% of their income - # 3. Had no change in income - # 3. Lost between 0% and 5% of their income - # 4. Lost more than 5% of their income - - outcome_groups = {} - all_outcomes = {} - BOUNDS = [-np.inf, -0.05, -1e-3, 1e-3, 0.05, np.inf] - LABELS = [ - "Lose more than 5%", - "Lose less than 5%", - "No change", - "Gain less than 5%", - "Gain more than 5%", - ] - for lower, upper, label in zip(BOUNDS[:-1], BOUNDS[1:], LABELS): - outcome_groups[label] = [] - for i in range(1, 11): - - in_decile: bool = decile == i - in_group: bool = (income_change > lower) & (income_change <= upper) - in_both: bool = in_decile & in_group - - people_in_both: np.float64 = people[in_both].sum() - people_in_decile: np.float64 = people[in_decile].sum() - - # np.float64 does not raise ZeroDivisionError, instead returns NaN - if people_in_decile == 0 and people_in_both == 0: - people_in_proportion: float = 0.0 - else: - people_in_proportion: float = float( - people_in_both / people_in_decile - ) - - outcome_groups[label].append(people_in_proportion) - - all_outcomes[label] = sum(outcome_groups[label]) / 10 - return IntraDecileImpact(deciles=outcome_groups, all=all_outcomes) - - -class IntraWealthDecileImpactWithValues(BaseModel): - deciles: Dict[str, List[float]] - all: Dict[str, float] - - -IntraWealthDecileImpact = IntraWealthDecileImpactWithValues | None - - -def intra_wealth_decile_impact( - baseline: SingleEconomy, reform: SingleEconomy, country_id: str -) -> IntraWealthDecileImpact: - if country_id != "uk": - return None - baseline_income = MicroSeries( - baseline.household_net_income, weights=baseline.household_weight - ) - reform_income = MicroSeries( - reform.household_net_income, weights=baseline_income.weights - ) - people = MicroSeries( - baseline.household_count_people, weights=baseline_income.weights - ) - decile = MicroSeries(baseline.household_wealth_decile).values - absolute_change = (reform_income - baseline_income).values - capped_baseline_income = np.maximum(baseline_income.values, 1) - capped_reform_income = ( - np.maximum(reform_income.values, 1) + absolute_change - ) - income_change = ( - capped_reform_income - capped_baseline_income - ) / capped_baseline_income - - # Within each decile, calculate the percentage of people who: - # 1. Gained more than 5% of their income - # 2. Gained between 0% and 5% of their income - # 3. Had no change in income - # 3. Lost between 0% and 5% of their income - # 4. Lost more than 5% of their income - - outcome_groups = {} - all_outcomes = {} - BOUNDS = [-np.inf, -0.05, -1e-3, 1e-3, 0.05, np.inf] - LABELS = [ - "Lose more than 5%", - "Lose less than 5%", - "No change", - "Gain less than 5%", - "Gain more than 5%", - ] - for lower, upper, label in zip(BOUNDS[:-1], BOUNDS[1:], LABELS): - outcome_groups[label] = [] - for i in range(1, 11): - - in_decile: bool = decile == i - in_group: bool = (income_change > lower) & (income_change <= upper) - in_both: bool = in_decile & in_group - - people_in_both: np.float64 = people[in_both].sum() - people_in_decile: np.float64 = people[in_decile].sum() - - # np.float64 does not raise ZeroDivisionError, instead returns NaN - if people_in_decile == 0 and people_in_both == 0: - people_in_proportion = 0 - else: - people_in_proportion: float = float( - people_in_both / people_in_decile - ) - - outcome_groups[label].append(people_in_proportion) - - all_outcomes[label] = sum(outcome_groups[label]) / 10 - return IntraWealthDecileImpactWithValues( - deciles=outcome_groups, all=all_outcomes - ) - - -class GenderBaselineReformValues(BaseModel): - male: BaselineReformValues - female: BaselineReformValues - - -class PovertyGenderBreakdown(BaseModel): - poverty: GenderBaselineReformValues - deep_poverty: GenderBaselineReformValues - - -def poverty_gender_breakdown( - baseline: SingleEconomy, reform: SingleEconomy -) -> PovertyGenderBreakdown: - """ - Compare the impact of a reform on poverty. - - Args: - baseline (dict): The baseline economy. - reform (dict): The reform economy. - - Returns: - dict: The impact of the reform on poverty. - """ - if baseline.is_male is None: - return {} - baseline_poverty = MicroSeries( - baseline.person_in_poverty, weights=baseline.person_weight - ) - baseline_deep_poverty = MicroSeries( - baseline.person_in_deep_poverty, weights=baseline.person_weight - ) - reform_poverty = MicroSeries( - reform.person_in_poverty, weights=baseline_poverty.weights - ) - reform_deep_poverty = MicroSeries( - reform.person_in_deep_poverty, weights=baseline_poverty.weights - ) - is_male = MicroSeries(baseline.is_male) - - poverty = dict( - male=dict( - baseline=float(baseline_poverty[is_male].mean()), - reform=float(reform_poverty[is_male].mean()), - ), - female=dict( - baseline=float(baseline_poverty[~is_male].mean()), - reform=float(reform_poverty[~is_male].mean()), - ), - ) - - deep_poverty = dict( - male=dict( - baseline=float(baseline_deep_poverty[is_male].mean()), - reform=float(reform_deep_poverty[is_male].mean()), - ), - female=dict( - baseline=float(baseline_deep_poverty[~is_male].mean()), - reform=float(reform_deep_poverty[~is_male].mean()), - ), - ) - - return PovertyGenderBreakdown( - poverty=poverty, - deep_poverty=deep_poverty, - ) - - -class RacialBaselineReformValues(BaseModel): - white: BaselineReformValues - black: BaselineReformValues - hispanic: BaselineReformValues - other: BaselineReformValues - - -class PovertyRacialBreakdownWithValues(BaseModel): - poverty: RacialBaselineReformValues - - -PovertyRacialBreakdown = PovertyRacialBreakdownWithValues | None - - -def poverty_racial_breakdown( - baseline: SingleEconomy, reform: SingleEconomy -) -> PovertyRacialBreakdown: - """ - Compare the impact of a reform on poverty. - - Args: - baseline (dict): The baseline economy. - reform (dict): The reform economy. - - Returns: - dict: The impact of the reform on poverty. - """ - if baseline.race is None: - return None - baseline_poverty = MicroSeries( - baseline.person_in_poverty, weights=baseline.person_weight - ) - reform_poverty = MicroSeries( - reform.person_in_poverty, weights=baseline_poverty.weights - ) - race = MicroSeries( - baseline.race - ) # Can be WHITE, BLACK, HISPANIC, or OTHER. - - poverty = dict( - white=dict( - baseline=float(baseline_poverty[race == "WHITE"].mean()), - reform=float(reform_poverty[race == "WHITE"].mean()), - ), - black=dict( - baseline=float(baseline_poverty[race == "BLACK"].mean()), - reform=float(reform_poverty[race == "BLACK"].mean()), - ), - hispanic=dict( - baseline=float(baseline_poverty[race == "HISPANIC"].mean()), - reform=float(reform_poverty[race == "HISPANIC"].mean()), - ), - other=dict( - baseline=float(baseline_poverty[race == "OTHER"].mean()), - reform=float(reform_poverty[race == "OTHER"].mean()), - ), - ) - - return PovertyRacialBreakdownWithValues( - poverty=poverty, - ) - - -class UKConstituencyBreakdownByConstituency(BaseModel): - average_household_income_change: float - relative_household_income_change: float - x: int - y: int - - -class UKConstituencyBreakdownWithValues(BaseModel): - by_constituency: dict[str, UKConstituencyBreakdownByConstituency] - outcomes_by_region: dict[str, dict[str, int]] - - -UKConstituencyBreakdown = UKConstituencyBreakdownWithValues | None - - -def uk_constituency_breakdown( - baseline: SingleEconomy, reform: SingleEconomy, country_id: str -) -> UKConstituencyBreakdown: - if country_id != "uk": - return None - - output = { - "by_constituency": {}, - "outcomes_by_region": {}, - } - for region in ["uk", "england", "scotland", "wales", "northern_ireland"]: - output["outcomes_by_region"][region] = { - "Gain more than 5%": 0, - "Gain less than 5%": 0, - "No change": 0, - "Lose less than 5%": 0, - "Lose more than 5%": 0, - } - baseline_hnet = baseline.household_net_income - reform_hnet = reform.household_net_income - - constituency_weights_path = download( - gcs_bucket="policyengine-uk-data-private", - filepath="parliamentary_constituency_weights.h5", - ) - with h5py.File(constituency_weights_path, "r") as f: - weights = f["2025"][ - ... - ] # {2025: array(650, 100180) where cell i, j is the weight of household record i in constituency j} - - constituency_names_path = download( - gcs_bucket="policyengine-uk-data-private", - filepath="constituencies_2024.csv", - ) - constituency_names = pd.read_csv( - constituency_names_path - ) # columns code (constituency code), name (constituency name), x, y (geographic position) - - for i in range(len(constituency_names)): - name: str = constituency_names.iloc[i]["name"] - code: str = constituency_names.iloc[i]["code"] - weight: np.ndarray = weights[i] - baseline_income = MicroSeries(baseline_hnet, weights=weight) - reform_income = MicroSeries(reform_hnet, weights=weight) - average_household_income_change: float = ( - reform_income.sum() - baseline_income.sum() - ) / baseline_income.count() - percent_household_income_change: float = ( - reform_income.sum() / baseline_income.sum() - 1 - ) - output["by_constituency"][name] = { - "average_household_income_change": average_household_income_change, - "relative_household_income_change": percent_household_income_change, - "x": int(constituency_names.iloc[i]["x"]), # Geographic positions - "y": int(constituency_names.iloc[i]["y"]), - } - - regions = ["uk"] - if "E" in code: - regions.append("england") - elif "S" in code: - regions.append("scotland") - elif "W" in code: - regions.append("wales") - elif "N" in code: - regions.append("northern_ireland") - - if percent_household_income_change > 0.05: - bucket = "Gain more than 5%" - elif percent_household_income_change > 1e-3: - bucket = "Gain less than 5%" - elif percent_household_income_change > -1e-3: - bucket = "No change" - elif percent_household_income_change > -0.05: - bucket = "Lose less than 5%" - else: - bucket = "Lose more than 5%" - - for region_ in regions: - output["outcomes_by_region"][region_][bucket] += 1 - - return UKConstituencyBreakdownWithValues(**output) - - -class CliffImpactInSimulation(BaseModel): - cliff_gap: float - cliff_share: float - - -class CliffImpact(BaseModel): - baseline: CliffImpactInSimulation - reform: CliffImpactInSimulation - - -class EconomyComparison(BaseModel): - model_version: Optional[str] = ( - None # Optional while some datasets have no tagged version. - ) - data_version: Optional[str] = None - budget: BudgetaryImpact - detailed_budget: DetailedBudgetaryImpact - decile: DecileImpact - inequality: InequalityImpact - poverty: PovertyImpact - poverty_by_gender: PovertyGenderBreakdown - poverty_by_race: PovertyRacialBreakdown - intra_decile: IntraDecileImpact - wealth_decile: WealthDecileImpact - intra_wealth_decile: IntraWealthDecileImpact - labor_supply_response: LaborSupplyResponse - constituency_impact: UKConstituencyBreakdown - cliff_impact: CliffImpact | None - - -def calculate_economy_comparison( - simulation: Simulation, -) -> EconomyComparison: - """Calculate comparison statistics between two economic scenarios.""" - if not simulation.is_comparison: - raise ValueError("Simulation must be a comparison simulation.") - - logging.info("Calculating baseline econonmy") - baseline: SingleEconomy = simulation.calculate_single_economy(reform=False) - logging.info("Calculating reform economy") - reform: SingleEconomy = simulation.calculate_single_economy(reform=True) - options = simulation.options - country_id = options.country - budgetary_impact_data = budgetary_impact(baseline, reform) - detailed_budgetary_impact_data = detailed_budgetary_impact( - baseline, reform, country_id - ) - decile_impact_data = decile_impact(baseline, reform) - inequality_impact_data = inequality_impact(baseline, reform) - poverty_impact_data = poverty_impact(baseline, reform) - poverty_by_gender_data = poverty_gender_breakdown(baseline, reform) - poverty_by_race_data = poverty_racial_breakdown(baseline, reform) - intra_decile_impact_data = intra_decile_impact(baseline, reform) - labor_supply_response_data = labor_supply_response(baseline, reform) - constituency_impact_data: UKConstituencyBreakdown = ( - uk_constituency_breakdown(baseline, reform, country_id) - ) - wealth_decile_impact_data = wealth_decile_impact( - baseline, reform, country_id - ) - intra_wealth_decile_impact_data = intra_wealth_decile_impact( - baseline, reform, country_id - ) - - if simulation.options.include_cliffs: - logging.info("Calculating cliff impacts") - cliff_impact = CliffImpact( - baseline=CliffImpactInSimulation( - cliff_gap=baseline.cliff_gap, - cliff_share=baseline.cliff_share, - ), - reform=CliffImpactInSimulation( - cliff_gap=reform.cliff_gap, - cliff_share=reform.cliff_share, - ), - ) - else: - cliff_impact = None - - logging.info("Comparison complete") - return EconomyComparison( - model_version=simulation.model_version, - data_version=simulation.data_version, - budget=budgetary_impact_data, - detailed_budget=detailed_budgetary_impact_data, - decile=decile_impact_data, - inequality=inequality_impact_data, - poverty=poverty_impact_data, - poverty_by_gender=poverty_by_gender_data, - poverty_by_race=poverty_by_race_data, - intra_decile=intra_decile_impact_data, - wealth_decile=wealth_decile_impact_data, - intra_wealth_decile=intra_wealth_decile_impact_data, - labor_supply_response=labor_supply_response_data, - constituency_impact=constituency_impact_data, - cliff_impact=cliff_impact, - ) diff --git a/policyengine/outputs/macro/comparison/decile.py b/policyengine/outputs/macro/comparison/decile.py deleted file mode 100644 index 9c84b295..00000000 --- a/policyengine/outputs/macro/comparison/decile.py +++ /dev/null @@ -1,209 +0,0 @@ -import typing - -from policyengine import Simulation, SimulationOptions - -from policyengine_core.simulations import Microsimulation - -from pydantic import BaseModel -from typing import Dict -import numpy as np - - -class IncomeMeasureSpecificDecileIncomeChange(BaseModel): - relative: Dict[int, float] - """Relative impacts by income decile.""" - average: Dict[int, float] - """Average impacts by income decile.""" - - -class IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes(BaseModel): - lose_more_than_5_percent_share: float - """Share of households losing more than 5% of net income.""" - lose_less_than_5_percent_share: float - """Share of households losing less than 5% of net income.""" - lose_share: float - """Share of households losing net income.""" - no_change_share: float - """Share of households with no change in net income.""" - gain_share: float - """Share of households gaining net income.""" - gain_less_than_5_percent_share: float - """Share of households gaining less than 5% of net income.""" - gain_more_than_5_percent_share: float - """Share of households gaining more than 5% of net income.""" - - -class IncomeMeasureSpecificDecileWinnersLosers(BaseModel): - deciles: Dict[int, IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes] - """Winners and losers by income decile.""" - all: IncomeMeasureSpecificDecileWinnersLosersGroupOutcomes - """Winners and losers for all households.""" - - -class IncomeMeasureSpecificDecileImpacts(BaseModel): - income_change: IncomeMeasureSpecificDecileIncomeChange - """Income change by income decile.""" - winners_and_losers: IncomeMeasureSpecificDecileWinnersLosers - """Winners and losers by income decile.""" - - -class DecileImpacts(BaseModel): - income: IncomeMeasureSpecificDecileImpacts - """Impacts by income decile.""" - wealth: IncomeMeasureSpecificDecileImpacts | None - """Impacts by wealth decile, if available.""" - - -def calculate_decile_impacts( - baseline: Microsimulation, - reform: Microsimulation, - options: "SimulationOptions", -) -> DecileImpacts: - """Calculate changes to households by income and wealth deciles.""" - income_impacts = calculate_income_specific_decile_impacts( - baseline, reform, by_wealth_decile=False - ) - if options.country == "uk": - wealth_impacts = calculate_income_specific_decile_impacts( - baseline, reform, by_wealth_decile=True - ) - else: - wealth_impacts = None - return DecileImpacts(income=income_impacts, wealth=wealth_impacts) - - -def calculate_income_specific_decile_impacts( - baseline: Microsimulation, - reform: Microsimulation, - by_wealth_decile: bool, -) -> IncomeMeasureSpecificDecileImpacts: - """Calculate changes to households by income and wealth deciles.""" - income_impacts = calculate_income_specific_decile_income_changes( - baseline, reform, by_wealth_decile - ) - winners_losers = calculate_income_specific_decile_winners_losers( - baseline, reform, by_wealth_decile - ) - return IncomeMeasureSpecificDecileImpacts( - income_change=income_impacts, winners_and_losers=winners_losers - ) - - -def calculate_income_specific_decile_winners_losers( - baseline: Microsimulation, - reform: Microsimulation, - by_wealth_decile: bool, -) -> dict: - """Calculate winners and losers by income and wealth deciles.""" - baseline_income = baseline.calculate("household_net_income") - reform_income = reform.calculate("household_net_income") - people_per_household = baseline.calculate("household_count_people") - if not by_wealth_decile: - decile = baseline.calculate("household_income_decile") - else: - wealth = baseline.calculate("total_wealth") - household_count_people = baseline.calculate("household_count_people") - wealth.weights *= household_count_people - decile = wealth.decile_rank().clip(1, 10).astype(int) - # Filter out negative decile values due to negative incomes - absolute_change = (reform_income - baseline_income).values - capped_baseline_income = np.maximum(baseline_income.values, 1) - capped_reform_income = ( - np.maximum(reform_income.values, 1) + absolute_change - ) - income_change = ( - capped_reform_income - capped_baseline_income - ) / capped_baseline_income - - # Within each decile, calculate the percentage of people who: - # 1. Gained more than 5% of their income - # 2. Gained between 0% and 5% of their income - # 3. Had no change in income - # 3. Lost between 0% and 5% of their income - # 4. Lost more than 5% of their income - - BOUNDS = [ - (-np.inf, -0.05), - (-0.05, -1e-3), - (-np.inf, -1e-3), - (-1e-3, 1e-3), - (1e-3, np.inf), - (1e-3, 0.05), - (0.05, np.inf), - ] - LABELS = [ - "lose_more_than_5_percent_share", - "lose_less_than_5_percent_share", - "lose_share", - "no_change_share", - "gain_share", - "gain_less_than_5_percent_share", - "gain_more_than_5_percent_share", - ] - - deciles = {} - all = {} - - for i in range(len(BOUNDS)): - lower, upper = BOUNDS[i] - label = LABELS[i] - - # First, add the 'all' group - - total_people = people_per_household.sum() - in_group = (income_change >= lower) & (income_change < upper) - people_in_group = people_per_household[in_group].sum() - share_in_group = people_in_group / total_people - all[label] = share_in_group - - # Next, add the decile-specific groups - - for d in range(1, 11): - in_group = (income_change[decile == d] >= lower) & ( - income_change[decile == d] < upper - ) - people_in_group = people_per_household[decile == d][in_group].sum() - people_in_decile = people_per_household[decile == d].sum() - share_in_group = people_in_group / people_in_decile - if d not in deciles: - deciles[d] = {} - deciles[d][label] = share_in_group - - return IncomeMeasureSpecificDecileWinnersLosers(deciles=deciles, all=all) - - -def calculate_income_specific_decile_income_changes( - baseline: Microsimulation, - reform: Microsimulation, - by_wealth_decile: bool, -) -> dict: - """Calculate changes to households by income and wealth deciles.""" - baseline_income = baseline.calculate("household_net_income") - reform_income = reform.calculate("household_net_income") - if not by_wealth_decile: - decile = baseline.calculate("household_income_decile") - else: - wealth = baseline.calculate("total_wealth") - household_count_people = baseline.calculate("household_count_people") - wealth.weights *= household_count_people - decile = wealth.decile_rank().clip(1, 10).astype(int) - # Filter out negative decile values due to negative incomes - baseline_income_filtered = baseline_income[decile >= 0] - reform_income_filtered = reform_income[decile >= 0] - - income_change = reform_income_filtered - baseline_income_filtered - rel_income_change_by_decile = ( - income_change.groupby(decile).sum() - / baseline_income_filtered.groupby(decile).sum() - ) - avg_income_change_by_decile = ( - income_change.groupby(decile).sum() - / baseline_income_filtered.groupby(decile).count() - ) - rel_decile_dict = rel_income_change_by_decile.to_dict() - avg_decile_dict = avg_income_change_by_decile.to_dict() - per_decile_changes = dict( - relative={int(k): v for k, v in rel_decile_dict.items()}, - average={int(k): v for k, v in avg_decile_dict.items()}, - ) - return IncomeMeasureSpecificDecileIncomeChange(**per_decile_changes) diff --git a/policyengine/outputs/macro/single/__init__.py b/policyengine/outputs/macro/single/__init__.py deleted file mode 100644 index 132080a5..00000000 --- a/policyengine/outputs/macro/single/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from .budget import _calculate_government_balance, FiscalSummary -from .inequality import _calculate_inequality, InequalitySummary diff --git a/policyengine/outputs/macro/single/budget.py b/policyengine/outputs/macro/single/budget.py deleted file mode 100644 index 468ec6c8..00000000 --- a/policyengine/outputs/macro/single/budget.py +++ /dev/null @@ -1,82 +0,0 @@ -import typing - -from policyengine import Simulation, SimulationOptions - -from policyengine_core.simulations import Microsimulation - -from pydantic import BaseModel - - -class TaxBenefitProgram(BaseModel): - name: str - """The name of the tax-benefit program.""" - is_positive: bool - """Whether the program is positive on the *government* balance sheet.""" - - -UK_PROGRAMS = [ - TaxBenefitProgram(name="income_tax", is_positive=True), - TaxBenefitProgram(name="national_insurance", is_positive=True), - TaxBenefitProgram(name="ni_employer", is_positive=True), - TaxBenefitProgram(name="vat", is_positive=True), - TaxBenefitProgram(name="council_tax", is_positive=True), - TaxBenefitProgram(name="fuel_duty", is_positive=True), - TaxBenefitProgram(name="tax_credits", is_positive=False), - TaxBenefitProgram(name="universal_credit", is_positive=False), - TaxBenefitProgram(name="child_benefit", is_positive=False), - TaxBenefitProgram(name="state_pension", is_positive=False), - TaxBenefitProgram(name="pension_credit", is_positive=False), -] - - -class FiscalSummary(BaseModel): - tax_revenue: float - """The total tax revenue collected by the government.""" - federal_tax: float - """The total tax revenue collected by the federal (or national) government.""" - federal_balance: float - """Federal taxes subtract spending.""" - state_tax: float - """The total tax revenue collected by the state government.""" - government_spending: float - """The total spending by the (federal) government on modeled programs.""" - tax_benefit_programs: dict[str, float] - """The total revenue change to the government from each tax-benefit program.""" - household_net_income: float - """The total net income of the households in the simulation.""" - - -def _calculate_government_balance( - simulation: Microsimulation, - options: "SimulationOptions", -) -> FiscalSummary: - """Calculate government balance metrics for a set of households.""" - tb_programs = {} - if options.country == "uk": - total_tax = simulation.calculate("gov_tax").sum() - total_spending = simulation.calculate("gov_spending").sum() - for program in UK_PROGRAMS: - tb_programs[program.name] = simulation.calculate( - program.name - ).sum() * (1 if program.is_positive else -1) - total_state_tax = 0 - else: - total_tax = simulation.calculate("household_tax").sum() - total_spending = simulation.calculate("household_benefits").sum() - total_state_tax = simulation.calculate( - "household_state_income_tax" - ).sum() - - national_tax = total_tax - total_state_tax - - total_net_income = simulation.calculate("household_net_income").sum() - - return FiscalSummary( - tax_revenue=total_tax, - federal_tax=national_tax, - federal_balance=national_tax - total_spending, - state_tax=total_state_tax, - government_spending=total_spending, - tax_benefit_programs=tb_programs, - household_net_income=total_net_income, - ) diff --git a/policyengine/outputs/macro/single/calculate_average_earnings.py b/policyengine/outputs/macro/single/calculate_average_earnings.py deleted file mode 100644 index 764071e1..00000000 --- a/policyengine/outputs/macro/single/calculate_average_earnings.py +++ /dev/null @@ -1,9 +0,0 @@ -from policyengine import Simulation - - -def calculate_average_earnings(simulation: Simulation) -> float: - """Calculate average earnings.""" - employment_income = simulation.baseline_simulation.calculate( - "employment_income" - ) - return employment_income[employment_income > 0].median() diff --git a/policyengine/outputs/macro/single/calculate_single_economy.py b/policyengine/outputs/macro/single/calculate_single_economy.py deleted file mode 100644 index 34e5ee1d..00000000 --- a/policyengine/outputs/macro/single/calculate_single_economy.py +++ /dev/null @@ -1,451 +0,0 @@ -"""Calculate comparison statistics between two economic scenarios.""" - -import typing - -from policyengine import Simulation - -from pydantic import BaseModel -from typing import List - -from policyengine_core.simulations import Microsimulation -from typing import Dict -from dataclasses import dataclass -from typing import Literal -from microdf import MicroSeries - - -class SingleEconomy(BaseModel): - total_net_income: float - employment_income_hh: List[float] - self_employment_income_hh: List[float] - total_tax: float - total_state_tax: float - total_benefits: float - household_net_income: List[float] - equiv_household_net_income: List[float] - household_income_decile: List[int] - household_market_income: List[float] - household_wealth_decile: List[int] | None - household_wealth: List[float] | None - in_poverty: List[bool] - person_in_poverty: List[bool] - person_in_deep_poverty: List[bool] - poverty_gap: float - deep_poverty_gap: float - person_weight: List[float] - household_weight: List[float] - household_count_people: List[int] - gini: float - top_10_percent_share: float - top_1_percent_share: float - is_male: List[bool] - race: List[str] | None - age: List[int] - substitution_lsr: float - income_lsr: float - budgetary_impact_lsr: float - income_lsr_hh: List[float] - substitution_lsr_hh: List[float] - weekly_hours: float | None - weekly_hours_income_effect: float | None - weekly_hours_substitution_effect: float | None - type: Literal["general", "cliff"] - programs: Dict[str, float] | None - cliff_gap: float | None = None - cliff_share: float | None = None - - -@dataclass -class UKProgram: - name: str - is_positive: bool - - -class UKPrograms: - PROGRAMS = [ - UKProgram("income_tax", True), - UKProgram("national_insurance", True), - UKProgram("vat", True), - UKProgram("council_tax", True), - UKProgram("fuel_duty", True), - UKProgram("tax_credits", False), - UKProgram("universal_credit", False), - UKProgram("child_benefit", False), - UKProgram("state_pension", False), - UKProgram("pension_credit", False), - UKProgram("ni_employer", True), - ] - - -class GeneralEconomyTask: - def __init__(self, simulation: Microsimulation, country_id: str): - self.simulation = simulation - self.country_id = country_id - self.household_count_people = self.simulation.calculate( - "household_count_people" - ) - - def calculate_tax_and_spending(self): - if self.country_id == "uk": - total_tax = self.simulation.calculate("gov_tax").sum() - total_spending = self.simulation.calculate("gov_spending").sum() - else: - total_tax = self.simulation.calculate("household_tax").sum() - total_spending = self.simulation.calculate( - "household_benefits" - ).sum() - return total_tax, total_spending - - def calculate_inequality_metrics(self): - personal_hh_equiv_income = self._get_weighted_household_income() - - try: - gini = personal_hh_equiv_income.gini() - except Exception as e: - print( - "WARNING: Gini index calculations resulted in an error: returning no change, but this is inaccurate." - ) - print("Error: ", e) - gini = 0.4 - - in_top_10_pct = personal_hh_equiv_income.decile_rank() == 10 - in_top_1_pct = personal_hh_equiv_income.percentile_rank() == 100 - - personal_hh_equiv_income.weights /= self.household_count_people - - top_10_share = ( - personal_hh_equiv_income[in_top_10_pct].sum() - / personal_hh_equiv_income.sum() - ) - top_1_share = ( - personal_hh_equiv_income[in_top_1_pct].sum() - / personal_hh_equiv_income.sum() - ) - - return gini, top_10_share, top_1_share - - def _get_weighted_household_income(self): - income = self.simulation.calculate("equiv_household_net_income") - income[income < 0] = 0 - income.weights *= self.household_count_people - return income - - def calculate_income_breakdown_metrics(self): - total_net_income = self.simulation.calculate( - "household_net_income" - ).sum() - employment_income_hh = ( - self.simulation.calculate("employment_income", map_to="household") - .astype(float) - .tolist() - ) - self_employment_income_hh = ( - self.simulation.calculate( - "self_employment_income", map_to="household" - ) - .astype(float) - .tolist() - ) - - return ( - total_net_income, - employment_income_hh, - self_employment_income_hh, - ) - - def calculate_household_income_metrics(self): - household_net_income = ( - self.simulation.calculate("household_net_income") - .astype(float) - .tolist() - ) - equiv_household_net_income = ( - self.simulation.calculate("equiv_household_net_income") - .astype(float) - .tolist() - ) - household_income_decile = ( - self.simulation.calculate("household_income_decile") - .astype(int) - .tolist() - ) - household_market_income = ( - self.simulation.calculate("household_market_income") - .astype(float) - .tolist() - ) - - return ( - household_net_income, - equiv_household_net_income, - household_income_decile, - household_market_income, - ) - - def calculate_wealth_metrics(self): - try: - wealth = self.simulation.calculate("total_wealth") - wealth.weights *= self.household_count_people - wealth_decile = ( - wealth.decile_rank().clip(1, 10).astype(int).tolist() - ) - wealth = wealth.astype(float).tolist() - except Exception as e: - wealth = None - wealth_decile = None - return wealth, wealth_decile - - def calculate_demographic_metrics(self): - try: - is_male = ( - self.simulation.calculate("is_male").astype(bool).tolist() - ) - except Exception: - is_male = None - - try: - race = self.simulation.calculate("race").astype(str).tolist() - except Exception: - race = None - - age = self.simulation.calculate("age").astype(int).tolist() - - return is_male, race, age - - def calculate_poverty_metrics(self): - in_poverty = ( - self.simulation.calculate("in_poverty").astype(bool).tolist() - ) - person_in_poverty = ( - self.simulation.calculate("in_poverty", map_to="person") - .astype(bool) - .tolist() - ) - person_in_deep_poverty = ( - self.simulation.calculate("in_deep_poverty", map_to="person") - .astype(bool) - .tolist() - ) - poverty_gap = self.simulation.calculate("poverty_gap").sum() - deep_poverty_gap = self.simulation.calculate("deep_poverty_gap").sum() - return ( - in_poverty, - person_in_poverty, - person_in_deep_poverty, - poverty_gap, - deep_poverty_gap, - ) - - def calculate_weights(self): - person_weight = ( - self.simulation.calculate("person_weight").astype(float).tolist() - ) - household_weight = ( - self.simulation.calculate("household_weight") - .astype(float) - .tolist() - ) - - return person_weight, household_weight - - def calculate_labor_supply_responses(self): - result = { - "substitution_lsr": 0, - "income_lsr": 0, - "budgetary_impact_lsr": 0, - "income_lsr_hh": (self.household_count_people * 0) - .astype(float) - .tolist(), - "substitution_lsr_hh": (self.household_count_people * 0) - .astype(float) - .tolist(), - } - - if not self._has_behavioral_response(): - return result - - result.update( - { - "substitution_lsr": self.simulation.calculate( - "substitution_elasticity_lsr" - ).sum(), - "income_lsr": self.simulation.calculate( - "income_elasticity_lsr" - ).sum(), - "income_lsr_hh": self.simulation.calculate( - "income_elasticity_lsr", map_to="household" - ) - .astype(float) - .tolist(), - "substitution_lsr_hh": self.simulation.calculate( - "substitution_elasticity_lsr", map_to="household" - ) - .astype(float) - .tolist(), - } - ) - - return result - - def _has_behavioral_response(self) -> bool: - return ( - "employment_income_behavioral_response" - in self.simulation.tax_benefit_system.variables - and any( - self.simulation.calculate( - "employment_income_behavioral_response" - ) - != 0 - ) - ) - - def calculate_lsr_working_hours(self): - if self.country_id != "us": - return { - "weekly_hours": 0, - "weekly_hours_income_effect": 0, - "weekly_hours_substitution_effect": 0, - } - - return { - "weekly_hours": self.simulation.calculate( - "weekly_hours_worked" - ).sum(), - "weekly_hours_income_effect": self.simulation.calculate( - "weekly_hours_worked_behavioural_response_income_elasticity" - ).sum(), - "weekly_hours_substitution_effect": self.simulation.calculate( - "weekly_hours_worked_behavioural_response_substitution_elasticity" - ).sum(), - } - - def calculate_uk_programs(self) -> Dict[str, float]: - if self.country_id != "uk": - return {} - - return { - program.name: self.simulation.calculate( - program.name, map_to="household" - ).sum() - * (1 if program.is_positive else -1) - for program in UKPrograms.PROGRAMS - } - - def calculate_cliffs(self): - cliff_gap: MicroSeries = self.simulation.calculate("cliff_gap") - is_on_cliff: MicroSeries = self.simulation.calculate("is_on_cliff") - total_cliff_gap: float = cliff_gap.sum() - total_adults: float = self.simulation.calculate("is_adult").sum() - cliff_share: float = is_on_cliff.sum() / total_adults - return CliffImpactInSimulation( - cliff_gap=total_cliff_gap, - cliff_share=cliff_share, - ) - - -class CliffImpactInSimulation(BaseModel): - cliff_gap: float - cliff_share: float - - -def calculate_single_economy( - simulation: Simulation, reform: bool = False -) -> Dict: - include_cliffs = simulation.options.include_cliffs - task_manager = GeneralEconomyTask( - ( - simulation.baseline_simulation - if not reform - else simulation.reform_simulation - ), - simulation.options.country, - ) - country_id = simulation.options.country - - total_tax, total_spending = task_manager.calculate_tax_and_spending() - gini, top_10_share, top_1_share = ( - task_manager.calculate_inequality_metrics() - ) - wealth, wealth_decile = task_manager.calculate_wealth_metrics() - is_male, race, age = task_manager.calculate_demographic_metrics() - labor_supply_responses = task_manager.calculate_labor_supply_responses() - lsr_working_hours = task_manager.calculate_lsr_working_hours() - ( - in_poverty, - person_in_poverty, - person_in_deep_poverty, - poverty_gap, - deep_poverty_gap, - ) = task_manager.calculate_poverty_metrics() - total_net_income, employment_income_hh, self_employment_income_hh = ( - task_manager.calculate_income_breakdown_metrics() - ) - ( - household_net_income, - equiv_household_net_income, - household_income_decile, - household_market_income, - ) = task_manager.calculate_household_income_metrics() - person_weight, household_weight = task_manager.calculate_weights() - - if country_id == "uk": - uk_programs = task_manager.calculate_uk_programs() - else: - uk_programs = None - - total_state_tax = 0 - - if country_id == "us": - try: - total_state_tax = task_manager.simulation.calculate( - "household_state_income_tax" - ).sum() - except: - total_state_tax = 0 - - if include_cliffs: - cliffs = task_manager.calculate_cliffs() - cliff_gap = cliffs.cliff_gap - cliff_share = cliffs.cliff_share - else: - cliff_gap = None - cliff_share = None - - return SingleEconomy( - **{ - "total_net_income": total_net_income, - "employment_income_hh": employment_income_hh, - "self_employment_income_hh": self_employment_income_hh, - "total_tax": total_tax, - "total_state_tax": total_state_tax, - "total_benefits": total_spending, - "household_net_income": household_net_income, - "equiv_household_net_income": equiv_household_net_income, - "household_income_decile": household_income_decile, - "household_market_income": household_market_income, - "household_wealth_decile": wealth_decile, - "household_wealth": wealth, - "in_poverty": in_poverty, - "person_in_poverty": person_in_poverty, - "person_in_deep_poverty": person_in_deep_poverty, - "poverty_gap": poverty_gap, - "deep_poverty_gap": deep_poverty_gap, - "person_weight": person_weight, - "household_weight": household_weight, - "household_count_people": task_manager.household_count_people.astype( - int - ).tolist(), - "gini": float(gini), - "top_10_percent_share": float(top_10_share), - "top_1_percent_share": float(top_1_share), - "is_male": is_male, - "race": race, - "age": age, - **labor_supply_responses, - **lsr_working_hours, - "type": "general" if not include_cliffs else "cliff", - "programs": uk_programs, - "cliff_gap": cliff_gap if include_cliffs else None, - "cliff_share": cliff_share if include_cliffs else None, - } - ) diff --git a/policyengine/outputs/macro/single/inequality.py b/policyengine/outputs/macro/single/inequality.py deleted file mode 100644 index 827a9b6a..00000000 --- a/policyengine/outputs/macro/single/inequality.py +++ /dev/null @@ -1,53 +0,0 @@ -import typing - -from policyengine import Simulation, SimulationOptions - -from policyengine_core.simulations import Microsimulation - -from pydantic import BaseModel - - -class InequalitySummary(BaseModel): - gini: float - """The Gini coefficient of the household net income distribution.""" - top_10_share: float - """The share of total income held by the top 10% of households.""" - top_1_share: float - """The share of total income held by the top 1% of households.""" - - -def _calculate_inequality( - simulation: Microsimulation, -): - """Calculate inequality statistics for a set of households.""" - income = simulation.calculate("equiv_household_net_income") - income[income < 0] = 0 - household_count_people = simulation.calculate("household_count_people") - income.weights *= household_count_people - personal_hh_equiv_income = income - try: - gini = personal_hh_equiv_income.gini() - except: - print("WARNING: Gini calculation failed. Setting to 0.4.") - gini = 0.4 - in_top_10_pct = personal_hh_equiv_income.decile_rank() == 10 - in_top_1_pct = personal_hh_equiv_income.percentile_rank() == 100 - - personal_hh_equiv_income.weights /= ( - household_count_people # Don't double-count people - ) - - top_10_share = ( - personal_hh_equiv_income[in_top_10_pct].sum() - / personal_hh_equiv_income.sum() - ) - top_1_share = ( - personal_hh_equiv_income[in_top_1_pct].sum() - / personal_hh_equiv_income.sum() - ) - - return InequalitySummary( - gini=gini, - top_10_share=top_10_share, - top_1_share=top_1_share, - ) diff --git a/policyengine/simulation.py b/policyengine/simulation.py deleted file mode 100644 index f0733705..00000000 --- a/policyengine/simulation.py +++ /dev/null @@ -1,420 +0,0 @@ -"""Simulate tax-benefit policy and derive society-level output statistics.""" - -import sys -from pydantic import BaseModel, Field -from typing import Literal -from .utils.data.datasets import ( - get_default_dataset, - process_gs_path, - POLICYENGINE_DATASETS, - DATASET_TIME_PERIODS, -) -from policyengine_core.simulations import Simulation as CountrySimulation -from policyengine_core.simulations import ( - Microsimulation as CountryMicrosimulation, -) -from .utils.reforms import ParametricReform -from policyengine_core.reforms import Reform as StructuralReform -from policyengine_core.data import Dataset -from policyengine_us import ( - Simulation as USSimulation, - Microsimulation as USMicrosimulation, -) -from policyengine_uk import ( - Simulation as UKSimulation, - Microsimulation as UKMicrosimulation, -) -from importlib import metadata -import h5py -from pathlib import Path -import pandas as pd -from typing import Type, Any, Optional -from functools import wraps, partial -from typing import Callable -import importlib -from policyengine.utils.data_download import download -import logging - -logger = logging.getLogger(__file__) - -CountryType = Literal["uk", "us"] -ScopeType = Literal["household", "macro"] -DataType = ( - str | dict[Any, Any] | Any | None -) # Needs stricter typing. Any==policyengine_core.data.Dataset, but pydantic refuses for some reason. -TimePeriodType = int -ReformType = ParametricReform | Type[StructuralReform] | None -RegionType = Optional[str] -SubsampleType = Optional[int] - - -class SimulationOptions(BaseModel): - country: CountryType = Field(..., description="The country to simulate.") - scope: ScopeType = Field(..., description="The scope of the simulation.") - data: DataType = Field(None, description="The data to simulate.") - time_period: TimePeriodType = Field( - 2025, description="The time period to simulate." - ) - reform: ReformType = Field(None, description="The reform to simulate.") - baseline: ReformType = Field(None, description="The baseline to simulate.") - region: RegionType = Field( - None, description="The region to simulate within the country." - ) - subsample: SubsampleType = Field( - None, - description="How many, if a subsample, households to randomly simulate.", - ) - title: Optional[str] = Field( - "[Analysis title]", - description="The title of the analysis (for charts). If not provided, a default title will be generated.", - ) - include_cliffs: Optional[bool] = Field( - False, - description="Whether to include tax-benefit cliffs in the simulation analyses. If True, cliffs will be included.", - ) - model_version: Optional[str] = Field( - None, - description="The version of the country model used in the simulation. If not provided, the current package version will be used. If provided, this package will throw an error if the package version does not match. Use this as an extra safety check.", - ) - data_version: Optional[str] = Field( - None, - description="The version of the data used in the simulation. If not provided, the current data version will be used. If provided, this package will throw an error if the data version does not match. Use this as an extra safety check.", - ) - - model_config = { - "arbitrary_types_allowed": True, - } - - -class Simulation: - """Simulate tax-benefit policy and derive society-level output statistics.""" - - is_comparison: bool - """Whether the simulation is a comparison between two scenarios.""" - baseline_simulation: CountrySimulation - """The baseline tax-benefit simulation.""" - reform_simulation: CountrySimulation | None = None - """The reform tax-benefit simulation.""" - data_version: Optional[str] = None - """The version of the data used in the simulation.""" - model_version: Optional[str] = None - - def __init__(self, **options: SimulationOptions): - self.options = SimulationOptions(**options) - self.check_model_version() - if not isinstance(self.options.data, dict) and not isinstance( - self.options.data, Dataset - ): - logging.debug("Loading data") - self._set_data(self.options.data) - logging.info("Data loaded") - self._initialise_simulations() - logging.info("Simulations initialised") - self.check_data_version() - self._add_output_functions() - logging.info("Output functions loaded") - - def _add_output_functions(self): - folder = Path(__file__).parent / "outputs" - - for module in folder.glob("**/*.py"): - if module.stem == "__init__": - continue - python_module = ( - module.relative_to(folder.parent) - .with_suffix("") - .as_posix() - .replace("/", ".") - ) - module = importlib.import_module("policyengine." + python_module) - for name in dir(module): - func = getattr(module, name) - if isinstance(func, Callable): - if hasattr(func, "__annotations__"): - if ( - func.__annotations__.get("simulation") - == Simulation - ): - wrapped_func = wraps(func)( - partial(func, simulation=self) - ) - wrapped_func.__annotations__ = func.__annotations__ - setattr( - self, - func.__name__, - wrapped_func, - ) - - def _set_data(self, file_address: str | None = None) -> None: - - # filename refers to file's unique name + extension; - # file_address refers to URI + filename - - # If None is passed, user wants default dataset; get URL, then continue initializing. - if file_address is None: - file_address = get_default_dataset( - country=self.options.country, region=self.options.region - ) - print( - f"No data provided, using default dataset: {file_address}", - file=sys.stderr, - ) - - if file_address not in POLICYENGINE_DATASETS: - # If it's a local file, no URI present and unable to infer version. - filename = file_address - version = None - - else: - # All official PolicyEngine datasets are stored in GCS; - # load accordingly - filename, version = self._set_data_from_gs(file_address) - self.data_version = version - - time_period = self._set_data_time_period(file_address) - - # UK needs custom loading - if self.options.country == "us": - self.options.data = Dataset.from_file( - filename, time_period=time_period - ) - else: - from policyengine_uk.data import UKSingleYearDataset - - self.options.data = UKSingleYearDataset( - file_path=filename, - ) - - def _initialise_simulations(self): - self.baseline_simulation = self._initialise_simulation( - scope=self.options.scope, - country=self.options.country, - reform=self.options.baseline, - data=self.options.data, - time_period=self.options.time_period, - region=self.options.region, - subsample=self.options.subsample, - ) - - if self.options.reform is not None: - self.reform_simulation = self._initialise_simulation( - scope=self.options.scope, - country=self.options.country, - reform=self.options.reform, - data=self.options.data, - time_period=self.options.time_period, - region=self.options.region, - subsample=self.options.subsample, - ) - self.is_comparison = True - else: - self.is_comparison = False - - def _initialise_simulation( - self, - country: CountryType, - scope: ScopeType, - reform: ReformType, - data: DataType, - time_period: TimePeriodType, - region: RegionType, - subsample: SubsampleType, - ) -> CountrySimulation: - macro = scope == "macro" - _simulation_type: Type[CountrySimulation] = { - "uk": { - True: UKMicrosimulation, - False: UKSimulation, - }, - "us": { - True: USMicrosimulation, - False: USSimulation, - }, - }[country][macro] - - if isinstance(reform, ParametricReform): - reform = reform.model_dump() - - simulation: CountrySimulation = _simulation_type( - dataset=data if macro else None, - situation=data if not macro else None, - reform=reform, - ) - - simulation.default_calculation_period = time_period - - if region is not None: - simulation = self._apply_region_to_simulation( - country=country, - simulation=simulation, - simulation_type=_simulation_type, - region=region, - reform=reform, - time_period=time_period, - ) - - if subsample is not None: - simulation = simulation.subsample(subsample) - - simulation.default_calculation_period = time_period - - return simulation - - def _apply_region_to_simulation( - self, - country: CountryType, - simulation: CountryMicrosimulation, - simulation_type: type, - region: RegionType, - reform: ReformType | None, - time_period: TimePeriodType, - ) -> CountrySimulation: - if country == "us": - df = simulation.to_input_dataframe() - state_code = simulation.calculate( - "state_code_str", map_to="person" - ).values - if region == "city/nyc": - in_nyc = simulation.calculate("in_nyc", map_to="person").values - simulation = simulation_type(dataset=df[in_nyc], reform=reform) - elif "state/" in region: - state = region.split("/")[1] - simulation = simulation_type( - dataset=df[state_code == state.upper()], reform=reform - ) - elif country == "uk": - if "country/" in region: - region = region.split("/")[1] - df = simulation.to_input_dataframe() - country = simulation.calculate( - "country", map_to="person" - ).values - simulation = simulation_type( - dataset=df[country == region.upper()], reform=reform - ) - elif "constituency/" in region: - constituency = region.split("/")[1] - constituency_names_file_path = download( - gcs_bucket="policyengine-uk-data-private", - filepath="constituencies_2024.csv", - ) - constituency_names_file_path = Path( - constituency_names_file_path - ) - constituency_names = pd.read_csv(constituency_names_file_path) - if constituency in constituency_names.code.values: - constituency_id = constituency_names[ - constituency_names.code == constituency - ].index[0] - elif constituency in constituency_names.name.values: - constituency_id = constituency_names[ - constituency_names.name == constituency - ].index[0] - else: - raise ValueError( - f"Constituency {constituency} not found. See {constituency_names_file_path} for the list of available constituencies." - ) - weights_file_path = download( - gcs_bucket="policyengine-uk-data-private", - filepath="parliamentary_constituency_weights.h5", - ) - - with h5py.File(weights_file_path, "r") as f: - weights = f[str(time_period)][...] - - simulation.set_input( - "household_weight", - simulation.default_calculation_period, - weights[constituency_id], - ) - elif "local_authority/" in region: - la = region.split("/")[1] - la_names_file_path = download( - gcs_bucket="policyengine-uk-data-private", - filepath="local_authorities_2021.csv", - ) - la_names_file_path = Path(la_names_file_path) - la_names = pd.read_csv(la_names_file_path) - if la in la_names.code.values: - la_id = la_names[la_names.code == la].index[0] - elif la in la_names.name.values: - la_id = la_names[la_names.name == la].index[0] - else: - raise ValueError( - f"Local authority {la} not found. See {la_names_file_path} for the list of available local authorities." - ) - weights_file_path = download( - gcs_bucket="policyengine-uk-data-private", - filepath="local_authority_weights.h5", - ) - - with h5py.File(weights_file_path, "r") as f: - weights = f[str(self.time_period)][...] - - simulation.set_input( - "household_weight", - simulation.default_calculation_period, - weights[la_id], - ) - - return simulation - - def check_model_version(self) -> None: - """ - Check the package versions of the simulation against the current package versions. - """ - package = f"policyengine-{self.options.country}" - try: - installed_version = metadata.version(package) - self.model_version = installed_version - except metadata.PackageNotFoundError: - raise ValueError( - f"Package {package} not found. Try running `pip install {package}`." - ) - if self.options.model_version is not None: - target_version = self.options.model_version - if installed_version != target_version: - raise ValueError( - f"Package {package} version {installed_version} does not match expected version {target_version}. Try running `pip install {package}=={target_version}`." - ) - - def check_data_version(self) -> None: - """ - Check the data versions of the simulation against the current data versions. - """ - if self.options.data_version is not None: - if self.data_version != self.options.data_version: - raise ValueError( - f"Data version {self.data_version} does not match expected version {self.options.data_version}." - ) - - def _set_data_time_period(self, file_address: str) -> Optional[int]: - """ - Set the time period based on the file address. - If the file address is a PE dataset, return the time period from the dataset. - If it's a local file, return None. - """ - if file_address in DATASET_TIME_PERIODS: - return DATASET_TIME_PERIODS[file_address] - else: - # Local file, no time period available - return None - - def _set_data_from_gs(self, file_address: str) -> tuple[str, str | None]: - """ - Set the data from a GCS path and return the filename and version. - """ - - bucket, filename = process_gs_path(file_address) - version = self.options.data_version - - print(f"Downloading {filename} from bucket {bucket}", file=sys.stderr) - - filepath, version = download( - filepath=filename, - gcs_bucket=bucket, - version=version, - return_version=True, - ) - - return filename, version diff --git a/policyengine/utils/__init__.py b/policyengine/utils/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/policyengine/utils/budget.py b/policyengine/utils/budget.py deleted file mode 100644 index e2d0e12f..00000000 --- a/policyengine/utils/budget.py +++ /dev/null @@ -1,72 +0,0 @@ -import pandas as pd - - -def budget_breakdown( - subreforms: list, - subreform_names: list, - years: list, - baseline: dict, - options: dict, - verbose: bool = False, -): - """Create a table of per-provision budgetary impacts for a given reform. - - Args: - subreforms (list): A list of reform dictionaries. - subreform_names (list): A list of names for the provisions in the reform. - years (list): A list of years to include in the breakdown. - baseline (dict): The baseline reform. - options (dict): The simulation options. - verbose (bool, optional): Whether to print the budgetary impacts. Defaults to False. - - Returns: - pd.DataFrame: A DataFrame containing the budgetary impact of the reform by provision. - """ - from policyengine import Simulation - - subreform_items = [] - year_items = [] - budget_items = [] - for year in years: - last_budgetary_impact = 0 - for i in range(len(subreforms)): - reform_subset = subreforms[: i + 1] - sim = Simulation( - country="uk", - scope="macro", - baseline=baseline, - reform=reform_subset, - time_period=year, - options=options, - ) - budget = sim.calculate("macro/comparison/budget/general")[ - "budgetary_impact" - ] - key_focus = subreform_names[i] - difference = budget - last_budgetary_impact - last_budgetary_impact = budget - - subreform_items.append(key_focus) - year_items.append(year) - budget_items.append(difference) - if verbose: - print( - f"Year: {year}, Provision: {key_focus}, Budgetary impact: {round(difference/1e9)}" - ) - - df = pd.DataFrame( - { - "Provision": subreform_items, - "Year": year_items, - "Budgetary impact": budget_items, - } - ) - - table = pd.pivot_table( - df, - values="Budgetary impact", - columns="Year", - index="Provision", - aggfunc="first", - ) - return table diff --git a/policyengine/utils/calculations.py b/policyengine/utils/calculations.py deleted file mode 100644 index 0a9aa709..00000000 --- a/policyengine/utils/calculations.py +++ /dev/null @@ -1,56 +0,0 @@ -from typing import Dict -from pydantic import BaseModel -import numpy as np - -Output = Dict[str, float | None] - - -def get_change( - x: Output | Dict[str, Output], - y: Output | Dict[str, Output], - relative: bool, - skip_mismatch: bool = False, -) -> Output | Dict[str, Output]: - """Take two objects of nested str-float relations and create a similarly-structured object with the differences.""" - if isinstance(x, BaseModel): - output_class = type(x) - x = x.model_dump() - else: - output_class = dict - if isinstance(y, BaseModel): - y = y.model_dump() - result = {} - for key in x: - if isinstance(x[key], dict): - result[key] = get_change(x[key], y[key], relative=relative) - elif isinstance(x[key], list): - try: - result[key] = list(np.array(y[key]) - np.array(x[key])) - except: - result[key] = None - elif x[key] is None and y[key] is None: - result[key] = None - elif x[key] is None: - if skip_mismatch: - result[key] = None - else: - raise ValueError(f"Key {key} is None in x but not in y") - elif y[key] is None: - if skip_mismatch: - result[key] = None - else: - raise ValueError(f"Key {key} is None in y but not in x") - elif isinstance(x[key], str) or isinstance(y[key], str): - if x[key] == y[key]: - result[key] = 0 - else: - result[key] = f"{x[key]} -> {y[key]}" - elif not relative: - result[key] = y[key] - x[key] - else: - if x[key] == 0: - result[key] = 0 - else: - result[key] = (y[key] - x[key]) / x[key] - - return output_class(**result) diff --git a/policyengine/utils/charts.py b/policyengine/utils/charts.py deleted file mode 100644 index 6575c1e3..00000000 --- a/policyengine/utils/charts.py +++ /dev/null @@ -1,194 +0,0 @@ -import plotly.graph_objects as go -from IPython.core.display import HTML, display_html -from policyengine.utils.packages import get_country_package_version - - -def add_fonts(): - fonts = HTML( - """ - - - - """ - ) - return display_html(fonts) - - -GREEN = "#29d40f" -LIGHT_GREEN = "#C5E1A5" -DARK_GREEN = "#558B2F" -BLUE_LIGHT = "#D8E6F3" -BLUE_PRIMARY = BLUE = "#2C6496" -BLUE_PRESSED = "#17354F" -BLUE_98 = "#F7FAFD" -BLUE_95 = "#D8E6F3" -TEAL_LIGHT = "#D7F4F2" -TEAL_ACCENT = "#39C6C0" -TEAL_PRESSED = "#227773" -DARKEST_BLUE = "#0C1A27" -DARK_GRAY = "#616161" -GRAY = "#808080" -LIGHT_GRAY = "#F2F2F2" -MEDIUM_DARK_GRAY = "#D2D2D2" -MEDIUM_LIGHT_GRAY = "#BDBDBD" -WHITE = "#FFFFFF" -TEAL_98 = "#F7FDFC" -BLACK = "#000000" -FOG_GRAY = "#F4F4F4" - -BLUE_COLOR_SCALE = [ - BLUE_LIGHT, - BLUE_PRIMARY, - BLUE_PRESSED, -] - - -def format_fig( - fig: go.Figure, country: str = "uk", add_zero_line: bool = False -) -> go.Figure: - """Format a plotly figure to match the PolicyEngine style guide. - - Args: - fig (go.Figure): A plotly figure. - country (str): The country for which the style guide should be applied. - add_zero_line (bool): Whether to add a zero line to the plot. - - Returns: - go.Figure: A plotly figure with the PolicyEngine style guide applied. - """ - fig.update_layout( - font=dict( - family="Roboto Serif", - color="black", - ) - ) - - # set template - fig.update_layout( - template="plotly_white", - height=600, - width=800, - plot_bgcolor=FOG_GRAY, # set background color to light gray - paper_bgcolor=FOG_GRAY, # set paper background color to white - # No white grid marks - xaxis=dict(gridcolor=FOG_GRAY, zerolinecolor=FOG_GRAY), - yaxis=dict( - gridcolor=FOG_GRAY, - zerolinecolor=DARK_GRAY if add_zero_line else FOG_GRAY, - ), - ) - - fig.add_layout_image( - dict( - source="https://raw.githubusercontent.com/PolicyEngine/policyengine-app/master/src/images/logos/policyengine/blue.png", - xref="paper", - yref="paper", - x=1.1, - y=-0.2, - sizex=0.15, - sizey=0.15, - xanchor="right", - yanchor="bottom", - ) - ) - - version = get_country_package_version(country) - - # Add bottom left chart description opposite logo - fig.add_annotation( - text=f"Source: PolicyEngine {country.upper()} tax-benefit microsimulation model (version {version})", - xref="paper", - yref="paper", - x=0, - y=-0.2, - showarrow=False, - xanchor="left", - yanchor="bottom", - ) - # don't show modebar - fig.update_layout( - modebar=dict( - bgcolor=FOG_GRAY, - color=FOG_GRAY, - activecolor=FOG_GRAY, - ), - margin_b=120, - margin_t=120, - margin_l=120, - margin_r=120, - uniformtext=dict( - mode="hide", - minsize=12, - ), - ) - - # Auto-format currency - - if country == "uk": - currency = "£" - else: - currency = "$" - - fig.update_layout( - title=correct_text_currency(fig.layout.title.text or "", currency), - yaxis_title=correct_text_currency( - fig.layout.yaxis.title.text or "", currency - ), - yaxis_ticksuffix=correct_text_currency( - fig.layout.yaxis.ticksuffix or "", currency - ), - xaxis_title=correct_text_currency( - fig.layout.xaxis.title.text or "", currency - ), - xaxis_ticksuffix=correct_text_currency( - fig.layout.xaxis.ticksuffix or "", currency - ), - ) - - fig.update_layout( - title=wrap_text(fig.layout.title.text or ""), - ) - - for trace in fig.data: - if trace.text is not None: - trace.text = [ - correct_text_currency(t, currency) for t in trace.text - ] - - return fig - - -def wrap_text(text: str, max_length: int = 80) -> str: - """Wrap text to a maximum length, respecting spaces.""" - if len(text) <= max_length: - return text - - split_text = text.split(" ") - wrapped_text = "" - line_length = 0 - for word in split_text: - if line_length + len(word) > max_length: - wrapped_text += "