diff --git a/app/src/Router.tsx b/app/src/Router.tsx index 11ffd2bc..377f9e7b 100644 --- a/app/src/Router.tsx +++ b/app/src/Router.tsx @@ -1,6 +1,7 @@ import { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom'; import Layout from './components/Layout'; import HomePage from './pages/Home.page'; +import MicrosimPage from './pages/Microsim.page'; import PoliciesPage from './pages/Policies.page'; import PopulationsPage from './pages/Populations.page'; import ReportOutputPage from './pages/ReportOutput.page'; @@ -75,6 +76,10 @@ const router = createBrowserRouter( path: 'account', element:
Account settings page
, }, + { + path: 'microsim', + element: , + }, ], }, ], diff --git a/app/src/images/posts/how-machine-learning-tools-make-policyengine-more-accurate.png b/app/src/images/posts/how-machine-learning-tools-make-policyengine-more-accurate.png new file mode 100644 index 00000000..ed9eb621 Binary files /dev/null and b/app/src/images/posts/how-machine-learning-tools-make-policyengine-more-accurate.png differ diff --git a/app/src/pages/Microsim.page.tsx b/app/src/pages/Microsim.page.tsx new file mode 100644 index 00000000..081da6f7 --- /dev/null +++ b/app/src/pages/Microsim.page.tsx @@ -0,0 +1,206 @@ +import { useNavigate, useParams } from 'react-router-dom'; +import { Box, Container, List, Text, Title } from '@mantine/core'; +import CalloutWithImage from '@/components/shared/static/CalloutWithImage'; +import { CardsWithHeader } from '@/components/shared/static/CardsWithHeader'; +import PageHeader from '@/components/shared/static/PageHeader'; +import { TitleCardWithHeader } from '@/components/shared/static/TextCardWithHeader'; +import TwoColumnView from '@/components/TwoColumnView'; +import heroImage from '@/images/posts/how-machine-learning-tools-make-policyengine-more-accurate.png'; + +export default function MicrosimPage() { + const navigate = useNavigate(); + const { countryId } = useParams<{ countryId: string }>(); + return ( + + + + + countryId && navigate(`/${countryId}/policies`)} + imageSrc={heroImage} + imageAlt="Diagram showing PolicyEngine microsimulation" + /> + + + + + + Microsimulation is a computational technique used to estimate the effects of + policy changes on individuals, households, or other microeconomic units. Unlike + macroeconomic models that focus on aggregate variables, microsimulation models: + + + + + Apply tax and benefit rules to representative samples of the population + + + Calculate outcomes for each household based on their unique characteristics + + Aggregate results to estimate population-wide impacts + + Allow for detailed distributional analysis by income, demographic groups, and + more + + + + + PolicyEngine’s microsimulation models implement tax and benefit systems as code, + allowing users to modify parameters and see how changes affect different + households and the overall population. + + + ), + }, + ]} + /> + + + + + + Open-Source Foundation + + + PolicyEngine builds on OpenFisca, an open-source microsimulation framework developed + by the French government. Our models implement tax and benefit rules as code, + creating a computational representation of current policy and allowing for + modifications to explore reform impacts. + + + + Data-Driven Approach + + + Our models use nationally representative household surveys enhanced with + administrative data to create accurate population samples: + + + + UK: Family Resources Survey with custom survey weights + + + US: Enhanced Current Population Survey with synthetic tax records + + + + + Machine Learning Enhancement + + + We apply machine learning techniques to optimize our population samples: + + + + Gradient descent algorithms to calibrate survey weights to match administrative + totals + + + Quantile regression forests to synthesize missing tax information for US data + + Statistical validation against administrative benchmarks + + + } + rightColumn={ + Relative aggregate error chart + } + /> + + + + + + PolicyEngine continuously validates our models against administrative data to + ensure accuracy: + + + + + Aggregate tax and benefit totals compared to government budget figures + + + Distributional impacts validated against administrative statistics + + + Tax and benefit calculators tested against official examples + + + Ongoing calibration to match the latest data from government sources + + + + + Our UK model has achieved up to 80% lower aggregate error rates compared to + standard survey-based approaches, and our US Enhanced CPS represents a + significant improvement over public microdata for tax modeling. + + + ), + }, + ]} + /> + + + + navigate('/coming-soon'), + background: 'gray', + }, + { + title: 'UK Model Validation', + description: + 'Detailed information about the UK tax and benefit model, including data sources, calibration methodology, and validation results.', + footerText: 'UK Model Validation →', + onClick: () => navigate('/coming-soon'), + background: 'gray', + }, + { + title: 'GitHub Repositories', + description: + 'Access our open-source code repositories for all PolicyEngine models, including tax-benefit rules, data processing pipelines, and web interface.', + footerText: 'PolicyEngine on GitHub →', + onClick: () => window.open('https://github.com/PolicyEngine', '_blank'), + background: 'gray', + }, + ]} + /> + + + ); +}