Files
oci-deal-accelerator/templates/bom-spec.yaml
root 874d40d38a
All checks were successful
Deploy Skill to OCI / deploy (push) Successful in 21s
Improve SKU catalog hygiene and BOM accuracy
- refresh_sku_catalog.py: add --discover to report API SKUs missing from
  catalog, filtered to already-curated serviceCategory values. Auto-runs
  at end of --validate and --refresh so gaps surface on every maintenance
  pass. First run found 162 missing SKUs (Blackwell GPUs, X12 Ax compute,
  VMware reserved tiers, WebLogic-on-OKE, Analytics/OIC BYOL).
- oci_bom_gen.py: fix Cost % column being blank. Back-fill was gated on
  formula detection but data rows write raw numbers, so the predicate
  never matched. Now tracks data_item_rows explicitly.
- .gitea/workflows/sku-catalog-refresh.yaml: monthly automation (1st at
  09:00 UTC). Auto-refresh prices → push branch + open PR; detect new
  SKUs → open issue with labels. Gated on secrets.GITEA_TOKEN.
- kb/pricing/oci-sku-catalog.yaml: add B95714 / B95715 (Autonomous ATP
  Dedicated ECPU, LI + BYOL) — canonical SKUs for ADB-D pricing.
- kb/services/compute.yaml: add X12 family (VM.Standard4.Ax.Flex,
  BM.Standard4.Ax.120), E6.Ax and A4.Ax variants. Verified against
  docs.oracle.com computeshapes.htm. Bump last_verified + changelog.
- templates/bom-spec.yaml: document 730 hrs/month convention as default
  (= real annual billing / 12; 744 overstates by 1.92% on 12-month TCO).
- Makefile: new 'make sku-discover' target.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:40:53 -03:00

52 lines
3.1 KiB
YAML

# ──────────────────────────────────────────────────────────────────
# OCI Bill of Materials (BOM) — Spec Template
# ──────────────────────────────────────────────────────────────────
# The AI generates this YAML based on the customer's request,
# selecting only the relevant SKUs from kb/pricing/oci-sku-catalog.yaml.
# The BOM generator tool (tools/oci_bom_gen.py) renders it to .xlsx.
#
# Usage:
# python tools/oci_bom_gen.py --spec this-file.yaml --output bom.xlsx
bom:
# ── Header ──────────────────────────────────────────────────────
customer_name: ""
project_name: ""
prepared_by: ""
date: "" # ISO format: 2026-03-27
reference_label: "" # e.g., "ACME-BOM-001"
currency: USD # Primary currency
# realm: "OC1 - Commercial" # Optional: OC1 / OC2 / OC3 / OC9
# service_type: "Pay as You Go" # Optional: PAYG / UCM / Annual Flex
# ── Optional currency conversion ────────────────────────────────
# Enable to add converted columns (e.g., USD → BRL with tax)
conversion:
enabled: false
target_currency: BRL
exchange_rate: 5.75 # 1 USD = X target currency
tax_rate: 0.0 # e.g., 0.1385 for 13.85% ISS+PIS+COFINS
# ── Line items (only requested services) ────────────────────────
# Each item must reference a SKU from oci-sku-catalog.yaml.
# Only include services the customer actually needs.
line_items:
- sku: "B97384" # Must match oci-sku-catalog.yaml
qty: 4 # Number of instances/units
# hours_units: 730 # Override catalog default if needed
months: 12 # Contract duration
discount: 0.0 # 0.0 to 1.0 (e.g., 0.30 = 30%)
# custom_label: "" # Optional label
# custom_note: "" # Optional note
- sku: "B97385"
qty: 64 # 64 GB memory
months: 12
discount: 0.0
# ── Notes (optional) ────────────────────────────────────────────
notes:
- "Pricing based on Ashburn region (OC1)"
- "Discounts subject to Oracle approval"
- "Hours convention — 730 vs 744: this BOM uses 730 hrs/month (= 8,760 annual hrs / 12), which equals the actual yearly OCI billing for hourly SKUs. OCI Cost Estimator defaults to 744 hrs/month (worst-case 31-day month); extrapolated to 12 months, 744 overstates the real annual cost by 1.92%. For 12-month TCO/proposals, 730 is the accurate figure; 744 is only appropriate when quoting a single peak month as an upper bound."