Min rolle
#- Mitt arbeid
- Jeg utformet nesten hele den semantiske modellen, altså modellen bak rapportene, og utviklet mesteparten av datatransformasjonene i Power Query og om lag 80 til 90 prosent av DAX-beregningene. Jeg valgte stjerneskjema etter å ha vurdert alternativer, og hadde hovedansvaret for teknisk feilsøking.
- Samarbeidet
- Kolleger ledet innholdsutvalg, visuell utforming og presentasjon, og bygde deler av rapporten etter teknisk veiledning fra meg. Jeg bidro til navigasjon, verktøytips og rapportstruktur.
Brukt i drift til rundt februar 2026, da nye rapporter dekket behovet.
Mer om status
- Bruk
- Brukt i drift i om lag halvannet år. Dashbordet var aldri ment å være permanent, fordi BI er en annen avdelings ansvar. Høsten 2025 hjalp jeg den avdelingen med Power BI. Da de nye rapportene deres dekket behovet, ble dashbordet tatt ned for å beholde én felles kilde for tallene.
Fire fagområder med ulike datagrunnlag
#Fagområdene måler forskjellige ting. Et regnskapsbeløp, et aktivitetsmål, et bemanningsvolum og en fraværsprosent kan dele organisasjon og tid uten å ha samme datakorn, altså hva én rad står for, eller samme beregningsregel. Modellen måtte bevare disse forskjellene.
Kildene og oppdateringsveiene gjorde den månedlige driften krevende. Et tall måtte knyttes til perioden det faktisk beskrev. Jeg arbeidet med kalenderlogikk, organisasjonshierarkier og sammenstilling av historiske og gjeldende strukturer, slik at et felles utvalg ikke ga inntrykk av at alle områdene var like ferske.
Oppdraget var bredt og lite spesifisert. Det måtte bli en modell kollegene kunne bygge rapporter på og ledere kunne bruke. Modellstørrelse, vedlikehold og nye ønsker konkurrerte om det samme utviklingsrommet. Da modellens grenser ga leveranserisiko, skilte jeg en større modernisering av modellen fra løpende utvidelser.
Felles utvalg med tydelige nøkler og perioder.
Avvik og akkumulerte verdier.
DRG-prestasjon.
Eget datakorn og egne beregninger.
Teller og tilhørende grunnlag.
Modell, beregninger og brukerbehov
#Dele dimensjoner, bevare datakorn
#De fire fagområdene skulle svare på de samme organisatoriske utvalgene, mens hver beregning måtte beholde sin egen definisjon.
Jeg utformet modellen med felles dimensjoner for organisasjon og tid og egne faktatabeller per fagområde. Etter å ha vurdert snøflakmønstre valgte jeg stjerneskjema som hovedmønster, fordi det passer Power BI og er lettere å vedlikeholde. Jeg pekte også ut overflødige beskrivende felt i faktatabellene og strammet inn skillet mellom fakta og dimensjoner.
Et tydelig skille mellom fakta og dimensjoner gjør det mulig å dele organisasjon og tid uten å blande måleenheter eller radnivåer. Et snøflakskjema ville lagt flere oppslag mellom dimensjonene og flyttet kompleksitet til relasjoner og filterveier.
Hvert fagområde trengte fortsatt egne beregninger og kontroller.
Definere grunnlaget før prosenten
#Sykefravær skulle kunne sammenlignes mellom utvalg av ulik størrelse. Et gjennomsnitt av enhetsprosenter gir små og store enheter lik vekt.
Jeg arbeidet med eksplisitt nevnerlogikk, altså hvilket grunnlag prosenten regnes av, og konsekvente avgrensninger for prosentmålene i DAX.
Teller og grunnlag må gjelde samme utvalg. Da følger vektingen grunnlaget bak tallene, og prosenten kan forklares helt ned til beregningen. Et enkelt gjennomsnitt av enhetsprosenter svarer på et annet spørsmål: hvordan enhetene gjør det i snitt, ikke hvor stort fraværet er i hele utvalget.
Nevneren blir en faglig definisjon som må forvaltes sammen med målet.
Forbedre det brukerne faktisk møtte
#Jeg gjennomførte veiledede tester med faktiske brukere, observerte hvor de ble usikre og samlet tilbakemeldinger.
Tilbakemeldingene styrte de målrettede forbedringsrundene, som jeg kjørte i tillegg til de månedlige oppdateringene.
Kilder og grenser
#Modellen, DAX-koden og rapportene er ikke publisert.
- Diagrammet og regneeksemplet er laget for denne siden. Tallene er fiktive og sier ingenting om sykehusets økonomi eller fravær.
Teknisk grunnlag
#Hva en felles filterkontekst må bevare
Datakorn beskriver hva én rad står for. Før en relasjon brukes, må både nøkkelen og radnivået være forstått. Hvis en organisatorisk enhet kobles til flere historiske versjoner uten en entydig tidsregel, kan et tilsynelatende enkelt utvalg gi feil summer.
En semantisk modell gir tabeller og beregninger en felles faglig betydning. Her var organisasjon, perioder og avgrensninger sentrale. Jeg utviklet og feilsøkte logikken for avvik, forholdstall, akkumulerte verdier, hittil i år og DRG-prestasjon på tvers av fagområdene.
Den inspiserte modellen har 21 tabeller, 20 relasjoner og 204 DAX-mål med innhold. Tallene beskriver omfanget av modellen, ikke kvalitet eller effekt.
Vektet prosent og manglende grunnlag
I en samlet prosent summeres teller og grunnlag før divisjonen. Et enkelt gjennomsnitt av enhetsprosenter gir enhetene lik vekt, selv om grunnlagene deres er forskjellige. Begge regnemåtene kan være meningsfulle, men de beskriver ulike størrelser.
I det fiktive eksemplet må hver rad ha et kjent, ikke-negativt grunnlag og en kjent teller innenfor dette grunnlaget. Manglende verdier kan ikke erstattes med null. Når samlet grunnlag er null, finnes det ingen prosent å vise.
Nyskrevet eksempel. Viser mønsteret, ikke originalkoden.
function samletAndel(rader) {
let teller = 0;
let grunnlag = 0;
for (const rad of rader) {
if (!Number.isFinite(rad.teller) || !Number.isFinite(rad.grunnlag)) {
throw new Error("Teller eller grunnlag mangler.");
}
if (rad.grunnlag < 0 || rad.teller < 0 || rad.teller > rad.grunnlag) {
throw new Error("Verdiene beskriver ikke et gyldig grunnlag.");
}
teller += rad.teller;
grunnlag += rad.grunnlag;
}
return grunnlag === 0 ? null : teller / grunnlag;
}Periode og beregningsgrunnlag
Dette viser avvik, bemanning og vektet sykefravær i et fiktivt datasett med to enheter og ulik oppdateringstid.
Syntetisk illustrasjon. Kjører ikke originalsystemet.
Uten fungerende JavaScript vises det faste eksemplet. Valg i lenken beregnes ikke.
Økonomiavvik
Valgt periode: 2025-01 til 2025-12. Siste tilgjengelige måned: 2025-12. Avvik i perioden: 48 000 kr.
Manglende tall vises som «Mangler». Avvik er budsjett minus faktisk. Et positivt avvik betyr at faktisk beløp er lavere enn budsjettert.
| Måned | Faktisk | Budsjett | Avvik |
|---|---|---|---|
| 2025-01 | 190 000 kr | 198 000 kr | 8 000 kr |
| 2025-02 | 202 000 kr | 198 000 kr | −4 000 kr |
| 2025-03 | 186 000 kr | 198 000 kr | 12 000 kr |
| 2025-04 | 198 000 kr | 198 000 kr | 0 kr |
| 2025-05 | 190 000 kr | 198 000 kr | 8 000 kr |
| 2025-06 | 202 000 kr | 198 000 kr | −4 000 kr |
| 2025-07 | 186 000 kr | 198 000 kr | 12 000 kr |
| 2025-08 | 198 000 kr | 198 000 kr | 0 kr |
| 2025-09 | 190 000 kr | 198 000 kr | 8 000 kr |
| 2025-10 | 202 000 kr | 198 000 kr | −4 000 kr |
| 2025-11 | 186 000 kr | 198 000 kr | 12 000 kr |
| 2025-12 | 198 000 kr | 198 000 kr | 0 kr |