Solution Bill of Materials: [Solution or bid name]
Bill of materials (BoM) and pricing assumptions for a solution: every
software licence, cloud service per environment, SaaS subscription,
hardware item, support contract and professional service the solution
needs, each with its pricing basis, quantity driver, owner and term,
rolled up into totals by year. Cost line names follow the column
concepts of the FinOps Open Cost and Usage Specification (FOCUS) 1.4
(ratified 4 June 2026), and licence entitlements are recorded in the
way ISO/IEC 19770-1:2017 expects for IT asset management. Replace every
[bracketed] value and every row marked Example. This is a format
for cost planning, not a quotation, tax or financial advice.
Document control
| Field | Value |
|---|
| Document ID | [BOM-001] |
| Solution or bid | [Solution name], [Opportunity or project code] |
| Design basis | [HLD / infrastructure design ID and version] |
| Effort estimate | [EST-NNN, version] |
| Pricing currency | [USD] |
| Prices taken on | YYYY-MM-DD |
| Price validity | Until YYYY-MM-DD (section 11) |
| Version | [0.1] |
| Status | [Draft / In review / Approved / Superseded] |
| Owner | [@solution-architect] |
| Approvers/reviewers | [@commercial-lead], [@procurement], [@finops-lead], [@licensing-specialist] |
| Last updated | YYYY-MM-DD |
| Classification | [Internal / Commercial in confidence] |
Approvals
| Role | Name | Decision | Date |
|---|
| Solution architect | [@name] | [Submitted] | YYYY-MM-DD |
| Licensing specialist | [@name] | [Approve / Approve with conditions / Reject] | YYYY-MM-DD |
| FinOps or cloud cost lead | [@name] | [Decision] | YYYY-MM-DD |
| Procurement | [@name] | [Decision] | YYYY-MM-DD |
| Commercial lead | [@name] | [Decision] | YYYY-MM-DD |
Revision history
| Version | Date | Author | Change summary |
|---|
| 0.1 | YYYY-MM-DD | [@name] | First draft from HLD v1.2 |
| 0.2 | YYYY-MM-DD | [@name] | Example: Added DR environment and commitment discount on production compute |
| 1.0 | YYYY-MM-DD | [@name] | Example: Approved for bid submission; prices taken YYYY-MM-DD |
Contents
1. Scope and traceability
| Item | Value |
|---|
| Solution scope | [Example: Customer self-service portal, CRM integration, identity federation] |
| Environments priced | [Example: PROD, DR (pilot light), DEV, SIT, UAT] |
| Horizon | [Example: Year 0 (4-month implementation, including 4 weeks of hypercare) and Years 1 to 3 of operation; Year 1 starts at the end of hypercare] |
| Sites or regions | [Example: One primary cloud region, one DR region] |
| Volume drivers | [Example: 20,000 monthly active users in Year 1, growing to 30,000 by Year 3; 30 million API requests per month] |
| Architecture component | HLD reference | BoM lines | Note |
|---|
| Portal services on containers (Example) | HLD 6.2 | BOM-CL-001, BOM-CL-101 | |
| Customer database (Example) | HLD 6.4 | BOM-SW-003, BOM-CL-002, BOM-CL-102, BOM-CL-201 | Open-source engine, managed service |
| API gateway (Example) | HLD 6.3 | BOM-CL-004 | |
| CRM connector (Example) | HLD 7.1 | BOM-SW-001 | |
| Customer identity (Example) | HLD 7.2 | BOM-SA-001 | |
| Logging and monitoring (Example) | HLD 9.3 | BOM-CL-006, BOM-CL-104, BOM-SA-002 | |
| Content delivery network (Example) | HLD 6.1 | None | Included in the customer's existing CDN contract; listed in section 11.2 |
2. Pricing basis
| Topic | Decision | Note |
|---|
| Pricing currency | [Example: USD] | Lines priced in another currency are converted at the rate below |
| Exchange rate | [Example: EUR 1 = USD 1.08, source and date] | Re-check before submission |
| Price concept used in totals | [Example: Effective cost] | See the definitions below |
| Taxes | [Example: Excluded; shown as ChargeCategory Tax only in the customer quote] | |
| Hours per month for hourly cloud prices | [Example: 730] | 8,760 hours per year divided by 12 |
| Price sources | [Example: Public cloud price calculator export dated YYYY-MM-DD; vendor quotes Q-201 and Q-202] | Attach in section 14.2 |
| Price escalation | [Example: Licence uplift 5% per year; cloud prices flat] | |
| Rounding | [Example: Unit prices as quoted; line and summary totals to two decimals] | |
Price concepts, after the FOCUS cost columns:
- List cost: list unit price multiplied by quantity, before any
negotiated or commitment discount. Use it to show savings.
- Contracted cost: contracted unit price (after negotiated discounts)
multiplied by quantity.
- Effective cost: the cost after all discounts, with prepaid
commitments spread over the periods they cover. Use it for budgets and
totals by year.
- Billed cost: what appears on the invoice for a billing period; it
differs from effective cost when commitments are paid up front.
3. Line item conventions
| Attribute | Values | Purpose |
|---|
| BoM ID | BOM-SW-NNN licences, BOM-CL-0NN production cloud, BOM-CL-1NN non-production cloud, BOM-CL-2NN DR cloud, BOM-SA-NNN SaaS, BOM-HW-NNN hardware, BOM-SP-NNN support, BOM-PS-NNN services | Stable reference |
| Service category | FOCUS ServiceCategory value, for example Compute, Databases, Storage, Networking, Identity, Management and Governance | Grouping that matches billing data |
| Charge category | Usage or Purchase (Tax, Credit and Adjustment appear only in billing) | Separates consumption from purchases |
| Charge frequency | One-Time, Recurring or Usage-Based | Feeds totals by year |
| Pricing category | Standard, Committed, Dynamic or Other | Shows which lines rely on commitments or variable rates |
| Pricing unit and driver | Unit and the design figure that sets the quantity | Makes the quantity reviewable |
| Included in services estimate | Yes or No | Prevents double counting with the effort estimate |
| Owner and payer | Who procures and who pays | Avoids gaps at handover |
4. Software licences
| BoM ID | Product and edition | Licence metric | Qty | Unit price (USD) | Term | Annual cost (USD) | Entitlement evidence | Licence notes |
|---|
| BOM-SW-001 (Example) | CRM integration connector, enterprise edition | Per runtime instance | 2 | 6,000 | Annual subscription | 12,000 | Order form OF-332 | One PROD and one non-PROD instance; DR use permitted on a cold standby |
| BOM-SW-002 (Example) | Test automation tool | Per named user | 4 | 1,050 | Annual subscription | 4,200 | Vendor quote Q-202 | Included in the services estimate (EST-001 NL-02); delivery period only |
| BOM-SW-003 (Example) | PostgreSQL database engine | Open source | 1 | 0 | Perpetual | 0 | SPDX identifier PostgreSQL | Run as a managed service; see BOM-CL-002 |
| [BOM-SW-NNN] | [Product] | [Per user / core / instance / tenant / revenue band] | [ ] | [ ] | [Term] | [ ] | [Contract, order, SPDX ID] | [Constraints] |
Licence checks before approval:
- Confirm the metric against the deployment design (cores, vCPUs,
instances, users) for every environment, including DR and test.
- Confirm rights for non-production, disaster recovery, failover and
cloud deployment; some licences need a separate entitlement for each.
- For open-source components, record the licence identifier and any
obligations (attribution, source offer, network use clauses) and
route copyleft licences to the Software Licence Review
(
compliance/software-licence-review).
- Record where the entitlement evidence is stored, so the IT asset
management process can reconcile deployment against entitlement.
5. Cloud services by environment
5.1 Production
| BoM ID | Service category | Resource | Pricing unit | Qty per month | List unit price (USD) | List cost per month (USD) | Sizing driver |
|---|
| BOM-CL-001 (Example) | Compute | Container nodes, 4 vCPU | Node-hour | 3 x 730 = 2,190 | 0.192 | 420.48 | 3 nodes across 3 zones, capacity plan CP-2.1 |
| BOM-CL-002 (Example) | Databases | Managed PostgreSQL, high availability | Instance-hour | 730 | 0.68 | 496.40 | 1 primary with synchronous standby |
| BOM-CL-003 (Example) | Storage | Object storage for attachments | GB-month | 2,000 | 0.023 | 46.00 | 1.2 million cases, average 1.66 MB attached (1,992 GB), rounded up to 2,000 GB |
| BOM-CL-004 (Example) | Networking | API gateway requests | Million requests | 30 | 3.50 | 105.00 | 30 million requests per month at Year 1 volume |
| BOM-CL-005 (Example) | Networking | Internet data transfer out | GB | 1,500 | 0.09 | 135.00 | Average 50 KB per response |
| BOM-CL-006 (Example) | Management and Governance | Log and metric ingestion | GB | 300 | 0.50 | 150.00 | Logging standard, 30-day retention |
| Production total | | | | | | 1,352.88 | |
5.2 Non-production
| BoM ID | Service category | Resource | Pricing unit | Qty per month | List unit price (USD) | List cost per month (USD) | Sizing driver |
|---|
| BOM-CL-101 (Example) | Compute | Container nodes, scheduled 50% of hours | Node-hour | 2 x 365 = 730 | 0.192 | 140.16 | DEV, SIT and UAT share one cluster; off outside working hours |
| BOM-CL-102 (Example) | Databases | Managed PostgreSQL, single zone | Instance-hour | 730 | 0.34 | 248.20 | Masked copy of production data |
| BOM-CL-103 (Example) | Storage | Object storage | GB-month | 500 | 0.023 | 11.50 | Subset of attachments |
| BOM-CL-104 (Example) | Management and Governance | Log and metric ingestion | GB | 100 | 0.50 | 50.00 | 7-day retention |
| Non-production total | | | | | | 449.86 | |
5.3 Disaster recovery
| BoM ID | Service category | Resource | Pricing unit | Qty per month | List unit price (USD) | List cost per month (USD) | Sizing driver |
|---|
| BOM-CL-201 (Example) | Databases | Cross-region read replica | Instance-hour | 730 | 0.34 | 248.20 | Pilot light, RPO 15 minutes |
| BOM-CL-202 (Example) | Storage | Replicated object storage | GB-month | 2,000 | 0.023 | 46.00 | Full copy of attachments |
| DR total | | | | | | 294.20 | |
Example summary: total list cost per month is 1,352.88 + 449.86 +
294.20 = USD 2,096.94, or USD 25,163.28 per year before discounts.
Compute for DR is not priced: the DR plan starts containers from images
during an invocation, so the cost appears only when DR is used. State
that assumption explicitly (section 11.1).
6. SaaS and third-party services
| BoM ID | Service | Tier and metric | Year 1 qty | Unit price (USD) | Year 1 (USD) | Year 2 (USD) | Year 3 (USD) | Growth assumption |
|---|
| BOM-SA-001 (Example) | Customer identity service | Per monthly active user per month | 20,000 MAU | 0.015 | 3,600 | 4,500 | 5,400 | 25,000 MAU in Year 2, 30,000 in Year 3 |
| BOM-SA-002 (Example) | Error tracking | Team plan, per month | 1 | 26 | 312 | 312 | 312 | Flat |
| BOM-SA-003 (Example) | Transactional email | Plan up to 50,000 emails per month | 1 | 20 | 240 | 240 | 240 | Flat while under 50,000 per month |
| Total | | | | | 4,152 | 5,052 | 5,952 | |
7. Hardware and network
| BoM ID | Item | Qty | Unit price (USD) | One-time (USD) | Delivery terms | Lead time | Warranty |
|---|
| BOM-HW-001 (Example) | Hardware security keys for administrators | 10 | 55 | 550 | Incoterms 2020 DAP, customer site | 2 weeks | 1 year |
| [BOM-HW-NNN] | [Item] | [ ] | [ ] | [ ] | [Incoterms rule, place] | [ ] | [ ] |
Network items that are services (private links, VPN, DNS) belong in
section 5; record here only physical equipment.
8. Support and managed services
| BoM ID | Support line | Coverage | Basis | Annual cost (USD) | Starts | Note |
|---|
| BOM-SP-001 (Example) | Cloud provider support plan | Business hours plus 24x7 for critical cases | Fixed monthly fee 250 | 3,000 | Start of Year 1 | Check the provider's current plan terms; many plans are a percentage of spend |
| BOM-SP-002 (Example) | CRM connector vendor support | Included in BOM-SW-001 | Included | 0 | Contract start | Severity 1 response within 4 hours |
| BOM-SP-003 (Example) | Application management service from the integrator | Incident, problem and minor change, business hours | Fixed monthly fee 3,500 | 42,000 | Start of Year 1 (end of hypercare) | Service levels in the SLA (ops/service-level-agreement) |
9. Professional services
| BoM ID | Service | Source | Price (USD) | Charge frequency | Included in services estimate |
|---|
| BOM-PS-001 (Example) | Implementation services, fixed price | EST-001 v1.0, section 9.4 indicative price | 485,553 | One-Time | Not applicable: this line is the estimate |
| BOM-PS-002 (Example) | Independent penetration test | Test provider quote, carried as EST-001 NL-04 | 12,000 | One-Time | Yes: not added again to totals |
| [BOM-PS-NNN] | [Service] | [Source] | [ ] | [ ] | [Yes / No] |
The implementation price BOM-PS-001 already contains the delivery-period
costs of non-production cloud (BOM-CL-101 to BOM-CL-104 for 4 months,
EST-001 NL-01), production and DR cloud from go-live to the end of
hypercare (BOM-CL-001 to BOM-CL-006, BOM-CL-201 and BOM-CL-202 for 1
month, EST-001 NL-05), the test tool (BOM-SW-002), travel and the
penetration test. Section 12 therefore starts those lines in Year 1
only, or not at all, and shows 0.00 for cloud in Year 0.
10. Discounts, commitments and credits
| Line | Mechanism | Pricing category | Commitment category | Term | List cost per year (USD) | Saving per year (USD) | Effective cost per year (USD) |
|---|
| BOM-CL-001 (Example) | 1-year compute commitment, 30% below list | Committed | Usage (fixed node-hours) | 12 months, renewed yearly | 420.48 x 12 = 5,045.76 | 5,045.76 x 0.30 = 1,513.73 | 3,532.03 |
| Production cloud total (Example) | Commitment on BOM-CL-001 only | Standard and Committed | | | 1,352.88 x 12 = 16,234.56 | 1,513.73 | 14,720.83 |
| [Line] | [Negotiated discount / Commitment / Promotional credit] | [ ] | [Spend / Usage] | [ ] | [ ] | [ ] | [ ] |
Commitment rules: [Example: commit only to the steady-state baseline of
3 nodes; scale-out capacity stays at list price; review utilisation
monthly in the FinOps Cost Review (ops/finops-cost-review)]. Credits
(promotional or migration credits) are shown here as a note and are not
deducted from totals unless they are contracted.
11. Pricing assumptions, exclusions and validity
11.1 Assumptions
| ID | Assumption | Lines affected | Owner | Confirm by |
|---|
| PRA-001 (Example) | Volumes follow the capacity plan Year 1 profile; growth only in identity users | BOM-CL-004, BOM-SA-001 | Product owner | YYYY-MM-DD |
| PRA-002 (Example) | DR compute is started only during an invocation or test | None priced (DR compute excluded; see the note under 5.3). BOM-CL-201 and BOM-CL-202 run all the time | Platform lead | YYYY-MM-DD |
| PRA-003 (Example) | Connector licence uplift is capped at 5% per year in the order form | BOM-SW-001 | Procurement | YYYY-MM-DD |
| PRA-004 (Example) | Prices are taken from the public price list of the primary region on YYYY-MM-DD | Section 5 | Solution architect | YYYY-MM-DD |
11.2 Exclusions
[List what is not priced and who carries it.] Example: content delivery
network (existing customer contract), CRM licences (customer), taxes and
duties, cost of DR invocation, end-user devices, internet connectivity at
customer sites, translation services.
11.3 Validity
| Item | Value |
|---|
| Price validity | Example: 60 days from YYYY-MM-DD |
| Vendor quote expiry | Example: Q-201 on YYYY-MM-DD, Q-202 on YYYY-MM-DD |
| Exchange rate re-check | Example: At submission and at contract signature; re-price if the rate moves more than 3% |
| Re-pricing triggers | Example: Design change, volume change above 10%, quote expiry, provider price change |
12. Totals by year
| Category | Year 0 (USD) | Year 1 (USD) | Year 2 (USD) | Year 3 (USD) | Total (USD) |
|---|
| Professional services, BOM-PS-001 | 485,553.00 | 0.00 | 0.00 | 0.00 | 485,553.00 |
| Hardware, BOM-HW-001 | 550.00 | 0.00 | 0.00 | 0.00 | 550.00 |
| Software licences, BOM-SW-001 | 0.00 | 12,000.00 | 12,600.00 | 13,230.00 | 37,830.00 |
| Cloud production, effective (section 10) | 0.00 | 14,720.83 | 14,720.83 | 14,720.83 | 44,162.49 |
| Cloud non-production | 0.00 | 5,398.32 | 5,398.32 | 5,398.32 | 16,194.96 |
| Cloud DR | 0.00 | 3,530.40 | 3,530.40 | 3,530.40 | 10,591.20 |
| SaaS and third-party services | 0.00 | 4,152.00 | 5,052.00 | 5,952.00 | 15,156.00 |
| Support and managed services | 0.00 | 45,000.00 | 45,000.00 | 45,000.00 | 135,000.00 |
| Total (Example) | 486,103.00 | 84,801.55 | 86,301.55 | 87,831.55 | 745,037.65 |
Example checks: Year 1 is 12,000.00 + 14,720.83 + 5,398.32 + 3,530.40
- 4,152.00 + 45,000.00 = 84,801.55. Year 2 adds the connector uplift
(600.00) and identity growth (900.00) to Year 1. The run cost over Years
1 to 3 is 258,934.65, so operations add about 53% (258,934.65 /
485,553) to the implementation price over three years, a ratio worth
showing to the customer early. Cloud in Year 0 is 0.00 because the
delivery-period cloud is inside BOM-PS-001 (section 9).
13. Ownership, renewals and change control
| BoM ID | Contract holder | Payer | Renewal or end date | Notice period | Asset register entry |
|---|
| BOM-SW-001 (Example) | Customer | Customer | YYYY-MM-DD, annual | 60 days | ITAM-SW-0412 |
| BOM-CL-001 commitment (Example) | Customer cloud account | Customer | YYYY-MM-DD, annual | Not cancellable | Cloud commitment register |
| BOM-SA-001 (Example) | Customer | Customer | YYYY-MM-DD, annual | 30 days | ITAM-SA-0077 |
| BOM-SP-003 (Example) | Customer with integrator | Customer | End of Year 3 | 90 days | Supplier register |
Change control: [Example: any change to quantities, tiers or prices
after approval is made in a new BoM version, with the change summarised in
the revision history and the totals in section 12 recomputed; the
commercial lead decides whether the change affects the offer].
14. Glossary and references
14.1 Glossary
| Term | Meaning in this template |
|---|
| Bill of materials | Complete list of the products and services a solution needs, with quantities and prices |
| Licence metric | Unit by which a licence is counted, such as user, core, instance or revenue band |
| Entitlement | Right to use software, proved by a contract, order or licence key |
| List cost | List unit price times quantity, before discounts |
| Effective cost | Cost after discounts, with prepaid commitments spread over the periods they cover |
| Commitment discount | Lower price in exchange for committing to a spend or usage level for a term |
| Pilot light | DR pattern where data is replicated but compute is started only when needed |
| Incoterms rule | Trade term that allocates delivery, risk and cost between seller and buyer |
14.2 References
| Reference | Version or date checked | Use |
|---|
| FinOps Open Cost and Usage Specification (FOCUS), focus.finops.org and github.com/FinOps-Open-Cost-and-Usage-Spec | Version 1.4, ratified 4 June 2026; CC BY 4.0 | Cost column concepts and allowed values for charge, pricing and service categories |
| ISO/IEC 19770-1:2017, IT asset management systems, iso.org | Edition 3 (2017), with Amendment 1:2024; check the current status at iso.org | Entitlement and asset register expectations (structure only) |
| ICC, Incoterms 2020 rules, iccwbo.org | 2020 edition | Delivery terms for hardware |
| SPDX License List, spdx.org/licenses | Current list at date checked | Open-source licence identifiers |
| [Cloud price calculator export] | [Date] | Section 5 |
| [Vendor quotes] | [Quote IDs and dates] | Sections 4, 6, 7 |
Standard and licence note
Based on the FinOps Open Cost and Usage Specification (FOCUS) 1.4,
published by the FOCUS project (a Joint Development Foundation project,
supported by the FinOps Foundation) under the Creative Commons
Attribution 4.0 licence: the column
names ListCost, ContractedCost, EffectiveCost and BilledCost and the
allowed values of ChargeCategory, ChargeFrequency, PricingCategory,
CommitmentDiscountCategory and ServiceCategory are used with
attribution, and their descriptions are paraphrased in original words.
Structure also aligned with the entitlement and asset register concepts
of ISO/IEC 19770-1:2017, a copyrighted standard of which only the number
and concepts are used. Incoterms is a registered trademark of the
International Chamber of Commerce. All other text and worked figures are
original and illustrative; prices in the example are not real offers.
Check the current FOCUS release and standard editions before use.
Template licence: MIT.