Appearance

# Resources Forecast Object Reference

This **ResourcesForecast** object is a collection of time-series forecasts for resources and their key performance metrics with respect to the selected **SimulationType** property value.

INFO

Time-series intervals may vary in duration. Values that rely on calculated averages are time-weighted to account for different durations.

## Financial Kpi

This **FinancialKpi** object contains financial key performance indicators.

json

```
{
"Kratio": 2.85,
"KratioShift": false,
"AvgServerQty": 163.7,
"AvgProcessorQty": 327.4,
"AvgCoreQty": 3230.2,
"NominalPerServerUnitCost": 24491.5,
"NominalPerProcessorUnitCost": 12245.8,
"NominalPerCoreUnitCost": 1241.2,
"TotalCost": 20326958,
"TotalCostPerYear": 4009262
}
```

#### Attributes

##### Kratio - numeric

###### Ratio of software, power and facility resource costs to server cost, calculated using interval duration weighting.

TIP

When the **SimulationType** selected is 'OptimalYield', this **Kratio** property value *is* the optimal Kratio (i.e., the optimal resource mix) for the entire time-series.

##### KratioShift - boolean

###### A flag to identify the Kratio incurred a linear shift caused by a Performance Jump Event.

##### AvgServerQty - numeric

###### Average Server quantity for entire time-series based on interval duration weighting.

##### AvgProcessorQty - numeric

###### Average Processor quantity for entire time-series based on interval duration weighting.

##### AvgCoreQty - numeric

###### Average Core quantity for entire time-series based on interval duration weighting.

##### NominalPerServerUnitCost - numeric

###### Calculated cost per server calculated as: Annualized Total Cost / Average Server Quantity.

##### NominalPerProcessorUnitCost - numeric

###### Calculated cost per processor calculated as: Annualized Total Cost / Average Processor Quantity.

##### NominalPerCoreUnitCost - numeric

###### Calculated cost per core calculated as: Annualized Total Cost / Average Server Quantity.

##### TotalCost - integer

###### Total cumulative cost for entire time-series.

##### TotalCostPerYear - integer

###### Annualized Total Cost calculated as: Total Cost / Time-series duration

## Financial Summary Item

This **FinancialSummaryItem** object contains resource costs of an time-interval within a time-series result.

json

```
{
"IntervalNbr": 5,
"AbsTimeStart": 0.89,
"AbsTimeEnd": 1,
"ServerIncCost": 0,
"PerpetualLicenseIncCost": 114901,
"SupportIncCost": 151406,
"SubscriptionIncCost": 121335,
"PowerIncCost": 5704,
"FacilityIncCost": 9679,
"TotalIncCost": 403025,
"ServerCumCost": 0,
"PerpetualLicenseCumCost": 202693,
"SupportCumCost": 1359030,
"SubscriptionCumCost": 1129197,
"PowerCumCost": 57983,
"FacilityCumCost": 94467,
"TotalCumCost": 2843370,
"TotalPerYearCumCost": 2843370,
"TotalPerCapacityCumCost": 247,
"TotalPerYearPerCapacityCumCost": 247,
"Kratio": null
}
```

#### Attributes

##### IntervalNbr - integer

###### Interval number within time-series.

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### ServerIncCost - integer

###### Net incremental cost of server additions and removals, plus residual value, for interval.

##### PerpetualLicenseIncCost - integer

###### Incremental cost for new perpetual licenses added in interval.

##### SupportIncCost - integer

###### Ongoing support cost for perpetual licenses for interval.

##### SubscriptionIncCost - integer

###### Current subscription license costs for interval.

##### PowerIncCost - integer

###### Power consumption costs for interval.

##### FacilityIncCost - integer

###### Facility space consumption for interval.

##### TotalIncCost - integer

###### Sum of all incremental cost for interval.

##### ServerCumCost - integer

###### Cumulative of server incremental cost for all prior intervals plus current interval.

##### PerpetualLicenseCumCost - integer

###### Cumulative of perpetual incremental cost for all prior intervals plus current interval.

##### SupportCumCost - integer

###### Cumulative of support incremental cost, for perpetual licenses, for all prior intervals plus current interval.

##### SubscriptionCumCost - integer

###### Cumulative of subscription incremental cost for all prior intervals plus current interval.

