Closed MaxGhenis closed 1 month ago
Hey @MaxGhenis! I'm super interested in this project! I've been building APIs and AI models for a while now, and this sounds like a great fit.
Is there a recommended way to chat with the mentors? I'd love to discuss how I can jump in and help out with this policyengine package.
Thanks!
Closing since the program is now ended.
Description
We are looking to develop a Python package called
policyengine
that will serve as a unified interface for our country-specific policy simulation packages (e.g.,policyengine_us
,policyengine_uk
). This package will provide a consistent API for users to perform policy simulations, conduct analyses, and generate visualizations across different countries. The package will include two main simulation classes:Microsimulation
for running simulations on microdata andIndividualSim
for calculating outcomes for a single household. Additionally, the package will offer analytics and charting functionality to facilitate cross-country comparisons and visualizations. A key feature of the package will be the ability to reproduce charts and visualizations from the PolicyEngine web interface, enabling users to generate insightful visual representations of simulation results programmatically.Goals
Design a modular and extensible architecture for the
policyengine
package.Implement the
Microsimulation
andIndividualSim
classes for policy simulations.Develop analytics and charting modules for cross-country analyses and visualizations.
Enable users to reproduce charts from the PolicyEngine web interface, including:
Utilize Plotly for interactive and visually appealing charts.
Provide a user-friendly API for configuring and running simulations, including setting default countries.
Create comprehensive documentation, including tutorials and examples, to guide users in using the package effectively.
Goals Achieved By Mid-point Milestone: Completion of the core architecture, implementation of the
Microsimulation
andIndividualSim
classes, and basic charting functionality.Setup/Installation
The
policyengine
package will be hosted on GitHub and can be installed via pip:Detailed installation instructions and dependencies will be provided in the package's README file.
Expected Outcome
The final product will be a well-documented and user-friendly Python package that enables users to perform policy simulations, conduct analyses, and generate visualizations across different countries. The package will provide a consistent interface for users to interact with our country-specific policy simulation packages, streamlining the process of cross-country comparisons and policy evaluation. Users will be able to reproduce a wide range of charts and visualizations from the PolicyEngine web interface programmatically, facilitating in-depth analysis and customization of visual representations.
Acceptance Criteria
The
policyengine
package is available on GitHub and can be installed via pip.The package provides the
Microsimulation
andIndividualSim
classes for policy simulations.Users can easily configure and run simulations, including setting default countries.
The package includes analytics and charting modules for cross-country analyses and visualizations.
Users can reproduce charts from the PolicyEngine web interface, including budgetary breakdowns, charts by income decile, poverty breakdowns by demographic groups, income inequality impacts for microsimulations, net income and marginal tax rates for individual households, and evolution of policy parameters' values.
Plotly is used for creating interactive and visually appealing charts.
Comprehensive documentation, including tutorials and examples, is available to guide users in using the package effectively.
Implementation Details
The
policyengine
package will be developed in Python, leveraging existing country-specific packages (e.g.,policyengine_us
,policyengine_uk
).The package will follow a modular architecture, with separate modules for simulations, analytics, charting, and configuration.
The
Microsimulation
andIndividualSim
classes will be implemented to provide a consistent interface for policy simulations across different countries.The package will utilize Plotly for creating interactive and customizable charts and visualizations.
Chart reproduction functionality will be implemented to enable users to generate charts similar to those in the PolicyEngine web interface.
Continuous Integration and Continuous Deployment (CI/CD) practices will be followed to ensure code quality and automated testing.
Mockups/Wireframes
(Mockups and wireframes will be linked here when ready.)
Product Name
PolicyEngine
Organisation Name
PolicyEngine
Domain
Policy Simulation
Economic Modeling
Data Analysis
Data Visualization
Tech Skills Needed
Python
Data Analysis (pandas)
Data Visualization (Plotly)
Package Development
Documentation
Testing
CI/CD
Mentor(s)
@nikhilwoodruff, co-founder and CTO @anth-volk, software engineer and developer community manager
Category
Data Science
Economic Modeling
Package Development
Documentation
Testing
Data Visualization
Related Issues
policyengine
package.