ElasticFlow
HubAll SkillsBy DepartmentBy RoleBy ToolBy MetricMCPsPublishers
메인 사이트로그인회원가입
ElasticFlow

AI 기반 워크플로 자동화로 비즈니스를 혁신하세요. 모든 엔터프라이즈 요구를 위한 통합 플랫폼.

팔로우

플랫폼

  • 기능
  • 장점
  • 사용 사례
  • 워크플로 라이브러리

사용 사례

  • 영업
  • 마케팅
  • 재무·법무
  • 인사

카탈로그

  • 부서
  • 역할
  • 도구
  • 메트릭
  • 플랫폼

성장

  • 추천 프로그램
  • 파트너

법무

  • 개인정보 처리방침
  • 서비스 약관
  • 쿠키 정책
  • 허용 사용
  • 보안
  • SLA

© 2026 ElasticFlow. 모든 권리 보유.

ElasticFlow
HubAll SkillsBy DepartmentBy RoleBy ToolBy MetricMCPsPublishers
메인 사이트로그인회원가입
ElasticFlow

AI 기반 워크플로 자동화로 비즈니스를 혁신하세요. 모든 엔터프라이즈 요구를 위한 통합 플랫폼.

팔로우

플랫폼

  • 기능
  • 장점
  • 사용 사례
  • 워크플로 라이브러리

사용 사례

  • 영업
  • 마케팅
  • 재무·법무
  • 인사

카탈로그

  • 부서
  • 역할
  • 도구
  • 메트릭
  • 플랫폼

성장

  • 추천 프로그램
  • 파트너

법무

  • 개인정보 처리방침
  • 서비스 약관
  • 쿠키 정책
  • 허용 사용
  • 보안
  • SLA

© 2026 ElasticFlow. 모든 권리 보유.

ElasticFlow
HubAll SkillsBy DepartmentBy RoleBy ToolBy MetricMCPsPublishers
메인 사이트로그인회원가입
  1. 홈
  2. 스킬
  3. Metric Reconciliation
AI 스킬Reconcile metrics운영

Explain why two reports show different numbers for the same metric. — Claude Skill

Claude Code용 Claude 스킬 · 제공: Nimrod Fisher · 실행: /metric-reconciliation (Claude 내)·업데이트: 2026년 6월 12일·vmain@8849884

호환Claude

Compares definitions, filters, time periods, source systems, and freshness so teams can choose the right number and fix the mismatch.

  • Compares the same metric across dashboards, SQL, Jira, PMO, spreadsheets, or finance reports.
  • Calculates the size of the difference and whether it is inside an agreed tolerance.
  • Checks common causes: definition drift, filters, joins, grain, timezone, null handling, and data freshness.
  • Produces a reconciliation report with root cause, source of truth, and required fix.
사용자오늘

Teams debate whose dashboard is right without comparing definitions, filters, grain, and freshness side by side.

/metric-reconciliation 사용 시

Run /metric-reconciliation to compute the gap, trace both paths, classify the divergence, and document the canonical answer.

1 Define metric2 Pull both values3 Compute gap4 Trace divergence5 Document fix

대상

Analytics Engineer

Resolve metric discrepancies across dashboards, SQL, Jira, PMO, and reporting sources.

이 역할의 스킬 보기
프로덕트 매니저

Turn Jira vs PMO or delivery metric gaps into a documented source-of-truth decision.

이 역할의 스킬 보기

기능

Jira vs PMO mismatch

Explain why delivery or progress numbers differ across status reports.

Dashboard vs warehouse mismatch

Find why a BI dashboard and SQL source disagree.

Source-of-truth decision

Pick the canonical definition and document the change needed.

작동 방식

1

Name the metric, source A, source B, time period, and expected tolerance.

2

Pull values, definitions, filters, and calculation steps from each source.

3

Calculate the gap and trace where the numbers diverge.

4

Document the root cause, canonical source, owner, and follow-up change.

입력 옵션

Metric and sources

Metric name, values from each source, links, exports, SQL, or report screenshots.

예시

What the user pastes
Metric: May completed delivery items
Source A: Jira dashboard shows 42 completed tickets
Source B: PMO report shows 37 completed deliverables
Deadline: exec status meeting tomorrow
Known differences:
- Jira includes subtasks
- PMO excludes reopened items
- PMO counts only accepted deliverables
Need: source of truth and wording for the status report
Useful result
Gap
Difference is 5 items: Jira 42 vs PMO 37.
Root cause
This is not a delivery drop. It is a definition mismatch: Jira counts completed tickets and subtasks; PMO counts accepted deliverables only.
Source of truth
Use PMO 37 for executive status. Use Jira 42 for engineering throughput after filtering out subtasks and reopened work.
Report wording
“37 accepted deliverables completed in May; engineering closed 42 Jira items including subtasks. Difference is due to reporting definition, not missing work.”

개선되는 지표

예측 정확도
+10-20%
운영
데이터 품질
+10-20%
운영
Metric Trust
+25-40%
운영

지원 도구

Google Sheets
수동

Compare spreadsheet exports and reconciliation workbooks against source systems.

Jira
수동

Compare delivery, issue status, and PMO progress metrics sourced from Jira.

SQL
수동

Trace query logic, joins, grain, filters, and time boundaries when metrics disagree.

Confluence
수동

Document reconciliation findings, canonical definitions, and stakeholder decisions.

유사 스킬

속성 중복에 따라 자동 추천됩니다. 나란히 비교하면 차이가 드러납니다.

전체 4개 비교 →

A/B 테스트 설계

제공: Corey Haines
↳text, file-uploadvstext, tool-access(제공해야 하는 것)·markdown, csvvsmarkdown(출력 형식)·review-requiredvsapproval-required(사람 검토)

캠페인 브리프 생성기

제공: Gooseworks
↳text, file-uploadvstext(제공해야 하는 것)·markdown, csvvsmarkdown(출력 형식)·confidentialvsinternal(데이터 민감도)

경쟁사 인텔리전스

제공: Gooseworks
↳text, file-uploadvstext, api-credentials(제공해야 하는 것)·markdown, csvvsmarkdown, email(출력 형식)·review-requiredvsnone(사람 검토)
속성 중복 × 차별화로 정렬. Metric Reconciliation은(는) 각 항목과 12개 이상의 속성을 공유합니다.

Metric Reconciliation을(를) 사용해 보시겠어요?

시작 방법을 선택하세요.

Claude Code에서 실행
무료. 오픈 소스.

이 스킬을 컴퓨터에 로컬로 설치하고 실행합니다.

1
Claude Code 설치

컴퓨터에서 터미널을 열고 이 명령을 붙여넣으세요:

2
스킬 설치

이 명령은 스킬과 모든 파일을 컴퓨터에 다운로드합니다:

모든 프로젝트에서 사용하려면 끝에 -g를 추가하세요.

3
실행하기

Claude Code를 시작한 다음 명령을 입력하세요:

그다음
GitHub에서 소스 보기
ElasticFlow에서 사용
팀 및 협업 기능

브라우저에서 스킬을 실행. 결과 공유, 액세스 관리, 팀과 협업. 터미널 불필요.

14일 무료 평가판. 언제든 취소 가능.

GitHub에서 보기

Metric Reconciliation

When to use

  • Two dashboards or reports show different values for the same KPI
  • A metric changed unexpectedly after a data pipeline update
  • Stakeholders question a number and need an authoritative explanation
  • Preparing to merge or deprecate a legacy reporting source
  • Onboarding analysts to a new data model and validating it against the old one

