Skip to content

22AmitDeo/PolicyImpactSimulator

Repository files navigation

AI Real-Time Policy Impact Simulator

Educational civic-tech tool to simulate how government policy changes affect individual and small business finances.

Features

  • Real-time Financial Impact Calculation: Deterministic simulation engine
  • AI Vulnerability Prediction: Gradient Boosting model predicting policy exposure
  • Explainable AI: SHAP-based feature importance analysis
  • Plain Language Explanations: Human-readable insights
  • Interactive Dashboard: Streamlit frontend with visualizations

Architecture

User Input → Simulation Engine → ML Model → SHAP Explainer → Visualization
  • Backend: FastAPI serving REST API
  • ML Model: GradientBoostingRegressor trained on 5000 synthetic samples
  • Frontend: Streamlit with Plotly charts
  • Explainability: SHAP for feature importance

Setup Instructions

Prerequisites

  • Python 3.8+
  • pip

Installation

  1. Clone the repository
git clone <repository-url>
cd PolicyImpactSimulator
  1. Install backend dependencies
cd backend
pip install -r requirements.txt
  1. Install frontend dependencies

Option A: React Frontend (Recommended)

cd frontend-react
npm install

Option B: Streamlit Frontend

cd frontend
pip install -r requirements.txt

Training the Model

Before running the application, train the ML model:

cd backend
python model_training.py

This generates backend/models/vulnerability_model.pkl (required for API).

Running the Application

Step 1: Start Backend API

cd backend
python main.py

API runs on http://localhost:8000

Step 2: Start Frontend (New Terminal)

Option A: React Frontend (Recommended)

cd frontend-react
npm start

Frontend opens at http://localhost:3000

Option B: Streamlit Frontend

cd frontend
streamlit run app.py

Frontend opens at http://localhost:8501

Usage

  1. Enter your financial profile (income, spending categories)
  2. Adjust policy change sliders (GST, fuel price, income tax, subsidies)
  3. Click "Simulate Impact"
  4. View:
    • Monthly/yearly financial impact
    • Vulnerability score (0-100)
    • Before/after disposable income comparison
    • Category-wise impact breakdown
    • AI-generated plain language explanation
    • SHAP feature importance

Demo Example

Pre-filled values:

  • Annual Income: ₹800,000
  • Household Size: 3
  • Monthly Rent: ₹15,000
  • Groceries: ₹8,000
  • Fuel: ₹4,000

Policy Changes:

  • GST: +2%
  • Fuel Price: +5%

Expected Output:

  • Monthly Impact: ~₹-1,500
  • Vulnerability Score: 45-55 (moderate risk)

API Endpoints

POST /simulate

Request:

{
  "user_data": {
    "annual_income": 800000,
    "city": "bangalore",
    "household_size": 3,
    "rent": 15000,
    "groceries": 8000,
    "fuel": 4000,
    "utilities": 3000,
    "education": 5000,
    "other": 5000,
    "business_revenue": 0,
    "business_expense": 0
  },
  "policy_changes": {
    "gst_change": 2.0,
    "fuel_price_change": 5.0,
    "income_tax_change": 0.0,
    "subsidy_change": 0.0
  }
}

Response:

{
  "simulation_results": {
    "monthly_impact": -1234.56,
    "yearly_impact": -14814.72,
    "before_disposable_income": 26000.00,
    "after_disposable_income": 24765.44,
    "category_breakdown": {...}
  },
  "vulnerability_score": 48.23,
  "explainability": {
    "top_3_contributors": [...]
  },
  "plain_language_explanation": "..."
}

Project Structure

PolicyImpactSimulator/
├── backend/
│   ├── main.py                 # FastAPI application
│   ├── data_generation.py      # Synthetic dataset generator
│   ├── model_training.py       # ML model training script
│   ├── simulation_engine.py    # Financial impact calculator
│   ├── explainability.py       # SHAP integration
│   ├── requirements.txt
│   └── models/
│       └── vulnerability_model.pkl
├── frontend/                   # Streamlit frontend (legacy)
│   ├── app.py
│   └── requirements.txt
├── frontend-react/             # React frontend (recommended)
│   ├── public/
│   ├── src/
│   │   ├── components/
│   │   ├── services/
│   │   ├── App.js
│   │   └── App.css
│   ├── package.json
│   └── README.md
└── README.md

Technical Details

Simulation Engine

  • Calculates GST impact on groceries, utilities, other expenses
  • Applies fuel price changes to fuel spending
  • Computes income tax using progressive slab system
  • Factors in business revenue/expense for GST impact
  • Applies city-based cost of living multipliers

ML Model

  • Algorithm: GradientBoostingRegressor
  • Features: 14 (income, spending categories, policy parameters)
  • Target: Vulnerability score (0-100)
  • Training Data: 5000 synthetic samples
  • Performance: MAE ~5-8, R² ~0.85-0.90

Explainability

  • SHAP TreeExplainer for feature importance
  • Top 3 contributing factors highlighted
  • Plain language generation based on SHAP values

Future Enhancements

  1. Historical Policy Data: Integrate real policy change datasets
  2. Regional Variations: State-specific tax structures
  3. Time-Series Forecasting: Multi-year impact projections
  4. Comparative Analysis: Compare multiple policy scenarios
  5. User Authentication: Save and track simulations
  6. Mobile App: React Native frontend
  7. Advanced ML: Deep learning for complex interactions
  8. Real-time Data: Live fuel prices, inflation rates

Constraints

  • Educational simulation only
  • Not financial advice
  • Simplified tax calculations
  • Synthetic training data
  • Neutral, non-political explanations

License

MIT License - Educational use only

Contributors

Built for civic-tech hackathon demonstration

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors