A comprehensive Django web application for calculating and tracking your Financial Independence, Retire Early (FIRE) number with support for both USA and Indian contexts.
- FIRE Number Calculator: Calculate your target retirement amount using the 4% rule (or custom withdrawal rate)
- Years to FIRE: Estimate how long until you reach financial independence
- Progress Tracking: Visual progress bars and percentage completion
- Multi-Country Support: USA and India with different inflation and return rate defaults
- Track monthly income, expenses, and net worth
- Automatic savings rate calculation
- Historical data visualization
- Notes and annotations for each month
- Set financial goals (Emergency Fund, Debt Free, FIRE Number, etc.)
- Progress tracking with visual indicators
- Goal completion status
- Target dates and milestones
- Net worth growth charts
- Savings rate trends
- Income vs expenses analysis
- FIRE progress over time
- USA Context: 2.5% inflation, 7% return rate, USD currency
- India Context: 6% inflation, 12% return rate, INR currency
- Automatic currency symbol display
- Country-specific default values
- Backend: Django 5.0+
- Frontend: Tailwind CSS (CDN)
- Charts: Chart.js
- Database: SQLite (default), supports PostgreSQL/MySQL
- Package Manager: uv (recommended)
- Python 3.8+
- uv (recommended) or pip
cd finance_planning_tracking/fire_calculator
uv sync # Install dependenciesuv run python manage.py makemigrations
uv run python manage.py migrateuv run python manage.py createsuperuseruv run python manage.py runserverVisit http://localhost:8000 to access the application.
- Visit the application and click "Login"
- Create a new account or use the admin interface
- Complete your profile setup with:
- Country selection (USA/India)
- Current age and target retirement age
- Annual income and expenses
- Current net worth
- FIRE calculation parameters
- Navigate to "Monthly Tracking"
- Add your monthly financial data:
- Monthly income
- Monthly expenses
- Current net worth
- Optional notes
- View your tracking history and trends
- Go to "Goals" section
- Create financial goals like:
- Emergency Fund
- Debt Free
- FIRE Number
- Coast FIRE
- Custom goals
- Track progress and update amounts regularly
- Visit "Analytics" to see:
- Net worth growth charts
- Savings rate trends
- Income vs expenses analysis
- FIRE progress visualization
FIRE Number = Annual Expenses × (100 ÷ Withdrawal Rate)
The application uses compound interest calculations to estimate years needed:
- Considers current net worth
- Accounts for annual savings
- Uses expected return rate
- Factors in inflation
| Country | Inflation Rate | Return Rate | Currency |
|---|---|---|---|
| USA | 2.5% | 7.0% | USD ($) |
| India | 6.0% | 12.0% | INR (₹) |
fire_calculator/
├── fire_calculator/ # Main Django project
│ ├── settings.py # Django settings
│ ├── urls.py # Main URL configuration
│ └── wsgi.py # WSGI configuration
├── fire_tracker/ # Main app
│ ├── models.py # Database models
│ ├── views.py # View logic
│ ├── urls.py # App URL patterns
│ └── admin.py # Admin interface
├── templates/ # HTML templates
│ └── fire_tracker/
│ ├── base.html # Base template
│ ├── dashboard.html # Main dashboard
│ ├── setup_profile.html
│ ├── monthly_tracking.html
│ ├── goals.html
│ └── login.html
├── static/ # Static files
│ ├── css/
│ └── js/
├── manage.py # Django management script
└── requirements.txt # Python dependencies
- User financial information
- FIRE calculation parameters
- Country context
- Monthly income, expenses, net worth
- Automatic savings rate calculation
- Notes and timestamps
- Historical FIRE progress tracking
- Progress percentages over time
- Financial goal management
- Progress tracking
- Completion status
- Historical inflation data
- Country-specific rates
- Update
FIRE_SETTINGSinsettings.py - Add country choice in
UserProfile.COUNTRY_CHOICES - Update currency symbols and default rates
Modify the calculation methods in UserProfile model:
fire_numberpropertyyears_to_firepropertyfire_progress_percentageproperty
The application uses Tailwind CSS. Customize by:
- Modifying classes in templates
- Adding custom CSS in
base.html - Updating color schemes and components
-
Update
settings.py:- Set
DEBUG = False - Configure
ALLOWED_HOSTS - Use environment variables for
SECRET_KEY - Set up proper database (PostgreSQL recommended)
- Set
-
Static Files:
uv run python manage.py collectstatic
-
Database:
uv run python manage.py migrate
Create a .env file:
SECRET_KEY=your-secret-key
DEBUG=False
DATABASE_URL=postgresql://user:pass@localhost/dbname
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is open source and available under the MIT License.
For issues and questions:
- Check the documentation
- Review existing issues
- Create a new issue with detailed information
- Advanced FIRE scenarios (Coast FIRE, Barista FIRE)
- Investment portfolio tracking
- Tax optimization calculations
- Mobile app version
- API endpoints for third-party integrations
- Export functionality (PDF reports, CSV data)
- Social features (anonymous community sharing)
- Real-time inflation data integration
- Multiple currency support
- Advanced analytics and forecasting
Happy FIRE journey! 🔥💰