Skip to Content
GuideCost MonitoringSaving Report

Saving Report

Saving Report shows how your cluster’s current operating profile compares with a baseline: the initial snapshot captured after onboarding, a saved default range, or a range you select for the report.

Saving Report compares:

  • The effective baseline, identified by the report’s baseline description
  • A current time range that you select from the page header

This report is designed to answer three questions:

  • How much would the current workload likely cost under the baseline provisioning pattern?
  • Are workloads using a larger share of their requested CPU and Memory than before?
  • How much have cluster size, workload requests, and per-core cost changed since the baseline?

Access Saving Report

  1. Open the target cluster in the CloudPilot AI console.
  2. In the left navigation, go to Cost Monitoring > Saving Report.
  3. Use the date picker in the top-right corner to choose the current comparison period.
  4. Where available, use Choose baseline to compare against another period. Applying it changes the current report; Set as default for this cluster also changes the setting used for subsequent reports.
  5. Optionally click Export PDF to download the report.

Data Availability and Baseline Behavior

Availability depends on the cluster’s provider, deployed version, and report data. Check whether Console exposes Saving Report and whether get_cluster_overview reports the capability; do not infer availability from the existence of a report API alone.

The report needs usable metrics for the effective baseline, not necessarily an initial snapshot. If baseline resource metrics are not available yet, the UI shows Baseline data pending. A range without recorded metrics is not a zero-cost baseline.

Current values are not point-in-time readings. They are averages across the selected time range. With an initial baseline, baseline values come from the stored snapshot. With a range baseline, they are averages across the baseline range. Confirm the returned baseline mode and dates before comparing reports.

Current monthly cost normally comes from the selected range’s average hourly cost. If that query fails or produces a nonpositive average, the server can fall back to the cluster cost summary’s monthly cost. Do not assume every displayed cost is backed by a complete historical series.

The initial baseline snapshot is taken after CloudPilot AI is installed on the cluster. An explicitly selected baseline range takes precedence over a saved default range; without either, the report uses the initial snapshot. For MCP arguments, precedence, and missing-data behavior, see the Saving Report reference.

Feature Breakdown

Comparison Table

The current Console shows a monthly outcome and compares six metrics between Without optimization (the effective baseline) and With optimization (the current period):

MetricInterpretation
Monthly costMonthly savings or increase using the selected display basis described below.
CPU utilizationUsed CPU divided by requested CPU.
Memory utilizationUsed Memory divided by requested Memory.
Cost per CPUCost per provisioned core-hour.
Provisioned CPUBaseline and current CPU capacity, in cores.
Provisioned memoryBaseline and current Memory capacity, in GiB.

The API and MCP also expose Provisioned, Requested, and Used values for both resources.

  • Provisioned is total node capacity.
  • Requested is the sum of pod resource requests.
  • Used is actual measured resource consumption.
  • Utilization is always Used / Requested.

A smaller gap between provisioned, requested, and used values usually indicates better sizing and less waste.

Raw cluster-cost growth and provisioned-capacity growth remain useful when interpreting the report, but are not additional cards in the current comparison-table layout. Compare requested CPU and Memory separately to understand workload-demand changes. Older Console versions can present these metrics differently.

Understanding the Calculations

Input Values

Saving Report combines two kinds of inputs:

  • A stored initial baseline snapshot or averages across the effective baseline range
  • Current averages calculated over the selected time range

The report uses the following values:

Value groupMeaning
Baseline provisioned CPU / MemoryNode capacity from the initial snapshot or average across the baseline range
Baseline requested CPU / MemoryWorkload requests from the initial snapshot or average across the baseline range
Baseline used CPU / MemoryMeasured usage from the initial snapshot or average across the baseline range
Baseline monthly costStored monthly baseline cost, or average baseline hourly cost converted to monthly cost
Current provisioned CPU / MemoryAverage provisioned capacity across the selected range
Current requested CPU / MemoryAverage workload requests across the selected range
Current used CPU / MemoryAverage measured usage across the selected range
Current monthly costAverage hourly cluster cost converted to monthly cost, with the summary fallback described above

