Tutorial: ROI Analysis
Use the ROI Engine™ to estimate quantum computing costs, compare providers, run multi-scenario analyses, and generate billing reports.
Time: 10 minutes · Prerequisites: API key configured
Step 1 — List Providers and Pricing
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
from softqcos_sdk import QCOSClient
client = QCOSClient()
providers = client.billing.providers()
for p in providers:
print(f"{p['name']:15s} | {p['status']:10s} | Backends: {p['num_backends']}")
# Full pricebook
pricebook = client.billing.pricebook()
for entry in pricebook["entries"][:10]:
print(f" {entry['backend']:25s} | ${entry['price_per_shot']:.6f}/shot")
softqcos billing providers
softqcos billing pricebook
Step 2 — Estimate Job Cost
estimate = client.billing.calculate(
provider="ibm",
backend="ibm_brisbane",
shots=10000,
circuits=5
)
print(f"Provider: {estimate['provider']}")
print(f"Backend: {estimate['backend']}")
print(f"Shots: {estimate['shots']:,}")
print(f"Circuits: {estimate['circuits']}")
print(f"Total cost: ${estimate['total_cost']:.4f}")
print(f"Cost per shot: ${estimate['cost_per_shot']:.6f}")
softqcos billing calculate \
--provider ibm \
--backend ibm_brisbane \
--shots 10000 \
--circuits 5
Step 3 — Multi-Scenario Analysis
Compare costs across backends and shot counts:
scenarios = client.billing.scenarios(
backends=["ibm_brisbane", "ionq_harmony", "rigetti_aspen"],
shots=[1000, 10000, 100000],
circuits=5
)
print(f"{'Backend':25s} | {'Shots':>10s} | {'Cost':>10s}")
print("-" * 55)
for s in scenarios:
print(f"{s['backend']:25s} | {s['shots']:>10,} | ${s['total_cost']:>9.4f}")
softqcos billing scenarios \
--backends ibm_brisbane,ionq_harmony,rigetti_aspen \
--shots 1000,10000,100000 \
--circuits 5
Step 4 — Compare All Providers
Quick comparison at a fixed shot count:
comparison = client.billing.compare_providers(shots=10000)
print("Provider Comparison (10,000 shots):")
print(f"{'Provider':15s} | {'Cheapest':25s} | {'Cost':>10s}")
print("-" * 55)
for c in comparison["providers"]:
print(f"{c['provider']:15s} | {c['cheapest_backend']:25s} | ${c['min_cost']:>9.4f}")
softqcos billing compare --shots 10000
Step 5 — Generate Reports
# PDF Report
pdf = client.billing.report_pdf(
provider="ibm",
backend="ibm_brisbane",
shots=10000,
circuits=5
)
with open("roi_report.pdf", "wb") as f:
f.write(pdf)
# LaTeX Report
latex = client.billing.report_latex(
provider="ibm",
backend="ibm_brisbane",
shots=10000,
circuits=5
)
with open("roi_report.tex", "w") as f:
f.write(latex)
# JSON data (for custom reports)
data = client.billing.report_data(
provider="ibm",
backend="ibm_brisbane",
shots=10000,
circuits=5
)
softqcos billing report ibm_brisbane --format pdf --output roi_report.pdf
softqcos billing report ibm_brisbane --format latex --output roi_report.tex
softqcos billing report ibm_brisbane --format json
Step 6 — Macro-Level Analysis
Use Quantum Macro™ for strategic ROI analysis:
# Market sizing (TAM/SAM)
market = client.macro.market_sizing(industry="finance")
print(f"TAM: ${market['tam']:,.0f}")
print(f"SAM: ${market['sam']:,.0f}")
print(f"Growth rate: {market['growth_rate']:.1f}%")
# Energy optimization
energy = client.macro.energy_optimize(backend="ibm_brisbane")
print(f"Energy per job: {energy['kwh_per_job']:.4f} kWh")
print(f"Savings vs classical: {energy['savings_pct']:.1f}%")
# Risk analysis
risk = client.macro.risk_analysis(investment=100000)
print(f"ROI score: {risk['roi_score']:.2f}")
print(f"Risk level: {risk['risk_level']}")
print(f"Payback period: {risk['payback_months']} months")
What's Next?
- Benchmark a Backend — Performance meets cost
- Your First Quantum Job — Start running jobs
- Billing API Reference — All methods