# Cost Allocation and Chargeback Models **Last updated:** 2026-04 **Status:** GA **Category:** Cost Optimization & FinOps for AI --- ## Introduksjon Cost allocation og chargeback er fundamentale FinOps-kapabiliteter for å håndtere delte kostnader og skape kostnadsansvar i organisasjoner som bruker Microsoft AI-plattformer. Disse mekanismene lar deg omfordele kostnader fra sentrale, delte tjenester til de faktiske forbrukerne — som team, avdelinger eller prosjekter — og dermed sikre både transparens og ansvarliggjøring. I en Azure-kontekst betyr **cost allocation** å flytte kostnader fra ett scope (subscription, resource group, eller tag) til et annet. Dette påvirker ikke fakturaen, men hjelper deg å vise kostnader der de logisk hører hjemme. **Chargeback** tar dette ett steg videre ved å faktisk fakturere interne team for deres forbruk gjennom organisasjonens økonomisystemer. **Showback** er en mildere variant som viser kostnadene, men uten å kreve betaling — nyttig for å skape bevissthet før man ruller ut full chargeback. For AI-prosjekter er dette spesielt viktig. Azure OpenAI, Azure AI Foundry, Copilot Studio og Power Platform AI brukes ofte som delte tjenester på tvers av flere team. Uten en strukturert allocation-strategi blir kostnadene liggende på ett sentralt abonnement, og ingen team får innsikt i eller ansvar for sitt faktiske forbruk. Dette fører til ineffektiv ressursbruk, manglende budsjettkontroll og svak alignment mellom IT-kostnader og forretningsverdi. --- ## Kjernekomponenter ### Azure Cost Allocation Rules Azure Cost Management tilbyr innebygde regler for kostnadsomfordeling. Disse støttes for **Enterprise Agreement (EA)** og **Microsoft Customer Agreement (MCA)** kunder. | Komponent | Beskrivelse | |-----------|-------------| | **Source** | Subscription, resource group eller tag der kostnadene opprinnelig ligger (f.eks. sentralt AI-abonnement) | | **Target** | Subscription, resource group eller tag som skal motta kostnadene (f.eks. markedsavdelingens abonnement) | | **Allocation percentage** | Andel av kostnadene som skal flyttes. Kan settes manuelt eller automatisk basert på compute, storage eller network-forbruk | | **Evaluation start date** | Dato fra når regelen skal gjelde. Historiske data påvirkes ikke | | **Processing order** | Regler kjøres sekvensielt i rekkefølgen de er opprettet. Kan ta opptil 24 timer før en ny regel aktiviseres | **Viktig:** Cost allocation rules påvirker **ikke** din Azure-faktura. De endrer kun hvordan kostnadene vises i Cost Analysis, budgets og eksportert data. ### Tagging for Cost Allocation Tags er key-value pairs som kan brukes til å kategorisere ressurser og kostnader. Azure Policy kan håndheve tagging-strategier, og **tag inheritance** sørger for at tags propageres fra subscription/resource group ned til child resources. | Tag-strategi | Eksempel | Bruksområde | |--------------|----------|-------------| | Cost center | `CostCenter=00123` | Knytte kostnader til budsjettkapittel | | Project | `Project=AI-Chatbot-2026` | Spore prosjektkostnader | | Environment | `Environment=Production` | Skille prod fra dev/test | | Owner/Team | `Owner=MarketingTeam` | Identifisere ansvarlig enhet | | Application | `Application=CustomerServiceBot` | Koble kostnader til applikasjon | **Best practice:** Kombiner **subscription/resource group-struktur** med **tags** for maksimal fleksibilitet. Bruk subscriptions for store enheter (avdelinger), resource groups for applikasjoner, og tags for finkornet kategorisering. ### Chargeback vs. Showback | Aspekt | Showback | Chargeback | |--------|----------|------------| | **Formål** | Skape kostnadstransparens | Skape kostnadstransparens + ansvar | | **Fakturering** | Nei – kun rapportering | Ja – faktisk internfakturering | | **Kompleksitet** | Lav | Middels til høy | | **Integrasjon** | Cost Management + Power BI | Cost Management + ERP/finans-system | | **Modenhet** | Anbefalt som første steg | Krever etablert allocation-strategi | | **Delte kostnader** | Kan vises som "unallocated" | Må håndteres eksplisitt (prorata, static %, etc.) | --- ## Arkitekturmønstre ### Mønster 1: Centralized Chargeback (Hub-and-Spoke) **Scenarie:** En sentral IT-avdeling leverer Azure OpenAI som en delt tjeneste til flere forretningsenheter. **Implementasjon:** - Sentral IT har subscription `AI-Platform-Prod` med Azure OpenAI-instanser - Hver forretningsenhet har egne subscriptions (Sales, Marketing, HR, etc.) - Tags på resource group-nivå: `Consumer=Sales`, `Consumer=Marketing` - Cost allocation rule: Flytt kostnader fra `AI-Platform-Prod` til consumer-subscriptions basert på tag-filter - Allocation percentage: Automatisk basert på **compute cost** (PTU-forbruk) eller **total cost** **Fordeler:** - Klar separasjon mellom leverandør og forbruker - Enkel å implementere med native Cost Management-verktøy - Sentralisert governance og sikkerhet **Ulemper:** - Krever nøyaktig tagging (manual eller automatisert) - Kan ikke fange opp alle kostnader hvis tagging er ufullstendig ### Mønster 2: Showback-Only (Transparency Without Billing) **Scenarie:** Organisasjonen er tidlig i FinOps-modenhet og ønsker å gi team innsikt i kostnader før chargeback innføres. **Implementasjon:** - Power BI-rapport koblet til Cost Management API eller Azure Data Explorer - Kostnader grupperes etter tags (CostCenter, Project, Environment) - Rapporter sendes månedlig til team-ledere med breakdown av deres AI-forbruk - Ingen faktisk internfakturering — kun synliggjøring **Fordeler:** - Lav terskel for å komme i gang - Skaper bevissthet og motivasjon for optimalisering - Ingen integrasjon med ERP/økonomisystemer **Ulemper:** - Begrenset ansvarliggjøring (ingen økonomiske konsekvenser) - Risiko for at team ignorerer rapportene ### Mønster 3: Hybrid Chargeback with Thresholds **Scenarie:** Store forretningsenheter betaler chargeback, små team får showback. Shared costs håndteres som overhead. **Implementasjon:** - Cost allocation rules fordeler kostnader til subscriptions med `ChargebackEnabled=true` - Subscriptions under en viss terskel (f.eks. 10 000 NOK/måned) får kun showback - Delte kostnader (networking, monitoring, security) fordeles prorata basert på compute-forbruk eller holdes som sentralt overhead - Integration med organisasjonens ERP-system for å generere intern faktura **Fordeler:** - Balanserer kompleksitet og nøyaktighet - Reduserer administrativt overhead for små team - Skalerer med organisasjonens modenhet **Ulemper:** - Krever vedlikehold av terskellogikk - Kan oppleves som urettferdig av små team som nærmer seg terskel --- ## Beslutningsveiledning ### Når skal jeg bruke hva? | Kriterium | Showback | Chargeback | Hybrid | |-----------|----------|------------|--------| | FinOps-modenhet | Lav | Høy | Middels | | Antall forbrukere | 1-5 | 10+ | 5-15 | | Shared costs kompleksitet | Lav | Høy | Middels | | ERP-integrasjon klar? | Nei | Ja | Delvis | | Executive buy-in? | Nei | Ja | Delvis | ### Vanlige feil | Feil | Konsekvens | Unngå ved å... | |------|------------|----------------| | **Ufullstendig tagging** | Kostnader blir "unallocated" og havner i overhead | Bruk Azure Policy til å håndheve tagging, aktiver tag inheritance | | **Statisk prosentfordeling** | Ikke reflekterer faktisk forbruk over tid | Bruk compute/storage/network-basert allocation eller re-evaluate quarterly | | **Ignorer shared costs** | Sentrale team subsiderer forbrukere | Definer klare regler for hvordan shared costs skal håndteres (prorata, overhead, etc.) | | **Manglende dokumentasjon** | Forvirring og klager fra team | Skriv ned allocation-strategien, kommuniser tydelig | | **For komplekst fra dag 1** | Høy administrativ byrde, lav adoption | Start med showback, bygg opp kompleksitet gradvis | ### Røde flagg (når chargeback ikke er klart) - Ingen etablert tagging-strategi - Manglende alignment mellom IT og finans - Uenighet om hvordan delte kostnader skal håndteres - ERP-system kan ikke håndtere Azure cost data - Executive management har ikke kjøpt inn på FinOps-prinsippene --- ## Integrasjon med Microsoft-stakken ### Azure Cost Management + Billing **Capabilities:** - **Cost Allocation Rules:** Native funksjonalitet for å flytte kostnader mellom subscriptions, resource groups, tags - **Cost Analysis:** Visualisering av allocated costs med "Group by: Cost allocation" - **Budgets:** Kan settes på allocated costs og trigger alerts - **Exports:** Allocated costs inkluderes i CSV-eksport med kolonne `costAllocationRuleName` **Limitasjoner:** - Power BI App og Power BI Desktop Connector støtter **ikke** cost allocation - Usage Details API støtter **ikke** cost allocation (bruk Cost Details API i stedet) - Reservasjoner og Savings Plans støttes **ikke** for allocation ### Management Groups og Subscriptions **Strategi:** - **Management groups:** Bruk for å organisere subscriptions hierarkisk (f.eks. per avdeling) og arve Azure Policy - **Subscriptions:** Primær billing scope — én per forretningsenhet eller miljø (prod/dev) - **Resource groups:** Bruk for applikasjoner eller prosjekter **Eksempel-hierarki:** ``` Root Management Group ├── IT-Platform (MG) │ └── AI-Platform-Prod (Subscription) ← source for allocation ├── Sales (MG) │ └── Sales-Prod (Subscription) ← target for allocation └── Marketing (MG) └── Marketing-Prod (Subscription) ← target for allocation ``` ### Azure Policy for Tagging **Best practice:** - `Require tag and its value on resources` — Påkrevd at alle ressurser har f.eks. CostCenter - `Inherit a tag from the resource group if missing` — Automatisk arv fra resource group - `Add a tag to resources` — Automatisk apply tag ved provisioning **PowerShell-eksempel:** ```powershell # Hent alle ressurser med en spesifikk cost center-tag (Get-AzResource -Tag @{ "CostCenter"="00123"}).Name # Legg til tags på subscription for tag inheritance $tags = @{"CostCenter"="00123"; "Environment"="Production"} $subscription = (Get-AzSubscription -SubscriptionName "AI Platform").Id New-AzTag -ResourceId "/subscriptions/$subscription" -Tag $tags ``` ### Power BI for Chargeback Reporting **FinOps Toolkit Power BI Reports:** - **Cost Summary → Commitments:** Viser amortized cost for commitments (reservations, savings plans) - **Rate Optimization → Chargeback:** Tabell for chargeback på subscription/resource group/resource-nivå - **Governance → Summary:** Oversikt over tagging compliance **Custom Reports:** - Koble til Cost Management API eller Azure Data Explorer (hvis du bruker FinOps Hubs) - Inkluder kolonner: Subscription, CostCenter, Project, Environment, Amortized Cost, Incurred Cost - Lag filtere for tidsperiode, cost allocation rule, consumer --- ## Offentlig sektor (Norge) ### Statsbudsjettet og kapittelstruktur I norsk offentlig sektor følger budsjettering en streng kapittel/post-struktur definert i statsbudsjettet. Dette gir spesifikke krav til hvordan Azure-kostnader må spores og rapporteres: | Konsept | Azure-mapping | Implementasjon | |---------|---------------|----------------| | **Kapittel** | Management Group eller Subscription | Én per organisatorisk enhet (direktorat, avdeling) | | **Post** | Tag: `BudgetPost=01.20` | Koble kostnader til budsjettpost | | **Art** | Tag: `AccountingCategory=Drift` | Skille drift fra investering | | **Prosjekt** | Tag: `ProjectNumber=2026-0042` | Sporbarhet tilbake til prosjektregnskapet | **Best practice:** ```powershell # Sett tags som matcher kapittel/post-struktur $tags = @{ "Kapittel" = "0610" "Post" = "01" "Art" = "21" # IKT-drift "CostCenter" = "KI-seksjonen" "Project" = "AI-POC-2026" } $resource = Get-AzResource -Name "ai-foundry-prod" -ResourceGroup "rg-ai-platform" New-AzTag -ResourceId $resource.id -Tag $tags ``` ### DFØ og internfakturering **Direktoratet for forvaltning og økonomistyring (DFØ)** håndterer regnskapsføring for mange statlige virksomheter. Når du implementerer chargeback, må du kunne: 1. **Eksportere kostnader i DFØ-kompatibelt format** - Cost Management Exports → CSV med kolonner for kapittel, post, beløp - Periodisering: Månedlig eller kvartalsvis 2. **Håndtere internfakturering mellom etater** - Hvis en etat leverer Azure AI-tjenester til en annen, må det genereres intern faktura - Kostnadene skal føres i begge etaters regnskaper (kostnad hos forbruker, inntekt hos leverandør) 3. **Rapportere til riktig budsjettår** - Azure fakturerer per kalendermåned - Statsbudsjettet følger budsjettår (1. januar – 31. desember) - Sikre at kostnader periodiseres riktig (unngå at desember-kostnader "lekker" inn i neste år) ### Compliance og sporbarhet - **Riksrevisjonen** kan kreve full sporbarhet fra Azure-kostnad tilbake til budsjettvedtak - Cost allocation rules må være **dokumentert** og **auditert** - Tags skal være **immutable** etter at regnskapsperioden er avsluttet (bruk Azure Policy til å forhindre endringer) --- ## Kostnad og lisensiering ### Azure Cost Management — Gratis Azure Cost Management er **inkludert uten ekstra kostnad** for alle EA, MCA og Pay-As-You-Go kunder. Dette inkluderer: - Cost Analysis - Budgets og alerts - Cost allocation rules - Exports til storage account - Recommendations (Azure Advisor) **Ingen lisenskostnad** for å bruke cost allocation og chargeback-funksjonalitet. ### Power BI for Reporting | Lisens | Kostnad (ca.) | Capabilities | |--------|---------------|-------------| | **Power BI Free** | Gratis | Kan lese Cost Management connector, men kun personlig bruk | | **Power BI Pro** | ~100 NOK/bruker/måned | Kan dele rapporter med andre Pro-brukere | | **Power BI Premium Per User** | ~200 NOK/bruker/måned | Avanserte features (datamarts, deployment pipelines) | | **Power BI Premium Capacity** | Fra ~50 000 NOK/måned | For hele organisasjonen, skalerer best | **Anbefaling:** Start med Pro for FinOps-team (5-10 brukere), vurder Premium når rapporten skal ut til 50+ stakeholders. ### FinOps Toolkit (Open Source) Microsoft FinOps Toolkit er **open source** og gratis: - **FinOps Hubs:** ARM-template for å sette opp datapipeline (Cost Management → Storage → Data Explorer) - **Power BI Reports:** Ferdigbygde maler for cost summary, rate optimization, governance - **GitHub:** [microsoft/finops-toolkit](https://github.com/microsoft/finops-toolkit) **Kostnad:** Kun Azure-ressurser som brukes (storage account, Data Explorer cluster hvis du velger det). ### Optimaliseringstips 1. **Bruk tag inheritance** — reduserer behovet for å tagge hver enkelt ressurs manuelt 2. **Automatiser tagging** — bruk Azure Policy + remediation tasks for å fikse manglende tags 3. **Start med showback** — lav kostnad, høy verdi (bevisstgjøring) 4. **Konsolider subscriptions** — færre subscriptions = enklere governance, men vurder tradeoff mot isolasjon 5. **Bruk FinOps Toolkit** — spare utviklingstid og få best practices ut-av-boksen --- ## For arkitekten (Cosmo) ### Spørsmål å stille kunden 1. **Har dere en etablert tagging-strategi for Azure-ressurser?** - Hvis nei: Start her. Chargeback er ubrukelig uten strukturerte tags. 2. **Hva er formålet med chargeback — transparens eller faktisk internfakturering?** - Hvis kun transparens: Showback er enklere og raskere å implementere. 3. **Hvordan håndterer dere delte kostnader i dag (networking, security, monitoring)?** - Trenger en klar strategi: Prorata? Overhead? Statisk fordeling? 4. **Er økonomisystemet deres klart til å ta imot Azure cost data?** - MCA/EA kan eksportere til CSV, men må kunne importeres i ERP. 5. **Hvor mange forbrukere/teams skal dere allokere kostnader til?** - < 5: Manuell fordeling kan være OK - 10+: Trenger automatisert allocation rules 6. **Hva er tidshorisonten for å implementere full chargeback?** - 0-3 måneder: Showback - 3-6 måneder: Hybrid - 6-12 måneder: Full chargeback 7. **Offentlig sektor: Må dere følge DFØ-standarder eller kapittel/post-struktur?** - Hvis ja: Tags må speile budsjettstrukturen nøyaktig. 8. **Har dere budget alerts og anomaly detection på plass?** - Chargeback er mer effektivt hvis team også har verktøy til å reagere på kostnader. ### Fallgruver å unngå | Fallgruve | Konsekvens | Mitigering | |-----------|------------|------------| | **Innføre chargeback uten showback-fase** | Team opplever det som urettferdig, manglende buy-in | Kjør 2-3 måneder showback først | | **Glemme å dokumentere allocation-regler** | Forvirring, klager, mistillit | Skriv en "Chargeback Playbook" | | **Ikke håndtere edge cases (untagged resources, shared costs)** | "Unallocated" kostnader vokser, blir støy | Definer fallback-regler | | **For mange allocation rules** | Kompleksitet, tregheter, vanskelig å feilsøke | Start enkelt, øk kompleksitet gradvis | | **Ignorer feedback fra team** | Lav adoption, motstand | Lag en feedback-loop, juster strategien | ### Anbefalinger per modenhetsnivå #### Nivå 1 (Crawl): "Vi har ingen FinOps-praksis i dag" - **Mål:** Skape synlighet i kostnader - **Tiltak:** 1. Aktiver Cost Management 2. Lag en enkel Power BI-rapport (FinOps Toolkit) 3. Kjør showback i 3 måneder 4. Lag en tagging-strategi (CostCenter + Project er et godt utgangspunkt) - **Verktøy:** Azure Cost Management, Power BI Pro #### Nivå 2 (Walk): "Vi har showback, vil ha mer ansvarliggjøring" - **Mål:** Implementere cost allocation rules og forberede chargeback - **Tiltak:** 1. Definer source og targets for allocation (hvilke subscriptions/tags) 2. Opprett 2-3 enkle allocation rules (start med store forbrukere) 3. Bruk automatisk allocation percentage (compute cost-basert) 4. Verifiser i Cost Analysis at allocated costs ser riktige ut 5. Kommuniser endringene til berørte team - **Verktøy:** Cost Allocation Rules, Azure Policy for tagging #### Nivå 3 (Run): "Vi vil ha full chargeback integrert med ERP" - **Mål:** Automatisere internfakturering, full transparens - **Tiltak:** 1. Eksporter allocated costs til CSV (Cost Management Exports) 2. Bygg integrasjon mellom Cost Management og ERP-system 3. Lag rutiner for månedlig avregning 4. Implementer governance for shared costs (f.eks. overhead pools) 5. Mål KPIer: % allocated costs, chargeback-avvik, time-to-invoice - **Verktøy:** Cost Details API, Azure Data Factory, FinOps Hubs, Power Automate ### Røde flagg (når du skal advare kunden) - **Kunde vil hoppe direkte til chargeback uten showback:** "Dette vil skape friksjon. La oss kjøre showback i 2-3 måneder først." - **Ingen har ansvar for tagging:** "Uten en tag owner vil strategien kollapse. Vi trenger en ansvarlig." - **Økonomisystemet kan ikke importere Azure-data:** "Da må vi bygge en brukerdefinert integrasjon — budsjetter med 3-6 måneder." - **Uenighet om shared costs-strategi:** "Vi må løse dette før vi ruller ut. Ellers blir det klager." --- *(Verified MCP 2026-04)* ## Kilder og verifisering ### Microsoft Learn (Verified fra MCP Research) 1. **Create and manage Azure cost allocation rules** https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/allocate-costs *Confidence: Verified* — Fullstendig dokumentasjon av allocation rules, prerequisites, implementation 2. **Invoicing and chargeback (FinOps Framework)** https://learn.microsoft.com/en-us/cloud-computing/finops/framework/manage/invoicing-chargeback *Confidence: Verified* — Offisiell FinOps-guide fra Microsoft, dekker best practices 3. **Introduction to cost allocation** https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/cost-allocation-introduction *Confidence: Verified* — Oversikt over tags, cost allocation rules, og FinOps-strategier 4. **Group and allocate costs using tag inheritance** https://learn.microsoft.com/en-us/azure/cost-management-billing/costs/enable-tag-inheritance *Confidence: Verified* — Tag inheritance setup, nødvendig for å sikre fullstendig tagging 5. **Architecture strategies for collecting and reviewing cost data** https://learn.microsoft.com/en-us/azure/well-architected/cost-optimization/collect-review-cost-data *Confidence: Verified* — Well-Architected Framework, showback vs chargeback, comprehensive reports 6. **Architectural approaches for cost management in multitenant solutions** https://learn.microsoft.com/en-us/azure/architecture/guide/multitenant/approaches/cost-management-allocation *Confidence: Verified* — Multitenant patterns (relevant for shared AI platforms) 7. **Govern Azure platform services (PaaS) for AI** https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/platform/governance *Confidence: Verified* — AI-spesifikk governance inkl. cost management 8. **Microsoft Defender for Cloud chargeback process** https://learn.microsoft.com/en-us/azure/defender-for-cloud/chargeback *Confidence: Verified* — Konkret eksempel på chargeback-implementasjon med tags 9. **Allocation (FinOps Framework)** https://learn.microsoft.com/en-us/cloud-computing/finops/framework/understand/allocation *Confidence: Verified* — FinOps Foundation allocation capability 10. **Rate optimization report (FinOps Toolkit)** https://learn.microsoft.com/en-us/cloud-computing/finops/toolkit/power-bi/rate-optimization *Confidence: Verified* — Power BI chargeback-side i FinOps Toolkit ### Kodeeksempler (Verified Code Samples) 11. **PowerShell: Apply tags to resources for cost center allocation** https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-resources-powershell *Confidence: Verified* — Offisielle code samples for tagging ### Baseline Knowledge (Modellkunnskap + Offentlig sektor) 12. **DFØ kapittel/post-struktur** *Confidence: Baseline* — Basert på kjent kunnskap om norsk offentlig forvaltning (ikke spesifikk MCP-kilde) 13. **Riksrevisjonen sporbarhetskrav** *Confidence: Baseline* — Generell kunnskap om norsk offentlig revisjon ### FinOps Foundation (External Reference) 14. **Invoicing and Chargeback Capability** https://www.finops.org/framework/capabilities/invoicing-chargeback/ *Confidence: Verified* — Referert fra Microsoft Learn, FinOps Foundation er autorativ kilde --- **Totalt antall unike kilder:** 14 **MCP-verifiserte kilder:** 11 **Baseline-kilder:** 3 **Confidence-fordeling:** 79% Verified, 21% Baseline