Your plan at a glance
No simulation data yet. Ask your advisor to run the analysis.
Your retirement projection
Run Simulation first.
What if the market crashes?
IUL floors credit 0% in down markets - not the actual loss. Here's how each crisis affects your plan.
Run stress tests in the advisor panel first.
Policy inputs
Enter insured profile and policy parameters. Year 1 outputs are calibrated to match carrier illustration values.

New here? Start with demo data

Download a sample illustration to try the simulator right away

Upload carrier illustration (.xlsx / .csv)

Click to upload policy illustration spreadsheet

Excel (.xlsx) or CSV — exported from your carrier illustration software

Insured profile
Required
Required
Needed for income analysis
Required for COI calculation
Required for COI calculation
Policy parameters
Required
Required
Required
Must be greater than current age
Face reduction at end of premium period
When premiums stop, the face amount can be reduced to lower the net amount at risk (NAAR) and dramatically cut cost of insurance drag during the distribution phase. The IRS §7702(d) corridor sets the absolute floor — DB cannot fall below CSV × corridorFactor(age).
Policy charges
Enter the charges from your carrier illustration. These vary by product — nothing is hardcoded. Leave a field at 0 if your policy doesn't have that charge.
Loan/AV ratio that triggers lapse. Most carriers: 90–95%.
IUL crediting parameters

Define crediting parameters by period. First row applies from Year 1. Add rows to change parameters at any future policy year (e.g. cap drops at Year 5). Cap Off = uncapped, use when participation rate is the lever.

From Yr Cap % Cap Off Part % Floor % Spread %
Premium schedule

Define premium outlay by period. Use policy year numbers (e.g. 1) or insured age prefixed with A (e.g. A61). Periods are inclusive on both ends.

Annual premium ($) From To
Loan & distribution schedule

Define loan draws by period. Mix fixed amounts and different periods. Use year numbers or A+age (e.g. A68 = age 68).

Rate % From year
Enter a negative amount to repay the loan in that period (reduces outstanding loan balance).
Death benefit option

Option B (increasing) keeps face amount constant and death benefit grows with accumulation value. Option A (level) maintains a level death benefit equal to the face amount.

Simulation configuration
Results dashboard
No simulation results yet
Configure your policy inputs and run the simulation to see results here.
Year-by-year detail
No data to display
Run the simulation to populate the year-by-year policy detail table.
Sensitivity analysis
Sensitivity analysis unavailable
Run the simulation to generate a sensitivity analysis across key variables.
IUL vs. alternative vehicles
No comparison data
Run the IUL simulation first, then run the comparison to see how IUL stacks up against alternative vehicles.
Settings
About user management

User accounts are stored in the const USERS array at the top of this HTML file. Each user has an email, a hashed password, a role, and firm details.

Owners are created when you generate a firm file from the Super Admin dashboard. Their credentials are baked into the file you upload to Hostinger.

Advisors are added by the owner from inside the tool. Their accounts persist in the browser localStorage on the hosting server, so the same credentials work on every login from any device that hits that URL.

Passwords are never stored as plain text. Every password is converted to a SHA-256 hash before storage. When a user logs in, their typed password is hashed and compared — the original is never stored anywhere.

Resetting an advisor password — owners can set a new password for any advisor directly from the Advisors in your firm list on the dashboard. Click the key icon next to the advisor, enter a new password, and save. The advisor can log in with the new password immediately.

Resetting an owner or super admin password — generate a hash below, open the HTML file in a text editor, find the USERS array, replace the password value with the new hash, save, and re-upload to Hostinger.

Password hash generator
Reference: how password hashing works

All passwords in this system are stored as SHA-256 hashes, not as readable text. A hash is a one-way fingerprint — it cannot be reversed to reveal the original password. When a user signs in, the system hashes what they type and compares it to the stored hash.

This tool is for manual credential updates only — for example, resetting a super admin or owner password that is baked into the HTML source. Regular advisors can change their password from the Account panel after logging in.

To manually reset a password in the source file:
  1. Type the new plain-text password below and click Generate hash
  2. Copy the resulting hash string
  3. Open this HTML file in a text editor (VS Code, Notepad++, etc.)
  4. Find the USERS array near the top of the <script> block
  5. Replace the relevant password: value with the new hash
  6. Save the file and re-upload to your hosting provider

SHA-256 produces a 64-character hexadecimal string. Hashes are deterministic — the same password always produces the same hash — so you can verify your copy was successful by generating again and comparing.