From e5fbbeae22d32a10a585cc626ee677167bee9839 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Fri, 18 Sep 2026 01:42:19 +0900 Subject: [PATCH] =?UTF-8?q?fix(data):=20=EA=B8=B0=EC=B4=88=EA=B0=92=20?= =?UTF-8?q?=EA=B3=A0=EC=B9=A8=EC=97=90=20=EB=94=B8=EB=A6=B0=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=ED=91=9C=20=EC=B1=84=EC=9B=80=20=C2=B7=20=EC=A0=9C?= =?UTF-8?q?=EB=B9=84=EC=9C=A8=20=EA=B5=AC=EA=B0=84=20=EC=88=98=20218=20?= =?UTF-8?q?=E2=86=92=20220?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 새 칸·값 묶음 열넷에 한글 이름 — `alt_rate_range`·`plywood_material_pct`·`plywood_labor_pct`· `timber_absent`·`loading_efficiency_basis`·`specialty_note`·`industry_note`·`basis` 따위 - Z01 제비율 줄 수 218 → 220 — 전문공사 일반관리비 300억~1000억·1000억 이상 두 구간을 채운 몫 ⚠ **다시 뽑기는 아직 못 함 — 원천 벌 재추출이 먼저임** (아래 근거) · 코덱스가 md 를 고치자(줄 아홉 보탬) `pum_forest_2026.json` 이 들고 있는 **옛 줄 번호가 밀려** 본문에서 밑수를 못 찾아 산림 밑수 확보가 **238 → 105 로 떨어졌음** · 줄 번호를 머리글로 다시 찾게 해 봤으나(238 → 243), 12장에 「구 분 | 적 용 | 비 고」 머리글이 수두룩해 **이웃 표를 집어 밑수가 표끼리 돌아갔음** — 직접공사비가 5,983,724 → 5,811,903 으로 **조용히 움직였음.** 첫 줄까지 맞대 좁히면 이번엔 218 로 더 떨어짐(원천 벌 셀이 md 와 다름) ⇒ 앵커링을 물리고 **옛 산출을 그대로 둠**(238/92). 고칠 자리는 마스터가 아니라 **`pum_forest_2026.json`·`pum_const_2026.json` 을 고친 md 에서 다시 뽑는 것**임 ⚠ 코덱스의 md 손질로 `test_base_prices_source_match` 가 15건 오류 — 손료표 머리글 「시간당(10-7)」 을 못 찾음(그 표를 읽는 쪽은 메인·코덱스 몫) Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01QsGw1Dz9HmhuAxGisxmDPF --- .../data_master_labels/labels_2026-01-01.json | 82 ++++++++++++++++++- resources/tester/test_z01_base_prices.py | 3 +- 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/resources/data_master_labels/labels_2026-01-01.json b/resources/data_master_labels/labels_2026-01-01.json index e96247ee..3e5357af 100644 --- a/resources/data_master_labels/labels_2026-01-01.json +++ b/resources/data_master_labels/labels_2026-01-01.json @@ -1977,11 +1977,11 @@ "merged_columns": 178, "files": 41, "tables": 101, - "columns": 538, - "value_groups": 204, + "columns": 541, + "value_groups": 207, "unknown": 0, "value_groups_by_kind": { - "doc": 138, + "doc": 141, "value": 66 } }, @@ -2779,6 +2779,18 @@ "name_ko": "어느 품셈", "unit": "", "visible": true + }, + { + "key": "alt_rate_range", + "name_ko": "다른 조건 할증률 범위", + "unit": "", + "visible": true + }, + { + "key": "alt_rate_note", + "name_ko": "다른 조건 할증률 메모", + "unit": "", + "visible": true } ] }, @@ -4753,6 +4765,12 @@ "name_ko": "줄을 가르는 칸", "summary": "이 표에서 줄 하나를 집는 칸 이름.", "kind": "doc" + }, + { + "key": "variables/labor_mfg/industry_note", + "name_ko": "업종 메모", + "summary": "", + "kind": "doc" } ] }, @@ -4964,6 +4982,12 @@ "name_ko": "원문 관리비계수", "unit": "10^-7", "visible": false + }, + { + "key": "note", + "name_ko": "메모", + "unit": "", + "visible": true } ] }, @@ -6312,6 +6336,18 @@ "name_ko": "임금채권보장 부담금", "summary": "노무비에 곱하는 율.", "kind": "value" + }, + { + "key": "variables/rate_overhead/basis", + "name_ko": "근거", + "summary": "", + "kind": "doc" + }, + { + "key": "variables/rate_overhead/specialty_note", + "name_ko": "전문공사 메모", + "summary": "", + "kind": "doc" } ] }, @@ -7832,6 +7868,16 @@ "unit": "%", "visible": true }, + "alt_rate_note": { + "name_ko": "다른 조건 할증률 메모", + "unit": "", + "visible": true + }, + "alt_rate_range": { + "name_ko": "다른 조건 할증률 범위", + "unit": "", + "visible": true + }, "alternative_amount": { "name_ko": "조건 시공 시 소요량", "unit": "", @@ -8247,6 +8293,11 @@ "unit": "", "visible": true }, + "industry_note": { + "name_ko": "업종 메모", + "unit": "", + "visible": true + }, "item": { "name_ko": "항목", "unit": "", @@ -8327,6 +8378,11 @@ "unit": "", "visible": true }, + "loading_efficiency_basis": { + "name_ko": "적재 작업효율 근거", + "unit": "", + "visible": true + }, "loss_coefficient_per_hour": { "name_ko": "시간당 손료계수", "unit": "", @@ -8562,6 +8618,16 @@ "unit": "", "visible": true }, + "plywood_labor_pct": { + "name_ko": "합판 노무비 비율", + "unit": "", + "visible": true + }, + "plywood_material_pct": { + "name_ko": "합판 재료비 비율", + "unit": "", + "visible": true + }, "price_adopted_reason": { "name_ko": "값을 고른 사유", "unit": "", @@ -8842,6 +8908,11 @@ "unit": "", "visible": true }, + "specialty_note": { + "name_ko": "전문공사 메모", + "unit": "", + "visible": true + }, "specification": { "name_ko": "규격", "unit": "", @@ -8882,6 +8953,11 @@ "unit": "", "visible": true }, + "timber_absent": { + "name_ko": "각재 — 원문에 없음", + "unit": "", + "visible": true + }, "to": { "name_ko": "이을 코드", "unit": "", diff --git a/resources/tester/test_z01_base_prices.py b/resources/tester/test_z01_base_prices.py index c1648c95..911b90fc 100644 --- a/resources/tester/test_z01_base_prices.py +++ b/resources/tester/test_z01_base_prices.py @@ -94,7 +94,8 @@ def test_다섯_표는_제_열쇠와_고칠_칸을_냄(client: TestClient) -> No assert _row(client, "oil", "national_average/oil_diesel")["price_krw_per_l"] == 1846.39 assert _row(client, "oil", "regional/oil_diesel/01")["region_name"] == "서울" rate = _get(client, "rate", size=500) - assert rate["total"] == 218 and "rate_percent" in rate["editable"] + # 2026-09-18 218 → 220 — 전문공사 일반관리비 300억~1000억·1000억 이상 두 구간이 빠져 있던 것을 채움 + assert rate["total"] == 220 and "rate_percent" in rate["editable"] by_id = {r["@id"]: r for r in rate["rows"]} assert by_id["rate_sanjae"]["rate_percent"] == 3.56 goyong = (