##### PowerCumCost - integer

###### Cumulative of power incremental cost for all prior intervals plus current interval.

##### FacilityCumCost - integer

###### Cumulative of facility space incremental cost for all prior intervals plus current interval.

##### TotalCumCost - integer

###### Sum of all cumulative costs for all prior intervals plus current interval.

##### TotalPerYearCumCost - integer

###### Sum of all cumulative costs divided by current interval's absolute time end.

##### TotalPerCapacityCumCost - integer

###### Sum of all cumulative costs divided by current interval's total scalar capacity rating per **CapacityCum** property of **HardwareSummary** object.

##### TotalPerYearPerCapacityCumCost - integer

###### Sum of all cumulative costs divided by current interval's absolute time end and divided by current interval's total scalar capacity rating.

##### Kratio - numeric

###### Sum of all software, power and facility cumulative cost divided by server cumulative cost. Value is null if server cumulative cost is zero.

## Hardware Kpi

This **HardwareKpi** object contains hardware key performance indicators.

json

```
{
"PerformanceCaptureYield": 0.98,
"ServerAverageAge": 1.78,
"ServerAverageRemovalAge": 4.56,
"AnnualRemovalPercent": 0.2,
"AnnualAddPercent": 0.2,
"MaxServerQty": 244,
"MaxServerQtyTime": 4.86,
"MaxProcessorQty": 488,
"MaxProcessorQtyTime": 4.86,
"MaxCoreQty": 4880,
"MaxCoreQtyTime": 4.86
}
```

#### Attributes

##### EfficiencyCaptureYield - numeric

###### Indicator of server 'freshness' relative to the current market performance rating.

TIP

Why is 'freshness' an important metric? Because operating server inventory for too long incurs both technology currency and financial opportunity costs.

Currency refers to how 'current' or accepted as up-to-date. For example, the server may no longer be supported by its vendor.

Financial opportunity cost corresponds to how a less efficient or performant server causes unnecessarily higher consumption rates for other resources, which often far exceed the purchase cost of new, more efficient or performant server.

##### ServerAverageAge - numeric

###### Weighted-average age of server inventory.

##### ServerAverageRemovalAge - numeric

###### Weighted-average age of servers removed from inventory.

##### AnnualRemovalPercent - numeric

###### Annualized percent of servers removed from inventory.

##### AnnualAddPercent - numeric

###### Annualized percent of servers added to inventory.

##### MaxServerQty - integer

###### Peak quantity of servers in time-series.

##### MaxServerQtyTime - integer

###### Time (years) when peak quantity of servers was first reached.

##### MaxProcessorQty - integer

###### Peak quantity of processors in time-series.

##### MaxProcessorQtyTime - numeric

###### Time (years) when peak quantity of processors was first reached.

##### MaxCoreQty - integer

###### Peak quantity of cores in time-series.

##### MaxCoreQtyTime - numeric

###### Time (years) when peak quantity of cores was first reached.

## Hardware Summary Item

This **HardwareSummaryItem** object contains server inventory of an time-interval within a time-series result.

json

```
{
"IntervalNbr": 11,
"AbsTimeStart": 1.88,
"AbsTimeEnd": 2,
"DemandStart": 8775,
"DemandDelta": 195,
"DemandEnd": 8970,
"UtilizationStart": 63.587,
"UtilizationEnd": 65,
"RackIncQty": null,
"ServerIncQty": 3,
"ProcessorIncQty": 6,
"CoreIncQty": 60,
"CapacityInc": 300,
"RackCumQty": null,
"ServerCumQty": 138,
"ProcessorCumQty": 276,
"CoreCumQty": 2760,
"CapacityCum": 13800,
"CapacityPerServer": 100,
"CapacityPerProcessor": 50,
"CapacityPerCore": 5,
"ServerAvgAge": 1.25,
"ServerAvgRemovalAge": 4.01,
"TransactionPercentAdd": 1,
"TransactionPercentRemove": 1,
"PerformanceCaptureYield": 1
}
```

#### Attributes

##### IntervalNbr - integer

###### Interval number within time-series.

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### DemandStart - numeric

###### Scalar value for demand at interval start.

##### DemandDelta - numeric

###### This interval's incremental scalar value for demand.

##### DemandEnd - numeric

###### Scalar value for demand at interval end.

