knowledge(요율): 국민연금 2033년 이후 추정 요율 걷음 — 법 부칙 명시분만 둠
부칙 제4조① 은 2026~2032년만 명시 — 2033년 이후는 그 해 되면 정함(사용자 확정). 정본 rate_from_2033_percent 삭제 · 비고에 짧게 남김 · build_요율.py 는 법 밖 연도가 정본에 미리 채워지면 잡아내는 쪽으로 바꿈 · 시험 2개 추가.
This commit is contained in:
@@ -145,9 +145,9 @@ def check_pension(data: dict, d: Diffs):
|
||||
max_year_in_law = max(int(y) for y in found)
|
||||
unseen = [y for y in annual if y > max_year_in_law]
|
||||
if unseen:
|
||||
d.note(
|
||||
f"국민연금보험료 {sorted(unseen)}년 값은 법 부칙(2026~{max_year_in_law}년만 명시)에 없음 — "
|
||||
f"정본의 rate_from_{unseen[0]}_percent={annual[unseen[0]]} 는 뒤 연도 추정치, 개정 시 재확인 필요"
|
||||
d.items.append(
|
||||
f"국민연금보험료: 법 부칙(2026~{max_year_in_law}년만 명시)에 없는 연도 "
|
||||
f"{sorted(unseen)}가 정본에 있음 — 2033년이 되면 그때 정할 것, 지금 미리 넣지 않음"
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
"출처": "조달청제비율"
|
||||
},
|
||||
{ "키": "RT000003", "원문번호": "rate_health", "이름": "건강보험료", "값": {"rate_percent": 3.595, "base": "direct_labor_cost"}, "출처": "조달청제비율" },
|
||||
{ "키": "RT000004", "원문번호": "rate_pension", "이름": "국민연금보험료", "값": {"base": "direct_labor_cost", "annual_rates": [{"year": 2026, "rate_percent": 4.75}, {"year": 2027, "rate_percent": 5.0}, {"year": 2028, "rate_percent": 5.25}, {"year": 2029, "rate_percent": 5.5}, {"year": 2030, "rate_percent": 5.75}, {"year": 2031, "rate_percent": 6.0}, {"year": 2032, "rate_percent": 6.25}, {"year": 2033, "rate_percent": 6.5}], "rate_from_2033_percent": 6.5}, "출처": "조달청제비율" },
|
||||
{ "키": "RT000004", "원문번호": "rate_pension", "이름": "국민연금보험료", "값": {"base": "direct_labor_cost", "annual_rates": [{"year": 2026, "rate_percent": 4.75}, {"year": 2027, "rate_percent": 5.0}, {"year": 2028, "rate_percent": 5.25}, {"year": 2029, "rate_percent": 5.5}, {"year": 2030, "rate_percent": 5.75}, {"year": 2031, "rate_percent": 6.0}, {"year": 2032, "rate_percent": 6.25}]}, "비고": "2033년 이후 요율은 법 부칙에 미확정 — 그 해 되면 정함", "출처": "조달청제비율" },
|
||||
{ "키": "RT000005", "원문번호": "rate_care", "이름": "노인장기요양보험료", "값": {"rate_percent": 13.14, "base": "health_insurance_amount"}, "출처": "조달청제비율" },
|
||||
{
|
||||
"키": "RT000006", "원문번호": "rate_safety_pct",
|
||||
|
||||
@@ -42,3 +42,21 @@ def test_고용보험료_등급_어긋내면_잡아냄() -> None:
|
||||
d = bu.Diffs()
|
||||
bu.check_goyong(ws, data, d)
|
||||
assert any("1등급" in x for x in d.items)
|
||||
|
||||
|
||||
def test_국민연금_법에_없는_연도를_미리_채우면_잡아냄() -> None:
|
||||
"""2033년 이후는 법 부칙에 근거 없음(사용자 확정) — 정본이 미리 채우면 걸림."""
|
||||
data = copy.deepcopy(bu.load_json())
|
||||
row = bu.row_by_key(data, "RT000004")
|
||||
row["값"]["annual_rates"].append({"year": 2033, "rate_percent": 6.5})
|
||||
d = bu.Diffs()
|
||||
bu.check_pension(data, d)
|
||||
assert any("2033" in x for x in d.items)
|
||||
|
||||
|
||||
def test_국민연금_지금_정본은_2032년까지만() -> None:
|
||||
data = bu.load_json()
|
||||
row = bu.row_by_key(data, "RT000004")
|
||||
years = sorted(r["year"] for r in row["값"]["annual_rates"])
|
||||
assert years == list(range(2026, 2033)), years
|
||||
assert "rate_from_2033_percent" not in row["값"]
|
||||
|
||||
Reference in New Issue
Block a user