# Flower Metric Crosscheck

> Cross-checks Flower analytics metrics across Overview UI, sibling tabs, Export/CSV, and qa-api responses (formulas, totals, compare badges). Use when the user says 지표 검증, 수치 교차, 공식 확인, Fill/Show/Match, Inventory utilization, or asks to verify Ad requests / Inventory numbers.

- Skill: `yol-mu/flower-metric-crosscheck` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yol-mu/flower-metric-crosscheck`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yol-mu/flower-metric-crosscheck/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: yol-mu (https://skillmd.com/u/yol-mu)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/yol-mu/flower-metric-crosscheck

---


# Flower Metric Cross-check

Flower **지표가 있는 모든 화면**(Analytics만이 아님)에서
같은 기간·같은 필터로 UI ↔ 탭/테이블 ↔ API(↔ CSV) 수치가 일치하는지 검증한다.
기대 공식은 기획/test-plan 정본만 사용한다. 추측 금지.

전체 메뉴 목록: [flower-menu-smoke/references/menu-map.md](../flower-menu-smoke/references/menu-map.md)  
관련: [breakdown-test](../breakdown-test/SKILL.md) · [qa-tc-writer](../qa-tc-writer/SKILL.md)

## 적용 화면 (메뉴 전수 기준)

| 영역 | 화면 | Path |
|------|------|------|
| Analytics | Inventory | `/analytics/inventory` |
| Analytics | Performance Reports | `/analytics/performance-reports` |
| Analytics | Custom Report | `/analytics/custom-report` |
| Analytics | Ad Request | `/ad-requests` |
| Analytics | Cue History | `/analytics/cue` |
| Analytics | Monetization | `/analytics/monetization` |
| Analytics | Revenue | `/analytics/revenue` |
| Programmatic | Demand performance | `/programmatic/demand-performance` |
| Root | Dashboard | `/dashboard` (카드 수치 스팟) |
| Direct/Prog | Monitoring | `/direct/monitoring`, `/programmatic/monitoring` (forecast — 에러 시 Fail/Blocked) |

티켓이 Ad requests만이어도, 회귀 시 위 표에서 **인접 지표 화면 1개 이상** 스팟을 권장.

## 입력 패턴

```
지표 검증 / 수치 교차
화면: Ad requests (또는 Inventory …)
플랫폼 / 기간 / 필터 (없으면 아래 QA 시드 사용)
공식 정본: test-plan 또는 ClickUp (없으면 확인 필요로 남김)
```

## QA 시드 (Ad requests — 2026-07 탐색 기준)

| 항목 | 값 |
|------|-----|
| URL | `https://flower-qa-campaign-web.anypoint.tv/ad-requests` |
| Platform | **1QA_Platform** (`platformId=11141`) |
| Date range | **2026-07-01 ~ 2026-07-21** |
| 비고 | 이 플랫폼·기간 외에는 Ad Request 데이터가 없을 수 있음. 다른 플랫폼(SKB, QA 등) empty/placement 없음은 데이터 부재로 구분 |

계정·비밀번호는 스킬에 넣지 않는다. 사용자/티켓 환경정보에서 받는다.

## Workflow

1. **정본 확보**  
   - Fill / Show / Match / Response / Utilization 공식을 test-plan·설계에서 확인  
   - Overview vs Time series 문서가 충돌하면 **확인 필요**로 표시하고 Overview(또는 부모가 명시한 정본)만 임시 사용  
   - 공식이 없으면 교차는 **동일성(UI↔API↔탭)** 만 하고 Pass/Fail 단정 금지

2. **필터 고정**  
   - Platform / Content Provider / Ad Placement / Date Range / Timezone을 한 세트로 고정  
   - URL 쿼리(`platformId`, `tab`, `startDate`, `endDate`, …)를 기록  
   - View 클릭 후 로드 완료 대기 (empty / timeout Alert면 그 상태로 기록하고 중단 여부 판단)

3. **Overview 캡처**  
   - Summary 카드: Requests, Response rate, Match rate, Impressions, Fill rate, Show rate + 증감 뱃지·비교기간  
   - Response analysis: Successful / Fatigue / No ads / Errors (% + count)  
   - Inventory: Generated / Occupied / Avails / Utilization (+ What-if 적용 시 가정값만 변하는지)

4. **형제 탭 Total 교차** (같은 필터)  
   - Time series → Data table **Total** 행 vs Overview  
   - Placement / Geography / Custom: 동일 지표가 있으면 Total·합계 교차  
   - 불일치 시 탭명·지표명·양쪽 값을 표로 남김

5. **API 교차** (Playwright network)  
   - 대표 엔드포인트 (QA):  
     - `GET /qa-api/v1/analytics/ad-requests/overview/summary?...`  
     - `GET /qa-api/v1/analytics/ad-requests/time-series/{DAILY|WEEKLY|...}?...`  
   - 응답 필드와 UI 표시값 비교 (약식 K/M/B·소수점 자리·`%` 표기 허용 오차는 설계 기준, 없으면 표시 문자열 기준)  
   - 동일 요청 중복 호출·4xx/5xx도 기록

6. **Export 스팟** (선택)  
   - Time series / Placement Export CSV의 Total·기간 합이 Overview와 맞는지 샘플 확인

7. **결과 판정**

| 판정 | 조건 |
|------|------|
| Pass | 정본 공식 만족 + Overview↔탭 Total↔API 일치 |
| Fail | 동일 필터에서 불일치, 또는 명백한 공식 위배 |
| Blocked | 데이터 없음 / 공식 미확정 / 배포 미반영 |

8. 채팅에 **필터 세트 + 교차표 + 스크린샷** 요약. 버그면 [bug-report](../bug-report/SKILL.md)로 이관.

## 교차표 템플릿

```markdown
| 지표 | Overview UI | Time series Total | API | 기대(공식) | 결과 |
|------|-------------|-------------------|-----|------------|------|
| Requests | | | | | |
| Response rate | | | | | |
| Fill rate | | | | | |
| Show rate | | | | | |
| Utilization | | | | | |
```

## 탐색에서 본 함정

- Match / Fill / Show rate가 100%를 크게 넘는 값이 나올 수 있음 → **버그 후보**. 공식·원천 대조 전 “정상” 단정 금지  
- Overview `9.6K` vs 테이블 `9,579`처럼 약식 표기와 정수는 **반올림 규칙**을 문서에서 확인  
- Custom 탭이 Custom2/Custom3·임의 라벨로 늘어날 수 있음 → root key별 null metric 제외 규칙은 설계 따름  
- Device 탭은 HOLD면 **미노출**이 정상

## 하지 말 것

- 시드 기간 밖에서 empty를 Fail로 처리  
- 기획에 없는 공식을 임의로 만들어 Pass 처리  
- 비밀번호·토큰을 스킬/코멘트/레포에 저장

