← 문서 허브 · 엔진 정본 · 라이브 앱 →

🍽 어린이집·유치원 식단 평가 엔진 📦 아카이브

식단표 사진 1장 → 7축 영양 평가 + 전국 기관 순위 + 빛나는 강점 → "집 끼니가 진짜" 전환. daycare-eval.html의 평가 기준 · 랭킹 설계 · 데이터 흐름.
📦 아카이브 문서 (2026-06-23) — 부모용 식단 평가엔진 설계 보관본. 점수 산식이 7축 평균으로 통일됨: 이전엔 부모 총점=7축평균인데 줄세우기=computeDiversityScore(penalty)로 따로 놀아 학부모에게 '95점인데 전국 꼴찌(상위 100%)' 모순이 노출되는 버그가 있었음 → institution_scores.score를 7축 평균으로 단일화(penalty 이중계산 제거). 아래 '3. 랭킹'의 점수기 서술은 구버전 보관.

0. 한 줄 철학

실측 결과 기관 급식은 거의 다 훌륭(영양사 + 어린이급식관리지원센터). 그래서 점수는 의도적으로 거의 만점·공동 상위권으로 보여 어떤 기관도 깎이지 않게(B2B 안전) 하고, 변별은 '우리 원의 빛나는 강점' 한 줄(약점은 절대 미노출)이 맡는다. 그리고 부모가 바꿀 수 있는 집에서 먹는 나머지 끼니로 전환 → 코칭 가치. = 점수 후킹 → 기관 안심 → 집 끼니 전환.

1. 📊 수집된 데이터 현황 (라이브 · /api/institution/stats)

불러오는 중…

2. 평가 기준 — 7축 (룰베이스·결정론·클라이언트)

임의 점수가 아니라 보건복지부·WHO·NOVA·농진청 기준. 식감 단계(HabEat)는 모호·기관유형차로 2026-06-22 제외 → 8축→7축.

무엇을산식 요약
1. 식품군 다양성
WHO MDD
8개 식품군 충족 + 군 내 세부 종류8/8 + 세부 10종↑ = A+(95) · 8/8 = B(80) · 7/8 = B-(78)
2. KDRI 31종
복지부 2025
31종 필수 영양소 커버율(식재료→영양맵)25종↑ A+ · 19종↑ A · 14종↑ B+
3. 메뉴 반복도한 달 최다 반복(밥·김치·우유 등 주식 제외)≤2회 A+ · ≤4 B · ≤6 C
4. 알레르겐 표시
식약처 17대
알레르겐 표기 유무3종↑ 표시 = 100 · 그 외 80
5. 가공식품
WHO NOVA
초가공(너겟·소시지 등) 비중<8% A+ · <18% A- · <30% B-
6. 제철 식재료
농진청·해수부
식단표 '해당 월' 제철 식재료 정확매칭 수3종↑ A+ · 2종 A · 1종 B+
7. 조리 스타일한식·양식·일식·중식 다양성4종 A+ · 3종 B+ · 2종 C

총점 = 7축 평균 → 등급(95+ A+ · 90+ A · 85+ B+ · 80+ B · 70+ C · D). 부모 결과카드엔 이 7축 막대 + 등급.

3. 기관 랭킹 시스템

점수기(줄세우기용) ⚠️ 2026-06-23 변경됨

현행: 줄세우기·부모 총점 모두 7축 평균으로 통일(institution_scores.score = 7축 평균). penalty(반복/가공)는 7축 repeat·nova에 이미 반영돼 이중계산이라 제거. 단독 코호트(1개)는 등수 미표시·하위권 순위 미노출. 아래 구버전 서술 보관.

computeDiversityScore (결정론·daycareMode: 과일·유제품 제외, 가공/반복 패널티 ON). 실측 113곳(서울 7개 구) 중앙값 91·평균 90 = 변별력 낮음(다 훌륭) → 화면은 인위적 커브·등급밴드 없이 객관 점수 + 전국 {유형} 상위 X%만(절대값·등급·동네 등수 미노출).

변별 = 8개 강점지표 (코호트 percentile 1위 1개만 긍정 노출)

지표산출(결정론)노출 문구(예)
생선·해산물생선 등장 distinct 날/일수×7오메가3 풍부한 생선을 다른 원보다 자주
제철 식재료그 달 제철 식재료 비율(season.ts)이번 달 제철 식재료를 자주
콩류콩류 등장 distinct 날/일수×7두부·콩 식물성 단백질을 자주
통곡물·잡곡잡곡밥/전체 밥끼니흰쌀밥 대신 잡곡을 자주
단백질 로테이션distinct 단백질 급원 종 수고기·생선·콩·계란 골고루
채소 다양성distinct 채소 표준명 종 수다양한 채소를 폭넓게
국·탕 다양성distinct 국·탕 메뉴 종 수국·탕을 다양하게 돌려
저가공1−가공끼니비중자연 식재료 끼니가 많아요

규칙: percentile ≥60일 때만, 그 원의 최고 1개만. 동률 타이브레이크 = 생선→제철→콩류→통곡물→단백질→채소→국탕→저가공. 약점·저점은 절대 미노출.

⚠️ 불변선: 어떤 기관도 '못해 보이게' 하지 않는다. 부모가 평가받는 느낌·죄책감 0. 순위는 '잘잘못 아님 = 종이 한 장'. 집 끼니 전환은 부담 아닌 '하루의 마지막 퍼즐'.

4. 설계 · 구현 (데이터 흐름)

식단표 사진/PDF CLOVA OCR + Claude Sonnet 비전 기관명(좌측상단)·월·끼니별 메뉴 디렉터리 매칭(구+유형) 📦 institution_menus / items / scores /api/eval/rank (코호트 percentile)

5. 데이터 인입 3경로

경로방식채우는 것
① 배치 zip/폴더센터·구별 식단표 묶음 → 임포터 OCR전국 기관 순위 풀(institution_scores) + 추천 빈도
② daycare-eval 업로드부모가 1장 업로드 → 기관 선택/자동매칭그 기관-월 (institution_menus UNIQUE upsert)
③ 부모 기록탭care 앱 식단표 → meal_logs(place=daycare)자녀별 급식 기록(추천·코칭)

세 경로 모두 OCR 결과가 ① 추천 데이터 엔진(food-reco-engine: 식재료 빈도·도감) ② 기관별 식단 평가(이 문서: 점수·순위·강점) 양쪽으로 적재된다.

밀프레드 내부 문서 · 라이브 앱 daycare-eval.html · 추천엔진 food-reco-engine.html