台灣勞健保勞退計算引擎(Python 純 stdlib)— 與 TypeScript 版同源、計算逐位元一致;勞保/健保/勞退/補充保費/薪資扣繳/老年給付。
Project description
taiwan-payroll (Python)
台灣勞健保勞退法定費用計算引擎的 Python 實作。讀同一份 data/,跑通同一套 testdata/ 黃金向量,與 TypeScript 版計算結果完全一致。零執行期依賴(純 stdlib)。
安裝
pip install taiwan-payroll
用法
from taiwan_payroll import create_payroll_engine, CalculateInput, SupplementaryInput, ProratedInput
engine = create_payroll_engine(year=2026)
engine.calculate(CalculateInput(monthly_salary=42000, dependents=1, pension_self_contribution=0.06))
engine.calculate_supplementary(SupplementaryInput(type="bonus", amount=200000, monthly_insured_salary=42000))
engine.calculate_prorated(ProratedInput(monthly_salary=29500, start_date="2026-03-08"))
申報媒體檔(健保補充保費)
產生健保署「補充保險費明細申報檔」(CSV/Big5),6 類所得各一(獎金62/兼職63/執行業務65/股利66/利息67/租金68),皆以官方範例逐位元驗證、與 TypeScript 版一致。
from taiwan_payroll import generate_supplementary_bonus_filing, to_big5_bytes, SupplementaryBonusFilingInput, SupplementaryBonusFilingUnit, SupplementaryBonusRecord
r = generate_supplementary_bonus_filing(SupplementaryBonusFilingInput(
year=2026, filing_date="20260901",
unit=SupplementaryBonusFilingUnit(tax_id="11111111", name="甲公司", phone="0227065866", email="a@b.tw", contact_name="王小明"),
records=[SupplementaryBonusRecord(action="I", pay_date="20260615", payee_id="A123456789", payee_name="李四",
bonus_amount=50000, insured_salary=31800, ytd_bonus_cumulative=150000, unit_code="123456789")],
))
open(r.filename, "wb").write(to_big5_bytes(r.content)) # 檔案為 Big5
股利(generate_supplementary_dividend_filing)逐列保費由呼叫端提供(另附 calc_dividend_premium)。
勞保老年給付試算
calc_old_age_pension(年金月領,擇優兩式、可提前/延後)、calc_old_age_lump_sum(老年一次金)、calc_old_age_single_payment(一次請領,舊制基數),皆對勞保局官方數值/公式驗證、與 TypeScript 版一致。
from taiwan_payroll import calc_old_age_pension, get_year_data, OldAgePensionInput
calc_old_age_pension(get_year_data(2026), OldAgePensionInput(avg_insured_salary=32000, years=35, months=6))
開發
cd packages/python && python3 -m venv .venv && .venv/bin/python -m pip install -e ".[test]"
.venv/bin/python -m pytest
跨語言一致性:tests/test_vectors.py 載入 repo 根 testdata/ 的同一套黃金向量,與 TypeScript 引擎逐位元比對。
免責聲明
計算結果僅供參考,實際應繳金額以勞保局、健保署核發之繳款單為準。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taiwan_payroll-1.3.1.tar.gz.
File metadata
- Download URL: taiwan_payroll-1.3.1.tar.gz
- Upload date:
- Size: 22.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acc7df0fc3aaee18aa77916076c6a20ee33db7371aeac0d3845a0e3cbc2d6bc6
|
|
| MD5 |
a30efd2c5742e06d061b0f5b4069bc3a
|
|
| BLAKE2b-256 |
8a871e64aa9bb5b8a01df5756019ae66a22d9390a0718c033bb9144b976d9a13
|
Provenance
The following attestation bundles were made for taiwan_payroll-1.3.1.tar.gz:
Publisher:
publish.yml on supra126/taiwan-payroll
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
taiwan_payroll-1.3.1.tar.gz -
Subject digest:
acc7df0fc3aaee18aa77916076c6a20ee33db7371aeac0d3845a0e3cbc2d6bc6 - Sigstore transparency entry: 1754666627
- Sigstore integration time:
-
Permalink:
supra126/taiwan-payroll@5f1f66d757f618a954f51c30224eae1fbce73767 -
Branch / Tag:
refs/tags/v1.4.0 - Owner: https://github.com/supra126
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5f1f66d757f618a954f51c30224eae1fbce73767 -
Trigger Event:
release
-
Statement type:
File details
Details for the file taiwan_payroll-1.3.1-py3-none-any.whl.
File metadata
- Download URL: taiwan_payroll-1.3.1-py3-none-any.whl
- Upload date:
- Size: 42.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a327111aa8b98d57472f4fd80ff026faaab5d300919370e04bc443793a186b01
|
|
| MD5 |
7a465aeb2fba8d15ebdeb2e707c81d31
|
|
| BLAKE2b-256 |
417239aaf382a673ce5ce2a8781d16a57a2f61bab69c2101a8315bf93754e1b3
|
Provenance
The following attestation bundles were made for taiwan_payroll-1.3.1-py3-none-any.whl:
Publisher:
publish.yml on supra126/taiwan-payroll
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
taiwan_payroll-1.3.1-py3-none-any.whl -
Subject digest:
a327111aa8b98d57472f4fd80ff026faaab5d300919370e04bc443793a186b01 - Sigstore transparency entry: 1754666918
- Sigstore integration time:
-
Permalink:
supra126/taiwan-payroll@5f1f66d757f618a954f51c30224eae1fbce73767 -
Branch / Tag:
refs/tags/v1.4.0 - Owner: https://github.com/supra126
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5f1f66d757f618a954f51c30224eae1fbce73767 -
Trigger Event:
release
-
Statement type: