KPI: डैशबोर्ड से पहले माप और निर्णय तय करें

संक्षेप में

KPI लक्ष्य की निगरानी के लिए चुना संकेतक है। संख्या कारण, कारोबारी मूल्य या सुरक्षा का प्रमाण नहीं है।

काल्पनिक खाली विश्लेषण कक्ष: खाली कार्ड वाली दो मेज़ें, पीतल के लैंप और बरगंडी फ़ोल्डर
इस लेख में

KPI लक्ष्य की निगरानी के लिए चुना संकेतक है। संख्या कारण, कारोबारी मूल्य या सुरक्षा का प्रमाण नहीं है।

मापन समझौता लिखें

लक्ष्य, सूत्र, इकाई, अंश, हर, आबादी और अवधि दर्ज करें। जिम्मेदार व्यक्ति और निर्णय बताएँ। प्रति लीड लागत प्रति नए ग्राहक की लागत नहीं है; खर्च का दायरा और परिणाम की परिभाषा स्पष्ट करें।

कार्रवाई से पहले बदलाव जाँचें

कवरेज, दोहराव, उपलब्धता में देरी और परिभाषा बदलाव देखें। दरों का औसत हमेशा कुल दर नहीं होता; संबंधित गिनतियाँ लें। सीमा जाँच शुरू करती है, अपने आप कारण नहीं बताती। उपकरण संग्रह की गुणवत्ता की गारंटी नहीं देता।

जाँच के बिंदु
बिंदुदर्ज की जाने वाली जाँच
परिभाषासूत्र, इकाई और दायरा लिखित
गुणवत्ताकवरेज, दोहराव और उपलब्धता जाँची
निर्णयजिम्मेदारी, कार्रवाई और सीमाएँ स्पष्ट

स्रोत और सत्यापन

हर KPI को एक कॉन्ट्रैक्ट और फैसले से कनेक्ट करें।

एक काम का मेट्रिक बताता है कि बदलाव किस एक्शन को सही ठहराएगा। टारगेट सेट करने से पहले, फ़ॉर्मूला, पॉपुलेशन, सोर्स और शर्तों को डॉक्यूमेंट करें, जिससे नंबर अधूरा रह जाए। एक डैशबोर्ड अपनी डेफ़िनिशन को सही ढंग से फ़ॉलो कर सकता है, फिर भी जब यूनिट या स्कोप अलग हो तो बिज़नेस सवाल में फ़ेल हो सकता है।

  • न्यूमरेटर, डिनॉमिनेटर और एक्सक्लूज़न लिखें।
  • इवेंट से चार्ट तक किसी जाने-पहचाने केस को चेक करें।
  • लेटेस्ट अपडेट और अभी भी अधूरे पीरियड दिखाएं।

प्राथमिक स्रोत: Google SRE — Data Processing Pipelines. संबंधित विधि: व्यावहारिक मार्गदर्शिका पढ़ें.

KPI को उसका कॉन्टेक्स्ट दें।

एक परसेंटेज KPI को यूनिट्स, काउंट्स और पीरियड की ज़रूरत होती है। एक जैसी वैल्यू बहुत अलग वॉल्यूम और अनिश्चितता दिखा सकती हैं।

  • रेट के साथ न्यूमरेटर और डिनॉमिनेटर पब्लिश करें।
  • इंटरप्रिटेशन से पहले पार्शियल कलेक्शन और एब्सेंट पॉपुलेशन को डॉक्यूमेंट करें।

प्राथमिक स्रोत: NIST/SEMATECH — Confidence intervals for proportions. संबंधित विधि: व्यावहारिक मार्गदर्शिका पढ़ें.

डेटा जॉइन की अखंडता

जॉइन पंक्तियाँ बढ़ाकर कुल राशि बिगाड़ सकता है।

  • आदेश तालिका की एक पंक्ति एक आदेश है; विवरण तालिका की एक पंक्ति उस आदेश का एक उत्पाद है। जोड़ने से पहले दोहराई गई और रिक्त कुंजियाँ जाँचें।
  • विवरणों को आदेश की कुंजी के अनुसार समूहित करें। इस परिणाम से जोड़ने पर हर उत्पाद के लिए आदेश की राशि नहीं दोहरती। मूल आदेश तालिका के कुल से मिलान करें।
  • LEFT JOIN बिना विवरण के आदेश रखता है, लेकिन दाईं तालिका का WHERE फ़िल्टर उन्हें हटा सकता है। मिलान न होना शून्य राशि नहीं है।

दोहराने योग्य स्वीकृति मामला

काल्पनिक उदाहरण: डेटा किसी ग्राहक या देखे गए परिणाम का नहीं है।

मामले के इनपुट देखें
{
    "orders": [
        {
            "id": 1,
            "total": 100
        },
        {
            "id": 2,
            "total": 200
        }
    ],
    "line_order_ids": [
        1,
        1,
        2
    ],
    "sum_before": 300,
    "sum_after_raw_join": 400
}

अपेक्षित निर्णय

400 एक आदेश को दो बार गिनता है। आदेश के अनुसार पंक्तियाँ जोड़कर कुल 300 पुनः प्राप्त करें। 100 के दो काल्पनिक आदेश भी जाँचें: कुल 200 है। SUM(DISTINCT total) से 100 मिलेगा और एक वैध मान हट जाएगा। राशियों के दोहराव हटाने के बजाय पहचानकर्ता और जॉइन की कार्डिनैलिटी जाँचें।

दोबारा चलाने योग्य SQL क्वेरी

काल्पनिक उदाहरण: 100 और 200 के दो आदेश तथा 1, 1 और 2 से जुड़े तीन विवरण। क्वेरी केवल VALUES का उपयोग करती हैं; परीक्षण वातावरण में चलाएँ।

WITH orders(id, total) AS (VALUES (1, 100), (2, 200)),
lines(order_id) AS (VALUES (1), (1), (2))
SELECT COUNT(*) AS rows, SUM(o.total) AS total
FROM orders o JOIN lines l ON l.order_id = o.id;
WITH orders(id, total) AS (VALUES (1, 100), (2, 200)),
lines(order_id) AS (VALUES (1), (1), (2)),
per_order AS (
  SELECT order_id, COUNT(*) AS line_count
  FROM lines GROUP BY order_id
)
SELECT COUNT(*) AS orders, SUM(o.total) AS total
FROM orders o LEFT JOIN per_order l ON l.order_id = o.id;

सीधा जोड़ तीन पंक्तियाँ और कुल 400 देता है। पहले समेकन करने पर दो आदेश और कुल 300 मिलता है।

WITH orders(id, total) AS (VALUES (1, 100), (2, 100))
SELECT SUM(total) AS correct_total,
       SUM(DISTINCT total) AS distinct_total
FROM orders;

100 और 100 की राशियों का सही कुल 200 है; SUM(DISTINCT total) 100 देता है।

सत्यापन प्रक्रिया

  1. आदेश और पंक्तियों का स्तर तय करें।
  2. दो पंक्तियों वाले आदेश को जोड़ें।
  3. कुंजियाँ, संख्या और मिलाए कुल रखें।

PostgreSQL — Table expressions and joins

क्या SUM(DISTINCT total) पर्याप्त है?

नहीं। 100 के दो आदेशों का कुल 200 है, लेकिन SUM(DISTINCT total) 100 देता है। राशियाँ हटाने के बजाय कुंजियों का संबंध ठीक करें।

प्राथमिक स्रोत: PostgreSQL — Table expressions and joins. संबंधित विधि: व्यावहारिक मार्गदर्शिका पढ़ें.