North Star 지표 · KPI 트리
이 페이지는 LogiNippon의 성공을 측정 가능하게 고정한다. 하나의 North Star Metric(NSM)을 결정적으로 고르고 그 이유를 밝히며, NSM을 정점으로 입력·결과·사업 지표를 KPI 트리로 묶고, 각 KPI의 정확한 공식(분자/분모/측정윈도/제외/반올림)을 마스터 스펙 §4.2의 정규 수치 그대로 정의한다. 단계별 목표치(Phase 1 MVP exit floor vs 정상상태 지향치)와 각 KPI의 데이터 출처·SLO 연결을 명시한다. 모든 목표치는 운영 데이터 없는 진입 단계의 초기 확정치(설계)이며, 운영 베이스라인으로 분기별 조정한다 — 달성치가 아니다.
1. North Star 지표 (NSM)
NSM은 "제품이 고객에게 전달하는 핵심 가치를 한 숫자로 대리하는 지표"여야 하고, 우리 비전과 정합해야 한다. 비전(vision.md)의 한 문장은 "일본 국내 B2B 트럭 화물 운송에 B2C 택배 수준의 화물 단위 실시간 가시성을 가져온다"이고, 핵심 난이도는 UI가 아니라 多重下請け(元請→下請→孫請)를 관통해 실제 운행 차량의 위치를 조직 경계를 넘어 확보하는 데 있다. 즉 우리가 파는 가치는 "보이게 만드는 것"이고, 그 가치가 실제로 발생했음을 가장 직접적으로 증명하는 부산물이 위치·체류 데이터의 수집 커버리지다.
결정 — NSM = Tracking Rate (추적 커버리지). 활성 화물 중 GPS 이벤트로 실제 가시화된 비율을 NSM으로 확정한다(KPI-NSM-001). 설계
왜 Tracking Rate인가.
- 핵심가치의 직접 대리. 가시성이 제품의 핵심가치이고, Tracking Rate는 "얼마나 보이는가"를 그대로 측정한다. 화물이 추적되지 않으면 ETA·荷待ち 측정·예외 탐지·규제 출력이 모두 무의미하므로, Tracking Rate는 다른 모든 결과지표의 상류(upstream) 게이트다.
- 부산물 수집의 증거. 가이딩 원칙 "페인이 입구, 가시성은 부산물"(vision.md §가치 제안)에서, 페인 해결 제품이 실제로 위치 데이터를 부산물로 모으고 있다는 증거가 곧 Tracking Rate다. NSM이 오르면 곧 다단계 하청을 관통한 가시성 자산이 축적되고 있다는 뜻이다.
- 해자 정합. "해자는 소프트웨어가 아니라 네트워크"(Research H3 강검증). 추적 커버리지는 네트워크 침투의 직접 척도이며, Phase 0 제휴로 cold-start를 푸는 전략(strategy-risk)의 진척을 한 숫자로 보여준다.
- 정직성. 100%는 비현실(스마트폰 GPS 한계)이므로 NSM에 거짓 천장을 두지 않는 정직한 지표다(아래 §5).
고려했으나 보조로 강등한 대안. 더 복합적인 정의 "추적 커버리지로 가시화된 화물 비율 × 荷待ち 단축분"도 검토했으나, 두 단위를 곱한 합성지표는 (a) 해석이 모호하고 (b) 荷待ち 단축은 외생 요인(거점 운영) 의존도가 높아 제품 가치 귀속이 어렵다. 따라서 荷待ち 단축(KPI-DWELL-001)은 NSM이 아니라 1차 결과지표로 둔다 — NSM이 오르면 결과지표가 따라 오른다는 인과 가설을 트리로 표현한다.
요구. 시스템은 활성 화물의 추적 커버리지(Tracking Rate)를 NSM으로 정의하고 반드시 대시보드·리포트에서 staleness와 함께 정직하게 노출해야 한다(MUST). 정의·공식은 KPI-TRACK-001을 단일 진실원으로 따른다.
수용기준
- Given 28일 롤링 윈도의 활성 화물 집합, When NSM을 산출하면, Then 값은
Σ received_pings / Σ expected_pings로 계산되고 0–100%로 표기된다. - Given NSM 표기, When 화면/리포트에 표시하면, Then 100%는 비현실(스마트폰 GPS 한계)임을 명시하고 staleness 분포를 함께 노출한다.
- Given 추적 손실(FR-ENG-EXC-003) 발생 구간, When NSM을 계산하면, Then 해당 구간의 누락 핑이 분모(expected)에 반영되어 NSM을 낮춘다(은폐 금지).
2. KPI 트리
NSM(Tracking Rate)을 정점에 두고, 가시성이 확보되면 결과가 개선되고 결과가 개선되면 사업이 자란다는 인과 가설을 트리로 표현한다. 각 노드의 타깃은 마스터 스펙 §4.2 인용(초기 확정 목표, 설계)이다. 사업지표 수치는 본 TRD가 정한 보수적 가설로 추정 라벨을 붙인다.
-
NSM · Tracking Rate 추적 커버리지 MVP exit floor ≥85% · 정상상태 ≥92%
- 입력지표 (Input — 우리가 직접 움직임)
- 정규화 정확도 canonical 해결 ≥99% (미매핑 <1%/일) KPI-NORM-001
- ETA 정확도 (MAPE) 룰 ≤25% → ML ≤15% KPI-ETA-001
- 추적 손실 오경보율 <5% FR-ENG-EXC-003
- 결과지표 (Outcome — 고객 페인 해소)
- 荷待ち 단축 (평균 dwell) 법정 2시간(120min) 목표 · mean+p90 추적 KPI-DWELL-001
- 정시 배달률 OTD 베이스라인 측정 후 분기 목표 설정 KPI-OTD-001
- 정시 픽업률 OTP OTD와 동형 KPI-OTP-001
- 예외율 (Exception Rate) 베이스라인 후 추이 관리 KPI-EXC-001
- CO₂ 추정 (화주 ESG) 제공 자체가 목표 KPI-CO2-001
- 사업지표 (Business — 성장·생존)
- 제휴 파트너 수 (운송사·거점) Phase 0 하드 게이트 충족 추정 GATE-P0
- 활성 화물/일 동시 활성 DO >5,000 시 종료 화물 D1 폴링 분할 추정 NFR-SCALE-001
- 리텐션 (화주 잔존) 荷待ち 리포트 기반 가설 추정 monetization-gtm
- 입력지표 (Input — 우리가 직접 움직임)
읽는 법. 입력지표는 우리가 엔지니어링으로 직접 끌어올리는 레버(정규화·ETA·추적), 결과지표는 그 결과로 고객 페인이 줄어드는 정도(荷待ち·OTD·예외), 사업지표는 그 가치가 시장에서 돈·잔존으로 환산되는 정도다. NSM↑ → 결과지표↑ → 사업지표↑가 핵심 인과 가설이며, 트리의 모든 화살표는 검증 대상이다.
3. KPI 정의 표
아래 8개 KPI의 공식은 마스터 스펙 §4.2를 그대로 인용한다(임의 변형 금지). 분자/분모/측정윈도/제외/반올림을 고정해 측정 재현성을 보장한다. 모든 목표치는 진입 단계 초기 확정 목표(설계)다.
| KPI · ID | 공식 (분자 / 분모) | 측정윈도 | 제외 · 반올림 | 확정 목표 |
|---|---|---|---|---|
| Tracking Rate KPI-TRACK-001 (S4) |
received_pings / expected_pings; expected = active_segment_sec / ping_cadence |
28일 롤링 | 비활성 구간 expected 미산입; 100%는 비현실(스마트폰 GPS 한계)로 정직 노출 | MVP exit floor ≥ 85%, 정상상태 지향 ≥ 92% |
| ETA MAPE KPI-ETA-001 (S7) |
mean(|actual − predicted| / actual); 배달 12h 전 기준 예측 사용 |
완료 운행 집계(레인 클래스별) | eta_is_estimate=1 표기; 룰 ETA는 하드 SLO 아님 |
룰 기반 ≤ 25%, ML 후 ≤ 15% (Shippeo 90%@12h는 지향 참조 추정) |
| 정규화 정확도 KPI-NORM-001 (S8) |
canonical 해결 이벤트 / 전체 raw 이벤트 |
일(日) 집계 | 미매핑 비율 <1%/일; 정밀도 매트릭스 후 충돌 0 | ≥ 99% canonical 해결; 미매핑 급증 알람 >50/시간 |
| OTD 정시 배달률 KPI-OTD-001 |
(약속시각 이내 배달 / 전체 배달) ×100 |
30일 롤링 (JST) | 취소 제외; 소수점 1자리 | 베이스라인 측정 후 분기 목표 설정 설계 |
| OTP 정시 픽업률 KPI-OTP-001 |
OTD와 동형(픽업 시각 기준) | 30일 롤링 (JST) | 취소 제외; 소수점 1자리 | OTD와 동형 설계 |
| 평균 荷待ち (Dwell) KPI-DWELL-001 |
AVG(actual_departure − actual_arrival); 거점/운송/기간별 |
거점·운송·기간별 그룹 | mean + p90 함께 보고 | 법정 2시간(=120min, FR-ENG-EXC-002) 초과분 표시 확인 |
| 예외율 (Exception Rate) KPI-EXC-001 |
(예외 화물 / 전체 화물) ×100 |
기간 집계 | 예외 정의는 FR-ENG-EXC-001..006 | 베이스라인 후 추이 관리 설계 |
| CO₂ 추정 KPI-CO2-001 |
Σ(구간거리km × 차급 배출계수) |
화물·기간별 | 화주 ESG 보고용 | 제공 자체가 목표(스코어카드 동봉) 설계 |
아래 카드는 NSM과 1차 입력지표 3종을 정규 요구사항으로 고정한다(나머지 결과/사업 KPI는 위 표를 단일 진실원으로 참조). 추적 손실(FR-ENG-EXC-003)·荷待ち 초과(FR-ENG-EXC-002)·예외 정의(FR-ENG-EXC-*)는 functional.html이 소유하므로 여기서는 링크로 참조한다.
요구. 시스템은 추적 커버리지를 received_pings / expected_pings(expected = active_segment_sec / ping_cadence)로 산출하고, MVP exit floor ≥ 85%를 단계 종료 게이트로 반드시 충족해야 한다(MUST). 정상상태 지향치는 ≥ 92%다.
수용기준
- Given 28일 롤링 윈도, When Tracking Rate를 산출하면, Then 분모 expected는 활성 구간 길이를 ping cadence(FR-ACQ-GPS-001 30/60/180s)로 나눠 계산한다.
- Given Phase 1 MVP exit 평가, When 측정값이 ≥ 85%이면, Then 게이트 통과; 미만이면 차단(GATE-P1).
- Given 어떤 화물도 100% 커버리지에 도달하지 못함, When 사용자에게 노출하면, Then 100% 천장이 비현실임을 명시하고 staleness 분포를 동반한다.
요구. 시스템은 ETA 예측 정확도를 MAPE(배달 12h 전 예측 기준)로 측정하고, 룰 기반 단계에서 ≤ 25%를 권장 목표로, ML 전환 후 ≤ 15%를 지향치로 둔다(SHOULD). 룰 기반 MAPE는 하드 SLO가 아니다.
수용기준
- Given 완료 운행 집합, When MAPE를 레인 클래스별로 산출하면, Then
eta_is_estimate=1인 예측만 룰-MAPE에 포함된다. - Given 레인-클래스 누적 ≥ 3,000 완료 운행 AND 룰-MAPE > 20%, When 트리거 조건이 충족되면, Then ML 전환을 개시한다(FR-ENG-ETA-002).
요구. 시스템은 raw_code의 ≥ 99%를 canonical 이벤트로 해결해야 하며(MUST), 미매핑 비율은 < 1%/일을 유지해야 한다. 미매핑이 > 50/시간으로 급증하면 알람을 발생시킨다.
수용기준
- Given 일(日) 단위 raw 이벤트 집합, When 정규화하면, Then canonical 해결 비율 ≥ 99%이고 미매핑 < 1%/일이다.
- Given 정밀도 매트릭스(DM-EVT-PREC-001) 적용 후, When 동일 사건의 다중 소스가 충돌하면, Then 충돌 0(정밀도·received_at 규칙으로 결정).
- Given 미매핑 발생률, When > 50/시간을 초과하면, Then 운영 알람을 발생시킨다.
4. 단계별 목표치 — Phase 1 MVP exit floor vs 정상상태 지향치
진입 단계에는 운영 데이터가 없으므로, KPI를 둘로 나눠 관리한다. Phase 1 MVP exit floor는 단계 종료 게이트(하드 바닥선)이고, 정상상태 지향치는 운영 베이스라인으로 분기 조정하는 도전 목표다. 두 값 모두 초기 확정치(설계)이며, 명시적 개정 트리거를 둔다.
| KPI | Phase 1 MVP exit floor (게이트) | 정상상태 지향치 (도전) | 개정 트리거 |
|---|---|---|---|
| Tracking Rate (KPI-TRACK-001) | ≥ 85% | ≥ 92% | 2분기 연속 >92% 또는 <85% 시 재설정 |
| ETA MAPE (KPI-ETA-001) | 룰 기반 ≤ 25% | ML 후 ≤ 15% | 레인 누적 ≥3,000 & 룰-MAPE >20% → ML 전환 |
| 정규화 정확도 (KPI-NORM-001) | ≥ 99% (미매핑 <1%/일) | 정밀도 매트릭스 후 충돌 0 | 미매핑 >50/시간 알람 누적 시 |
| 荷待ち Dwell (KPI-DWELL-001) | 측정 가동(거점별 mean+p90) | 법정 2시간(120min) 초과 건 감소 | 물流効率化法 2026.4 목표 갱신 시 |
| OTD/OTP/예외율 | 베이스라인 측정 가동 | 분기별 목표 상향 | 베이스라인 확보 후 첫 분기 검토 |
구현 현실(as-built) 주의. 위 목표는 측정 인프라가 가동되어야 검증 가능하다. 현재 Analytics Engine METRICS.writeDataPoint가 TODO 상태라 SLI가 미측정이고(slo-catalog OBS-METRICS-001), handleEtaBatch는 ack-only stub이며 룰 ETA가 미구현이다. 따라서 ETA MAPE는 엔진 구현 후에야 베이스라인을 잡을 수 있다. Tracking Rate는 GET /v1/shipments/tracking 배치 라이브 스냅샷(console FleetMap 6s 폴링 의존)으로 라이브 위치 노출은 되나, 28일 롤링 커버리지 집계 SLI 방출은 미가동이다.
5. 측정 출처 — 데이터·SLO 연결과 정직성 원칙
각 KPI가 어느 데이터 소스(D1 / Analytics Engine)에서 산출되고 어느 SLO에 연결되는지 고정한다. 실시간 1건 조회는 D1, 28일/일 롤링 집계는 Analytics Engine·Cron 집계 경로다(delivery.md §분석).
| KPI | 데이터 소스 | 연결 SLO | 비고 |
|---|---|---|---|
| Tracking Rate | Analytics Engine(28일 롤링 커버리지) · 라이브 위치는 D1/DO | SLO-S4 | GET /v1/shipments/tracking 배치 스냅샷(as-built); 집계 SLI는 writeDataPoint TODO로 미측정 |
| ETA MAPE | D1 완료 운행 + Cron 재계산(*/5 * * * *) | SLO-S7 | handleEtaBatch 룰 구현 후 측정 STUB |
| 정규화 정확도 | D1 event(canonical) + 미매핑 카운터 | SLO-S8 | 미매핑 >50/시간 알람 |
| 荷待ち Dwell | D1 stop.dwell_minutes(지오펜스 자동 측정) | SLO-S2(지오펜스 lag) | 일/월 Cron 리포트(0 17 * * *=02:00 JST) |
| OTD / OTP / 예외율 | D1 집계(JST, 취소 제외) | 리포트 경로 NFR(nonfunctional) | 30일 롤링, 소수1 |
| CO₂ 추정 | D1 구간거리 × 차급 배출계수 | — | 화주 ESG 스코어카드 |
정직성 원칙 (Honesty by design). Tracking Rate와 staleness_seconds(마지막 핑 경과)를 제품 표면에 그대로 노출한다 — 스마트폰 GPS 한계를 숨기지 않는다(vision.md·delivery.md §개인정보 보호 설계, acquisition.md). 구체 규칙: console 플릿 폴링은 핀 >60s = stale 표시, >300s = drop(NFR-PERF-003b). 100% 커버리지는 비현실임을 명시하고, NSM에 거짓 천장을 두지 않는다. 추적 손실(FR-ENG-EXC-003, 마지막 유효 핑 후 45min)은 NSM 분모에 반영되어 지표를 낮춘다 — 누락을 은폐하지 않는다.
법무 확인 플래그(RR-LEGAL). 荷待ち 법정 2시간(120min) 목표와 規制 출력(実運送体制管理簿·荷待ち 기록)이 KPI에 미치는 정의는 物流効率化法·改正物流法의 공식 포맷·산정 규칙에 의존한다. 공식 포맷의 법무 서명 전까지는 추정으로 표기하며, 확정 절차는 RR-LEGAL-001을 따른다.
근거·상호참조
- 마스터 스펙:
trd/.build/master-spec.md§4.2(KPI 정규 수치) · §5(ID 레지스트리) · §7(as-built) - techspec: 00-overview/vision.md(가시성=핵심가치·페인 우선·부산물 수집) · 05-delivery-layer/delivery.md(분석 KPI·추적 커버리지·staleness 정직 노출·규제 출력) · 03-data-acquisition/acquisition.md(적응형 GPS·정직성)
- Research(근거): delivery-layer · implications-for-us · landscape-map · 가설 H3(cold-start·제휴=네트워크 해자) · H1(페인 우선 지불의사)
- 코드(as-built):
server/src/lib/reports.ts(집계 기반) ·GET /v1/shipments/tracking(배치 라이브 스냅샷, console FleetMap 6s 폴링 의존) ·handleEtaBatch(STUB) · Analytics Engineloginippon_metricswriteDataPoint(TODO → SLI 미측정) - 내부 상호참조: functional(FR-ENG-EXC-001..006 · FR-ENG-ETA-002 · FR-ACQ-GPS-001) · data-model(DM-EVT-PREC-001 · DM-EVT-ENUM-001) · nonfunctional(NFR-PERF-003b · NFR-SCALE-001) · slo-catalog(SLO-S2/S4/S7/S8) · regulatory(RR-LEGAL-001) · phase-gates-roadmap(GATE-P0/P1) · strategy-risk · monetization-gtm