{"_id":"@deanfinancials/calculators","_rev":"20-a136db890e33405b3704d0d14384374e","name":"@deanfinancials/calculators","dist-tags":{"latest":"1.16.0"},"versions":{"1.0.0":{"name":"@deanfinancials/calculators","version":"1.0.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.0.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"90063733a2cfb4d97acfe8e5899b4092f555820c","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.0.0.tgz","fileCount":43,"integrity":"sha512-v7PbXZ5lnqWR8k8XdY5dOiEgASFu0HU1g9JfDcQwZpQdRtlcAsITKBYV6W61clHsK3pzlFbSWr4pJsNtWPDAnw==","signatures":[{"sig":"MEUCIHU2uuS0xIWfyNrooSbAZVvaL7+0TqbKhUdb5ezLC8/1AiEAhxwcp+VII94ZSFKWQ9Ma8SXQl/WdUOhDu6b+N6zQea0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104369},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"534688c0fc0bb001dbfb600c2aa0681fcaa68bcc","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.0.0_1763747275639_0.5555846771335256","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@deanfinancials/calculators","version":"1.0.1","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.0.1","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"538b06538455fcccd964fa52809c272ffca924a7","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.0.1.tgz","fileCount":43,"integrity":"sha512-7a8J42gRBYZN3DDamtGg6abVGLYtwBlAbF9hXGJ6WglOr0bVEglJuHmZoh010G+lg8VwDV1si52SxXuWkkrTXA==","signatures":[{"sig":"MEYCIQDJG4Tbclo96sSlTE53Sk/YPHY6iCLABfIthTk69pm0NwIhAP/ndmykGGYJ0youTJ9x/G78WynlLgGIgx0QTIt0Qumo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104423},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"534688c0fc0bb001dbfb600c2aa0681fcaa68bcc","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.0.1_1763747425469_0.9548301519974831","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@deanfinancials/calculators","version":"1.1.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.1.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"b27c86a57fc2e96bf0d17d979f5a006a29cb24be","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.1.0.tgz","fileCount":47,"integrity":"sha512-82cLkKa84c+ETFiCW58TDEQAA/hu8j4PP0tBC1+V3upBu/0hgzoFxg48YHq6jkbeJU+bx+mBA+K15nKnodLf2g==","signatures":[{"sig":"MEUCIA7TfrP88+X7B4exNS1LqdlHYPcjplba3DTL6T1R4qGxAiEAra6zuwvyOefKRDyEfyUV4ORxTmWeY2jzPyTdRfam7v8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127265},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"1a50b8de0e79b71bb5d68956a0d299142a7307bc","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.1.0_1764540100335_0.7638411638945297","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@deanfinancials/calculators","version":"1.2.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.2.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"8c535a102ddec74d7b75e1145837222f54077009","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.2.0.tgz","fileCount":51,"integrity":"sha512-dAmFIEnSCOIeT0cJnAglPJd0yBVWn3oi7teqqYbKhCxFOiLBJJsZ3wjmW6ryC472SJgVnU1F7NzW0ANAuLLgbA==","signatures":[{"sig":"MEUCIChIgrQD8TySTmewJ87z1HJArYvBtLq2QE0Liduf1GnRAiEA/XUDL7OenRbxyA0CuDtfqvywpTr84MjbgXTCTpYwWIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167899},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"2970cc7e082a0ff942baef3332ccbc64541f507d","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.2.0_1764541431964_0.9776648257119505","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@deanfinancials/calculators","version":"1.2.1","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.2.1","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"dd0816a77b3bd819bc7168099abc127bfa1b3918","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.2.1.tgz","fileCount":55,"integrity":"sha512-yvPME2a4hASL4sWJLsAQWY/F7tZRB97kn71o65hxm3AljSYp4aLd0sAJaZpDgLhHS/smw9DtrwmEWEIVNP70BQ==","signatures":[{"sig":"MEQCIGnyovm3GZQ6pW7ktLhtRwkI4NpS+LnhMtOqge5ok9XNAiBfwf2fO/NGb+cu9YhsVTHMMQx3MSAXlF3qddttcwTVwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212187},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c87d02a176ed550f1169ae5d8c5eaa2704eab818","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.2.1_1764544146215_0.4989437591379453","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@deanfinancials/calculators","version":"1.3.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.3.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"ce69640a517f52959eef3ea5e1b5969fb6df25ca","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.3.0.tgz","fileCount":59,"integrity":"sha512-7cugjVWvhHQ2mLi+GY5bJulWRs48ALN96nAEUCPbBgcUO9Jz0wJMtRIqhnjwxc2maMKiNrEIsbSwfQ6wufHang==","signatures":[{"sig":"MEYCIQDfQTcj3vmVz8wkEt1qMCtHzM5UwpF75JL0MbF/Frd8fAIhAOuCAuC8zEoG73XVBBeXq1s4JRIalTs5RGYasGw023Ne","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266702},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c1d1bad827da4b991513098b5ac8dfc9a08c8f3c","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.3.0_1764621390617_0.6444432979173933","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@deanfinancials/calculators","version":"1.4.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.4.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"a083dc25df96f67fbbf9fc9c1ebab66b1d9de3db","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.4.0.tgz","fileCount":63,"integrity":"sha512-WGCAkPIeyJSM6VZHIJgzQ47IPklOnMrogajsIlSA6vYOLjaPpQVSA8m7DXVQP7fj2BHaNJuG+hYwRztCVh2O+g==","signatures":[{"sig":"MEQCIAfzlYcdoP6YuNT0lQ2AgjMpqpVXFd2CtzzXTlNiVPgwAiB9i/XDsl4zSQQKDXGJiTpFFEQ3flQK+vnauP2Lw1p7FQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312257},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"f80641c63ac171b720263af6543206817bea20dc","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.4.0_1764629335928_0.6696982425680194","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@deanfinancials/calculators","version":"1.5.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.5.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"db34d8e46796892d22a392445c529131e5d6a059","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.5.0.tgz","fileCount":67,"integrity":"sha512-vSfQ/cFcW9Bl2v6jV+TRhMxF6lTApyLf9QnXGihNvw6nx0vIyJT3bdYRYkVNFaxIUHwJSof7iHOxMfw7koJRrA==","signatures":[{"sig":"MEQCIAG6QN6xbq0kV1yqdtFZ0FS4SDxcrNfxKTqr67MSVzSQAiAPURpfYqYldp/CrUE3N7UNY8n321iS13zy1PtXynHSBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366697},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"9965f9b26ed64176cb8e40aa7c4071eb55068864","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.5.0_1764637791129_0.25338018187796885","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@deanfinancials/calculators","version":"1.6.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.6.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"49b2c2d01a43564e0f4a6da7e9fb3693e5d07e02","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.6.0.tgz","fileCount":71,"integrity":"sha512-Dv7SwU9EE2U5Uy80/E8ydPqQzVZaja/2T7V2P4XAEOliV0lD1MagcQQWWJRsSS6D80Ahuw6lnqxmB2JR3h+o3w==","signatures":[{"sig":"MEUCIEu+zugWD1j5fssg11sGoUB0JWrInz64GtFRo2l8ywR3AiEAjMF0MIZsGQ+ZBj8Xsm9xgqk5Yb6YAqCtBCVpRgE5s7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":423688},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"434190c89376e5018b43acf1d173ffa8ee2daf49","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.6.0_1764677654012_0.2232773557774297","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@deanfinancials/calculators","version":"1.7.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.7.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"2a9641fdd4eb78eca70287f205bee26e013ed57c","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.7.0.tgz","fileCount":75,"integrity":"sha512-tBU/+EJjfj9TbCY5OAITzXVZO2dMJMpgrHU+0z89f6i2APdww6t3bZHhOPpxK81MdTnHTqSffOx+nIq9oADq5Q==","signatures":[{"sig":"MEUCIQD1D5ooJw8vENd8QnQNJx1SQMBBZbliAHWAzOQ8H4KLOAIgX1fIXxS84BvkO4zZINmGDpdnVatSTad8Sjsai9EtqcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":490416},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3355dd45a46927ec6f5b4e33c06818248f42511f","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.7.0_1764690423425_0.8276310305363799","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@deanfinancials/calculators","version":"1.8.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.8.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"2fb5e3d91ee3584066fdf3e770af1bff5642f4fe","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.8.0.tgz","fileCount":79,"integrity":"sha512-4p7/8bWPS8d0+i2j2OboUh+qCJlPpEeA4X2x5D735Zfxr8NUqOm+WoezW6c2/s0R/w0p/rAqEAp3/3NY3MK06Q==","signatures":[{"sig":"MEUCIBfVCmOn+50q/ZjidF8P4IAGVdVmZcTtN2D4anbfcRO4AiEA6RPYaS0g+Ym1Qrgs7EJH62ic5fBouiq+xb7uHr27H5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557457},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"84f4783d982a56dad49cebb423c5e7b01ded33be","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.8.0_1764708898517_0.537599080744817","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@deanfinancials/calculators","version":"1.8.1","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.8.1","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"958cc115887a293b9640e0519db5723aec69607d","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.8.1.tgz","fileCount":79,"integrity":"sha512-9QRXDJ5TlyDrCm52nx+Dr8MrtIwCMJzTJ9WpjgTfTE14NrgLOzmteuyrGwbB2BCIUiKATxt07Xg80Bdnz/UZTQ==","signatures":[{"sig":"MEYCIQDsqFMRMg/U2GkJna9G3bPneZQ8BHi3AnsO9G+HN71xrAIhAN/Rd9zf05txbGSoUph5D8d5pvZfrmCnmvS6mGswWY+l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":558438},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d9e50bb6ef791ba4fbf947a9c1f85469ac718f58","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.8.1_1764711398646_0.848278134829447","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@deanfinancials/calculators","version":"1.9.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.9.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"402340e05763f75df846ea2796c9113c2206edf2","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.9.0.tgz","fileCount":83,"integrity":"sha512-LVGtszSdagH/o6VqhqgPwdfskmFDBw/cpRyicXrVdqj5CpW2seOq2xKDxfudY6ensATVcYBomhXFLFIAILgz4g==","signatures":[{"sig":"MEYCIQCvUPxiz0d+EDpTquLs+N7CNKN8BCFmH7N6eL/1p32jmAIhAPFcAmrbdELz74kut2FebAatV9WZ9Yrs8VuRPZkadB5F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":639791},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"0028d1d4fe40a8f376f89c2c92a505e7c39c04e3","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.9.0_1764715351164_0.682895239138785","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@deanfinancials/calculators","version":"1.10.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.10.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"b280fdf2eb3cea25e85acbb53f10ea461dbe637e","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.10.0.tgz","fileCount":87,"integrity":"sha512-VXATPD04z9oCzF4hExIGK+O0998JuahH3JTJmsiMJ4HrpCFMNY6U2rMeXxvxZXUIXTxLzVDUfmzQY7gOqNT5CA==","signatures":[{"sig":"MEUCIBxeslPuVxzJTbWfz8Xb4FyvHVkMcQIynakh9DWLiUgqAiEAvdQ2m3gCcosBBTCT2vqjZrVPkkGiXtmDxF3b5YLaaWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":702241},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b0ff24ba38de0d63a5d3a9bcbf4f633790067e59","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.10.0_1764721327103_0.056761249405819614","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@deanfinancials/calculators","version":"1.11.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.11.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"0ebaec646d3d038d0b61cc808000624ebaf62b2c","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.11.0.tgz","fileCount":91,"integrity":"sha512-gcFMFxQlAmasoKNQ6JZTt1krAuZqo/usEW1MrUUkgR46zb4OL7x1fRktkZJ/kYeFaGUlO7esKukEb8aLc8fQzQ==","signatures":[{"sig":"MEUCIQD7nhBo18zlYSH+YgWmnEXtdEcVmIaywJrLYFf01sl1aAIgVFWj+FSrh55470/1IraEAa5gMSqQlYIWSJ6+zooM31E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756245},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"266f210e8a72dfb83ffe9460085b0b28cc9a7db1","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.11.0_1764765288017_0.017590101854007445","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@deanfinancials/calculators","version":"1.12.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.12.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"03aafce7a5802eb0245b5127e8f88285af2d5843","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.12.0.tgz","fileCount":95,"integrity":"sha512-CoZTuwlT6b5Qy3k64oXmaJCroSARcvkQjwmNPypOkh/FYzuMDfLV1CxhppO/zmdw0po+6z9DlBm+yh73FG+Rlg==","signatures":[{"sig":"MEQCIHtzQgv1WJrTQ598DTCuE5YipLpSQ3k8mLXWNrUbVO1zAiBF+umdXG4pRc07ufEHeSau8THzuTqBqMH8tUM5jeWYfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":836410},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"1e3bb3918755255d574cf6ba6cdf58ea2620764a","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.12.0_1764795399923_0.017022046595669194","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@deanfinancials/calculators","version":"1.13.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.13.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"383f3f347873a8dedac698c55fdedf7561ea3979","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.13.0.tgz","fileCount":99,"integrity":"sha512-jmpQOFJpFmOPQiSmwrnJs/kN3xycbJAxfXMnlqyV4g6LLD9//mMXrLBx332wrkiCTNyWW5oE+p5TcflERgwDDQ==","signatures":[{"sig":"MEUCIHLY5peAZEmgVvV/s6dBy1n5NgcdahndlApBpFsVEbbBAiEAvM/2T+qS5UvKsDa06ge2lUiXam59ousxMbR4PCdBdrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":910761},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"133d607236609d55c2f135ddc1015ef76dc49293","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.13.0_1764797807044_0.8269610821039359","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@deanfinancials/calculators","version":"1.14.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.14.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"412d0c754917e28e65d66620e442b58a681804a9","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.14.0.tgz","fileCount":103,"integrity":"sha512-6Cwx6+RfMif5Aar3PMNvsBeFgTYoOyRvuQW1JLp3s+cjvSZ836TllpFu7vohWlU8rlP3HLtBXaq1xpHruOfkQg==","signatures":[{"sig":"MEUCIQDp1qmprehYmEuxlaW65x0Bxz/uHEkKuCcRNp2YVe1IHgIgCqw3XIi0RHJzWFEYR1NIqY1u2NQ7NH0EWr2oWbI4pE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1008711},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"3a35a9f0e7e31ba6ed9ea4036521b2bb47d5ab13","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.14.0_1764803994934_0.20990145182120923","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@deanfinancials/calculators","version":"1.15.0","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","_id":"@deanfinancials/calculators@1.15.0","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"dist":{"shasum":"86d4c0033e299fe77ed23c08f2b2864e75fc2b30","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.15.0.tgz","fileCount":107,"integrity":"sha512-Oa0jDv3+idrhSUA2s5YaM+2fJzXfYZk4jv7TjOmvAHG3UstXwsMV+FCz1In0hUxXmYkqiQYhFbZKtP8LSFCgfw==","signatures":[{"sig":"MEYCIQDsdd51N2COFATm7X62HsLmvgpvtCt6b1V2g+910dxt5wIhAOEu489TBBtq0PVoy1/AFhM/ofhWxK4mFApFAGY//R5k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1114668},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c734fa5ea9b8cddfc60c317274c3c5d904ca3b2c","scripts":{"test":"echo \"No tests yet\" && exit 0","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"repository":{"url":"git+https://github.com/GibsonNeo/deanfi-calculators.git","type":"git"},"_npmVersion":"10.9.3","description":"Transparent financial calculator library used by DeanFinancials.com","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calculators_1.15.0_1764858077779_0.7508297843239309","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@deanfinancials/calculators","version":"1.16.0","description":"Transparent financial calculator library used by DeanFinancials.com","type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"echo \"No tests yet\" && exit 0","prepublishOnly":"npm run build"},"keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"author":{"name":"Dean Financials"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/GibsonNeo/deanfi-calculators.git"},"homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","devDependencies":{"typescript":"^5.0.0"},"_id":"@deanfinancials/calculators@1.16.0","gitHead":"8a786c4fe344dc4fd0afee9caa1dd5f8ff7a1a4e","bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-81JP9ZaudUOYzmPg9aLLVB+nzXy50wP5a6iiWhjNpY9n49VpFaewX0+X4tZgXt+k6kB1TqibeFSCFn7s+J9XyA==","shasum":"a3fcaf9fad2241503fdf0cd4d4ffb9adcaf286ac","tarball":"https://registry.npmjs.org/@deanfinancials/calculators/-/calculators-1.16.0.tgz","fileCount":111,"unpackedSize":1216463,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDWMQOWsF/BQ8EV5FxkVh4ftZdn3447EqhzIr3lWfeMugIhANtyvx0o5C3wzM1cWjHTjjJ1jmND5xuq6OcHPZKrNIq9"}]},"_npmUser":{"name":"gibsonneo","email":"wesdean13@gmail.com"},"directories":{},"maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/calculators_1.16.0_1764883100426_0.0240886603584074"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-21T17:47:55.564Z","modified":"2025-12-04T21:18:20.851Z","1.0.0":"2025-11-21T17:47:55.858Z","1.0.1":"2025-11-21T17:50:25.661Z","1.1.0":"2025-11-30T22:01:40.527Z","1.2.0":"2025-11-30T22:23:52.150Z","1.2.1":"2025-11-30T23:09:06.406Z","1.3.0":"2025-12-01T20:36:30.804Z","1.4.0":"2025-12-01T22:48:56.136Z","1.5.0":"2025-12-02T01:09:51.352Z","1.6.0":"2025-12-02T12:14:14.206Z","1.7.0":"2025-12-02T15:47:03.637Z","1.8.0":"2025-12-02T20:54:58.706Z","1.8.1":"2025-12-02T21:36:38.840Z","1.9.0":"2025-12-02T22:42:31.379Z","1.10.0":"2025-12-03T00:22:07.444Z","1.11.0":"2025-12-03T12:34:48.332Z","1.12.0":"2025-12-03T20:56:40.167Z","1.13.0":"2025-12-03T21:36:47.270Z","1.14.0":"2025-12-03T23:19:55.168Z","1.15.0":"2025-12-04T14:21:17.976Z","1.16.0":"2025-12-04T21:18:20.612Z"},"bugs":{"url":"https://github.com/GibsonNeo/deanfi-calculators/issues"},"author":{"name":"Dean Financials"},"license":"MIT","homepage":"https://github.com/GibsonNeo/deanfi-calculators#readme","keywords":["financial-calculators","retirement-calculator","debt-calculator","mortgage-calculator","loan-calculator","401k-calculator","social-security","debt-payoff","finance","typescript"],"repository":{"type":"git","url":"git+https://github.com/GibsonNeo/deanfi-calculators.git"},"description":"Transparent financial calculator library used by DeanFinancials.com","maintainers":[{"name":"gibsonneo","email":"wesdean13@gmail.com"}],"readme":"# DeanFinancials Calculator Library\n\n**Transparent financial calculators used on DeanFinancials.com**\n\nThis library contains the exact calculation logic used on the DeanFinancials.com website, allowing for public verification of accuracy. All calculators are implemented as pure TypeScript functions with no external dependencies.\n\n## Purpose\n\nThis repository exists for **transparency**. Anyone can review the exact formulas and logic used for financial calculations on DeanFinancials.com. This allows:\n\n- **Verification** - Confirm calculations are mathematically sound\n- **Trust** - See exactly how numbers are derived\n- **Education** - Learn the formulas behind common financial calculations\n- **Reproducibility** - Run the same calculations independently\n\n## Installation\n\n```bash\nnpm install @deanfinancials/calculators\n```\n\n## Available Calculators\n\n### Retirement Planning\n\n#### 1. Retirement Savings Calculator\nCalculate projected retirement balance with compound interest.\n\n```typescript\nimport { calculateRetirementBalance, calculateDetailedProjection } from '@deanfinancials/calculators';\n\n// Simple balance projection\nconst balance = calculateRetirementBalance({\n  currentAge: 30,\n  retirementAge: 65,\n  currentBalance: 50000,\n  monthlyContribution: 500,\n  annualReturn: 7,\n  inflationRate: 2.5\n});\n\n// Detailed year-by-year projection\nconst projection = calculateDetailedProjection({\n  currentAge: 30,\n  retirementAge: 65,\n  currentBalance: 50000,\n  monthlyContribution: 500,\n  annualReturn: 7,\n  inflationRate: 2.5\n});\n```\n\n**Formula**: Compound interest with monthly contributions\n```\nFV = PV × (1 + r)^n + PMT × [((1 + r)^n - 1) / r]\n```\n\n#### 2. Withdrawal Strategy Calculator\nCompare fixed vs dynamic withdrawal strategies in retirement.\n\n```typescript\nimport { calculateWithdrawalStrategy } from '@deanfinancials/calculators';\n\nconst simulation = calculateWithdrawalStrategy({\n  startingBalance: 1000000,\n  annualReturn: 7,\n  inflationRate: 2.5,\n  yearsInRetirement: 30,\n  withdrawalType: 'fixed', // or 'dynamic'\n  fixedWithdrawalAmount: 40000,\n  dynamicWithdrawalRate: 4\n});\n\nconsole.log(simulation.successProbability); // Based on Trinity Study\nconsole.log(simulation.yearlyData); // Year-by-year projections\n```\n\n**Methods**:\n- **Fixed**: Same dollar amount adjusted for inflation\n- **Dynamic**: Percentage of remaining balance (recalculates annually)\n\n#### 3. Social Security Calculator\nCalculate benefits based on claiming age using official SSA rules.\n\n```typescript\nimport { calculateClaimingStrategy, calculateBreakEven } from '@deanfinancials/calculators';\n\nconst strategy = calculateClaimingStrategy({\n  monthlyBenefitAtFRA: 2000,\n  birthYear: 1960,\n  claimAge: 70\n});\n\nconst breakEven = calculateBreakEven({\n  monthlyBenefitAtFRA: 2000,\n  birthYear: 1960,\n  earlyClaimAge: 62,\n  lateClaimAge: 70\n});\n```\n\n**SSA Rules**:\n- **Full Retirement Age (FRA)**: 67 for those born 1960+\n- **Early claiming**: 5/9% reduction per month (first 36 months), then 5/12% per month\n- **Delayed credits**: 8% increase per year after FRA (until age 70)\n\n#### 4. 401(k) vs IRA Comparison\nCompare Traditional and Roth accounts with employer match.\n\n```typescript\nimport { compareAllAccounts } from '@deanfinancials/calculators';\n\nconst comparison = compareAllAccounts({\n  currentAge: 30,\n  retirementAge: 65,\n  annualContribution: 6000,\n  employerMatch: 0.5, // 50% match\n  employerMatchLimit: 0.06, // Up to 6% of salary\n  annualSalary: 100000,\n  annualReturn: 7,\n  currentTaxRate: 22,\n  retirementTaxRate: 15\n});\n\nconsole.log(comparison.traditional401k);\nconsole.log(comparison.roth401k);\nconsole.log(comparison.traditionalIRA);\nconsole.log(comparison.rothIRA);\n```\n\n**Key Differences**:\n- **Traditional**: Tax deduction now, taxed in retirement\n- **Roth**: After-tax contributions, tax-free withdrawals\n- **401(k)**: Employer match available\n- **IRA**: No employer match\n\n#### 5. RMD Calculator (Required Minimum Distribution)\nCalculate required minimum distributions from retirement accounts using IRS life expectancy tables, with multi-year projections, spouse beneficiary rules, and tax impact analysis.\n\n```typescript\nimport { \n  calculateRMD,\n  calculateMultipleAccountRMDs,\n  estimateRMDTaxImpact,\n  analyzeQCDOpportunity,\n  getRMDStartAge,\n  type RMDInputs,\n  type RMDResult,\n  type YearlyRMDProjection,\n  UNIFORM_LIFETIME_TABLE,\n  JOINT_LIFE_TABLE\n} from '@deanfinancials/calculators';\n\n// Calculate RMD for a single account\nconst result = calculateRMD({\n  birthYear: 1955,\n  accountBalance: 500000,\n  spouseBirthYear: 1970,              // Optional: spouse's birth year\n  spouseIsSoleBeneficiary: true,       // Optional: spouse is sole beneficiary\n  expectedReturnRate: 0.06,            // 6% expected return\n  projectionYears: 20,                 // Project 20 years forward\n  accountType: 'traditional_ira'       // Account type\n});\n\nconsole.log(result.currentRMD);              // Current year's required distribution\nconsole.log(result.distributionPeriod);       // Life expectancy factor used\nconsole.log(result.currentAge);               // Account holder's current age\nconsole.log(result.rmdStartAge);              // Age when RMDs begin (73 or 75)\nconsole.log(result.rmdStartYear);             // Year when RMDs begin\nconsole.log(result.rmdRequired);              // Whether RMDs are currently required\nconsole.log(result.yearsUntilRMD);            // Years until first RMD (0 if required)\nconsole.log(result.usingJointLifeTable);      // True if spouse >10 years younger\nconsole.log(result.firstRMDDeadline);         // \"April 1, 2029\" or similar\nconsole.log(result.rmdPercentage);            // RMD as % of balance\nconsole.log(result.penaltyRate);              // 25% penalty for missed RMDs\nconsole.log(result.warnings);                 // Important notices\n\n// Year-by-year projections\nconsole.log(result.projections);              // Array of YearlyRMDProjection\n// Each projection: { year, age, startBalance, rmd, distributionPeriod, \n//                    rmdPercentage, endBalance, growth, isFirstRMDYear, deadline }\nconsole.log(result.totalProjectedRMDs);       // Sum of all projected RMDs\nconsole.log(result.totalProjectedGrowth);     // Sum of all projected growth\nconsole.log(result.finalProjectedBalance);    // Ending balance after projections\n\n// Calculate RMDs across multiple accounts\nconst multiAccount = calculateMultipleAccountRMDs([\n  { birthYear: 1955, accountBalance: 300000, accountType: 'traditional_ira', accountLabel: 'Traditional IRA' },\n  { birthYear: 1955, accountBalance: 200000, accountType: '401k', accountLabel: 'Old 401(k)' }\n]);\n\nconsole.log(multiAccount.totalRMD);           // Combined RMD across all accounts\nconsole.log(multiAccount.totalBalance);       // Total balance across accounts\nconsole.log(multiAccount.accounts);           // Individual account results\nconsole.log(multiAccount.combinedProjections); // Aggregated year-by-year projections\nconsole.log(multiAccount.warnings);           // Including IRA aggregation note\n\n// Estimate tax impact of RMD\nconst taxImpact = estimateRMDTaxImpact(\n  20000,          // RMD amount\n  50000,          // Other taxable income\n  'married_joint' // Filing status\n);\n\nconsole.log(taxImpact.federalTax);     // Estimated federal tax on RMD\nconsole.log(taxImpact.marginalRate);   // Your marginal tax bracket\nconsole.log(taxImpact.effectiveRate);  // Effective rate on RMD\nconsole.log(taxImpact.stateNote);      // Note about state taxes\n\n// Analyze QCD (Qualified Charitable Distribution) opportunity\nconst qcdAnalysis = analyzeQCDOpportunity(\n  1952,           // Birth year (must be 70.5+)\n  25000,          // RMD amount\n  0.24            // Marginal tax rate\n);\n\nconsole.log(qcdAnalysis.qcdAvailable);        // Whether eligible for QCD\nconsole.log(qcdAnalysis.maxQCDAmount);        // $105,000 (2024 limit)\nconsole.log(qcdAnalysis.rmdSatisfiedByQCD);   // Amount of RMD covered by QCD\nconsole.log(qcdAnalysis.potentialTaxSavings); // Tax savings if RMD done as QCD\nconsole.log(qcdAnalysis.notes);               // QCD rules and requirements\n\n// Get RMD starting age based on birth year\nconst startAge = getRMDStartAge(1955);        // 73 (born 1951-1959)\nconst laterStartAge = getRMDStartAge(1965);   // 75 (born 1960+)\n```\n\n**Account Types Requiring RMDs**:\n- Traditional IRA, SEP IRA, SIMPLE IRA\n- 401(k), 403(b), 457(b)\n- Inherited IRA (10-year rule for most beneficiaries)\n- Inherited Roth IRA (10-year rule)\n\n**Accounts Exempt from RMDs**:\n- Roth IRA (during owner's lifetime)\n- Roth 401(k) (exempt starting 2024 per SECURE Act 2.0)\n\n**SECURE Act 2.0 RMD Age Rules**:\n| Birth Year | RMD Starting Age |\n|------------|------------------|\n| 1950 or earlier | 72 |\n| 1951-1959 | 73 |\n| 1960 or later | 75 |\n\n**Key Deadlines**:\n- **First RMD**: Due by April 1 of year after reaching RMD age\n- **Subsequent RMDs**: Due by December 31 of each year\n- **Penalty**: 25% excise tax (reduced to 10% if corrected within 2 years)\n\n**IRS Life Expectancy Tables**:\n- **Uniform Lifetime Table (Table III)**: Default for most account owners\n- **Joint Life Table (Table II)**: Used when spouse is sole beneficiary AND more than 10 years younger\n\n**QCD (Qualified Charitable Distribution) Benefits**:\n- Available at age 70½ (before RMD age)\n- Up to $105,000 per year (2024 limit)\n- Counts toward RMD but excluded from taxable income\n- Only applies to IRAs (not 401k/403b)\n\n**Features**:\n- Full IRS life expectancy tables (Uniform and Joint Life)\n- Spouse more than 10 years younger calculation\n- Multi-year projections with expected returns\n- Multi-account aggregation with IRA combination note\n- Tax impact estimation by filing status\n- QCD opportunity analysis\n- SECURE Act 2.0 compliant age rules\n- Penalty rate information\n\n#### 6. Roth IRA Conversion Calculator\nAnalyze the tax implications of converting Traditional IRA or 401(k) funds to a Roth IRA, with break-even analysis, optimal conversion strategies, bracket-filling recommendations, and multi-year projections.\n\n```typescript\nimport { \n  calculateRothConversion,\n  calculateTaxImpact,\n  calculateBreakEvenRoth,\n  calculateOptimalConversion,\n  calculateBracketFillingAmount,\n  generateProjections,\n  compareConversionScenarios,\n  type RothConversionInputs,\n  type RothConversionResult,\n  type RothFilingStatus,\n  type ConvertibleAccountType,\n  type TaxImpact,\n  type BreakEvenAnalysis,\n  type OptimalConversion,\n  type RothYearlyProjection,\n  FEDERAL_TAX_BRACKETS_2024,\n  FEDERAL_TAX_BRACKETS_2025,\n  STANDARD_DEDUCTIONS_2024\n} from '@deanfinancials/calculators';\n\n// Full Roth conversion analysis\nconst result = calculateRothConversion({\n  // Account information\n  traditionalBalance: 500000,              // Current Traditional IRA/401k balance\n  conversionAmount: 50000,                 // Amount to convert this year\n  accountType: 'traditional_ira',          // Account type being converted\n  \n  // Personal information\n  currentAge: 55,\n  retirementAge: 65,\n  filingStatus: 'married_joint',\n  \n  // Income information\n  currentTaxableIncome: 120000,            // Other taxable income this year\n  retirementTaxableIncome: 60000,          // Expected retirement income\n  \n  // Tax assumptions\n  currentStateTaxRate: 0.05,               // 5% state tax\n  retirementStateTaxRate: 0.05,            // May differ if relocating\n  taxYear: 2024,\n  \n  // Growth assumptions\n  expectedReturnRate: 0.07,                // 7% annual return\n  \n  // Optional: source for tax payment\n  payTaxFromConversion: false,             // Pay taxes from outside funds (recommended)\n  taxPaymentSource: 'external'             // 'external' or 'conversion'\n});\n\n// Conversion summary\nconsole.log(result.conversionAmount);           // $50,000\nconsole.log(result.traditionalBalance);         // $500,000 original balance\nconsole.log(result.remainingTraditionalBalance); // $450,000 after conversion\n\n// Tax impact of the conversion\nconsole.log(result.taxImpact.federalTax);       // Federal tax on conversion\nconsole.log(result.taxImpact.stateTax);         // State tax on conversion\nconsole.log(result.taxImpact.totalTax);         // Combined tax due\nconsole.log(result.taxImpact.effectiveRate);    // Effective tax rate on conversion\nconsole.log(result.taxImpact.marginalBracket);  // Tax bracket the conversion pushes you into\nconsole.log(result.taxImpact.bracketStart);     // Where current bracket begins\nconsole.log(result.taxImpact.bracketEnd);       // Where current bracket ends\nconsole.log(result.taxImpact.amountInHigherBracket); // Amount taxed at higher rate\n\n// Break-even analysis\nconsole.log(result.breakEvenAnalysis.breakEvenYears);     // Years until Roth is better\nconsole.log(result.breakEvenAnalysis.totalTaxNow);        // Tax cost of converting now\nconsole.log(result.breakEvenAnalysis.projectedTaxSavings); // Tax savings in retirement\nconsole.log(result.breakEvenAnalysis.netBenefit);         // Net benefit of conversion\nconsole.log(result.breakEvenAnalysis.worthConverting);    // Boolean recommendation\n\n// Optimal conversion recommendation\nconsole.log(result.optimalConversion.recommendedAmount);   // Suggested conversion amount\nconsole.log(result.optimalConversion.reasoning);           // Explanation\nconsole.log(result.optimalConversion.stayInCurrentBracket); // Amount to stay in bracket\nconsole.log(result.optimalConversion.fillNextBracket);     // Amount to fill next bracket\nconsole.log(result.optimalConversion.maxBeforeAGIPenalties); // IRMAA/NIIT thresholds\n\n// Bracket-filling strategy (unique feature!)\nconsole.log(result.bracketFillingStrategy.currentBracket);    // Current tax bracket\nconsole.log(result.bracketFillingStrategy.roomInBracket);     // Space left in current bracket\nconsole.log(result.bracketFillingStrategy.fillToTopOfBracket); // Conversion to fill bracket\nconsole.log(result.bracketFillingStrategy.nextBracketRate);   // Rate if you exceed\nconsole.log(result.bracketFillingStrategy.taxOnFillAmount);   // Tax if you fill bracket\n\n// Multi-year projections\nconsole.log(result.projections);                 // Year-by-year comparison\n// Each projection: { year, age, traditionalBalance, rothBalance, \n//                    traditionalWithdrawal, rothWithdrawal,\n//                    traditionalTax, rothTax, cumulativeTaxSavings }\n\n// Scenario comparison (no conversion vs partial vs full)\nconsole.log(result.scenarioComparison);\n// { noConversion: {...}, partialConversion: {...}, fullConversion: {...}, \n//   recommendation: 'partial', reasoning: '...' }\n\n// Warnings and recommendations\nconsole.log(result.warnings);                    // Important considerations\nconsole.log(result.recommendations);             // Personalized advice\n\n// Calculate tax impact for a specific conversion amount\nconst taxImpact = calculateTaxImpact(\n  50000,              // Conversion amount\n  120000,             // Current taxable income\n  'married_joint',    // Filing status\n  0.05,               // State tax rate\n  2024                // Tax year\n);\n\nconsole.log(taxImpact.federalTax);              // $11,000\nconsole.log(taxImpact.totalTax);                // $13,500 (with state)\nconsole.log(taxImpact.effectiveRate);           // 27%\n\n// Calculate break-even point\nconst breakEven = calculateBreakEvenRoth(\n  50000,              // Conversion amount\n  13500,              // Tax paid now\n  0.07,               // Expected return\n  0.22,               // Current marginal rate\n  0.15                // Expected retirement rate\n);\n\nconsole.log(breakEven.breakEvenYears);          // ~12 years\nconsole.log(breakEven.worthConverting);         // true\n\n// Calculate optimal conversion (bracket-filling)\nconst optimal = calculateOptimalConversion(\n  120000,             // Current taxable income\n  'married_joint',    // Filing status\n  2024                // Tax year\n);\n\nconsole.log(optimal.recommendedAmount);         // $81,050 (fills 22% bracket)\nconsole.log(optimal.stayInCurrentBracket);      // Amount to stay in 22%\n\n// Calculate exact bracket-filling amount\nconst bracketFill = calculateBracketFillingAmount(\n  120000,             // Current taxable income\n  'married_joint',    // Filing status\n  2024                // Tax year\n);\n\nconsole.log(bracketFill.roomInBracket);         // $81,050 until 24% bracket\nconsole.log(bracketFill.fillToTopOfBracket);    // $81,050 recommended conversion\nconsole.log(bracketFill.taxOnFillAmount);       // $17,831 (at 22%)\n\n// Generate multi-year projections\nconst projections = generateProjections({\n  traditionalBalance: 500000,\n  rothBalance: 0,\n  conversionAmount: 50000,\n  currentAge: 55,\n  retirementAge: 65,\n  expectedReturnRate: 0.07,\n  currentTaxRate: 0.22,\n  retirementTaxRate: 0.15,\n  projectionYears: 20\n});\n\nconsole.log(projections);                       // 20-year projection array\n\n// Compare multiple conversion scenarios\nconst scenarios = compareConversionScenarios({\n  traditionalBalance: 500000,\n  currentAge: 55,\n  retirementAge: 65,\n  currentTaxableIncome: 120000,\n  filingStatus: 'married_joint',\n  expectedReturnRate: 0.07,\n  currentStateTaxRate: 0.05,\n  retirementTaxRate: 0.15\n}, [0, 25000, 50000, 81050, 100000]);            // Compare different amounts\n\nconsole.log(scenarios.bestScenario);            // Index of optimal scenario\nconsole.log(scenarios.scenarios);               // Full results for each amount\n```\n\n**Filing Statuses**: `single`, `married_joint`, `married_separate`, `head_of_household`\n\n**Account Types**: `traditional_ira`, `401k`, `403b`, `sep_ira`, `simple_ira`\n\n**2024 Federal Tax Brackets (Married Filing Jointly)**:\n| Bracket | Income Range | Conversion Strategy |\n|---------|--------------|---------------------|\n| 10% | $0 - $23,200 | Convert up to bracket top |\n| 12% | $23,200 - $94,300 | Good conversion opportunity |\n| 22% | $94,300 - $201,050 | Common target bracket |\n| 24% | $201,050 - $383,900 | Consider if retirement rate is 22%+ |\n| 32%+ | $383,900+ | Usually avoid unless special circumstances |\n\n**Standard Deductions (2024)**:\n- Single: $14,600\n- Married Filing Jointly: $29,200\n- Married Filing Separately: $14,600\n- Head of Household: $21,900\n\n**When to Consider Roth Conversion**:\n- Lower income year (job loss, early retirement, sabbatical)\n- Expect higher tax rates in retirement\n- Want tax-free growth for heirs\n- Reducing future RMD burden\n- Years before RMDs begin (can spread conversions)\n\n**Key Thresholds to Watch**:\n- **IRMAA (Medicare Surcharges)**: Income > $103,000 (single) / $206,000 (married)\n- **NIIT (3.8% Net Investment Tax)**: Income > $200,000 (single) / $250,000 (married)\n- **Capital Gains 0% Rate**: Stay below 12% bracket for 0% LTCG\n\n**Features That Competitors Don't Have**:\n- **Bracket-filling strategy**: Exact amount to convert to fill current bracket\n- Multi-year projections comparing traditional vs Roth paths\n- Scenario comparison (no/partial/full conversion)\n- IRMAA and NIIT threshold warnings\n- State tax integration\n- Break-even analysis with years until benefit\n- Account type support (IRA, 401k, 403b, SEP, SIMPLE)\n- Tax payment source comparison (internal vs external)\n\n### Debt Management\n\n#### 6. Debt Payoff Strategy\nCompare avalanche (highest interest first) vs snowball (smallest balance first) methods.\n\n```typescript\nimport { calculateDebtPayoff, comparePayoffStrategies } from '@deanfinancials/calculators';\n\nconst debts = [\n  { name: 'Credit Card 1', balance: 5000, interestRate: 18, minimumPayment: 150 },\n  { name: 'Credit Card 2', balance: 3000, interestRate: 24, minimumPayment: 90 },\n  { name: 'Car Loan', balance: 15000, interestRate: 5, minimumPayment: 300 }\n];\n\nconst comparison = comparePayoffStrategies({\n  debts,\n  extraPayment: 500\n});\n\nconsole.log(comparison.avalanche); // Saves more on interest\nconsole.log(comparison.snowball); // Faster psychological wins\n```\n\n**Strategies**:\n- **Avalanche**: Target highest interest rate (saves most money)\n- **Snowball**: Target smallest balance (motivational wins)\n\n#### 7. Debt-to-Income Ratio\nCalculate DTI for mortgage qualification.\n\n```typescript\nimport { calculateDTI } from '@deanfinancials/calculators';\n\nconst dti = calculateDTI({\n  monthlyIncome: 8000,\n  monthlyHousingCosts: 2000,\n  monthlyDebtPayments: 800\n});\n\nconsole.log(dti.frontEndRatio); // Housing / Income\nconsole.log(dti.backEndRatio); // All debts / Income\nconsole.log(dti.rating); // excellent, good, fair, poor, concerning\n```\n\n**Benchmarks**:\n- **Excellent**: ≤20%\n- **Good**: ≤36% (conventional loan standard)\n- **Fair**: ≤43% (FHA loan limit)\n- **Poor**: ≤50%\n\n#### 8. Credit Card Payoff\nCompare minimum payment vs fixed payment strategies.\n\n```typescript\nimport { compareCreditCardStrategies } from '@deanfinancials/calculators';\n\nconst comparison = compareCreditCardStrategies({\n  balance: 5000,\n  interestRate: 18,\n  minimumPaymentPercentage: 2,\n  minimumPaymentFloor: 25,\n  fixedPayment: 200\n});\n\nconsole.log(comparison.minimumPayment.monthsToPayoff);\nconsole.log(comparison.fixedPayment.monthsToPayoff);\nconsole.log(comparison.interestSavings);\n```\n\n**Minimum Payment Formula**:\n```\nmax(balance × percentage, floor amount)\n```\n\n#### 9. Loan Calculator\nCalculate monthly payments and amortization schedule.\n\n```typescript\nimport { calculateMonthlyPayment, calculateLoanAmortization } from '@deanfinancials/calculators';\n\nconst payment = calculateMonthlyPayment({\n  principal: 20000,\n  interestRate: 5,\n  termMonths: 60\n});\n\nconst amortization = calculateLoanAmortization({\n  principal: 20000,\n  interestRate: 5,\n  termMonths: 60,\n  extraPayment: 100\n});\n```\n\n**Monthly Payment Formula**:\n```\nM = P × [r(1 + r)^n] / [(1 + r)^n - 1]\n\nWhere:\nM = Monthly payment\nP = Principal\nr = Monthly interest rate\nn = Number of months\n```\n\n#### 10. Mortgage Calculator\nComprehensive mortgage calculator with P&I, taxes, insurance, PMI, and HOA.\n\n```typescript\nimport { calculateMortgage, calculateAffordableHome } from '@deanfinancials/calculators';\n\nconst mortgage = calculateMortgage({\n  homePrice: 400000,\n  downPayment: 80000, // 20%\n  interestRate: 6.5,\n  loanTermYears: 30,\n  propertyTaxRate: 1.2,\n  homeInsurance: 1200,\n  hoaFees: 0,\n  extraPayment: 200\n});\n\nconsole.log(mortgage.monthlyPrincipalInterest);\nconsole.log(mortgage.totalMonthlyPayment); // Includes PITI\nconsole.log(mortgage.requiresPMI); // false (20% down)\n\n// Calculate affordable home price\nconst affordable = calculateAffordableHome(\n  8000, // Monthly income\n  500,  // Other debts\n  80000, // Down payment\n  6.5,  // Interest rate\n  30    // Term years\n);\n```\n\n**PMI Rules**:\n- Required when down payment < 20%\n- Typically 0.5% - 1% of loan amount annually\n- Automatically removed when equity reaches 20%\n\n**28/36 Rule** (affordability):\n- Housing costs ≤ 28% of gross income\n- All debts ≤ 36% of gross income\n\n### Investment\n\n#### 11. Compound Interest Calculator\nCalculate compound interest growth with various compounding frequencies and contribution timing.\n\n```typescript\nimport { \n  calculateCompoundInterest, \n  compareCompoundInterestScenarios,\n  calculateEffectiveAnnualRate,\n  calculateYearsToDouble \n} from '@deanfinancials/calculators';\n\n// Calculate compound growth\nconst result = calculateCompoundInterest({\n  principal: 10000,\n  annualRate: 7,\n  years: 30,\n  monthlyContribution: 500,\n  compoundingFrequency: 'monthly',\n  contributionTiming: 'beginning'\n});\n\nconsole.log(result.finalBalance);         // Total ending balance\nconsole.log(result.totalContributions);   // Sum of all contributions\nconsole.log(result.totalInterest);        // Interest earned\nconsole.log(result.effectiveAnnualRate);  // APY\nconsole.log(result.yearlyBreakdown);      // Year-by-year detail\n\n// Compare different scenarios\nconst scenarios = compareCompoundInterestScenarios(\n  { principal: 10000, annualRate: 7, years: 30 },\n  [500, 750, 1000]  // Different contribution amounts\n);\n\n// Calculate effective annual rate (APY)\nconst ear = calculateEffectiveAnnualRate(7, 'monthly'); // 7.23%\n\n// Calculate time to double (Rule of 72)\nconst yearsToDouble = calculateYearsToDouble(7); // ~10.29 years\n```\n\n**Compounding Frequencies**: `annually`, `semi-annually`, `quarterly`, `monthly`, `daily`\n\n**Contribution Timing**:\n- **Beginning**: Contributions made at start of each period (more growth)\n- **End**: Contributions made at end of each period (typical paycheck timing)\n\n**Formulas**:\n```\nCompound Interest: A = P(1 + r/n)^(nt)\nEffective Annual Rate: EAR = (1 + r/n)^n - 1\nRule of 72: Years to Double ≈ 72 / rate\n```\n\n#### 13. CD Calculator (Certificate of Deposit)\nCalculate CD returns, build CD ladders, estimate early withdrawal penalties, and compare multiple CD options.\n\n```typescript\nimport { \n  calculateCD,\n  buildCDLadder,\n  calculateEarlyWithdrawal,\n  compareCDScenarios,\n  type CDInputs,\n  type CDResult,\n  type CDLadderResult,\n  type EarlyWithdrawalResult,\n  type CDComparisonResult,\n  type CDCompoundingFrequency,\n  TYPICAL_CD_RATES,\n  TYPICAL_PENALTIES\n} from '@deanfinancials/calculators';\n\n// Calculate a single CD\nconst cdResult = calculateCD({\n  principal: 10000,\n  apy: 0.05,              // 5% as decimal\n  termMonths: 12,\n  compoundingFrequency: 'daily',\n  federalTaxRate: 0.22,   // Optional: for after-tax calculations\n  stateTaxRate: 0.05,     // Optional: for after-tax calculations\n  inflationRate: 0.03     // Optional: for real return calculations\n});\n\nconsole.log(cdResult.maturityValue);      // Final balance at maturity\nconsole.log(cdResult.totalInterest);      // Total interest earned\nconsole.log(cdResult.effectiveAnnualRate); // Actual annual rate with compounding\nconsole.log(cdResult.monthlyBreakdown);   // Month-by-month growth\nconsole.log(cdResult.afterTaxInterest);   // Interest after taxes (if tax rates provided)\nconsole.log(cdResult.realReturn);         // Inflation-adjusted return (if inflation provided)\n\n// Build a CD ladder\nconst ladder = buildCDLadder(\n  50000,    // Total investment\n  5,        // Number of rungs (CDs)\n  60,       // Maximum term in months (5 years)\n  TYPICAL_CD_RATES  // Rate schedule by term\n);\n\nconsole.log(ladder.rungs);                // Individual CDs with terms and rates\nconsole.log(ladder.totalMaturityValue);   // Combined maturity value\nconsole.log(ladder.totalInterest);        // Total interest across all CDs\nconsole.log(ladder.weightedAverageAPY);   // Average rate weighted by amount\nconsole.log(ladder.liquiditySchedule);    // When funds become available\n\n// Calculate early withdrawal penalty\nconst earlyWithdrawal = calculateEarlyWithdrawal(\n  { principal: 10000, apy: 0.05, termMonths: 24, compoundingFrequency: 'daily' },\n  6,   // Months held before withdrawal\n  { type: 'months-interest', value: 6 }  // 6 months interest penalty\n);\n\nconsole.log(earlyWithdrawal.valueAtWithdrawal);  // Value before penalty\nconsole.log(earlyWithdrawal.penaltyAmount);      // Dollar amount of penalty\nconsole.log(earlyWithdrawal.netAmount);          // What you receive\nconsole.log(earlyWithdrawal.principalLoss);      // Boolean: did you lose principal?\nconsole.log(earlyWithdrawal.effectiveYield);     // Actual yield achieved\n\n// Compare multiple CD options\nconst comparison = compareCDScenarios([\n  { label: 'Online Bank', inputs: { principal: 10000, apy: 0.052, termMonths: 12, compoundingFrequency: 'daily' } },\n  { label: 'Credit Union', inputs: { principal: 10000, apy: 0.048, termMonths: 12, compoundingFrequency: 'monthly' } },\n  { label: 'Local Bank', inputs: { principal: 10000, apy: 0.045, termMonths: 12, compoundingFrequency: 'quarterly' } }\n]);\n\nconsole.log(comparison.scenarios);        // Full results for each option\nconsole.log(comparison.bestByInterest);   // Index of best CD by interest earned\nconsole.log(comparison.bestByYield);      // Index of best CD by effective yield\nconsole.log(comparison.interestDifference); // Difference between best and worst\n```\n\n**Compounding Frequencies**: `daily`, `monthly`, `quarterly`, `semi-annually`, `annually`\n\n**Early Withdrawal Penalty Types**:\n- `days-simple`: X days of simple interest (typical for short-term CDs)\n- `months-interest`: X months of interest (most common)\n- `percent-interest`: X% of earned interest\n- `custom`: Custom dollar amount\n\n**Typical Penalties by Term** (included as `TYPICAL_PENALTIES` constant):\n| Term | Typical Penalty |\n|------|-----------------|\n| 3-6 months | 90 days interest |\n| 12-18 months | 3 months interest |\n| 24-36 months | 6 months interest |\n| 48-60 months | 12 months interest |\n\n**Typical CD Rates** (included as `TYPICAL_CD_RATES` constant):\nProvides low, average, and high rates for each standard term (1, 3, 6, 9, 12, 18, 24, 36, 48, 60 months).\n\n#### 14. Net Worth Calculator\nCalculate total net worth with comprehensive asset and liability tracking, financial health scoring, and age-based wealth percentile comparisons.\n\n```typescript\nimport { \n  calculateNetWorth,\n  type Asset,\n  type Liability,\n  type NetWorthInput\n} from '@deanfinancials/calculators';\n\n// Define assets\nconst assets: Asset[] = [\n  { category: 'cash', balance: 25000 },\n  { category: 'investments', balance: 150000 },\n  { category: 'retirement', balance: 350000 },\n  { category: 'realEstate', balance: 450000 },\n  { category: 'vehicles', balance: 35000 },\n  { category: 'personalProperty', balance: 20000 },\n  { category: 'businessEquity', balance: 0 },\n  { category: 'other', balance: 10000 }\n];\n\n// Define liabilities\nconst liabilities: Liability[] = [\n  { category: 'mortgage', balance: 280000 },\n  { category: 'autoLoans', balance: 18000 },\n  { category: 'studentLoans', balance: 45000 },\n  { category: 'creditCards', balance: 5000 },\n  { category: 'personalLoans', balance: 0 },\n  { category: 'homeEquityLoans', balance: 0 },\n  { category: 'medicalDebt', balance: 2000 },\n  { category: 'other', balance: 0 }\n];\n\n// Calculate net worth with optional age and income for percentile comparison\nconst result = calculateNetWorth({\n  assets,\n  liabilities,\n  age: 45,\n  annualIncome: 120000,\n  monthlySavingsRate: 2500,\n  expectedReturnRate: 7\n});\n\nconsole.log(result.netWorth);              // Total net worth\nconsole.log(result.totalAssets);           // Sum of all assets\nconsole.log(result.totalLiabilities);      // Sum of all liabilities\nconsole.log(result.liquidAssets);          // Cash + Investments\nconsole.log(result.illiquidAssets);        // Real estate, vehicles, etc.\nconsole.log(result.debtToAssetRatio);      // Liabilities / Assets\nconsole.log(result.assetAllocation);       // Breakdown by category with percentages\nconsole.log(result.liabilityAllocation);   // Breakdown by category with percentages\n\n// Financial health score (0-100 with letter grade)\nconsole.log(result.financialHealth.score);        // 0-100\nconsole.log(result.financialHealth.grade);        // A+, A, A-, B+, B, B-, C+, C, C-, D, F\nconsole.log(result.financialHealth.rating);       // excellent, good, fair, poor, critical\nconsole.log(result.financialHealth.recommendations); // Array of improvement suggestions\n\n// Age-based wealth comparison (if age provided)\nconsole.log(result.wealthPercentile?.percentile);   // e.g., 72 (72nd percentile)\nconsole.log(result.wealthPercentile?.comparison);   // \"above average\", \"below average\", etc.\nconsole.log(result.wealthPercentile?.medianWealth); // Median for age group\nconsole.log(result.wealthPercentile?.avgWealth);    // Average for age group\n\n// 10-year projections (if savings rate and return rate provided)\nconsole.log(result.projections);           // Array of year-by-year projections\n// Each projection: { year, projectedAssets, projectedLiabilities, projectedNetWorth }\n```\n\n**Asset Categories**: `cash`, `investments`, `retirement`, `realEstate`, `vehicles`, `personalProperty`, `businessEquity`, `other`\n\n**Liability Categories**: `mortgage`, `homeEquityLoans`, `autoLoans`, `studentLoans`, `creditCards`, `personalLoans`, `medicalDebt`, `other`\n\n**Financial Health Grades**:\n- **A+ to A-**: Excellent (score 90-100, 80-89, 75-79)\n- **B+ to B-**: Good (score 70-74, 65-69, 60-64)\n- **C+ to C-**: Fair (score 55-59, 50-54, 45-49)\n- **D**: Poor (score 40-44)\n- **F**: Critical (score below 40)\n\n**Wealth Percentile Data**: Based on Federal Reserve Survey of Consumer Finances (SCF) age-bracketed data\n\n#### 15. Dividend Income Calculator\nCalculate dividend income, yield, DRIP (dividend reinvestment) growth, and passive income projections with tax optimization and dividend stability assessment.\n\n```typescript\nimport { \n  calculateDividendIncome,\n  calculateDividendYield,\n  quickDividendYield,\n  calculateRequiredInvestment,\n  assessDividendStability,\n  calculateDividendTaxBreakdown,\n  compareDividendScenarios,\n  estimateYearsToGoal,\n  type DividendIncomeInputs,\n  type DividendIncomeResult,\n  type YearlyDividendProjection,\n  type DividendStabilityAssessment,\n  type DividendTaxBreakdown,\n  type DividendFrequency,\n  type DividendTaxFilingStatus,\n  type DividendStabilityRating,\n  DIVIDEND_TAX_BRACKETS_2024,\n  STANDARD_DEDUCTIONS_2024\n} from '@deanfinancials/calculators';\n\n// Full dividend income calculation with DRIP\nconst result = calculateDividendIncome({\n  principal: 100000,\n  annualDividendYield: 4,                  // 4% yield\n  dividendFrequency: 'quarterly',          // How often dividends are paid\n  yearsToProject: 20,\n  reinvestDividends: true,                 // Enable DRIP\n  dividendGrowthRate: 5,                   // 5% annual dividend growth\n  additionalInvestmentPerYear: 6000,       // $500/month\n  qualifiedDividendPercentage: 80,         // 80% qualified (lower tax)\n  taxFilingStatus: 'married-filing-jointly',\n  taxableIncome: 150000,\n  inflationRate: 3\n});\n\nconsole.log(result.yearlyProjections);            // Year-by-year breakdown\nconsole.log(result.totalDividendsReceived);       // Cumulative dividends over period\nconsole.log(result.finalPortfolioValue);          // Ending portfolio value\nconsole.log(result.effectiveYieldOnCost);         // Yield on original investment\nconsole.log(result.compoundedAnnualGrowthRate);   // CAGR of portfolio\nconsole.log(result.yearlyIncomeAtEnd);            // Annual dividend income at year 20\nconsole.log(result.monthlyIncomeAtEnd);           // Monthly passive income at end\n\n// Tax breakdown\nconsole.log(result.taxBreakdown.qualifiedDividends);   // Amount taxed at lower rate\nconsole.log(result.taxBreakdown.ordinaryDividends);    // Amount taxed at ordinary rate\nconsole.log(result.taxBreakdown.qualifiedTaxRate);     // Applied qualified rate (0%, 15%, 20%)\nconsole.log(result.taxBreakdown.estimatedTax);         // Annual tax liability\nconsole.log(result.taxBreakdown.afterTaxIncome);       // Net income after taxes\n\n// Each yearly projection includes:\n// { year, startingValue, dividendIncome, taxOnDividends, netDividendIncome,\n//   reinvestedAmount, additionalInvestment, endingValue, yieldOnCost, \n//   cumulativeDividends, inflationAdjustedIncome }\n\n// Calculate dividend yield\nconst yieldResult = calculateDividendYield({\n  stockPrice: 150,\n  annualDividend: 6               // $6 per share annually\n});\nconsole.log(yieldResult.dividendYield);       // 4%\nconsole.log(yieldResult.quarterlyDividend);   // $1.50\nconsole.log(yieldResult.monthlyEquivalent);   // $0.50\n\n// Quick yield calculation\nconst quickYield = quickDividendYield(150, 6);  // 4%\n\n// Calculate required investment for income goal\nconst requiredInvestment = calculateRequiredInvestment(\n  50000,   // Desired annual income\n  4        // Current dividend yield\n);\nconsole.log(requiredInvestment);              // $1,250,000\n\n// Assess dividend stability (unique feature!)\nconst stability = assessDividendStability({\n  yearsOfConsecutiveGrowth: 25,\n  averageGrowthRate: 7,\n  payoutRatio: 45,\n  sectorStability: 'high',\n  marketCap: 'large-cap',\n  hasReducedDividend: false\n});\nconsole.log(stability.stabilityScore);        // 0-100 score\nconsole.log(stability.stabilityRating);       // 'excellent', 'good', 'moderate', 'poor', 'risky'\nconsole.log(stability.isDividendAristocrat);  // 25+ years of growth\nconsole.log(stability.isDividendKing);        // 50+ years of growth\nconsole.log(stability.recommendations);       // Array of insights\nconsole.log(stability.riskFactors);           // Potential concerns\nconsole.log(stability.positiveFactors);       // Strengths\n\n// Calculate tax breakdown for a specific dividend amount\nconst taxBreakdown = calculateDividendTaxBreakdown({\n  totalDividends: 20000,\n  qualifiedPercentage: 80,\n  taxableIncome: 150000,\n  filingStatus: 'married-filing-jointly'\n});\n\n// Compare multiple dividend scenarios\nconst scenarios = compareDividendScenarios([\n  { label: 'High Yield ETF', principal: 100000, annualDividendYield: 6, dividendGrowthRate: 2 },\n  { label: 'Dividend Aristocrats', principal: 100000, annualDividendYield: 3, dividendGrowthRate: 8 },\n  { label: 'Balanced Portfolio', principal: 100000, annualDividendYield: 4, dividendGrowthRate: 5 }\n], 20);  // Compare over 20 years\n\nconsole.log(scenarios.scenarios);             // Full results for each\nconsole.log(scenarios.bestByTotalDividends);  // Scenario label with most total dividends\nconsole.log(scenarios.bestByFinalValue);      // Scenario label with highest ending value\nconsole.log(scenarios.bestByIncomeAtEnd);     // Scenario with highest income at end\nconsole.log(scenarios.summary);               // Quick comparison stats\n\n// Estimate years to reach income goal\nconst yearsNeeded = estimateYearsToGoal(\n  100000,  // Current portfolio\n  50000,   // Target annual income\n  4,       // Current yield\n  5,       // Dividend growth rate\n  6000,    // Additional investment per year\n  true     // Reinvest dividends\n);\nconsole.log(yearsNeeded);                     // ~18 years\n```\n\n**Dividend Frequencies**: `monthly`, `quarterly`, `semi-annually`, `annually`\n\n**Tax Filing Statuses**: `single`, `married-filing-jointly`, `married-filing-separately`, `head-of-household`\n\n**Dividend Stability Ratings**:\n- **Excellent** (score 85-100): Dividend Kings, Aristocrats - very reliable\n- **Good** (score 70-84): Strong dividend history, low risk\n- **Moderate** (score 50-69): Reasonable stability, some risk factors\n- **Poor** (score 30-49): Higher risk, inconsistent history\n- **Risky** (score 0-29): High probability of dividend cut\n\n**Qualified Dividend Tax Rates (2024)**:\n| Filing Status | 0% Rate | 15% Rate | 20% Rate |\n|---------------|---------|----------|----------|\n| Single | Up to $47,025 | $47,026 - $518,900 | Over $518,900 |\n| Married Filing Jointly | Up to $94,050 | $94,051 - $583,750 | Over $583,750 |\n| Head of Household | Up to $63,000 | $63,001 - $551,350 | Over $551,350 |\n\n**Features That Competitors Don't Have**:\n- Dividend Stability Score (0-100) with risk assessment\n- Dividend Aristocrat/King detection\n- DRIP vs non-DRIP comparison\n- Qualified vs ordinary dividend tax optimization\n- Inflation-adjusted income projections\n- Yield on cost tracking (effective yield on original investment)\n- Multi-scenario comparison for portfolio strategies\n- Years-to-goal calculator for passive income targets\n\n### Budget\n\n#### 16. Savings Goal Calculator\nCalculate how much to save monthly to reach any financial goal with milestone tracking.\n\n```typescript\nimport { \n  calculateSavingsGoal,\n  calculateTimeToGoal,\n  calculateEmergencyFundGoal,\n  calculateDownPaymentGoal,\n  compareSavingsScenarios\n} from '@deanfinancials/calculators';\n\n// Calculate savings plan for a goal\nconst result = calculateSavingsGoal({\n  goalAmount: 50000,\n  currentSavings: 5000,\n  yearsToGoal: 3,\n  expectedReturnRate: 5,\n  contributionFrequency: 'monthly',\n  goalType: 'home-down-payment'\n});\n\nconsole.log(result.requiredContribution);  // Amount per contribution period\nconsole.log(result.monthlyContribution);   // Monthly amount needed\nconsole.log(result.totalContributions);    // Sum of all contributions\nconsole.log(result.totalReturns);          // Interest/returns earned\nconsole.log(result.projectedBalance);      // Final balance\nconsole.log(result.milestones);            // 25%, 50%, 75%, 100% markers\nconsole.log(result.yearlyProgress);        // Year-by-year breakdown\n\n// Calculate time needed to reach a goal\nconst timeToGoal = calculateTimeToGoal(\n  50000,  // Goal amount\n  5000,   // Current savings\n  1000,   // Monthly contribution\n  5       // Expected return rate\n);\nconsole.log(timeToGoal.years);             // Years to goal\nconsole.log(timeToGoal.months);            // Additional months\nconsole.log(timeToGoal.totalMonths);       // Total months\n\n// Emergency fund calculator (3-6 months expenses)\nconst emergencyFund = calculateEmergencyFundGoal(\n  5000,   // Monthly expenses\n  6       // Months of coverage\n);\nconsole.log(emergencyFund);                // Target amount: $30,000\n\n// Down payment calculator (with closing costs)\nconst downPayment = calculateDownPaymentGoal(\n  400000, // Home price\n  20,     // Down payment percentage (20%)\n  true    // Include 3% closing costs\n);\nconsole.log(downPayment);                  // Target amount: $92,000\n\n// Compare different savings scenarios\nconst scenarios = compareSavingsScenarios([\n  { goalAmount: 50000, currentSavings: 5000, yearsToGoal: 3, expectedReturnRate: 3 },\n  { goalAmount: 50000, currentSavings: 5000, yearsToGoal: 3, expectedReturnRate: 5 },\n  { goalAmount: 50000, currentSavings: 5000, yearsToGoal: 3, expectedReturnRate: 7 }\n]);\n```\n\n**Goal Types**: `emergency-fund`, `home-down-payment`, `vacation`, `car`, `education`, `wedding`, `retirement`, `custom`\n\n**Contribution Frequencies**: `weekly`, `bi-weekly`, `monthly`, `quarterly`, `annually`\n\n**Features**:\n- Milestone tracking (25%, 50%, 75%, 100%)\n- Year-by-year progress breakdown with status (on-track, ahead, behind)\n- Scenario comparison with different contribution levels\n- Specialized calculators for emergency funds and down payments\n- Achievability warnings for difficult goals\n\n#### 17. Emergency Fund Calculator\nCalculate personalized emergency fund recommendations based on your risk profile, with savings plans and milestone tracking.\n\n```typescript\nimport { \n  calculateEmergencyFund,\n  quickEmergencyFund,\n  timeToEmergencyFund,\n  getRecommendedMonths,\n  type EmergencyFundInputs,\n  type EmergencyFundResult,\n  type ExpenseEntry,\n  type EmploymentType,\n  EXPENSE_CATEGORY_NAMES\n} from '@deanfinancials/calculators';\n\n// Full calculation with risk assessment\nconst result = calculateEmergencyFund({\n  expenses: 4500,                        // Monthly essential expenses\n  currentSavings: 5000,                  // Current emergency fund balance\n  monthlyIncome: 7000,                   // After-tax income\n  employmentType: 'stable-employed',     // Employment stability\n  incomeSources: 1,                      // Number of income sources\n  dependents: 2,                         // Number of dependents\n  hasDisabilityInsurance: true,          // Has disability coverage\n  hasSeveranceProtection: false,         // Severance or union protections\n  expectedJobSearchMonths: 4,            // Months to find new job if laid off\n  monthlySavingsCapacity: 800            // How much can be saved monthly\n});\n\nconsole.log(result.monthlyExpenses);         // $4,500\nconsole.log(result.recommendedTarget);       // $27,000 (6 months based on risk)\nconsole.log(result.minimumTarget);           // $13,500 (3 months minimum)\nconsole.log(result.conservativeTarget);      // $40,500 (9 months conservative)\nconsole.log(result.currentCoverage);         // 1.11 months covered\nconsole.log(result.fundingGap);              // $22,000 still needed\nconsole.log(result.percentComplete);         // 18.5%\n\n// Risk assessment results\nconsole.log(result.riskAssessment.riskScore);        // 1-10 scale\nconsole.log(result.riskAssessment.riskLevel);        // 'low', 'moderate', 'high', 'very-high'\nconsole.log(result.riskAssessment.recommendedMonths); // 6 months\nconsole.log(result.riskAssessment.riskFactors);      // ['2 dependents to support', 'Single income']\nconsole.log(result.riskAssessment.protectiveFactors); // ['Disability insurance']\n\n// Milestones\nconsole.log(result.milestones);              // Progress milestones (1, 2, 3, 6, 9, 12 months)\n// Each milestone: { label, months, amount, weeksToReach, achieved, description }\n\n// Scenario comparisons\nconsole.log(result.scenarios);               // Compare 3, 6, 9, 12 month targets\n// Each scenario: { name, months, targetAmount, monthsToReach, weeklySavingsRequired, riskLevel }\n\n// Savings plan (month-by-month projection with HYSA interest)\nconsole.log(result.savingsPlan);             // Monthly progress to goal\nconsole.log(result.monthsToGoal);            // ~28 months at $800/month\nconsole.log(result.weeklySavingsFor12Months); // $423/week to reach goal in 1 year\nconsole.log(result.monthlySavingsFor12Months); // $1,833/month to reach goal in 1 year\n\n// Recommendations and warnings\nconsole.log(result.recommendations);         // Personalized advice array\nconsole.log(result.warnings);                // Warning messages if applicable\n\n// With itemized expenses for detailed breakdown\nconst detailedResult = calculateEmergencyFund({\n  expenses: [\n    { category: 'housing', amount: 2000, description: 'Rent' },\n    { category: 'utilities', amount: 250, description: 'Electric, gas, internet' },\n    { category: 'food', amount: 600, description: 'Groceries' },\n    { category: 'transportation', amount: 400, description: 'Car payment + insurance' },\n    { category: 'insurance', amount: 300, description: 'Health insurance' },\n    { category: 'debt-payments', amount: 500, description: 'Student loans' },\n    { category: 'healthcare', amount: 100, description: 'Prescriptions' },\n    { category: 'childcare', amount: 350, description: 'Daycare' }\n  ],\n  currentSavings: 5000,\n  employmentType: 'variable-income',\n  dependents: 1\n});\n\nconsole.log(detailedResult.expenseBreakdown); // Breakdown by category\n\n// Quick calculation helpers\nconst quickFund = quickEmergencyFund(4500, 6);  // $27,000\nconst timeToReach = timeToEmergencyFund(27000, 5000, 800, 4.5);  // ~27 months\nconst recommendedMonths = getRecommendedMonths(true, true, true); // 9 months\n```\n\n**Employment Types**: `stable-employed`, `variable-income`, `self-employed`, `government`, `high-risk-industry`, `retired`\n\n**Expense Categories**: `housing`, `utilities`, `food`, `transportation`, `insurance`, `debt-payments`, `healthcare`, `childcare`, `other-essential`\n\n**Risk Level Recommendations**:\n- **Low Risk** (score 1-3): 3 months minimum\n- **Moderate Risk** (score 4-5): 6 months recommended\n- **High Risk** (score 6-7): 9 months recommended\n- **Very High Risk** (score 8-10): 12 months recommended\n\n**Risk Factors Considered**:\n- Employment type and stability\n- Number of income sources in household\n- Number of dependents\n- Disability insurance coverage\n- Severance/job protections\n- Expected job search duration\n\n**Features That Competitors Don't Have**:\n- Risk-adjusted recommendations based on personal factors\n- Detailed expense category breakdown\n- Month-by-month savings plan with HYSA interest\n- Multiple scenario comparison (3/6/9/12 months)\n- Weekly and monthly savings requirements\n- Personalized recommendations based on your situation\n\n#### 18. 50/30/20 Budget Calculator\nCalculate budget allocation based on the classic 50/30/20 rule and compare alternative budgeting strategies.\n\n```typescript\nimport { \n  calculateBudget,\n  quickBudget,\n  categoryBudget,\n  projectSavings,\n  suggestBudgetRule,\n  type BudgetInputs,\n  type BudgetResult,\n  type ExpenseItem,\n  type BudgetCategory,\n  BUDGET_RULES,\n  BUDGET_CATEGORY_COLORS,\n  SUBCATEGORY_NAMES\n} from '@deanfinancials/calculators';\n\n// Simple budget calculation\nconst result = calculateBudget({\n  monthlyIncome: 5000\n});\n\nconsole.log(result.needs.target);          // $2,500 (50%)\nconsole.log(result.wants.target);          // $1,500 (30%)\nconsole.log(result.savings.target);        // $1,000 (20%)\nconsole.log(result.appliedRule.name);      // \"50/30/20 Rule\"\n\n// With expense tracking\nconst trackedResult = calculateBudget({\n  monthlyIncome: 5000,\n  expenses: [\n    { description: 'Rent', amount: 1500, category: 'needs', subcategory: 'housing' },\n    { description: 'Utilities', amount: 200, category: 'needs', subcategory: 'utilities' },\n    { description: 'Groceries', amount: 400, category: 'needs', subcategory: 'groceries' },\n    { description: 'Netflix', amount: 15, category: 'wants', subcategory: 'subscriptions' },\n    { description: 'Dining', amount: 300, category: 'wants', subcategory: 'dining-out' },\n    { description: '401k', amount: 500, category: 'savings', subcategory: 'retirement' }\n  ]\n});\n\nconsole.log(trackedResult.needs.status);       // 'under', 'on-target', or 'over'\nconsole.log(trackedResult.wants.difference);   // Amount under/over budget\nconsole.log(trackedResult.savings.percentOfIncome); // Actual savings %\nconsole.log(trackedResult.healthMetrics.score); // Financial health score (0-100)\n\n// Compare different budget rules\nconsole.log(trackedResult.ruleComparisons);    // All rules compared for your situation\nconsole.log(trackedResult.recommendedRule);     // Best rule for your circumstances\n\n// Get optimization suggestions\nconsole.log(trackedResult.optimizations);       // Ways to improve your budget\nconsole.log(trackedResult.recommendations);     // Personalized tips\nconsole.log(trackedResult.warnings);            // Budget issues to address\n\n// Project savings growth over time\nconsole.log(trackedResult.annualProjections);   // 5-year wealth projection\n\n// Chart data for visualization\nconsole.log(trackedResult.chartData);           // Ready for pie chart rendering\n\n// Use alternative budget rules\nconst aggressiveSaver = calculateBudget({\n  monthlyIncome: 5000,\n  budgetRule: 'aggressive-saver'              // 50/20/30 (prioritizes savings)\n});\n\nconst highCostLiving = calculateBudget({\n  monthlyIncome: 5000,\n  budgetRule: 'high-cost-living',             // 60/20/20 (more for essentials)\n  isHighCostArea: true\n});\n\n// Custom percentages\nconst custom = calculateBudget({\n  monthlyIncome: 5000,\n  customNeedsPercent: 55,\n  customWantsPercent: 25,\n  customSavingsPercent: 20\n});\n\n// Quick helpers\nconst quick = quickBudget(5000);\nconsole.log(quick.needs);    // $2,500\nconsole.log(quick.wants);    // $1,500\nconsole.log(quick.savings);  // $1,000\n\nconst housingBudget = categoryBudget(5000, 'needs');  // $2,500 for all needs\nconst projectedWealth = projectSavings(1000, 10, 7);  // $173,085 after 10 years\n\nconst bestRule = suggestBudgetRule(5000, 2800, true, false);  // 'high-cost-living'\n```\n\n**Budget Rules Available** (`BUDGET_RULES`):\n| Rule | Needs | Wants | Savings | Best For |\n|------|-------|-------|---------|----------|\n| `standard` | 50% | 30% | 20% | Most people with average cost of living |\n| `aggressive-saver` | 50% | 20% | 30% | FIRE/rapid wealth building |\n| `high-cost-living` | 60% | 20% | 20% | SF, NYC, Boston residents |\n| `debt-focused` | 50% | 20% | 30% | Aggressive debt payoff |\n| `minimalist` | 70% | 10% | 20% | Minimalists or high essential costs |\n| `paycheck-to-paycheck` | 80% | 10% | 10% | Starting financial journey |\n| `pay-yourself-first` | 55% | 25% | 20% | Those who struggle to save |\n\n**Needs Subcategories**: `housing`, `utilities`, `groceries`, `transportation`, `health-insurance`, `minimum-debt`, `childcare`, `other-essential`\n\n**Wants Subcategories**: `dining-out`, `entertainment`, `shopping`, `subscriptions`, `travel`, `personal-care`, `gifts`, `other-wants`\n\n**Savings Subcategories**: `emergency-fund`, `retirement`, `investments`, `extra-debt`, `sinking-funds`, `other-savings`\n\n**Features That Competitors Don't Have**:\n- Alternative rule comparison (60/20/20, 70/20/10, 80/10/10)\n- Personalized rule recommendation based on situation\n- Expense tracking with actual vs target analysis\n- Savings optimization suggestions\n- 5-year wealth projection with compound growth\n- Financial health scoring (0-100)\n- Category breakdown with subcategories\n\n#### 19. Home Affordability Calculator\nCalculate \"how much house can I afford\" based on income, debts, down payment, and loan options. Features DTI analysis, PMI calculation, loan type comparison, and affordability comfort zones.\n\n```typescript\nimport { \n  calculateHomeAffordability,\n  quickAffordabilityEstimate,\n  calculateDebtImpact,\n  calculatePMI,\n  calculateFHAMIP,\n  calculateMonthlyMortgagePayment,\n  type HomeAffordabilityInputs,\n  type HomeAffordabilityResult,\n  type LoanType,\n  type ComfortLevel,\n  DTI_LIMITS,\n  MIN_DOWN_PAYMENT,\n  ZONE_COLORS\n} from '@deanfinancials/calculators';\n\n// Full calculation with all parameters\nconst result = calculateHomeAffordability({\n  annualIncome: 100000,\n  monthlyDebts: 500,\n  downPayment: 60000,\n  interestRate: 0.065,\n  loanTermYears: 30,\n  loanType: 'conventional',\n  propertyTaxRate: 0.0125,\n  homeInsuranceRate: 0.0035,\n  monthlyHOA: 200,\n  creditScore: 740,\n  includePMI: true\n});\n\nconsole.log(result.maxHomePrice);           // Maximum affordable home price\nconsole.log(result.loanAmount);             // Loan amount (price - down payment)\nconsole.log(result.downPaymentPercent);     // Down payment as percentage\n\n// Monthly payment breakdown\nconsole.log(result.monthlyBreakdown.principalAndInterest);  // P&I payment\nconsole.log(result.monthlyBreakdown.propertyTax);           // Monthly property tax\nconsole.log(result.monthlyBreakdown.homeInsurance);         // Monthly insurance\nconsole.log(result.monthlyBreakdown.pmi);                   // PMI (if applicable)\nconsole.log(result.monthlyBreakdown.hoa);                   // HOA dues\nconsole.log(result.monthlyBreakdown.totalHousing);          // Total PITI + HOA\nconsole.log(result.monthlyBreakdown.totalMonthly);          // Housing + other debts\n\n// DTI analysis\nconsole.log(result.dtiAnalysis.frontEndRatio);   // Housing payment / income (%)\nconsole.log(result.dtiAnalysis.backEndRatio);    // Total debts / income (%)\nconsole.log(result.dtiAnalysis.frontEndLimit);   // 28% for conventional\nconsole.log(result.dtiAnalysis.backEndLimit);    // 36% for conventional\nconsole.log(result.dtiAnalysis.status);          // 'excellent', 'good', 'acceptable', 'high', 'too-high'\nconsole.log(result.dtiAnalysis.message);         // Personalized DTI assessment\n\n// Affordability comfort zones\nconsole.log(result.affordabilityZones);          // Array of comfort zones\n// Each zone: { level: 'comfortable', minPrice: 0, maxPrice: 350000, \n//              monthlyPayment: 2100, backEndDTI: 28, description: '...', color: '#10b981' }\n\n// Loan type comparison (Conventional vs FHA vs VA)\nconsole.log(result.loanComparisons);             // Array of loan comparisons\n// Each: { loanType, maxHomePrice, downPaymentRequired, monthlyPayment, \n//         qualifies, benefits: string[], drawbacks: string[] }\n\n// Rate stress testing\nconsole.log(result.stressTestScenarios);         // Impact of rate increases\n// Each: { rate, rateIncrease, maxHomePrice, monthlyPayment, stillAffordable }\n\n// Cash needed\nconsole.log(result.estimatedClosingCosts);       // ~3% of home price\nconsole.log(result.totalCashNeeded);             // Down payment + closing costs\nconsole.log(result.effectiveRate);               // Interest rate + PMI impact\n\n// Recommendations and warnings\nconsole.log(result.recommendations);             // Personalized suggestions\nconsole.log(result.warnings);                    // Issues to address\n\n// Quick estimate (28% rule)\nconst quickEstimate = quickAffordabilityEstimate(100000, 0.065, 0.2);\nconsole.log(quickEstimate);                      // ~$420,000\n\n// Debt impact analysis\nconst debtImpact = calculateDebtImpact(100000, 0.065);\nconsole.log(debtImpact);                         // Home price increase per $100/mo debt reduction\n\n// PMI calculation\nconst monthlyPMI = calculatePMI(320000, 400000, 740);  // For 80% LTV\nconsole.log(monthlyPMI);                         // Monthly PMI amount\n\n// FHA MIP calculation\nconst fhaMIP = calculateFHAMIP(385000, 400000, 30);\nconsole.log(fhaMIP.upfront);                     // 1.75% upfront fee\nconsole.log(fhaMIP.monthly);                     // Monthly MIP\n\n// Calculate mortgage payment\nconst payment = calculateMonthlyMortgagePayment(320000, 0.065, 30);\nconsole.log(payment);                            // Monthly P&I payment\n```\n\n**Loan Types**: `conventional`, `fha`, `va`, `usda`\n\n**Loan Term Years**: `15`, `20`, `30`\n\n**Comfort Levels**: `comfortable`, `moderate`, `stretch`, `risky`\n\n**DTI Limits by Loan Type**:\n| Loan Type | Front-End DTI | Back-End DTI | Min Down Payment |\n|-----------|---------------|--------------|------------------|\n| Conventional | 28% | 36% | 3% |\n| FHA | 31% | 43% | 3.5% |\n| VA | 41%* | 41%* | 0% |\n| USDA | 29% | 41% | 0% |\n\n*VA uses residual income, 41% is a guideline\n\n**PMI Calculation**: Based on LTV and credit score tiers\n- Excellent (760+): 0.19% - 0.55% annually\n- Good (700-759): 0.27% - 0.78% annually\n- Fair (640-699): 0.45% - 1.05% annually\n- Poor (<640): 0.65% - 1.35% annually\n\n**FHA MIP Rates**:\n- Upfront: 1.75% of loan amount\n- Annual: 0.45% - 0.85% depending on term and LTV\n\n**Features That Competitors Don't Have**:\n- Affordability \"comfort zones\" (comfortable to risky)\n- Loan type comparison side-by-side (Conventional vs FHA vs VA)\n- Rate stress testing scenarios (+0.5% to +2%)\n- Credit score-based PMI calculation\n- Detailed monthly payment breakdown (P&I, tax, insurance, PMI, HOA)\n- Total cash needed including closing costs\n- Personalized recommendations based on DTI status\n- Chart-ready data structures for visualization\n\n#### 20. Paycheck Calculator\nCalculate take-home pay after federal taxes, state taxes, FICA, and deductions. Features 2024/2025 tax brackets, all 50 US states, pre-tax and post-tax deductions, and state-by-state comparison.\n\n```typescript\nimport { \n  calculatePaycheck,\n  quickPaycheckEstimate,\n  hourlyToAnnual,\n  annualToHourly,\n  comparePaychecks,\n  compareStates,\n  getTaxBracketInfo,\n  type PaycheckInputs,\n  type PaycheckResult,\n  type PayType,\n  type PayFrequency,\n  type FilingStatus,\n  type USState,\n  type PreTaxDeductions,\n  type PostTaxDeductions,\n  FEDERAL_TAX_BRACKETS_2024,\n  FEDERAL_TAX_BRACKETS_2025,\n  STANDARD_DEDUCTIONS,\n  STATE_TAX_INFO\n} from '@deanfinancials/calculators';\n\n// Full paycheck calculation\nconst result = calculatePaycheck({\n  payType: 'salary',\n  grossPay: 75000,                        // Annual salary\n  payFrequency: 'biweekly',               // Pay period\n  filingStatus: 'single',                 // Tax filing status\n  state: 'CA',                            // State for state tax\n  taxYear: 2024,                          // 2024 or 2025\n  federalAllowances: 1,                   // W-4 allowances (optional)\n  preTaxDeductions: {                     // Pre-tax deductions (optional)\n    retirement401k: 500,                  // Per paycheck\n    healthInsurance: 200,\n    hsaContribution: 100,\n    fsaContribution: 50,\n    dentalVision: 25,\n    commuter: 50,\n    other: 0\n  },\n  postTaxDeductions: {                    // Post-tax deductions (optional)\n    rothContribution: 100,\n    lifeInsurance: 25,\n    disabilityInsurance: 15,\n    unionDues: 0,\n    garnishments: 0,\n    charitableContributions: 50,\n    other: 0\n  },\n  ytdGrossIncome: 25000                   // Year-to-date (for SS cap, optional)\n});\n\n// Gross and net pay\nconsole.log(result.grossPayPerPeriod);         // $2,884.62 (biweekly)\nconsole.log(result.netPayPerPeriod);           // $1,862.34 (take-home)\nconsole.log(result.annualGrossPay);            // $75,000\nconsole.log(result.annualNetPay);              // $48,420.84\nconsole.log(result.effectiveTaxRate);          // 22.1%\nconsole.log(result.marginalFederalRate);       // 22%\n\n// Tax breakdown\nconsole.log(result.taxes.federal);             // Federal income tax\nconsole.log(result.taxes.state);               // State income tax\nconsole.log(result.taxes.socialSecurity);      // Social Security (6.2%)\nconsole.log(result.taxes.medicare);            // Medicare (1.45%)\nconsole.log(result.taxes.additionalMedicare);  // Additional Medicare (0.9% over threshold)\nconsole.log(result.taxes.totalFICA);           // Total FICA\nconsole.log(result.taxes.totalTaxes);          // All taxes combined\n\n// Deduction breakdown\nconsole.log(result.deductions.preTax);         // Pre-tax deductions total\nconsole.log(result.deductions.postTax);        // Post-tax deductions total\nconsole.log(result.deductions.total);          // All deductions\n\n// Annual projections\nconsole.log(result.annualTaxes.federal);       // Federal taxes per year\nconsole.log(result.annualTaxes.state);         // State taxes per year\nconsole.log(result.annualTaxes.fica);          // FICA taxes per year\nconsole.log(result.annualDeductions);          // Annual deductions\nconsole.log(result.taxableIncome);             // Taxable income after deductions\n\n// Tax bracket info\nconsole.log(result.federalBracket);            // Current federal bracket\nconsole.log(result.stateBracketInfo);          // State tax info\n\n// State-specific info\nconsole.log(result.stateInfo.name);            // \"California\"\nconsole.log(result.stateInfo.hasIncomeTax);    // true\nconsole.log(result.stateInfo.maxRate);         // 13.3%\nconsole.log(result.stateInfo.brackets);        // State tax brackets\n\n// Year-to-date tracking\nconsole.log(result.ytdGross);                  // YTD gross income\nconsole.log(result.ytdNet);                    // YTD net income\nconsole.log(result.ytdTaxes);                  // YTD taxes paid\nconsole.log(result.socialSecurityCapped);      // Whether SS is capped\n\n// Hourly calculation\nconst hourlyResult = calculatePaycheck({\n  payType: 'hourly',\n  hourlyRate: 35,\n  hoursPerWeek: 40,\n  payFrequency: 'weekly',\n  filingStatus: 'married',\n  state: 'TX'\n});\n\n// Quick estimate (simplified)\nconst quickEstimate = quickPaycheckEstimate(75000, 'single', 'CA');\nconsole.log(quickEstimate.estimatedNetAnnual);   // ~$55,000\nconsole.log(quickEstimate.estimatedNetMonthly);  // ~$4,580\n\n// Convert between hourly and salary\nconst annual = hourlyToAnnual(35, 40);          // $72,800 (35/hr * 40hrs * 52weeks)\nconst hourly = annualToHourly(75000, 40);       // $36.06/hr\n\n// Compare scenarios (e.g., before/after raise)\nconst comparison = comparePaychecks(\n  { payType: 'salary', grossPay: 75000, payFrequency: 'biweekly', filingStatus: 'single', state: 'CA' },\n  { payType: 'salary', grossPay: 85000, payFrequency: 'biweekly', filingStatus: 'single', state: 'CA' }\n);\nconsole.log(comparison.grossDifference);        // $10,000 annual\nconsole.log(comparison.netDifference);          // ~$6,800 (after taxes)\nconsole.log(comparison.perPaycheckDifference);  // ~$262 per paycheck\nconsole.log(comparison.effectiveTaxOnRaise);    // ~32% (marginal tax on raise)\n\n// Compare states (for relocation decisions)\nconst stateComparison = compareStates(\n  75000,\n  'single',\n  ['CA', 'TX', 'FL', 'NY', 'WA']\n);\nconsole.log(stateComparison);  // Array of results for each state\n// Each: { state, stateName, annualStateTax, annualNetPay, monthlyNetPay, ranking }\n\n// Get tax bracket information\nconst bracketInfo = getTaxBracketInfo(75000, 'single', 2024);\nconsole.log(bracketInfo.currentBracket);        // 22%\nconsole.log(bracketInfo.incomeInBracket);       // Amount in current bracket\nconsole.log(bracketInfo.incomeToNextBracket);   // How much until next bracket\nconsole.log(bracketInfo.nextBracketRate);       // 24%\n```\n\n**Pay Types**: `salary`, `hourly`\n\n**Pay Frequencies**: `weekly`, `biweekly`, `semi-monthly`, `monthly`\n\n**Filing Statuses**: `single`, `married`, `married-separate`, `head-of-household`\n\n**Pre-Tax Deductions**:\n- `retirement401k` - 401(k) contributions\n- `healthInsurance` - Health insurance premiums\n- `hsaContribution` - Health Savings Account\n- `fsaContribution` - Flexible Spending Account\n- `dentalVision` - Dental/Vision insurance\n- `commuter` - Commuter benefits\n- `other` - Other pre-tax deductions\n\n**Post-Tax Deductions**:\n- `rothContribution` - Roth 401(k)/403(b)\n- `lifeInsurance` - Life insurance premiums\n- `disabilityInsurance` - Disability insurance\n- `unionDues` - Union membership dues\n- `garnishments` - Wage garnishments\n- `charitableContributions` - Payroll giving\n- `other` - Other post-tax deductions\n\n**2024 Federal Tax Brackets**:\n| Bracket | Single | Married Filing Jointly |\n|---------|--------|------------------------|\n| 10% | $0 - $11,600 | $0 - $23,200 |\n| 12% | $11,600 - $47,150 | $23,200 - $94,300 |\n| 22% | $47,150 - $100,525 | $94,300 - $201,050 |\n| 24% | $100,525 - $191,950 | $201,050 - $383,900 |\n| 32% | $191,950 - $243,725 | $383,900 - $487,450 |\n| 35% | $243,725 - $609,350 | $487,450 - $731,200 |\n| 37% | $609,350+ | $731,200+ |\n\n**FICA Rates (2024)**:\n- Social Security: 6.2% (capped at $168,600)\n- Medicare: 1.45% (no cap)\n- Additional Medicare: 0.9% (over $200,000 single / $250,000 married)\n\n**States with No Income Tax**: Alaska, Florida, Nevada, New Hampshire*, South Dakota, Tennessee*, Texas, Washington, Wyoming\n(*Limited taxes on investment income only)\n\n**Features That Competitors Don't Have**:\n- Complete 2024 and 2025 federal tax brackets\n- All 50 US states with accurate tax info\n- State comparison tool for relocation decisions\n- Scenario comparison (before/after raise)\n- Hourly-to-salary conversion utilities\n- Year-to-date tracking with Social Security cap\n- Detailed pre-tax and post-tax deduction handling\n- Marginal vs effective tax rate breakdown\n- Tax bracket information with income-to-next-bracket\n\n### FIRE (Financial Independence Retire Early)\n\n#### 21. FIRE Calculator\nComprehensive Financial Independence calculator with multiple FIRE types, historical stress testing, and detailed projections.\n\n```typescript\nimport { \n  calculateFIRE,\n  calculateFIRENumber,\n  calculateYearsToFire,\n  calculateCoastFIRETarget,\n  quickFI","readmeFilename":"README.md"}