##### UtilizationStart - numeric

###### Pool utilization rate at interval start.

##### UtilizationEnd - numeric

###### Pool utilization rate at interval end.

##### RackIncQty - integer

###### Incremental change to pool's rack quantity. Only valid if **LotType** property in **LotConfiguration** object is set to 'Rack'. If not, value is null.

##### ServerIncQty - integer

###### Incremental change to pool's server quantity.

##### ProcessorIncQty - integer

###### Incremental change to pool's processor quantity.

##### CoreIncQty - integer

###### Incremental change to pool's core quantity.

##### CapacityInc - integer

###### Incremental change to pool's aggregate performance rating (aka Capacity).

##### RackCumQty - integer

###### Cumulative quantity of racks in pool.

##### ServerCumQty - integer

##### Cumulative quantity of servers in pool.

##### ProcessorCumQty - integer

###### Cumulative quantity of processors in pool.

##### CoreCumQty - integer

###### Cumulative quantity of cores in pool.

##### CapacityCum -integer

###### Cumulative capacity of pool.

##### CapacityPerServer - numeric

###### Capacity per server, calculated as: CapacityCum / ServerCumQty;

##### CapacityPerProcessor - numeric

###### Capacity per processor, calculated as: CapacityCum / ProcessorCumQty;

##### CapacityPerCore - numeric

###### Capacity per core, calculated as: CapacityCum / CoreCumQty;

##### ServerAvgAge - numeric

###### The average time duration a server exists in pool inventory. Can only be calculated if the **InitialAge** property in **ServerInventory** object is set. Otherwise, returns null.

##### ServerAvgRemovalAge - numeric

###### Time-weighted average age of servers removed from the pool. If initial age of servers was not included, calculation will be based only those servers added and removed from the pool within the time-series.

##### TransactionPercentAdd - integer

###### Quantity of servers added relative to server cumulative quantity.

##### TransactionPercentRemove - integer

###### Quantity of servers removed relative to server cumulative quantity.

TIP

Inventory turnover is usually a single number. Because higher performance servers are being added and lower performance servers are being removed, hardware inventory turnover is ** asymmetric** and therefore ingress and egress are measured.

##### PerformanceCaptureYield - numeric

###### Measures performance capture yield of inventory turnover, and calculated as: weighted-average capacity rating of server inventory divided by current capacity rating in **ServerUnitCapacity** property in **NewServerConfiguration** object

TIP

Performance capture yield indicates server inventory 'freshness.' Managing hardware inventory is perishable on two dimensions:

- Asset values quickly decay with the arrival of better hardware.
- Usage is time sensitive and therefore perishable. Lack of utilization yesterday cannot be made up by today's utilization.

## Hardware Detail Item

This **HardwareDetailItem** object contains server inventory transactions of a time-interval within a time-series result.

json

```
{
"IntervalNbr": 11,
"UniqueIdentifier": "svr-3-0-2-475",
"AbsTimeStart": 1.88,
"AbsTimeEnd": 2,
"SourceIntervalNbr": 11,
"ServerQty": 3,
"RackQty": null,
"ProcessorQty": 6,
"CoreQty": 60,
"TotalCapacity": 300,
"ServerUnitCapacity": 100,
"ProcessorUnitCapacity": 50,
"CoreUnitCapacity": 5,
"ProcessorSetSize": 2,
"CoreSetSize": 10,
"WattsRating": 1200,
"RackSpaceUnit": 1
}
```

#### Attributes

##### IntervalNbr - integer

###### Current interval number within time-series.

##### UniqueIdentifier - string

###### Unique transaction code

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### SourceIntervalNbr - integer

###### Source interval number that originated the transaction.

##### ServerQty - integer

##### Quantity of Servers added or removed.

##### RackQty - integer

###### Quantity of racks added or removed. Null indicates **LotType** property in **LotConfiguration** object is not set to 'Rack'.

##### ProcessorQty - integer

###### Quantity of processor added or removed.

##### CoreQty - integer

###### Quantity of cores added or removed.

##### TotalCapacity - integer

##### ServerUnitCapacity - numeric

###### Server unit capacity.

##### ProcessorUnitCapacity numeric

###### Processor unit capacity.

##### CoreUnitCapacity - numeric

###### Core unit capacity

##### ProcessorSetSize - integer

###### Quantity of processor sockets used. For example, a two-socket server with one cpu is counted as 1.

##### CoreSetSize - integer

###### Quantity of cores per processor.

##### WattsRating - integer

###### Nominal watts rating of server.

##### RackSpaceUnit - integer

###### Size of server in U unit (e.g., 1U, 2U, etc.).

## Software Kpi

This **SoftwareKpi** object contains software key performance indicators.

json

```
{
"ServerEntitlementsAvgUtilizationPercent": 98.6,
"ProcessorEntitlementsAvgUtilizationPercent": 98.6,
"CoreEntitlementsAvgUtilizationPercent": 100,
"ServerAvgExcessEntitlementsQty": 2,
"ProcessorAvgExcessEntitlementsQty": 3,
"CoreAvgExcessEntitlementsQty": 0
}
```

#### Attributes

##### ServerEntitlementsAvgUtilizationPercent - numeric

###### Weighted average utilization percentage of server entitlements.

##### ProcessorEntitlementsAvgUtilizationPercent - numeric

###### Weighted average utilization percentage of processor entitlements.

##### CoreEntitlementsAvgUtilizationPercent - numeric

###### Weighted average utilization of core entitlements.

##### ServerAvgExcessEntitlementsQty - integer

###### Weighted average quantity of excess server entitlements.

##### ProcessorAvgExcessEntitlementsQty - integer

###### Weighted average quantity of excess server entitlements.

##### CoreAvgExcessEntitlementsQty - integer

###### Weighted average quantity of excess core entitlements.

## Software Summary Item

This **SoftwareSummaryItem** object contains software inventory of a time-interval within a time-series result.

json

```
{
"IntervalNbr": 12,
"AbsTimeStart": 2,
"AbsTimeEnd": 2.2,
"DeployedServerQty": 143,
"DeployedProcessorQty": 286,
"DeployedCoreQty": 2860,
"EntitledServerQty": 143,
"EntitledProcessorQty": 286,
"EntitledCoreQty": 2860,
"UtilServer": 100,
"UtilProcessor": 100,
"UtilCore": 100
}
```

#### Attributes

##### IntervalNbr - integer

###### Interval number within time-series.

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### DeployedServerQty - integer

###### Quantity of server licenses in use.

##### DeployedProcessorQty - integer

###### Quantity of processor licenses in use.

##### DeployedCoreQty - integer

###### Quantity of core licenses in use.

##### EntitledServerQty - integer

###### Quantity of entitled server licenses.

##### EntitledProcessorQty - integer

###### Quantity of entitled processor licenses.

##### EntitledCoreQty - integer

###### Quantity of entitled core licenses.

##### UtilServer - integer

###### Percentage of server licenses utilized.

##### UtilProcessor - integer

###### Percentage of processor licenses utilized.

##### UtilCore - integer

###### Percentage of core licenses utilized.

## Software Detail Item

This *SoftwareDetailItem** object contains software transactions of a time-interval within a time-series result.

INFO

Software contract term dates differ from generated intervals in the result time-series. Contract events (i.e., annual entitlement settlement or contract renewal) are not forced by Zypr to match generated interval dates. Software contract dates will therefore likely fall *within* a time-series interval. The 'start' and 'end' properties for entitled and excess values account for that difference and result in 'start' and 'end' values that differ. Usually these two values will be the same.

json

```
{
"LicenseId": 1,
"LicenseTypeName": "PerpetualSupport",
"LicenseMetricName": "Core",
"IntervalNbr": 15,
"AbsTimeStart": 2.5,
"AbsTimeEnd": 2.68,
"DeployedQty": 3120,
"EntitledQtyStart": 3120,
"EntitledQtyEnd": 3120,
"ExcessQtyStart": 0,
"ExcessQtyEnd": 0
}
```

#### Attributes

##### LicenseId - integer

###### Unique number identify product.

##### LicenseTypeName - string

###### Type of license (e.g., perpetual).

##### LicenseMetricName - string

###### Metric used by a vendor for counting license consumption.

##### IntervalNbr - integer

###### Interval number within time-series.

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### DeployedQty - integer

###### Quantity of server licenses in use.

##### EntitledQtyStart - integer

###### Quantity of entitled licenses at start of interval.

