usincometaxes
uses a JavaScript / WebAssembly version of
TAXSIM 35 to calculate taxes. The JavaScript / WebAssembly files are
part of the package. Therefore, you can calculate taxes without sending
data to the TAXSIM server. The output should be the same as the
output from the TAXSIM 35 server. But, keep reading for why this might
not always be the case.
The JavaScript / WebAssembly tooling comes from Aman Gupta Karmani’s great work that you can find in this GitHub repo: https://github.com/tmm1/taxsim.js. And while you’re checking out his work, don’t overlook his tax calculator web app at taxsim.app.
The JavaScript / WebAssembly files are updated soon after the NBER
updates the Fortran code that runs TAXSIM 35. We will then incorporate
these updated JavaScript / WebAssembly files into a new version of
usincometaxes
. A benefit of this approach is that a given
version of usincometaxes
will always produce the same
results when using ‘wasm’. This holds because a given version of
usincometaxes
will always use the exact same JavaScript /
WebAssembly files to calculate taxes. You could see a slight discrepancy
between usincometaxes
and TAXSIM 35 if there is a lag from
when TAXSIM 35 is updated to when the JavaScript / WebAssembly files are
updated.
usincometaxes
’s changelog
will note when a version changes due to an update to the JavaScript /
WebAssembly files. That way, you can check if you are using the version
of usincometaxes
with the most recent JavaScript /
WebAssembly files and reinstall usincometaxes
if this is
not the case. As a reminder, the following code lets you check package
versions: packageVersion("usincometaxes")
.