Pure TypeScript Korean financial calculators with 2026 tax rates and insurance premiums.
Zero dependencies. Framework-agnostic. Works in Node.js and browsers.
Extracted from t2value.com.
npm install korean-financial-calculatorsCalculates monthly take-home pay after 4 major insurances (NPS, NHI, LTC, EI) and income tax.
import { calculateNetSalaryKR } from 'korean-financial-calculators';
const result = calculateNetSalaryKR({
grossAnnual: 50_000_000,
nonTaxableMonthly: 200_000,
dependents: 1,
});
result.grossMonthly; // → 4_166_666
result.netMonthly; // → 3_490_134
result.effectiveRate; // → 16.24 (%)
result.insurance; // → { nps: 188_416, nhi: 142_600, ltc: 18_730, ei: 35_699, totalInsurance: 385_445 }
result.tax; // → { incomeTax: 264_625, localTax: 26_462, totalTax: 291_087, ... }
result.monthlyBreakdown // → [{ key: "gross", amount: 4_166_666, ... }, ...]Input
| Field | Type | Description |
|---|---|---|
grossAnnual |
number |
Annual salary in KRW |
nonTaxableMonthly |
number |
Monthly non-taxable amount (e.g. meal allowance) |
dependents |
number |
Number of dependents including self |
Converts between hourly/monthly/annual wages. Compares against 2026 minimum wage (₩10,320).
import { calculateHourlyWageKR } from 'korean-financial-calculators';
const result = calculateHourlyWageKR({
mode: 'monthly',
amount: 2_500_000,
overtimeHours: 5,
});
result.hourlyWage; // → 11_961
result.dailyWage; // → 95_688
result.monthlyWage; // → 2_499_849
result.annualWage; // → 29_998_188
result.overtimePay; // → 389_779
result.totalMonthly; // → 2_889_628
result.isAboveMinimum; // → true
result.minimumWageDiff; // → 1_641Input
| Field | Type | Description |
|---|---|---|
mode |
'hourly' | 'monthly' | 'annual' |
Input mode |
amount |
number |
Wage amount matching the mode |
overtimeHours |
number |
Weekly overtime hours |
Calculates severance per Korea Labor Standards Act Article 34.
import { calculateSeverance } from 'korean-financial-calculators';
const result = calculateSeverance({
monthlyPay: 3_000_000,
yearsWorked: 5,
monthsWorked: 6,
});
result.severancePay; // → 16_278_003
result.dailyAvgWage; // → 98_630
result.totalDays; // → 2_008
result.monthsEquivalent // → 5.4
result.perYear; // → 2_959_637
result.isUnderOneYear; // → false
result.timeline; // → [{ year: 1, cumulativePay: 2_958_900 }, ...]Input
| Field | Type | Description |
|---|---|---|
monthlyPay |
number |
Monthly base pay in KRW |
yearsWorked |
number |
Years of service |
monthsWorked |
number |
Additional months (0–11) |
Three repayment methods: equal payment (원리금균등), equal principal (원금균등), bullet (만기일시).
import { calculateLoan, calculateEarlyPayoff } from 'korean-financial-calculators';
const input = {
loanAmount: 100_000_000,
annualRate: 4.5,
loanMonths: 240,
repaymentType: 'equal' as const,
};
const result = calculateLoan(input);
result.monthlyPayment; // → 632_649
result.totalInterest; // → 51_835_918
result.totalRepayment; // → 151_835_918
result.schedule; // → [{ month: 1, principal: 257_649, interest: 375_000, payment: 632_649, balance: 99_742_351 }, ...]
result.yearlyBreakdown; // → [{ year: 1, principalSum: 3_156_361, interestSum: 4_435_427, endBalance: 96_843_640 }, ...]
// Early payoff simulation
const earlyPayoff = calculateEarlyPayoff(input, 500_000);
earlyPayoff.originalMonths; // → 240
earlyPayoff.reducedMonths; // → 108
earlyPayoff.savedInterest; // → 30_159_405Input
| Field | Type | Description |
|---|---|---|
loanAmount |
number |
Loan amount in KRW |
annualRate |
number |
Annual interest rate (%) |
loanMonths |
number |
Loan term in months |
repaymentType |
'equal' | 'principal' | 'maturity' |
Repayment method |
Additional functions:
calculateEarlyPayoff(input, extraMonthly)— Simulates early payoff with extra monthly paymentscalculateLoanScenarios(input, rates)— Compares results across different interest ratesformatKRW(n)/formatKRWCompact(n)— Format numbers as"1,000,000"or"100만"
Calculates weekly holiday allowance per Labor Standards Act Article 55. Eligible when working 15+ hours/week.
import { calculateWeeklyHolidayPay } from 'korean-financial-calculators';
const result = calculateWeeklyHolidayPay({
hourlyWage: 10_320,
weeklyHours: 40,
});
result.isEligible; // → true
result.weeklyHolidayHours; // → 8
result.weeklyHolidayPay; // → 82_560
result.monthlyHolidayPay; // → 358_723
result.effectiveHourlyWage; // → 12_384
result.monthlyTotal; // → 2_152_339
result.employerMonthlyCost; // → 2_152_339Input
| Field | Type | Description |
|---|---|---|
hourlyWage |
number |
Hourly wage in KRW |
weeklyHours |
number |
Contracted weekly working hours |
All tax rates, insurance premiums, and thresholds are exported:
import {
INSURANCE_RATES,
INCOME_TAX_BRACKETS,
MINIMUM_WAGE,
SEVERANCE_DAYS,
DEFAULT_LOAN_KR,
WEEKLY_HOURS_THRESHOLD,
} from 'korean-financial-calculators';
INSURANCE_RATES.nps; // → 0.0475 (4.75%)
INSURANCE_RATES.nhi; // → 0.03595 (3.595%)
INSURANCE_RATES.ltcRate; // → 0.1314 (13.14% of NHI)
INSURANCE_RATES.ei; // → 0.009 (0.9%)
MINIMUM_WAGE; // → 10_320
WEEKLY_HOURS_THRESHOLD; // → 15| Calculator | Source | Year |
|---|---|---|
| Net Salary | NTS 간이세액표, 소득세법, 4대보험 고시 | 2026 |
| Hourly Wage | 고용노동부 최저임금 고시 | 2026 |
| Severance | 근로기준법 제34조, 근로자퇴직급여보장법 제8조 | 2026 |
| Loan | Pure math | — |
| Weekly Holiday Pay | 근로기준법 제55조, 시행령 제30조 | 2026 |
MIT