응찰 1,747만 행이 말하는 것 — 개찰 데이터 6개월 관측
미리보아가 검증·알림에 쓰는 나라장터 개찰 데이터(조달청 낙찰정보 API, 공사·용역, 2026년 2~8월)를 한 번 훑어 세 가지 관측치를 냈습니다. 시장 해석이 아니라 데이터가 보여 주는 모양 그대로이고, 숫자와 함께 데이터의 사정(빈 날·미확정·수집 시점)을 같이 적었습니다.
관측 1 — 경쟁의 모양은 계약 방식이 정한다
| 구분 | 낙찰자 결정 방식 | 공고 | 응찰자 중앙값 | 상위 10% | 최대 | 단독 응찰 |
|---|---|---|---|---|---|---|
| 공사 | 소액수의견적 | 46,500 | 56 | 297 | 6,224 | 0.2% |
| 용역 | 협상에 의한 계약 | 38,110 | 1 | 4 | 35 | 54.4% |
| 용역 | 소액수의견적 | 30,429 | 8 | 57 | 2,799 | 8.5% |
| 공사 | 적격심사제 | 17,327 | 367 | 1,209 | 11,361 | 0.6% |
| 용역 | 적격심사제 | 16,086 | 15 | 89 | 3,557 | 11.6% |
| 용역 | 수의시담 | 15,530 | 1 | 1 | 2 | 100% |
같은 "용역"이라도 협상에 의한 계약은 절반이 단독 응찰이고, 적격심사는 공고 하나에 중앙값 367곳이 몰립니다. 응찰자 수는 시장의 관심이 아니라 방식의 함수입니다. "경쟁률"을 한 숫자로 말하는 자료는 이 표를 합쳐 버린 것입니다.
관측 2 — 하한선 위 1%p 띠에 몰리고, 절반 가까이는 아래를 쓴다
적격심사와 소액수의에는 낙찰하한율이 있습니다 — 예정가격의 몇 % 아래로 쓰면 자동 탈락하는 선. 응찰가가 그 선에서 얼마나 떨어져 있는지를 쟀습니다.
| 구분 | 응찰 | 하한선 아래 | 하한선 위 1%p 안 |
|---|---|---|---|
| 공사 적격심사 | 9,398,745 | 22.0% | 41.3% |
| 공사 소액수의 | 6,091,176 | 25.2% | 40.7% |
| 용역 적격심사 | 772,795 | 42.1% | 41.0% |
| 용역 소액수의 | 749,875 | 42.4% | 40.6% |
0.1%p 단위로 잘라 보면 하한선 위 0~1%p 구간이 거의 평평합니다(구간당 3.4~4.4%). 특정 값에 몰리는 게 아니라 띠를 고르게 채웁니다. 예정가격이 개찰 때 복수예비가격 추첨으로 정해져 하한선을 미리 알 수 없기 때문입니다. 아래로 떨어진 22~42%는 전략의 실패가 아니라 추첨의 결과입니다.
전체 응찰 17,467,350행 중 부적격이 8,268,020행(47.3%)이고, 그중 98%가 낙찰하한선 미달입니다. 서류 미제출·적격점수 미달·협상평가 부적격 같은 나머지 사유는 다 합쳐도 2%입니다. 입찰에서 떨어지는 이유의 거의 전부는 서류가 아니라 가격이 하한선 아래로 간 것입니다 — 서류 결함은 드물지만, 그래서 걸리면 온전히 본인 몫입니다(상반기 탈락 리포트).
관측 3 — 낙찰률은 방식마다 한 점에 모인다
낙찰이 확정된 공고만 셌습니다(예정가격 대비 낙찰가 %).
| 구분 | 낙찰 확정 공고 | 낙찰률 중앙값 | 하위 10% ~ 상위 10% | 가장 흔한 0.5%p 구간 |
|---|---|---|---|---|
| 공사 적격심사 | 13,076 | 90.33 | 89.39 ~ 90.72 | 90.5 (56%) |
| 공사 소액수의 | 42,437 | 90.33 | 90.00 ~ 90.75 | 90.5 (57%) |
| 용역 적격심사 | 11,826 | 87.76 | 81.15 ~ 88.89 | 88.0 (41%) |
| 용역 소액수의 | 25,351 | 88.24 | 88.01 ~ 90.41 | 88.0 (51%) |
| 용역 수의시담 | 14,321 | 97.55 | 89.04 ~ 100 | 100 (30%) |
공사 적격심사·소액수의의 낙찰률은 90.0~90.5 구간에 74~89%가 들어갑니다. 낙찰가는 예정가격의 90% 안팎으로 사실상 정해져 있고, 경쟁은 가격을 얼마나 낮추느냐가 아니라 하한선 위 1%p 띠 안에서 누가 가장 낮은 자리에 서느냐입니다.
숫자와 같이 읽어야 하는 것 — 데이터의 사정
- 빈 날이 109일입니다. 일별 파일 439개 중 109개가 0행 — 대부분 주말·공휴일입니다. 평일인데 빈 날이 둘(공사 7월 30일, 용역 8월 11일) 있습니다. 휴일이 아니라 수집 실패를 의심했고, 9월 7일 API가 복구된 뒤 되물어 확인했습니다. 원천에는 그날 개찰이 있습니다(공사 7월 30일 응찰 90,499행, 용역 8월 11일 10,072행). 두 날은 이 리포트의 숫자에서 빠져 있으며, "없음"이 아니라 "수집 실패"입니다.
- 수집 시점이 개찰일과 가까울수록 적게 잡힙니다. 낙찰정보 API는 낙찰이 확정된 공고만 줍니다. 3~5월분은 8월에, 7·8월분은 그 달 안에 받았습니다. 7·8월 공고 수가 3·4월보다 적게 보이는 것은 시장이 아니라 수집 시점입니다. 이 리포트는 월별 추세를 말하지 않습니다.
- 낙찰 미확정이 17.8%입니다 — 개찰은 끝났는데 낙찰이 확정되지 않은 공고. 낙찰률 표는 확정분만 셌습니다. 다른 필드의 결측은 1.2% 이하입니다.
한계
- 공사·용역만입니다. 물품·외자는 수집 대상이 아니었습니다.
- 6개월 한 구간이라 계절성·추세는 말할 수 없습니다.
- 관측이지 해석이 아닙니다. 하한선 위에 몰리는 이유는 제도(복수예비가격 추첨·낙찰하한율)로 설명되지만, 그 이상의 인과는 이 데이터가 말하지 않습니다.
- 발주기관·낙찰업체 집중도는 개별 업체가 드러나므로 싣지 않았습니다. 모든 수치는 집계입니다.
방법과 파일
출처: 조달청 공공데이터개방표준서비스 낙찰정보(getDataSetOpnStdScsbidInfo), 공사(3)·용역(5)를 일별 창으로 수집. 응찰 1행 = 한 공고에 한 업체가 낸 입찰 하나. 공고는 공고번호 고유값(차수가 다른 재공고 4.8%는 같은 번호로 묶임).
낙찰률·응찰률은 예정가격 대비 %. 하한선 간격은 응찰률 − 낙찰하한율(sucsfLwstlmtRt), 하한율이 있는 방식(적격심사·소액수의·제한적최저가)만. 순수 파이썬 두 번 스캔(각 약 5분). 스크립트와 결과 JSON을 아래에 공개합니다. 원본 17,467,350행은 같은 API로 받을 수 있습니다.
파일
떨어지는 이유의 2%가 서류입니다. 그 2%는 제출 전에 잡을 수 있습니다.
가격은 추첨이지만 서류는 아닙니다. 제출서류 누락·금액 산식·명칭 불일치를 공고문 원문 근거와 함께 기계 판정합니다.