specification: FinOps Framework specificationVersion: '1.0' schema: https://www.finops.org/framework/ alignedWith: framework: FinOps Foundation Framework frameworkUrl: https://www.finops.org/framework/ dataSpec: FOCUS dataSpecVersion: '1.3' dataSpecUrl: https://focus.finops.org/focus-specification/v1-3/ provider: Microsoft Bicep providerId: microsoft-bicep publisherName: Microsoft Corporation serviceCategory: Developer Tools / Infrastructure as Code created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - ARM Templates - Azure - Cloud - Deployment - DevOps - Infrastructure as Code - FinOps - FOCUS description: FOCUS-aligned FinOps for Microsoft Bicep — Bicep itself is free and open-source, so the FinOps focus is on the cost of resources Bicep deploys. Bicep's role in FinOps is to enforce tagging, cost-aware module patterns, and policy-as-code across all Azure deployments. No direct billing line items for Bicep; meters represent governance signals (deployment volume, tag coverage) rather than charges. sources: - https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview - https://learn.microsoft.com/en-us/azure/cost-management-billing/ - https://focus.finops.org/focus-specification/v1-3/ billingModel: pricingCategory: Free / Open Source (deployment cost flows through to deployed resources) billingFrequency: N/A — no direct billing billingCurrency: N/A chargeCategories: - Usage chargeFrequency: Recurring (only on deployed resources) focusColumns: ServiceName: Microsoft Bicep ServiceCategory: Developer Tools ProviderName: Microsoft Corporation PublisherName: Microsoft Corporation InvoiceIssuerName: N/A PricingCategory: Free PricingUnit: N/A BillingCurrency: N/A ChargeCategory: Usage meters: - name: deployments_executed description: Count of Bicep / ARM deployments invoked (governance signal, not billable). unit: deployment aggregation: count dimensions: - subscription - resource_group - principal - name: resources_deployed description: Resources created/updated by Bicep deployments — drives downstream Azure cost. unit: resource aggregation: count dimensions: - resource_type - subscription - tags_completeness - name: deployment_failures description: Failed deployments (waste signal — points to mis-sized resources or quota blockers). unit: failure aggregation: count dimensions: - error_code - name: tag_coverage description: Percent of Bicep-deployed resources carrying required cost-allocation tags. unit: percent aggregation: avg dimensions: - subscription - required_tag principles: - name: Visibility description: Use Azure Resource Graph to inventory all resources and trace each back to its Bicep deployment. Combine with Cost Management to attribute spend to the team that owns the Bicep template (via tags). Pipeline logs (Azure Pipelines / GitHub Actions) reveal who ran which deployment. - name: Allocation description: Codify required tags (CostCenter, Owner, Environment, App) directly in the Bicep template. Use Bicep parameters with @allowed() to enforce environment values. Bicep modules should always pass tag dictionaries to deployed resources. - name: Optimization description: Build cost-aware Bicep modules — default to lower-cost SKUs (Standard SSD, B-series, basic LB) and require explicit override for premium. Use param objects with cost-tier presets (dev / staging / prod). Enforce Azure Policy via Bicep deployments to block disallowed expensive SKUs. Use what-if to preview deltas before committing production changes. - name: Accountability description: Bicep templates live in version control with CODEOWNERS-style approval gates. Pipelines validate cost-policy compliance before deployment. FinOps team reviews new Bicep modules quarterly to ensure cost guardrails remain current. maintainers: - FN: Kin Lane email: kin@apievangelist.com url: https://github.com/Azure/bicep