Process

  1. Define the metric and scope — confirm the exact definition (numerator, denominator, filters, time zone) and the period under investigation. Mismatched definitions are the most common cause of discrepancy.
  2. Pull values from both sources — extract the metric values for the same period from each source. Record absolute values, row counts, and the query or calculation path used.
  3. Compute the gap — calculate the absolute difference and percentage gap. If the gap is within an agreed tolerance (e.g., ±0.1%), document it as accepted and close. See references/reconciliation_patterns.md for tolerance guidelines.
  4. Trace the computation path — walk each source's query or pipeline step by step. Common divergence points: different join types, filter order, null handling, date truncation, or deduplication logic.
  5. Identify the root cause — classify the cause using references/metric_discrepancy_guide.md (definition mismatch, data freshness, aggregation grain, calculation bug). Document the divergence point with a code snippet or query excerpt.
  6. Resolve and document — fix the calculation or accept a canonical source, then complete assets/reconciliation_report_template.md and share with stakeholders.

Inputs the skill needs

  • The metric name and business definition (numerator, denominator, any known variants)
  • Access to both sources (queries, dashboard SQL, or raw data)
  • The time period showing the discrepancy
  • Row counts or record-level data to enable line-by-line comparison if needed
  • Any known recent changes to pipelines, schema, or business rules

Output

  • assets/reconciliation_report_template.md — completed report showing source A vs. source B, the gap, root cause, and resolution status
  • A corrected query or pipeline change (if a bug was found)
  • A documented tolerance agreement (if the gap is acceptable)

참조 문서


name: metric-reconciliation description: Trace and resolve discrepancies when the same metric shows different values in two or more sources. Use before reporting, after pipeline changes, or when stakeholders question a number.

Metric Reconciliation

When to use

  • Two dashboards or reports show different values for the same KPI
  • A metric changed unexpectedly after a data pipeline update
  • Stakeholders question a number and need an authoritative explanation
  • Preparing to merge or deprecate a legacy reporting source
  • Onboarding analysts to a new data model and validating it against the old one

Process

  1. Define the metric and scope — confirm the exact definition (numerator, denominator, filters, time zone) and the period under investigation. Mismatched definitions are the most common cause of discrepancy.
  2. Pull values from both sources — extract the metric values for the same period from each source. Record absolute values, row counts, and the query or calculation path used.
  3. Compute the gap — calculate the absolute difference and percentage gap. If the gap is within an agreed tolerance (e.g., ±0.1%), document it as accepted and close. See references/reconciliation_patterns.md for tolerance guidelines.
  4. Trace the computation path — walk each source's query or pipeline step by step. Common divergence points: different join types, filter order, null handling, date truncation, or deduplication logic.
  5. Identify the root cause — classify the cause using references/metric_discrepancy_guide.md (definition mismatch, data freshness, aggregation grain, calculation bug). Document the divergence point with a code snippet or query excerpt.
  6. Resolve and document — fix the calculation or accept a canonical source, then complete assets/reconciliation_report_template.md and share with stakeholders.

Inputs the skill needs

  • The metric name and business definition (numerator, denominator, any known variants)
  • Access to both sources (queries, dashboard SQL, or raw data)
  • The time period showing the discrepancy
  • Row counts or record-level data to enable line-by-line comparison if needed
  • Any known recent changes to pipelines, schema, or business rules

Output

  • assets/reconciliation_report_template.md — completed report showing source A vs. source B, the gap, root cause, and resolution status
  • A corrected query or pipeline change (if a bug was found)
  • A documented tolerance agreement (if the gap is acceptable)

Metric Reconciliation Patterns

Why metrics diverge

1. Filter differences

The most common cause. Two queries pulling from the same table but with different WHERE clauses produce different numbers. Check: status filters, date truncation (>= vs BETWEEN), NULL handling, deleted record exclusion.

2. Join type mismatches

LEFT JOIN vs INNER JOIN silently adds or drops rows. A revenue figure joined LEFT to a customer table will count orders with no matching customer; INNER will drop them.

3. Grain mismatch

One query aggregates at order level; another at order-line level. Duplicate rows in one source inflates the total.

4. Time zone handling

UTC vs local time causes rows to land in different periods depending on the system. Common in global dashboards.

5. Definition drift

