Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@ktarmyshov/income-tax

kt-npm-modules245MIT0.1.7TypeScript support: included

A Node.js library for calculating income tax.

income, tax, calculator, calculate, germany

readme

NPM Version CI Quality Gate Status Bugs Code Smells Coverage Duplicated Lines (%) Socket Badge

income-tax

Income tax calculator. Supported countries:

  • Germany
    • Model as of 2021 for income tax and solidarity surcharge
    • Included parameters for years
      • 2021
      • 2025

Usage

Germany/DE

import { DEIncome, deIncomeTaxV2021 } from '@ktarmyshov/income-tax';
// or
import { DEIncome, deIncomeTaxV2021 } from '@ktarmyshov/income-tax/de';

// Single
const tax = deIncomeTaxV2021(2025, { income: 50000 });
// Split
const tax = deIncomeTaxV2021(2025, { income: 50000 }, { split: true });
// Custom parameters for taxation if not included in the package
const tax = deIncomeTaxV2021(
    2023,
    { income: 50000 },
    {
        split: true,
        incomeTaxParams: {
            0: {
                boundary: 10908
            },
            // Year 2023, zone 1
            // ESt = (979,18 * y + 1.400) * y
            // y = (zvE - 10.908) / 10.000
            1: {
                boundary: 15999,
                params: {
                    subtractor: 10908,
                    progression: 979.18,
                    constant: 1400
                }
            },
            // year 2023, zone 2
            // ESt = (192,59 * z + 2.397) * z + 966,53
            // z = (zvE - 15.999) / 10.000
            2: {
                boundary: 62809,
                params: {
                    subtractor: 15999,
                    progression: 192.59,
                    constant: 2397
                }
            },
            3: {
                boundary: 277825,
                params: {
                    percentage: 0.42
                }
            },
            4: {
                params: {
                    percentage: 0.45
                }
            }
        },
        solidaritySurchargeParams: {
            zeroBoundary: 17543,
            mitigationZoneBoundary: 32619,
            mitigationZoneRate: 0.119
        }
    }
);

changelog

@ktarmyshov/income-tax

0.1.7

Patch Changes

  • 3d81f6d: dependabot: directory '/', update typescript-eslint

0.1.6

Patch Changes

  • 080d534: dependabot: directory '/', update @changesets/cli
  • 080d534: dependabot: directory '/', update @eslint/compat
  • 080d534: dependabot: directory '/', update @ktarmyshov/assert
  • 080d534: dependabot: directory '/', update @types/node
  • 080d534: dependabot: directory '/', update @vitest/coverage-istanbul
  • 080d534: dependabot: directory '/', update eslint
  • 080d534: dependabot: directory '/', update prettier
  • 080d534: dependabot: directory '/', update publint
  • 080d534: dependabot: directory '/', update rimraf
  • 080d534: dependabot: directory '/', update type-fest
  • 080d534: dependabot: directory '/', update typescript-eslint
  • 080d534: dependabot: directory '/', update vitest
  • 32aa80d: dependabot: directory '/', update @types/node
  • 32aa80d: dependabot: directory '/', update @vitest/coverage-istanbul
  • 32aa80d: dependabot: directory '/', update typescript-eslint
  • 32aa80d: dependabot: directory '/', update vitest
  • e62e8d5: dependabot: directory '/', update @ktarmyshov/assert

0.1.5

Patch Changes

  • 4e2eeff: dependabot: directory '/', update @eslint/compat
  • 4e2eeff: dependabot: directory '/', update @ktarmyshov/assert
  • 4e2eeff: dependabot: directory '/', update @types/node
  • 4e2eeff: dependabot: directory '/', update @vitest/coverage-istanbul
  • 4e2eeff: dependabot: directory '/', update eslint
  • 4e2eeff: dependabot: directory '/', update rimraf
  • 4e2eeff: dependabot: directory '/', update vitest
  • cf1111e: dependabot: directory '/', update @vitest/coverage-istanbul
  • cf1111e: dependabot: directory '/', update eslint
  • cf1111e: dependabot: directory '/', update type-fest
  • cf1111e: dependabot: directory '/', update typescript-eslint
  • cf1111e: dependabot: directory '/', update vitest

0.1.4

Patch Changes

  • f59063d: dependabot: directory '/', update @ktarmyshov/assert
  • f59063d: dependabot: directory '/', update @types/node
  • f59063d: dependabot: directory '/', update eslint
  • f59063d: dependabot: directory '/', update typescript-eslint
  • f59063d: dependabot: directory '/', update typescript
  • 1873575: dependabot: directory '/', update @types/node
  • 1873575: dependabot: directory '/', update publint
  • 1873575: dependabot: directory '/', update typescript-eslint
  • 4a1845e: dependabot: directory '/', update @types/node
  • 4a1845e: dependabot: directory '/', update eslint
  • 4a1845e: dependabot: directory '/', update type-fest
  • 4a1845e: dependabot: directory '/', update typescript-eslint
  • 5631c83: dependabot: directory '/', update @types/node
  • 5631c83: dependabot: directory '/', update @vitest/coverage-istanbul
  • 5631c83: dependabot: directory '/', update publint
  • 5631c83: dependabot: directory '/', update typescript-eslint
  • 5631c83: dependabot: directory '/', update vitest

0.1.3

Patch Changes

  • 0ec0dab: dependabot: directory '/', update @ktarmyshov/assert
  • 0ec0dab: dependabot: directory '/', update @types/node
  • 0ec0dab: dependabot: directory '/', update eslint
  • 0ec0dab: dependabot: directory '/', update typescript-eslint
  • 8caf801: dependabot: directory '/', update @changesets/cli
  • 8caf801: dependabot: directory '/', update @types/node
  • 8caf801: dependabot: directory '/', update eslint
  • 8caf801: dependabot: directory '/', update publint
  • 8caf801: dependabot: directory '/', update type-fest
  • 8caf801: dependabot: directory '/', update typescript-eslint
  • 4008c21: dependabot: directory '/', update @eslint/compat
  • 4008c21: dependabot: directory '/', update typescript-eslint

0.1.2

Patch Changes

  • a33afd9: dependabot: directory '/', update @changesets/cli
  • a33afd9: dependabot: directory '/', update @types/node
  • a33afd9: dependabot: directory '/', update typescript-eslint
  • 34ef4bb: dependabot: directory '/', update eslint
  • 34ef4bb: dependabot: directory '/', update typescript-eslint
  • 2f72182: dependabot: directory '/', update typescript-eslint
  • 9025df3: dependabot: directory '/', update @eslint/compat
  • 9025df3: dependabot: directory '/', update @ktarmyshov/assert
  • 9025df3: dependabot: directory '/', update @types/node
  • 9025df3: dependabot: directory '/', update eslint
  • 9025df3: dependabot: directory '/', update typescript-eslint
  • 9025df3: dependabot: directory '/', update typescript

0.1.1

Patch Changes

  • b5d5358: dependabot: directory '/', update @types/node
  • b5d5358: dependabot: directory '/', update eslint-config-prettier
  • b5d5358: dependabot: directory '/', update eslint
  • b5d5358: dependabot: directory '/', update typescript-eslint
  • c1fd9c9: dependabot: directory '/', update @types/node
  • c1fd9c9: dependabot: directory '/', update eslint
  • c1fd9c9: dependabot: directory '/', update typescript-eslint

0.1.0

Minor Changes

  • 0949ff4: First release