---
title: Detailed Specification for an Interactive Web Application to Plan and Visualize Financial Independence and Early Retirement Goals in AUD
created: 2025-10-11
updated: 2025-10-11
type: summary
tags: ["finance", "fire", "notes", "telegram", "webapp"]
external: http://go/ui/posts/1385/
---

# FIRE Planning Web App Specification

## Overview
A simple, interactive web application for visualizing and planning financial independence and early retirement (FIRE) goals in AUD.

The app allows users to input personal financial data (current age, target retirement age, savings rate, return rate, etc.), and it will calculate, tabulate, and visualize progress toward FIRE using charts and tables.

---

## Core Features

### 1. Input Form (User Parameters)
All values are in **AUD** and **years** where applicable.

| Field | Type | Description | Example |
|-------|------|--------------|----------|
| Current Age | number | User’s current age | 35 |
| Target FIRE Age | number | Desired retirement age | 50 |
| Current Net Worth (excl. home) | number | Net worth excluding real estate | 300,000 |
| Current Total Net Worth (incl. home) | number | Total net worth including real estate | 900,000 |
| Annual Expenses (post-retirement) | number | Desired annual spending after FIRE | 200,000 |
| Annual Income (including RSU) | number | Current total income | 300,000 |
| Savings Rate | number (0–100%) | Portion of income saved each year | 30–50% |
| Expected Investment Return | number (percentage) | Average annual investment return | 8% |
| Inflation Rate | number (percentage) | Average inflation per year | 2.5% |

---

## 2. Calculations

The web app should:

1. **Compute annual savings**  
   `Annual Savings = Annual Income × Savings Rate`

2. **Grow investments annually**  
   For each year between current age and target age:  
   `Net Worth_next = (Net Worth + Annual Savings) × (1 + Return Rate)`

3. **Adjust for inflation**  
   Adjust target retirement expenses by inflation each year.

4. **Compute FIRE target**  
   `FIRE Target = Annual Expenses × 25` (based on 4% rule)

5. **Progress Comparison Table**
   A table should show each year:
   - Age  
   - Projected Net Worth  
   - Inflation-adjusted FIRE Target  
   - % Progress toward FIRE

---

## 3. Visualizations

### Charts
1. **Net Worth Growth Chart**  
   - X-axis: Age  
   - Y-axis: AUD value  
   - Line 1: Projected Net Worth  
   - Line 2: FIRE Target (inflation-adjusted)

2. **FIRE Progress Chart**  
   - X-axis: Age  
   - Y-axis: % progress  
   - Highlight the year FIRE is achieved (≥100%)

3. **Scenario Comparison Chart (optional)**  
   - Conservative (6%), Neutral (8%), Optimistic (10%) return assumptions.

---

## 4. Output & Display

- **Results Table** below the form (auto-generated after clicking “Calculate”)
- **Charts** displayed dynamically using Chart.js or Recharts
- **Currency formatting**: all numbers in AUD with commas (e.g., `A$1,200,000`)
- **Responsive design** for mobile and desktop
- **Reset / Recalculate button**

---

## 5. Tech Stack

| Component | Suggested Tool |
|------------|----------------|
| Frontend | React + Tailwind CSS |
| Charts | Recharts or Chart.js |
| Form | React Hook Form or simple controlled components |
| State management | useState/useEffect |
| Hosting | GitHub Pages or Netlify (static) |

---

## 6. Example Output (Concept)

**Inputs**
- Age: 35  
- Target FIRE Age: 50  
- Current Net Worth: A$300,000  
- Annual Income: A$300,000  
- Savings Rate: 40%  
- Return: 8%  
- Inflation: 2.5%  
- Annual Expense: A$200,000  

**Results**
- FIRE Target (today): A$5,000,000  
- FIRE Target at age 50 (inflation-adjusted): A$7,360,000  
- Estimated FIRE Year: Age 49  
- Projected Net Worth at FIRE: A$7,420,000  

---

## 7. Future Enhancements
- Monte Carlo simulation for variable returns  
- Superannuation (tax-advantaged) contribution modeling  
- Scenario saving and comparison  
- Export results to CSV/Excel  
- Login system for persistent profiles

---

© 2025 FIRE Planner App — Designed for Australian financial independence planning.