The business definition changed (e.g., "active user" now requires two sessions, not one) but not all pipelines were updated simultaneously.

6. Refresh lag

One source reflects yesterday's snapshot; another is near-real-time. Comparing them during an intra-day reconciliation produces a spurious gap.


Reconciliation investigation sequence

  1. Confirm the numbers — pull both values from authoritative sources, not cached dashboards.
  2. Check the grain — what does one row represent in each source?
  3. Align the period — are both using the same start/end boundary and time zone?
  4. Compare filters — list all WHERE conditions side by side.
  5. Compare joins — trace every JOIN and its type.
  6. Sample-level check — pull 20 rows present in A but not B, and vice versa.
  7. Document the root cause — record in assets/reconciliation_report_template.md.

Tolerance thresholds by metric type

Metric typeAcceptable gapNotes
Financial totals (reported)0%Must match exactly for audit
Financial totals (operational)< 0.1%Rounding from currency conversion
Marketing metrics< 1%Attribution window differences
Product engagement< 2%Session vs event counting differences
ML training labels< 0.5%Label leakage risk if higher

Documentation checklist after resolution

  • Root cause identified (one sentence)
  • Which source is designated as the single source of truth
  • Whether a pipeline fix is needed, or a definition clarification
  • Date the discrepancy was observed and resolved
  • Whether downstream consumers need recalculation

Metric Reconciliation Report

Metric: [metric name] Period: [date or date range] Analyst: [name] Date: [YYYY-MM-DD]


Values compared

SourceValueQuery / Pipeline
Source A[value][link or description]
Source B[value][link or description]

Absolute difference: [Source A − Source B] Percentage difference: [(A − B) / A × 100]% Within tolerance: Yes / No (tolerance: [threshold])


Root cause

Status: Confirmed / Under investigation / No issue

Cause category: Filter difference / Join type / Grain mismatch / Definition drift / Refresh lag / Other

Description: [One paragraph: what specific difference in the queries or pipelines explains the gap]


Evidence

Steps taken to identify the cause:

  1. [Step 1 — e.g., compared WHERE clauses]
  2. [Step 2 — e.g., checked JOIN types]
  3. [Step 3 — e.g., pulled row-level sample]

Key finding: [The specific line of query or pipeline behaviour that explains the discrepancy]


Resolution

Designated source of truth: [Source A / Source B / Neither — needs alignment]

Action required:

  • Pipeline fix needed (owner: [name], by: [date])
  • Query correction needed (owner: [name], by: [date])
  • Definition clarification needed (owner: [name], by: [date])
  • Downstream consumers need recalculation (list: [])
  • No action — gap is within tolerance

Preventive measure

[How will we catch this earlier in future? e.g., automated reconciliation check, CI test, data quality alert]


Template: reconciliation_report_template.md

""" Metric Reconciliation Helper

Compare a metric value from two sources for the same period and identify where the computation paths diverge.

Usage: python reconcile_metrics.py --source-a source_a.csv --source-b source_b.csv
--metric revenue --date 2025-01-01 python reconcile_metrics.py --values 125000 118500 --metric revenue --tolerance 0.02 """

import argparse import csv import io import sys

def compare_values(value_a: float, value_b: float, tolerance: float = 0.001) -> dict: """ Compare two metric values and return reconciliation stats.

Args:
    value_a: Value from source A
    value_b: Value from source B
    tolerance: Fractional tolerance below which gap is accepted (default 0.1%)

Returns:
    dict with absolute_diff, pct_diff, within_tolerance, status
"""
absolute_diff = value_a - value_b
pct_diff = absolute_diff / value_a if value_a != 0 else float("inf")
within_tolerance = abs(pct_diff) <= tolerance

return {
    "value_a": value_a,
    "value_b": value_b,
    "absolute_diff": absolute_diff,
    "pct_diff": pct_diff,
    "within_tolerance": within_tolerance,
    "status": "ACCEPTED" if within_tolerance else "INVESTIGATE",
}