Resource Utilization

CPU and Memory utilization are calculated independently on the server:

baselineCPUUtilization = baselineUsedCPU / baselineRequestedCPU currentCPUUtilization = currentUsedCPU / currentRequestedCPU baselineMemUtilization = baselineUsedMemory / baselineRequestedMemory currentMemUtilization = currentUsedMemory / currentRequestedMemory

The CPU and Memory comparison rows use these direct ratios.

The server also calculates the per-resource improvement values:

cpuUtilImprovement = currentCPUUtilization - baselineCPUUtilization memUtilImprovement = currentMemUtilization - baselineMemUtilization

Total Cost Savings

The modeled savings calculation answers a specific question:

What would the current workload likely cost if the cluster were running with the baseline provisioning behavior?

The server first estimates how much CPU would have been provisioned under the baseline request-to-provisioning ratio:

initialRatioCPU = baselineProvisionedCPU / baselineRequestedCPU estimatedOriginalProvisionedCPU = currentRequestedCPU * initialRatioCPU

It then calculates the baseline cost per provisioned CPU core-hour:

costPerCPUBaseline = baselineCostPerMonth / baselineProvisionedCPU / MonthInHours costPerCPUCurrent = currentCostPerMonth / currentProvisionedCPU / MonthInHours

Using that baseline per-core cost, the server considers both the estimated capacity and the current provisioned capacity, then uses the larger modeled cost:

costFromEstimate = estimatedOriginalProvisionedCPU * costPerCPUBaseline * MonthInHours costFromCurrentProvision = currentProvisionedCPU * costPerCPUBaseline * MonthInHours estimatedOriginalCost = max(costFromEstimate, costFromCurrentProvision) costSavingsAmount = estimatedOriginalCost - currentCostPerMonth costSavingsPercent = costSavingsAmount / estimatedOriginalCost

These calculations require valid positive inputs. A missing baseline or unavailable cost must not be interpreted as proven zero spend or zero savings.

The Console can use a different display basis: if the raw baseline monthly cost is positive and its direct cost reduction is positive with a higher savings ratio than the modeled ratio, the Console uses that raw cost difference instead. Otherwise it uses the modeled result above. MCP exposes the selected display basis in data.consoleSavings.source (cluster_cost or estimated_original_cost). The legacy data.savings fields remain modeled values; do not mix the two bases in one explanation.

Savings per CPU

The Cost per CPU row compares baseline and current cost per provisioned CPU core-hour:

costPerCPUBaseline = baselineCostPerMonth / baselineProvisionedCPU / MonthInHours costPerCPUCurrent = currentCostPerMonth / currentProvisionedCPU / MonthInHours costPerCPUSavingsPercent = (costPerCPUBaseline - costPerCPUCurrent) / costPerCPUBaseline

A lower current value means each unit of provisioned compute is cheaper than it was at the baseline.

Cluster Cost

The raw cluster-cost growth metric uses the baseline monthly cost and the current monthly cost, independently of the Console savings display basis:

costGrowthRate = (currentCostPerMonth - baselineCostPerMonth) / baselineCostPerMonth

A negative value means the cluster is currently spending less than it was at the baseline.

Cluster Growth Rate

The returned provisioned-capacity growth rate is CPU-based:

provisionedCPUGrowthRate = (currentProvisionedCPU - baselineProvisionedCPU) / baselineProvisionedCPU

Memory provisioned values provide separate supporting context; this rate is derived from CPU.

Reading the Numbers

  • A positive savings amount is shown as savings; a negative amount is shown as additional monthly cost. The outcome badge says savings, increase, or No change, rather than relying on an unexplained sign.
  • CPU and Memory utilization impacts are differences in ratios, displayed as percentage-point changes; cost-reduction percentages are relative changes. They are not interchangeable.
  • More provisioned capacity can reflect workload growth rather than a loss of efficiency. Compare Requests, Used resources, and cost per CPU before attributing a change to optimization.
Last updated on