fix(B09): 조종원 노임 나눗수 8시간을 품셈 근거로 못 박음
배분 창이 「관측 55,700 ÷ 일당 283,297 = 5.09시간」을 짚어 확인함. 품셈을 뒤진 결과: - **8시간이 맞음** — 품셈 8-1-6 기계손료 단서 「관리비는 1일 8시간 초과해도 8시간으로 계산」이 1일을 8시간으로 잡고, 노임표도 `hours_per_day: 8` 임. - **관측이 짧은 나눗수를 쓴 것으로 보임** — 작업효율 `E`(실작업시간율)를 시간당 사용료에 미리 반영한 것. 품셈에서 작업효율은 **작업량 산정**(`Q = n·q·f·E`, 8-1-4)에 들어가지 시간당 사용료에 안 들어감. **관측에 맞추려 나눗수를 바꾸지 않음**(★법대로). - ⇒ **조종원 직종 의문은 해소됨** — 직종(건설기계운전사)은 맞고 나눗수만 달랐음. 잠정 표시는 「직종명이 품셈 8-4 표에 없음」 사유로만 남김. - 근거·경위를 상수 주석에 적고 테스트로 박음(`OPERATOR_HOURS_PER_DAY == 8`, 관측값보다 작다는 것까지 확인). 자체검증 — `pytest tmp/tests/ -q` 110 passed · ruff 통과. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,18 @@ _CATALOG_SUBPATH = ("resources", "data_cost_input_value")
|
||||
_THOUSAND = Decimal(1000)
|
||||
|
||||
|
||||
#: 조종원 노임을 시간당으로 바꿀 때 나누는 시간.
|
||||
#: 근거 — 품셈 8-1-6 기계손료 단서 「**관리비는 1일 8시간 초과해도 8시간으로 계산**」이
|
||||
#: 1일을 8시간으로 잡는다. 노임표도 `hours_per_day: 8` 이다.
|
||||
#: ⚠ **실무 관측은 이보다 짧은 시간으로 나눈 사례가 있다** — STC 2024 관측
|
||||
#: 굴착기 0.7㎥ 노무 55,700 원/hr 은 건설기계운전사 일당 283,297 을 **약 5.09시간**으로
|
||||
#: 나눈 값이다(작업효율 `E`(실작업시간율)를 시간당 사용료에 미리 반영한 것으로 보임).
|
||||
#: 품셈에서 작업효율은 **작업량 산정**(`Q = n·q·f·E`, 8-1-4)에 들어가지 시간당 사용료에
|
||||
#: 들어가지 않으므로 **8시간을 유지한다.** 관측에 맞추려 나눗수를 바꾸지 않는다
|
||||
#: (★법대로 PLAN 8-10). TODO(미결 PLAN 9-6): 발주처가 실가동시간을 요구하는 사례 확인.
|
||||
OPERATOR_HOURS_PER_DAY = 8
|
||||
|
||||
|
||||
class MachineCostError(LookupError):
|
||||
"""기계경비를 세울 수 없는 경우. 0 으로 때우지 않고 멈춘다."""
|
||||
|
||||
@@ -147,7 +159,7 @@ def hourly_machine_cost(
|
||||
fuel_liters_per_hour: Decimal | None = None,
|
||||
fuel_price_per_liter: Decimal | None = None,
|
||||
operator_daily_wage: Decimal | None = None,
|
||||
operator_hours_per_day: int = 8,
|
||||
operator_hours_per_day: int = OPERATOR_HOURS_PER_DAY,
|
||||
) -> HourlyMachineCost:
|
||||
"""시간당 사용료 한 시간분.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user