Skip to main content

bd-income-tax

Calculate Bangladesh individual income tax in Python or from the command line. It covers the tax bands, the six taxpayer categories, the investment rebate and the minimum tax, and it formats amounts in lakh style or with Bangla digits.

No dependencies. Python 3.9+.

pip install bd-income-tax

Command line

$ bd-income-tax 850000 --investment 100000
Category           General Taxpayer
Total income       ৳8,50,000
Tax-free income    ৳3,75,000
Taxable income     ৳4,75,000

    10%     3,75,001 – 6,75,000         ৳30,000
    15%     6,75,001 – 10,75,000        ৳26,250

Gross tax          ৳56,250
Investment rebate  -৳15,000
Tax payable        ৳41,250
Effective rate     4.85%
Net income         ৳8,08,750

Options:

Option Meaning
-c, --category general (default), female, senior, disabled, freedom-fighter, third-gender
-i, --investment Eligible investment for the rebate. You can repeat it.
--bn Show amounts in Bangla digits (৳৮,৫০,০০০)
--json Print the full breakdown as JSON

Several income amounts are added together: bd-income-tax 600000 250000.

Python

from bd_income_tax import calculate, format_bdt

result = calculate(
    income={"salary": 800_000, "house_rent": 50_000},
    investment={"sanchaypatra": 60_000, "dps": 40_000},
    category="female",
)
result.tax_payable          # 33750
result.breakdown.bands      # tax charged in each band
result.rebate.amount        # 15000
result.to_dict()            # JSON-ready
format_bdt(result.net_income, symbol=True)  # '৳8,16,250'

Other helpers:

  • calculate_tax(income, category): gross tax by band, before rebate
  • calculate_rebate(income, investment): the investment rebate
  • format_bdt, format_bangla, to_bangla_digits: lakh/crore and Bangla number formatting
  • future_value(principal, monthly_deposit, annual_rate_pct, months) and emi(principal, annual_rate_pct, months): DPS and loan maths

Rules used

These rules apply to assessment years 2026-27 and 2027-28. They match the bd-income-tax-calculator web app.

Tax-free income by category

Category Tax-free income
General ৳3,75,000
Female ৳4,25,000
Senior citizen (65+) ৳4,25,000
Disabled person ৳5,00,000
Third gender ৳5,00,000
Gazetted war-wounded freedom fighter ৳5,25,000

Tax bands, applied to income above the tax-free amount:

Band Rate
Next ৳3,00,000 10%
Next ৳4,00,000 15%
Next ৳5,00,000 20%
Next ৳20,00,000 25%
Above that 30%

Investment rebate: the lowest of 3% of total income, 15% of eligible investment, or ৳10,00,000.

Minimum tax: anyone whose income is above their tax-free amount pays at least ৳5,000.

Not covered: the wealth surcharge, which depends on net-wealth details.

Tax law changes with every Finance Act. Use this package as an estimate and check the latest NBR rules before you file.

License

MIT

Metadata

Release files for bd-income-tax 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bd-income-tax 0.1.0
File Size Uploaded Provenance Actions
bd_income_tax-0.1.0.tar.gz 9.7 kB Without provenance Details for bd_income_tax-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bd-income-tax 0.1.0
File Interpreter ABI Platform Actions
bd_income_tax-0.1.0-py3-none-any.whl Python 3 none any Details for bd_income_tax-0.1.0-py3-none-any.whl

Total release size: 21.2 kB

Release files / bd_income_tax-0.1.0.tar.gz

Download URL bd_income_tax-0.1.0.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
357ef0d899037e879fe2cb4d27a4c37bff1f162a712776f92b87e0f46b2a0678
BLAKE2b-256 checksum
How to use checksums
4b10c7c17e8ffafffa5c47bb4d5c80bd0c73b63959a39c152df5b42f30fea3d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / bd_income_tax-0.1.0-py3-none-any.whl

Download URL bd_income_tax-0.1.0-py3-none-any.whl
Size 11.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d89b7fddeb9636136db8b22ef83d3aa17299e6169808d70ca96bfe0f713e21e7
BLAKE2b-256 checksum
How to use checksums
f772f677ac966d2314c26ca8476d6022e6f7bfe3c7164ab2a6074933e4517328
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for bd-income-tax 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page