def load_metric_from_csv(filepath: str, metric_col: str, date_col: str = None, date: str = None) -> float: """ Load a single metric value from a CSV file.

Sums metric_col for all rows matching date (if provided).
"""
total = 0.0
matched = 0

with open(filepath, newline="", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        if date_col and date and row.get(date_col) != date:
            continue
        total += float(row[metric_col])
        matched += 1

if matched == 0:
    raise ValueError(f"No rows found in {filepath}" + (f" for date {date}" if date else ""))

return total

def reconciliation_report(result: dict, source_a_label: str, source_b_label: str) -> str: """Produce a human-readable reconciliation summary.""" lines = [ "=" * 60, "METRIC RECONCILIATION REPORT", "=" * 60, f" {source_a_label}: {result['value_a']:,.2f}", f" {source_b_label}: {result['value_b']:,.2f}", f" Absolute difference: {result['absolute_diff']:+,.2f}", f" Percentage difference: {result['pct_diff']:+.4%}", "", f" STATUS: {result['status']}", ]

if result["within_tolerance"]:
    lines.append("  Gap is within tolerance — no further action required.")
else:
    lines += [
        "",
        "  NEXT STEPS:",
        "  1. Compare query/pipeline definition for each source side-by-side.",
        "  2. Check: filter conditions, join types, null handling, date truncation.",
        "  3. Pull row-level data to find the first divergence point.",
        "  4. Document the root cause in assets/reconciliation_report_template.md.",
    ]

lines.append("=" * 60)
return "\n".join(lines)

def main(): parser = argparse.ArgumentParser(description="Reconcile a metric between two sources.") parser.add_argument("--source-a", help="Path to CSV for source A") parser.add_argument("--source-b", help="Path to CSV for source B") parser.add_argument("--values", nargs=2, type=float, metavar=("A", "B"), help="Direct values: --values 125000 118500") parser.add_argument("--metric", required=False, default="value", help="Column name for the metric") parser.add_argument("--date-col", default=None, help="Date column name for filtering") parser.add_argument("--date", default=None, help="Date to filter on (e.g. 2025-01-01)") parser.add_argument("--tolerance", type=float, default=0.001, help="Accepted gap fraction (default 0.001 = 0.1%%)") parser.add_argument("--label-a", default="Source A") parser.add_argument("--label-b", default="Source B") args = parser.parse_args()

if args.values:
    value_a, value_b = args.values
elif args.source_a and args.source_b:
    value_a = load_metric_from_csv(args.source_a, args.metric, args.date_col, args.date)
    value_b = load_metric_from_csv(args.source_b, args.metric, args.date_col, args.date)
else:
    parser.error("Provide --values or both --source-a and --source-b")

result = compare_values(value_a, value_b, args.tolerance)
print(reconciliation_report(result, args.label_a, args.label_b))

sys.exit(0 if result["within_tolerance"] else 1)

if name == "main": # Demo: two values with a 5.5% gap — should trigger INVESTIGATE demo_a = 125_000.0 demo_b = 118_120.0 result = compare_values(demo_a, demo_b, tolerance=0.001) print(reconciliation_report(result, "Dashboard (Source A)", "Finance Report (Source B)")) print() print("Demo exited with status:", "ACCEPTED" if result["within_tolerance"] else "INVESTIGATE")

ElasticFlow

AI 기반 워크플로 자동화로 비즈니스를 혁신하세요. 모든 엔터프라이즈 요구를 위한 통합 플랫폼.

팔로우

플랫폼

  • 기능
  • 장점
  • 사용 사례
  • 워크플로 라이브러리

사용 사례

  • 영업
  • 마케팅
  • 재무·법무
  • 인사

카탈로그

  • 부서
  • 역할
  • 도구
  • 메트릭
  • 플랫폼

성장

  • 추천 프로그램
  • 파트너

법무

  • 개인정보 처리방침
  • 서비스 약관
  • 쿠키 정책
  • 허용 사용
  • 보안
  • SLA

© 2026 ElasticFlow. 모든 권리 보유.