##### EntitledQtyEnd - integer

###### Quantity of entitled licenses at end of interval.

##### ExcessQtyStart - integer

###### Quantity of excess licenses at start of interval.

##### ExcessQtyEnd - integer

###### Quantity of excess licenses at end of interval.

## Facility Kpi

This **FacilityKpi** object contains facility key performance indicators.

json

```
{
"RackSlotAvgQty": 164,
"RackSlotQtyAnnualizedChangePercent": 13.6,
"CapacityPerRackSlotAnnualizedChangePercent": 5.6,
"KWhPerCapacityUnitAnnualizedChangePercent": -6.3,
"KWhPerRackSlotAnnualizedChangePercent": -1.2
}
```

#### Attributes

##### RackSlotAvgQty - integer

###### Weighted average rack slot quantity used.

##### RackSlotQtyAnnualizedChangePercent - numeric

###### Annualized growth rate of rack unit used. A rack unit is 1U.

##### CapacityPerRackSlotAnnualizedChangePercent - numeric

###### Annualized growth rate of kilowatt hours consumed.

##### KWhPerCapacityUnitAnnualizedChangePercent - numeric

###### Annualized growth rate of kilowatt hours per capacity unit.

##### KWhPerRackSlotAnnualizedChangePercent - numeric

###### Annualized growth rate of kilowatt hours per rack unit.

## Facility Summary Item

This **FacilitySummaryItem** object contains facility resources of a time-interval within a time-series result.

TIP

Facility resources may be treated as essentially fixed or semi-fixed costs by setting the **SimulationScope** object to exclude all facility costs. An optimal solution will therefore not be based on displacing any facility resource costs.

json

```
{
"IntervalNbr": 14,
"AbsTimeStart": 2.39,
"AbsTimeEnd": 2.5,
"RackSlotQtyInc": 3,
"RackSlotQtyCum": 151,
"ComputeCapacityPerRackSlot": 100,
"KilowattHrsInc": 74498,
"KilowattHrsAnnualized": 677255,
"KilowattHrsAnnualizedPerCapacityUnit": 44.9,
"KilowattHrsAnnualizedPerRackSlot": 4485.1
}
```

#### Attributes

##### IntervalNbr - integer

###### Interval number within time-series.

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### RackSlotQtyInc - integer

###### Incremental 1U rack slot quantity.

##### RackSlotQtyCum - integer

###### Cumulative 1U rack slot quantity.

##### ComputeCapacityPerRackSlot - integer

###### Capacity per 1U rack size.

##### KilowattHrsInc - integer

###### Incremental kilowatt hours consumed.

##### KilowattHrsAnnualized - integer

###### Annualized kilowatt hours consumed.

##### KilowattHrsAnnualizedPerCapacityUnit - numeric

###### Annualized kilowatt hours consumed per unit of capacity.

##### KilowattHrsAnnualizedPerRackSlot - numeric

###### Annualized kilowatt hours consumed per 1U rack size.

## Facility Detail Item

This **FacilityDetailItem** object contains facility use transactions of a time-interval within a time-series result.

json

```
{
"IntervalNbr": 4,
"AbsTimeStart": 0.71,
"AbsTimeEnd": 0.89,
"SourceIntervalNbr": 0,
"RackSlotQtyInc": -8,
"RackSlotQtyCum": 99,
"TotalKilowattHrs": -5235,
"ProcessorSetSize": 2,
"CoreSetSize": 8,
"WattsRating": -3320,
"ServerSize": 1
}
```

#### Attributes

#### IntervalNbr - integer

###### Current interval number within time-series.

##### UniqueIdentifier - string

###### Unique transaction code

##### AbsTimeStart - numeric

###### Absolute start time of interval in years.

##### AbsTimeEnd - numeric

###### Absolute end time of interval in years.

##### SourceIntervalNbr - integer

###### Source interval number that originated the transaction.

##### TotalKilowattHrs - integer

###### Total kilowatt hours consumed.

INFO

A server removal transaction will show kWhs consumed to zero. Not a reduction of power consumption akin to space. This assumes power consumption is a variable cost. However, in practice, power agreements often include minimum consumption or payment guarantees to a power supplier.

Power consumption is treated as variable cost because, on the margin, data centers typically are power constrained and likely exceed their minimum guarantees.