# Cost Allocation and Chargeback Models

**Last updated:** 2026-02
**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."

---

## 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
