Skip to main content
Glama

물가변동 조정 판정

check_price_adjustment
Read-onlyIdempotent

물가변동 계약금액 조정(에스컬레이션) 요건 판정 + 산식 적용 — 이행단계 Phase 3.

"자재값이 올랐는데 계약금액을 올려받을 수 있나", "90일 지났나", "단품 조정 되나"에 쓰라.

**이 도구는 조정률을 산정하지 못한다.** 품목조정률·지수조정률은 산출내역서와 지수·단가
원천(한국은행 생산자물가지수 등)으로 계산하는 값인데 이 서버는 그 데이터를 갖고 있지
않다 — 그러니 `adjustment_rate_pct`는 **사용자·발주기관이 산정한 값**을 받아 쓰고,
안 주면 요건 ②를 `met: null`로 두고 판정을 보류한다. 없는 값을 지어내지 마라.

판정하는 것(결정론): ①기간 요건(계약체결일 또는 직전 조정기준일부터 90일 이상)
②등락률 3% 문턱 ③**단품 조정 문턱 — 국가·공기업 15%, 지방 10%(2024 개정으로 갈렸다)**
④조정 방식 결정 규칙(계약서에 지수조정률 명시가 없으면 품목조정률)
⑤조정금액 = 물가변동적용대가 × 조정률, 선금 공제 = 위 값 × 선금급률.
⑥**verdict가 single_item_only면 computed는 단품 산식이다**(computed.track="single_item"):
조정금액 = **해당 자재의** 물가변동적용대가 × 그 자재 등락률(영 제64조⑥ + 집행기준
제70조의3① 품목조정률 준용). `single_item_base_amount`가 없으면 adjustment_amount는
**null**이고 why_null이 사유다 — 계약 전체에 조정률을 곱한 값은 내지 않는다(받을 수
있는 금액이 아니다). 등락폭 특칙·일반관리비·이윤은 반영하지 않았다(computed.not_applied).

응답의 verdict: requirements_met / **single_item_only**(총액 조정은 미충족이나 단품
조정은 충족 — **그 자재에 한하여** 조정된다. 계약금액 전체가 아니다) /
requirements_not_met / exception_path(천재지변·원자재 급등 예외 검토 대상 — 인정
주체는 발주기관) / undetermined(조정률 미제공).

**두 트랙은 독립이다**(2026-08-29 수리). 단품 조정은 영 제64조⑥ "제1항 각 호에도
불구하고"라 3% 문턱과 무관하게 성립하므로, 등락률이 3% 미만이어도 verdict가
single_item_only일 수 있다 — 그때 "조정 불가"라고 답하면 오답이다. 반대로 제5항
예외가 푸는 것은 **조정제한기간(90일)뿐**이고 3% 문턱은 그대로다 — 국가 기준(계약예규
「정부 입찰·계약 집행기준」 제70조의4①)은 원자재 급등 예외에 조정률 5%(물품구매 10%)
이상, 또는 3%(물품구매 6%) 이상+이행 곤란의 객관적 사유를 요구한다.

Args:
    org_type: "national"|"local"|"public_corp" — **추측 금지**(단품 문턱이 다르다)
    contract_date: 계약체결일 "YYYY-MM-DD". 장기계속계약은 **제1차계약 체결일**
    check_date: 조정 검토·청구 시점 "YYYY-MM-DD"
    last_adjustment_date: 직전 조정기준일(있으면 기간 기산점이 이쪽으로 바뀐다).
        contract_date 이상·check_date 이하여야 한다 — 직전 조정이 없으면 생략
    adjustment_rate_pct: 산정된 품목·지수 조정률(%). 감액도 그대로(음수) 넣어라
    method_specified_in_contract: 계약서에 지수조정률이 명시됐으면 "index", 품목이면
        "item". 모르면 생략 — 기본값(품목조정률)으로 안내하되 그 사실을 응답에 밝힌다
    urgent_exception: 천재지변·원자재 급등으로 90일 이내 조정을 검토하는가
    single_item_rate_pct: 단품 조정 검토 시 해당 자재 가격증감률(%)
    single_item_share_over_5permille: 그 자재가 재료비·노무비·경비 합계액의 1천분의 5를
        초과하는가(산출내역서로 확인 — 우리가 계산하지 못한다)
    is_construction: 공사계약인가(단품 조정은 공사 전용 제도)
    adjustment_base_amount: 물가변동적용대가(원) — 조정기준일 **이후** 이행분의 대가
    advance_payment_ratio: 선금급률(비율, 30%면 0.3)
    single_item_base_amount: 단품 조정 대상 **그 자재의** 물가변동적용대가(원) — 조정기준일
        이후 이행분의 그 자재 계약단가 × 잔여수량(산출내역서). 계약 전체 대가가 아니다

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
org_typeYes
check_dateYes
contract_dateYes
is_constructionNo
urgent_exceptionNo
include_footnotesNotrue면 계산값 근거 전문(산식·모집단·기간·원천)을 footnotes에 싣는다. 기본은 행마다 한 줄 요지
adjustment_rate_pctNo
last_adjustment_dateNo
single_item_rate_pctNo
advance_payment_ratioNo
adjustment_base_amountNo
single_item_base_amountNo
method_specified_in_contractNo
single_item_share_over_5permilleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / include_footnotes
      Added value: +{
      +  "default": false,
      +  "description": "true면 계산값 근거 전문(산식·모집단·기간·원천)을 footnotes에 싣는다. 기본은 행마다 한 줄 요지",
      +  "title": "Include Footnotes",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / single_item_base_amount
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Single Item Base Amount"
      +}
  2. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description layers substantial extra behavior on top: it refuses to invent a missing adjustment rate and returns 'met: null' plus why_null instead, suppresses single-item amounts when the base is absent, and declares which factors were NOT applied (등락폭 특칙·일반관리비·이윤 → computed.not_applied). It further discloses the non-obvious dual-track rule that a sub-3% rate can still yield single_item_only, which directly prevents a wrong '조정 불가' answer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the 'what this cannot do' caveat are front-loaded before the long requirement list, which is the right ordering for a dense legal tool. It is long and occasionally repetitive — the verdict enumeration and the '그 자재에 한하여' distinction are restated — but nearly every sentence carries regulatory content an agent needs, so the length is largely earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, read-only determination tool with no output schema and 7% schema coverage, the description closes the important gaps: it describes the response shape (verdict values, computed.track, why_null, footnotes) and enumerates the six deterministic checks that produce them. An agent can call this correctly and interpret the result without any other source.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 7%, so the description has to carry the load, and it does: 12 of 14 parameters get targeted semantics in the Args block, including non-obvious rules such as org_type being unguessable because single-item thresholds differ, contract_date meaning the first contract date for long-term contracts, negative rates being passed through as-is for reductions, and single_item_base_amount being the item's own base amount rather than the whole-contract amount. Enum and default behavior (method_specified_in_contract defaulting to 품목조정률 with disclosure) is also spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('물가변동 계약금액 조정 요건 판정 + 산식 적용') and pins it to a lifecycle phase ('이행단계 Phase 3'), making the domain unambiguous. It never names a sibling tool to contrast with, so an agent must infer where the boundary with get_law_article/search_law lies from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete trigger questions ('자재값이 올랐는데 계약금액을 올려받을 수 있나', '90일 지났나', '단품 조정 되나') tell the agent exactly when to reach for this tool. It also sets a hard scope exclusion ('이 도구는 조정률을 산정하지 못한다 — 이 서버는 그 데이터를 갖고 있지 않다'), but it never routes the agent to a named alternative tool for the rate data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.