Farm produce prices Fetched twice a day

Pick a category and what to compare against — the normal-year price, a year ago, a month ago, or a week ago. Retail and wholesale are shown separately. The item names come through in Korean.

농산물 도·소매 가격 부류를 고르고, 무엇과 견줄지 고릅니다
불러오는 중  
품목 조사 단위 가격 평년 대비
1 / 1 쪽

여기 나오는 값은 조사된 가격이지 오늘 마트에서 살 값이 아닙니다. 품목·품종·등급마다 정해진 조사 단위의 가격이고, 지역과 점포에 따라 다릅니다. 등락은 같은 품목의 같은 단위끼리 견준 값이라 그 자체로는 믿을 만합니다.

⚠️ 품목끼리 금액을 견주지 마세요. 조사 단위가 품목마다 다릅니다 — 쌀은 20kg, 사과는 10개, 배추는 1포기, 소고기는 100g입니다. 그래서 금액 옆에 조사 단위를 함께 적었습니다. KAMIS는 kg 기준 환산가도 주지만 kg·g으로 조사하는 품목에서만 실제로 환산되고 개·포기·마리·손은 그대로 와서, 섞어 쓰면 단위가 어긋납니다. 그래서 요청할 때부터 환산을 끄고 조사된 값을 그대로 받습니다.

「평년」은 저희가 계산한 값이 아닙니다. KAMIS가 응답에 함께 담아 주는 값(dpr7)을 그대로 싣습니다. 어떻게 산출하는지는 KAMIS 문서에서 확인하지 못했습니다 — Open-API 명세는 「평년 가격」이라고만 적고 있고, 가격정보 조사요령에도 산출식이 없습니다. 그래서 「최근 몇 년 평균」 같은 설명을 붙이지 않았습니다.

이 값은 하루 두 번 받아 저장해 둔 것입니다. 이 페이지의 다른 다섯 칸과 달리, 여기만 여는 순간에 부르지 않습니다. KAMIS 서버가 해외 대역에서 오는 호출을 막아(2026-08-13 실측: 같은 요청이 국내에서는 통하고 해외에서는 HTTP 406 + 차단 페이지), 국내에서 받아 둔 것을 그대로 내줍니다. 받아 둔 시각을 위에 적어 두었습니다.

출처: 한국농수산식품유통공사 농산물유통정보(KAMIS) Open-API. 값은 받은 그대로이고 반올림하지 않았습니다.

How to read these numbers

This is the one panel that is not read when you open the page. The KAMIS server blocks calls coming from overseas networks. On 13 August 2026 we sent the same one-shot request with the same library from four places: from a Korean connection it returned error_code 000 and the data; from a Cloudflare edge worker and from a GitHub Actions runner — both overseas — it returned HTTP 406 and a web-firewall block page. We did not work around it. Instead the data is fetched twice a day from within Korea, committed to the repository, and served from that file. The fetch time is printed inside the widget.

The data got better in the trade. We used to read the portal’s “latest date” feed, but that name does not mean one recent survey date — it is each item’s own last survey. In the live response, 10 of 452 rows were surveyed in 1997, and for livestock the newest row was 1 April 2022. We had to drop 205 rows with a 30-day cut. The per-category feed we use now carries a single survey date, so nothing has to be dropped, and taking all six categories at both retail and wholesale gives 366 rows.

The “normal-year” price is not our arithmetic. It is a field KAMIS returns (dpr7) and we print it as received. We could not find how it is calculated in any KAMIS document — the Open-API spec says only “normal-year price”, and the survey manual gives no formula. So we do not attach a plausible-sounding gloss like “a five-year average”. It is still the better yardstick for whether this year is dear: if last year was itself unusual, a year-on-year change flatters or frightens for no reason.

Second, the unit. Rice is surveyed per 20kg, apples per 10 fruit, cabbage per head, beef per 100g. So do not compare amounts across items. KAMIS also supplies a kg-converted price, but the conversion only happens for items surveyed in kg or g — pieces, heads and fish arrive unconverted. Mixing them turns “61,350 won per 20kg” into “3,068 won per 20kg”, so we switch the conversion off at request time and print the surveyed value.

Third, retail and wholesale tell different stories. On the 11 August 2026 survey the median year-on-year change was −7.2% at retail but −0.8% at wholesale, and of 62 pairs matched on item, variety and grade, retail fell further in 44. That is why the selector stays — look at one side only and you reach the opposite conclusion.

When a value is missing, KAMIS sends “-”, not zero. Reading that as zero would mean “free”, so we label it not comparable and move it to the back of the table rather than dropping it.

How to read this item by item is in Chuseok grocery prices.

Which moment this number refers to

NumberHow often it changesLag before you see it
Farm produce wholesale and retail pricesOnce per survey dayNot on open — fetched twice a day and stored
Source
NumberIssuing bodyLicence
Farm produce pricesMinistry of Agriculture, Food and Rural Affairs / Korea Agro-Fisheries & Food Trade Corporation (aT), KAMIS Open-APIUnrestricted

What happens when a number does not appear is on the live data page.

The other five feeds