KPI on tavoitteen seurantaan valittu mittari. Luku ei osoita syytä, liiketoiminta-arvoa tai turvallisuutta.
Kirjoita mittaussopimus
Dokumentoi tavoite, kaava, yksikkö, osoittaja, nimittäjä, kohdejoukko ja ajanjakso. Nimeä vastuuhenkilö ja suunniteltu päätös. Hinta liidiä kohti ei ole hinta uutta asiakasta kohti: erittele kulut ja tuloksen määritelmä.
Tutki muutos ennen toimintaa
Tarkista kattavuus, kaksoiskappaleet, saatavuusviive ja määritelmämuutokset. Prosenttien keskiarvo ei välttämättä ole kokonaisprosentti: käytä vastaavia lukumääriä. Raja-arvo käynnistää tutkinnan, ei automaattista selitystä. Työkalu ei takaa keruun laatua.
| Kohta | Dokumentoitava tarkistus |
|---|---|
| Määritelmä | Kaava, yksikkö ja rajaus kirjattu |
| Laatu | Kattavuus, kaksoiskappaleet ja saatavuus tarkistettu |
| Päätös | Vastuu, toiminta ja rajat selviä |
Lähteet ja tarkistus
Yhdistä jokainen KPI sopimukseen ja päätökseen.
Hyödyllinen mittari määrittää toimenpiteen, jonka muutoksen tulisi oikeuttaa. Ennen tavoitteen asettamista dokumentoi kaava, populaatio, lähde ja ehdot, jotka tekevät luvusta epätäydellisen. Kojelauta voi noudattaa määritelmäänsä oikein, mutta epäonnistua liiketoimintakysymyksessä, jos yksikkö tai laajuus eroaa.
- Kirjoita osoittaja, nimittäjä ja poissulkemiset.
- Tarkista tunnettu tapaus tapahtumasta kaavioon.
- Näytä viimeisin päivitys ja vielä epätäydelliset jaksot.
Ensisijainen lähde: Google SRE — Data Processing Pipelines. Aiheeseen liittyvä menetelmä: lue käytännön opas.
Anna KPI:lle sen konteksti.
Prosenttiosuuksinen KPI tarvitsee yksiköitä, lukumääriä ja jaksoa. Identtiset arvot voivat muuten edustaa hyvin erilaisia määriä ja epävarmuustekijöitä.
- Julkaise osoittaja ja nimittäjä nopeuden rinnalla.
- Dokumentoi osittainen keräys ja puuttuvat populaatiot ennen tulkintaa.
Ensisijainen lähde: NIST/SEMATECH — Confidence intervals for proportions. Aiheeseen liittyvä menetelmä: lue käytännön opas.
Tietoliitosten eheys
Liitos voi monistaa rivejä ja vääristää summia.
- Tilaustaulun rivi tarkoittaa tilausta ja tuoterivi kyseisen tilauksen tuotetta. Tarkista toistuvat ja puuttuvat avaimet ennen yhdistämistä.
- Ryhmittele tuoterivit tilausavaimen mukaan. Liitos tähän tulokseen estää tilauksen summan toistumisen jokaisella tuoterivillä. Vertaa summaa alkuperäiseen tilaustauluun.
- LEFT JOIN säilyttää tilaukset ilman tuoterivejä, mutta oikean taulun WHERE-suodatin voi poistaa ne. Puuttuva vastine ei ole nolla-arvo.
Toistettava hyväksyntätapaus
Kuvitteellinen esimerkki: tiedot eivät kuvaa asiakasta tai havaittua tulosta.
Näytä tapauksen tiedot
{
"orders": [
{
"id": 1,
"total": 100
},
{
"id": 2,
"total": 200
}
],
"line_order_ids": [
1,
1,
2
],
"sum_before": 300,
"sum_after_raw_join": 400
}Odotettu päätös
400 laskee yhden tilauksen kahdesti. Yhdistä rivit tilauksittain saadaksesi summan 300. Testaa lisäksi kaksi kuvitteellista 100:n tilausta: yhteensä 200. SUM(DISTINCT total) palauttaisi 100 ja poistaisi kelvollisen arvon. Tarkista tunnisteet ja liitoksen kardinaliteetti rahamäärien deduplikoinnin sijasta.
Toistettavat SQL-kyselyt
Kuvitteellinen esimerkki: kaksi tilausta, summat 100 ja 200, sekä tuoterivit tilauksille 1, 1 ja 2. Kyselyt käyttävät vain VALUES-rivejä; suorita testiympäristössä.
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;Suora liitos tuottaa kolme riviä ja 400. Koostaminen ennen liitosta palauttaa kaksi tilausta ja 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;Summilla 100 ja 100 oikea tulos on 200; SUM(DISTINCT total) antaa 100.
Tarkistusmenettely
- Määritä tilausten ja rivien tarkkuustaso.
- Yhdistä tilaus, jolla on kaksi riviä.
- Säilytä avaimet, määrät ja täsmäytetyt summat.
Riittääkö SUM(DISTINCT total)?
Ei. Kaksi 100:n tilausta tuottaa 200, mutta SUM(DISTINCT total) antaa 100. Korjaa avainten suhde, älä poista samansuuruisia summia.
Ensisijainen lähde: PostgreSQL — Table expressions and joins. Aiheeseen liittyvä menetelmä: lue käytännön opas.
