Go to file
Renovate Bot 4dcd24f1fd
Some checks failed
Lint / Lint and Typecheck (push) Has been cancelled
fix(deps): update dependency zod to v4 (#6)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [zod](https://zod.dev) ([source](https://github.com/colinhacks/zod)) | [`^3.24.3` -> `^4.0.0`](https://renovatebot.com/diffs/npm/zod/3.25.76/4.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/zod/4.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.25.76/4.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>colinhacks/zod (zod)</summary>

### [`v4.0.5`](https://github.com/colinhacks/zod/releases/tag/v4.0.5)

[Compare Source](https://github.com/colinhacks/zod/compare/v4.0.4...v4.0.5)

#### Commits:

- [`f91a73e`](f91a73ec23) Support pipes in discriminated unions. Closes [#&#8203;4856](https://github.com/colinhacks/zod/issues/4856) ([#&#8203;4861](https://github.com/colinhacks/zod/issues/4861))
- [`45afab0`](45afab0f84) 4.0.5

### [`v4.0.4`](https://github.com/colinhacks/zod/releases/tag/v4.0.4)

[Compare Source](https://github.com/colinhacks/zod/compare/v4.0.3...v4.0.4)

#### Commits:

- [`9335f05`](9335f0543d) Adds `ZodFirstPartyTypeKind` stub to fix module resolution failure inside `zod-to-json-schema`

### [`v4.0.3`](https://github.com/colinhacks/zod/releases/tag/v4.0.3)

[Compare Source](44a936cb77...v4.0.3)

#### Commits:

- [`5905a8d`](5905a8d810) Improve check-versions script
- [`f3e749b`](f3e749b1b0) Remove global File interface
- [`44a936c`](44a936cb77) 4.0.2
- [`74006ed`](74006edd49) Fix JSR provenance
- [`ff4af5e`](ff4af5e889) 4.0.3
- [`ce573e8`](ce573e8799) Update test badge
- [`9a7161a`](9a7161a976) Fix versions

### [`v4.0.2`](https://github.com/colinhacks/zod/compare/v4.0.1...44a936cb77961e57a0988d8a3c63d9c71fce69ac)

[Compare Source](https://github.com/colinhacks/zod/compare/v4.0.1...44a936cb77961e57a0988d8a3c63d9c71fce69ac)

### [`v4.0.1`](https://github.com/colinhacks/zod/releases/tag/v4.0.1): v4.0.0

[Compare Source](79d4d80e3b...v4.0.1)

With this release, `zod@4.0.0` has been published to `npm`. There were no code changes between 3.25.76 and 4.0.0!

Zod 4 has been stable for the past 6 weeks, but it was published inside zod@3.25.x on npm. this transitionary window gave the ecosystem time to incrementally support for Zod 4 (without dropping support for Zod 3). As there is now near-universal support for Zod 4 in the ecosystem, ths time feels right to finally put a bow on things 🎀

To upgrade to Zod 4:

```
npm upgrade zod@^4.0.0
```

If you’ve already migrated to Zod 4 using the subpaths, there are no changes required. however you can optionally simplify your imports (recommended)

```ts
// after upgrading to zod@4.0.0:
import * as z from "zod"; // Zod 4 (regular)
import * as z from "zod/mini" // Zod 4 Mini

// these still work, but are no longer needed
import * as z from "zod/v4";
import * as z from "zod/v4-mini":

// if you still need Zod 3
import * as z from "zod/v3"; // Zod 3
```

**Library authors** — if you've already implemented Zod 4 support according to the best practices outlined in the [Library authors](/library-authors) guide, bump your peer dependency to include `zod@^4.0.0`:

```json
// package.json
{
  "peerDependencies": {
    "zod": "^3.25.0 || ^4.0.0"
  }
}
```

*There should be no other code changes necessary.* No code changes were made between the latest `3.25.x` release and `4.0.0`. This does not require a major version bump.

### [`v4.0.0`](https://github.com/colinhacks/zod/compare/v3.25.76...79d4d80e3b47f04752c5c281077b53f889551441)

[Compare Source](https://github.com/colinhacks/zod/compare/v3.25.76...79d4d80e3b47f04752c5c281077b53f889551441)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40Ni4wIiwidXBkYXRlZEluVmVyIjoiNDEuMzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: Felix Schulze <admin@schulze.network>
Reviewed-on: #6
Co-authored-by: Renovate Bot <renovatebot@schulze.network>
Co-committed-by: Renovate Bot <renovatebot@schulze.network>
2025-07-13 00:58:35 +02:00
2025-05-05 11:51:58 +02:00
2025-06-16 11:25:20 +02:00
2025-04-29 17:09:04 +02:00
2025-04-30 18:06:14 +02:00
2025-04-29 17:09:04 +02:00
2025-04-29 18:45:41 +02:00
2025-04-29 20:25:49 +02:00
2025-04-29 17:09:04 +02:00
2025-04-29 17:09:04 +02:00
2025-04-29 17:09:04 +02:00
2025-04-29 17:09:04 +02:00
2025-05-04 20:35:39 +02:00
2025-05-05 11:02:51 +02:00
2025-04-29 17:46:38 +02:00

InvestingFIRE logo

InvestingFIRE 🔥 — The #1 Interactive FIRE Calculator

InvestingFIRE is a responsive web application for calculating your path to Financial Independence and Early Retirement (FIRE). It features a year-by-year projection engine that simulates both accumulation (savings and investment growth) and retirement (withdrawals) phases, allowing users to:

  • Input starting capital, monthly savings, expected annual growth rate, inflation rate, current age, desired retirement age, life expectancy, and desired monthly retirement allowance.
  • View a dynamic chart displaying projected portfolio balance and monthly allowance over time.
  • Instantly see their estimated “FIRE number” (required capital at retirement), how long their capital will last, and compare results to the “4% rule.”
  • Adjust assumptions live, with all calculations and visualizations updating automatically.
  • Access explanatory content about FIRE methodology, key variables, and additional community resources, all on a single, consolidated page.

The projects code is structured using React/Next.js with TypeScript, focusing on user experience, modern UI components, and clarity of financial assumptions.


🚀 Features at a Glance

  • Real-Time Projections: Every field updates the chart as you type. Experiment with savings, growth rates, inflation, or retirement age and see your future instantly.
  • 📈 Interactive Chart: Dual-area plots for portfolio value and future monthly spending, plus reference lines for FIRE milestones and “4% rule” legends.
  • 🧠 Education Baked In: Contextual tooltips, deep-dive sections on how FIRE works, FAQs, and must-read resources included.
  • 🔎 Detailed Methodology: Not just a 25x rule — runs a full, year-by-year simulation with inflation-adjusted withdrawals and optional 4%-rule overlays.
  • 👌 Modern UX: Typing, sliding, or clicking feels good. Responsive on all devices.

🧰 How It Works

The calculator models your FIRE journey in two phases:

  1. Accumulation:

    • Your starting capital is grown by your expected CAGR (~7% by default).
    • Monthly savings are added for each year until retirement.
    • Every variable can be adjusted live (capital, savings, age, growth, inflation, spending, target retirement).
  2. Retirement:

    • Your balance continues to grow by CAGR.
    • Each year, an inflation-adjusted monthly allowance is withdrawn.
    • The simulation runs until your selected life expectancy, showing the possibility of portfolio depletion.

Key Outputs:

  • 🔥 “FIRE Number”: Portfolio value at your defined retirement age
  • 📊 Interactive projection chart: See how your nest egg and withdrawals evolve over time
  • 4 “4% Rule” overlays: Compare dynamic results to classic rule-of-thumb

🌟 Try It For Yourself

To run locally:

  1. Clone the repo
    git clone https://git.schulze.network/schulze/fire.git
    cd fire
    
  2. Install dependencies
    npm install
    
  3. Run the app
    npm run dev
    
  4. Visit http://localhost:3000 and unleash the fire.

Deployed version: https://investingfire.com


✏️ Inputs & Variables

  • Starting Capital — How much youve already invested
  • Monthly Savings — What youll add each month
  • Current Age & Retirement Age — Your FI timeline
  • Life Expectancy — How long do you want income to last?
  • Expected Growth Rate (CAGR) — Portfolio annual % return, before inflation
  • Inflation Rate — Cost of living increases
  • Desired Monthly Allowance — Your lifestyle, todays dollars

As you adjust these, all projections update instantly without needing to hit “Calculate.”

Try many “what ifs” fast.


👩‍💻 Contributing

Pull requests are welcome! Open issues for bugs, new features, or debate about safe withdrawal rates and tax assumptions.


📄 License

GPL-3.0


🥇 Why Use InvestingFIRE?

  • You want the truth — not just a 4% fantasy.
  • You want to learn, not just punch in numbers.
  • You want clarity, speed, and modern UI.
  • You want to show your friends the best FIRE tool on the web.

Enjoy the rocket ride to financial independence.
InvestingFIRE — Know your number. Change your future.

Description
Languages
TypeScript 90.2%
CSS 6.6%
JavaScript 3.2%