Kirjoittaja: Vectura Solutions Oy · Data-analytiikan ja raportoinnin toteutuksia vuodesta 2018.
Oppaan ydinkohdat
- Kirjatkaa jokaiselle keskeiselle mittarille laskentasääntö, rajaukset, lähde ja vastuuhenkilö.
- Toteuttakaa yhteiset määritelmät hallittuun datamalliin tai raportointikerrokseen ja testatkaa ne esimerkkiaineistolla.
- Sopikaa, miten määritelmän muutos vaikuttaa historiatietoihin ja vertailukelpoisuuteen.
Sama luku, kaksi arvoa
Kuvitellaan tilanne, jossa myynnin kuukausiraportissa on 412 000 euroa ja talousraportissa 388 000 euroa samalla otsikolla. Ero voi johtua virheestä, mutta myös siitä, että raporteissa lasketaan eri asioita.
Myynnin luku voi sisältää voitetut tilaukset ennen laskutusta. Talouden liikevaihto perustuu kirjattuihin tuottoihin ja niiden jaksotuksiin. Tilauskanta, laskutus ja liikevaihto ovat eri mittareita; niiden ero ei yksin tarkoita laskentavirhettä.
Määritelmien, lähteiden ja laskentasääntöjen näkyvyys auttaa ratkaisemaan eron. Raportointityökalun vaihto ei yksin päätä, mitä luku tarkoittaa: määritelmä hyväksytään liiketoiminnan ja toteutuksesta vastaavien yhteistyönä.
Mittarin määritelmä on yhteinen laskentasopimus
Mittarin määritelmä kuvaa, miten raportilla esitettävä luku muodostetaan ja mihin sitä käytetään. Yhteinen määritelmä helpottaa saman asian vertailua tiimien, yhtiöiden ja ajanjaksojen välillä.
Kirjatkaa laskentasääntö riittävän tarkasti ja sopikaa, kuka hyväksyy muutokset. Tekninen toteuttaja tuo esiin lähdedatan mahdollisuudet ja rajoitukset, ja liiketoiminnan vastuuhenkilöt ratkaisevat käyttötarkoituksen sekä olennaiset rajaukset.
Mitä määritelmään kuuluu
Toimiva määritelmä on lyhyt mutta täsmällinen. Alla oleva runko kattaa ne kohdat, joissa tulkinta käytännössä eroaa. Se mahtuu yhdelle ruudulle, mikä on tarkoituskin: määritelmä jota kukaan ei jaksa lukea ei ohjaa mitään.
Aikaleima ja rajaukset ansaitsevat erityistä huomiota. Tapahtuma-, kirjaus- ja maksupäivä kohdistavat saman aineiston eri kausille. Kirjatkaa myös, mitä laskentaan ei sisällytetä, jotta toteuttajan ei tarvitse päätellä rajauksia itse.
nimi: Ulkoisen myyntilaskutuksen veroton summa
kysymys: Paljonko ulkoista myyntiä kirjattiin laskuille kaudella?
paatos: Kuukausiraportti, budjettiseuranta, myynnin ohjaus
laskenta: >
Myyntilaskujen veroton summa kaudella. Hyvityslaskut
vähennetään samalta kaudelta jolle ne on kirjattu.
tarkkuustaso: kuukausi x kustannuspaikka
aikaleima: laskun kirjauspäivä (ei laskutus- eikä maksupäivä)
valuutta: EUR, muut kurssilla kirjauspäivän mukaan
ei_lasketa_mukaan:
- arvonlisävero
- konsernin sisäinen laskutus
- käyttöomaisuuden myyntivoitot
lahde: analytics.fct_myyntilaskut
omistaja: talousjohtaja # päättää määritelmän
toteuttaja: data-tiimi # vastaa laskennasta
voimassa_alkaen: 2026-01-01
# Tämä kenttä säästää enemmän aikaa kuin mikään muu:
# kerro etukäteen mihin lukuun tämä EI täsmää ja miksi.
ei_tasmaa:
- kirjanpidon liikevaihto: sisältää myös jaksotukset ja muut tuottokirjaukset
- CRM:n myynti: sisältää voitetut tilaukset ennen laskutusta
- verkkokaupan raportti: sisältää ALV:n ja toimituskulutDokumentoikaa odotetut erot muihin raportteihin. Esimerkiksi myyntilaskutuksen ja kirjatun liikevaihdon erot voidaan selittää valmiiksi, jolloin jokainen lukija ei joudu selvittämään niitä uudelleen.
Neljä kysymystä, jotka paljastavat keskeneräisen määritelmän
Testatkaa määritelmää tunnetulla aineistolla ja riippumattomalla tarkistuslaskennalla. Jos tulokset eroavat, selvittäkää, johtuuko ero määritelmästä, käytetystä aineistosta vai toteutuksesta.
Seuraavat kysymykset auttavat tunnistamaan tavallisia epäselvyyksiä:
- Millä päivällä rivi lasketaan? Tapahtumapäivä, kirjauspäivä, maksupäivä ja toimituspäivä ovat neljä eri lukua. Valitse yksi ja kirjoita se näkyviin.
- Miten peruutukset, palautukset ja korjaukset käsitellään? Kirjatkaa niiden kohdistus ja soveltuva laskentaperiaate mittarin käyttötarkoituksen mukaan.
- Mitä ei lasketa mukaan? Tämä on se kohta, joka jää kirjaamatta, koska rajaukset tuntuvat itsestäänselviltä sille joka ne tietää.
- Millä tarkkuustasolla luku lasketaan, ja summautuuko se ylöspäin oikein? Prosenttiluvut ja keskiarvot eivät summaudu. Jos mittari on osuus, kokonaisuuden luku on laskettava kokonaisuudesta, ei osien keskiarvona.
Esimerkiksi yhtiön katemarginaali lasketaan yhteenlasketusta katteesta ja liikevaihdosta. Kustannuspaikkojen prosenttien tavallinen keskiarvo painottaisi eri kokoisia vastuualueita samalla tavalla.
Nimi on osa määritelmää
Täsmällinen nimi auttaa lukijaa tunnistamaan, mitä luku sisältää. Sama yleisnimi eri laskentatavoille voi synnyttää ristiriidan, vaikka molemmat laskennat olisi toteutettu oikein.
Ensimmäinen: sama nimi ei saa tarkoittaa kahta eri laskentaa. Tämä on se vakavampi tapaus, koska se johtaa harhaan aktiivisesti. Toinen: sama laskenta ei saisi kulkea kahdella nimellä. Se on vähemmän vaarallinen mutta tuottaa jatkuvaa epävarmuutta siitä, ovatko luvut sama asia.
Kun samasta ilmiöstä tarvitaan aidosti kaksi lukua eri lähteistä, ratkaisu ei ole valita niistä toinen vaan nimetä molemmat lähteen mukaan. Konversiot GA4:stä ja konversiot Google Adsista ovat eri lukuja eri syistä, ja molempia tarvitaan. Ne eivät kuitenkaan saa kilpailla samasta nimestä, koska silloin kysymys "montako konversiota meillä oli" on vastaamaton.
- Käytä liiketoiminnan sanoja, ei tietokannan sarakenimiä. Raportin lukija ei tiedä mikä on net_rev_excl_vat.
- Erottele lähde nimessä silloin kun samasta asiasta on useampi virallinen luku.
- Vältä nimeä, joka lupaa enemmän kuin laskenta kertoo. Esimerkiksi yksittäisen palautekysymyksen arvosana ei yksin kuvaa kaikkea asiakastyytyväisyyttä.
- Kun merkitys muuttuu olennaisesti, nimeä uusi mittari tai versio selvästi ja selitä vertailukelpoisuuden muutos.
Mittaristo ei ole luettelo mittareita
Määritelmä tukee luvun oikeellisuutta. Mittariston rakenne puolestaan auttaa valitsemaan ne luvut, joita päätöksenteko tarvitsee.
Jäsentäkää mittarit tavoitteisiin, niitä selittäviin tekijöihin ja tarkempiin analyysinäkymiin. Suuressa organisaatiossa eri toiminnoilla voi olla omat mittaristonsa, kun niiden yhteiset käsitteet ja riippuvuudet tunnetaan.
Kysykää jokaisesta päämittarista, mitä päätöstä tai tilannekuvaa se tukee. Myös ulkoisia olosuhteita kuvaava mittari voi olla hyödyllinen, vaikka organisaatio ei voisi suoraan vaikuttaa siihen.
- Erottakaa toteutuneita tuloksia ja tulevaa kehitystä ennakoivat mittarit.
- Lisätkää soveltuva tavoite, vertailukausi tai muu tulkinnan tausta.
- Sopikaa, kuka seuraa poikkeamia ja miten niihin reagoidaan.
- Arvioikaa mittarien tarpeellisuutta säännöllisesti; poistakaa tai siirtäkää sivuun tarpeettomat näkymät.
Kuka omistaa määritelmän
Mittarille nimetään vastuutaho, joka hyväksyy määritelmän ja ratkaisee tulkintakysymykset sovitussa päätösmallissa. Esimerkiksi talouden tunnusluvuissa hyväksyntä kuuluu taloushallinnolle, ja liidien vaiheissa tarvitaan myynnin sekä markkinoinnin yhteinen näkemys.
Teknisen toteutuksen vastuut sovitaan erikseen. Jos päätösvalta jakautuu usealle osapuolelle, dokumentoikaa hyväksymistapa ja se, kuka koordinoi muutoksen. Näin jaettu vastuu ei jää epäselväksi.
- Kirjatkaa määritelmän omistaja tai vastuurooli sekä muut hyväksyntään osallistuvat tahot.
- Sopikaa rajatapausten käsittelystä ja muutosten hyväksynnästä.
- Käykää määritelmä läpi vastuun siirtyessä.
- Säilyttäkää päätösloki: mitä muuttui, milloin, miksi ja kenen hyväksynnällä.
Toteuttakaa määritelmä yhteiseen laskentakerrokseen
Hyväksytyn määritelmän ja käytännön laskennan on vastattava toisiaan. Jos sama sääntö toteutetaan erikseen useisiin raportteihin, muutosten yhtenäinen läpivienti vaatii erityistä huomiota.
Yhteinen toteutus voi olla SQL-näkymä, dbt-malli tai BI-työkalun hallittu tietomalli ja mittari. Valitkaa paikka, jossa laskenta voidaan jakaa, dokumentoida, testata ja muuttaa hallitusti.
Seuraava SQL-esimerkki keskittää sovitut rajaukset yhteen näkymään. Vastaavan toteutuksen rinnalla säilytetään liiketoiminnan ymmärtämä määritelmä ja linkki sitä käyttävään raportointiin.
-- Rajaukset ovat mallissa, eivät raportin suodattimissa.
-- Suodatin unohtuu seuraavasta raportista, malli ei.
create or replace view `analytics.metric_myyntilaskutus` as
select
date_trunc(kirjauspvm, month) as kausi,
kustannuspaikka,
sum(summa_veroton) as myyntilaskutus
from `analytics.fct_myyntilaskut`
where laskutyyppi in ('myynti', 'hyvitys') -- hyvitys negatiivisena
and konsernin_sisainen = false -- rajaus määritelmästä
and not myyntivoitto -- rajaus määritelmästä
group by kausi, kustannuspaikkaKun yhteistä laskentaa muutetaan, selvittäkää myös sitä käyttävät raportit ja integraatiot. Riippuvuuksien dokumentointi auttaa arvioimaan vaikutukset ennen julkaisua.
Testatkaa laskentasäännöt ja rajatapaukset
Määritelmä koodissa on parempi kuin määritelmä dokumentissa, mutta se ei vielä estä sen rapautumista. Lähdedata muuttuu, joku lisää uuden laskutyypin, rajaus lakkaa osumasta. Laskenta pyörii edelleen ja tuottaa luvun, joka on vain hiljaa väärä.
Teknisten laatutestien rinnalle tarvitaan liiketoiminnan määritelmää tarkistavia testejä. Esimerkiksi not_null tarkistaa arvon olemassaolon, kun taas tunnettu esimerkkiaineisto auttaa varmistamaan peruutusten ja rajausten käsittelyn. Testit vähentävät virheriskiä, mutta eivät yksin todista kaikkien lukujen oikeellisuutta.
- Tarkkuustaso on osa määritelmää: testaa että kausi ja kustannuspaikka muodostavat uniikin avaimen. Jos ei muodosta, mittari monistuu eikä sitä näe summasta.
- Osien summa vastaa kokonaisuutta: kustannuspaikkojen summa on sama kuin koko yhtiön luku.
- Täsmäytä mittari lähdejärjestelmään samoilla rajauksilla. Esimerkin ulkoinen myyntilaskutus ei automaattisesti vastaa tuloslaskelman liikevaihtoa: jaksotukset, muut tuottokirjaukset ja konsernirajaukset voivat erota.
- Seuraa rajausten vaikutusta rivimääriin ja summiin. Odottamaton muutos voi paljastaa lähteen, laskentasäännön tai aineiston kattavuuden muutoksen.
- Etumerkkitesti perustuu mittarin määritelmään. Myynti voi olla kaudella negatiivinen esimerkiksi hyvitysten vuoksi; negatiivinen arvo ei yksin todista laskentavirhettä.
-- tests/myyntilaskutus_tasmaa_lahteeseen.sql
-- Testi palauttaa rivin vain kun jokin on pielessä, jolloin ajo
-- epäonnistuu. Julkaise raportointiversio vasta testien läpäisyn jälkeen.
with mittari as (
select kausi, sum(myyntilaskutus) as summa
from {{ ref('metric_myyntilaskutus') }}
group by kausi
),
kirjanpito as (
select kausi, sum(summa) as summa
from {{ ref('fct_myyntilaskutus_tasmaytys') }}
where raporttirivi = 'Ulkoinen myyntilaskutus'
-- Erillinen samalla rajauksella tuotettu täsmäytysaineisto.
group by kausi
)
select
coalesce(m.kausi, k.kausi) as kausi,
m.summa as mittari,
k.summa as kirjanpito
from mittari m
full join kirjanpito k using (kausi)
where m.kausi is null or k.kausi is null
or m.summa is null or k.summa is null
or abs(m.summa - k.summa) >= 0.01Täysliitos on tässä tarkoituksellinen. Sisäliitos vertaisi vain niitä kausia, jotka ovat molemmissa, ja jättäisi huomaamatta juuri sen tapauksen, jossa kokonainen kausi puuttuu mittarista.
Kun määritelmä muuttuu
Liiketoiminta ja tietolähteet muuttuvat, joten myös mittarien määritelmiä pitää voida päivittää. Muutokselle tarvitaan hyväksyntä, vaikutusarvio ja näkyvä käyttöönottoajankohta.
Historia voidaan laskea uudelleen, uusi määritelmä voidaan ottaa käyttöön tietystä päivästä tai vanhaa ja uutta versiota voidaan näyttää rinnakkain. Valinta riippuu vertailun tarpeesta, aineiston saatavuudesta ja jo julkaistujen raporttien käyttötarkoituksesta.
Säilyttäkää tarvittavat alkuperäiset raporttiversiot ja erottakaa korjattu aikasarja aiemmin julkaistuista luvuista. Historian uudelleenlaskenta suunnitellaan ja täsmäytetään ennen yhteistä julkaisua.
- Kirjaa muutokselle voimaantulopäivä ja säilytä vanha määritelmä luettavissa. Kysymys "miten tämä laskettiin viime vuonna" tulee varmasti.
- Merkitse katkos raportille siihen kohtaan, jossa se on. Alaviite aikasarjan alla riittää.
- Kerro muutoksesta ennen kuin luvut muuttuvat, ei sen jälkeen.
- Kun historia lasketaan uudelleen, tee se hallitusti ja kerralla, ei niin, että osa raporteista päivittyy ja osa ei. Uudelleenlaskennan tekninen puoli on käsitelty Dagster-oppaassamme.
- Jos muutos on niin suuri että luku tarkoittaa eri asiaa, anna sille uusi nimi vanhan päivittämisen sijaan.
Mittaristo, joka pysyy elossa
Määritelmät eivät ole projekti vaan ylläpidettävä asia. Ilman ylläpitoa mittaristo kasvaa ja rapautuu samaan aikaan: uusia mittareita lisätään pyynnöstä, vanhoja ei poisteta koskaan, ja muutaman vuoden päästä puolet raporteista on sellaisia joita kukaan ei avaa.
Sopikaa tarkistusrytmi mittarien merkittävyyden ja muutostiheyden perusteella. Tarkistakaa määritelmät myös lähdejärjestelmän, organisaation tai keskeisen prosessin muuttuessa. Arvioikaa sekä käytön tarve että vastaavuus nykyiseen toimintaan.
Raporttien käyttöä voi seurata työkalun käyttötilastoista, lokitiedoista tai erikseen toteutetusta analytiikasta. Seurannan saatavuus ja tarkkuus riippuvat tuotteesta, lisenssistä ja asetuksista; kaikki työkalut eivät kerro jokaisen katsojan henkilöllisyyttä. Arvioi vähälle käytölle jääneet mittarit yhdessä niiden omistajan kanssa.
Näin pääsette alkuun
Aloittakaa rajatusta kokonaisuudesta, jossa yhteiset määritelmät tuovat konkreettista hyötyä. Sopiva kohde voi olla raportti, jonka luvuista on toistuvasti eri tulkintoja.
Työn laajuus riippuu lähteistä, rajatapauksista ja osapuolten määrästä. Ensimmäisen vaiheen tavoite on hyväksytty ja käytännössä testattu mittari, jonka toimintatapaa voidaan laajentaa muihin.
- Valitkaa tärkeimmät päätökset ja niissä tarvittavat mittarit.
- Kootkaa nykyiset määritelmät ja selvittäkää lukujen erot lähdeaineistosta.
- Kirjatkaa laskentasäännöt, rajaukset, vastuuroolit ja hyväksymiskriteerit.
- Toteuttakaa ja testatkaa rajattu kokonaisuus sekä verratkaa tuloksia tunnettuun aineistoon.
- Ottakaa yhteiset mittarit käyttöön raporteissa ja sopikaa niiden ylläpito.
Työn hyötyä voidaan arvioida esimerkiksi selvitystyön määrällä, raporttien välisten erojen vähenemisellä ja sillä, kuinka hyvin käyttäjät ymmärtävät lukujen sisällön.
Yleisimmät virheet lyhyesti
- Luvut eivät täsmää, ja ratkaisuksi vaihdetaan työkalu. Uusi työkalu tuottaa samat kaksi lukua uudessa käyttöliittymässä.
- Määritelmä kirjoitetaan dokumenttiin mutta toteutetaan erikseen jokaiseen raporttiin. Dokumentti ja toteutus eroavat muutamassa kuukaudessa, eikä kukaan tiedä kumpi on voimassa.
- Aikaleimaa ei ole kirjattu. Sama data tuottaa neljä eri lukua sen mukaan, mitä päivää käytetään.
- Rajaukset jäävät kirjaamatta, koska ne ovat itsestäänselviä sille joka ne tietää. Seuraava toteuttaja ei tiedä.
- Osuudet ja keskiarvot summataan ylöspäin. Kokonaisuuden luku on laskettava kokonaisuudesta.
- Määritelmän hyväksyntä ja teknisen toteutuksen vastuut jäävät epäselviksi.
- Määritelmä muutetaan hiljaa. Luvut muuttuvat takautuvasti, kukaan ei kerro, ja luottamus menee kerralla.
- Sama nimi jätetään käyttöön, vaikka laskenta on muuttunut. Aikasarja näyttää muutokselta, joka ei ole tapahtunut.
- Mittaristo kasvaa ilman käyttötarpeen ja käyttäjäkohtaisten näkymien arviointia.
- Määrittelystä tehdään hallintaprojekti. Dokumentti valmistuu, luvut eivät korjaannu.
Tarvitsetteko yhteiset määritelmät raportointiin?
Vectura Solutions Oy auttaa sopimaan keskeiset mittarit, selvittämään raporttien erot ja toteuttamaan hyväksytyt laskentasäännöt datamalliin. Aloitamme päätöksenteon kannalta tärkeästä kokonaisuudesta.
Katso datakonsultointipalvelumme