STEM development operates on an annual to biannual release cycle, but we always
listen carefully to feedback and occasional bug reports from customers, and will
take every opportunity to push out improved functionality mid-cycle when it can
be done without confusing users or introducing potential incompatibilities between
users who are nominally on the same version.
In the event of a critical failure, we always aim to have a patch with customers
within days or even hours of a fault being reported, but more time is required for
more extensive testing and documentation before making such a fix more generally
available. The same logic applies to mid-term enhancements, where we may explore
new functionality with one or more customers before finalising the specification
and putting it on general release.
Recent maintenance releases have been timed to coincide with an announcement in
the STEM quarterly newsletter, and the latest STEM 7.2a release is a good example,
combining several minor bug fixes for the original STEM 7.2 with a new Expired Units
result described in detail below.
Distinguishing between initial and replacement capital expenditure
Imagine a context where you are modelling the roll-out of a new, national network
over a ten year period, the elapsed time between starting in the most populous urban
areas and reaching the most remote rural locations, subject to constraints of labour
or capital commitment. Whereas in a shorter project, you could most likely regard
all expenditure as new build; on this longer timescale, it is likely that some equipment
installed early on will already need to be replaced before the project is complete.
Therefore the total cumulative capex may misrepresent and overstate the initial
budget for the development.
In a STEM model, resources are installed to meet incremental demand. That is to
say, for each calculation period, STEM compares the existing capacity allocated
to a service with the current demand from that service, and installs new equipment
(or takes up existing slack capacity) if there is a shortfall. So incremental units
may arise either from new demand, or from replacement of old equipment, or both.
Historically, STEM made no distinction between these cases, and so it was not possible
to get any separation between initial and replacement capex, except by running a
scenario where all lifetimes were artificially set in excess of the run period to
avoid replacement altogether.
STEM 7.2a introduces a new Expired Units result, from which a Replacement Proportion
is inferred for Incremental Units, and which is then used to split capital expenditure
and associated depreciation between initial and replacement equipment. The following
example provides a simple illustration.
Consider a project requiring the roll-out of 1000 multi-service access nodes over
a ten-year period. STEM has always reported the Incremental Units each year, as
well as the total Installed Units. Now we have added an Expired Units result which
unambiguously shows the number of units which have reached the end of their physical
life (and may need to be replaced) in a given period.

New resource ‘Expired Units’ result
The slightly tenuous part is working out what proportion (if any) of those expired
units is being replaced. If demand is flat or increasing, then an easy assumption
is that all expired units are replaced; while if demand ceases altogether, then
there are no incremental units and evidently none are replaced. But what if demand
is reducing? Not all expired units may need to be replaced, but we make the assumption
that, if there are any incremental units, then the lesser of incremental and expired
units can be regarded as replacement.
So if there were three incremental units and two expired units, then we would regard
two of the three new units as replacements. Conversely, if there were two incremental
units and three expired units, then we would regard both new units as replacements.
We believe this is a reasonable assumption in all but the obscure case of a new
service re-using existing equipment as a former service wanes, when you could question
whether a new box installed by the new service is really a replacement for an old
box used by the declining service. However, in the case of a new build, our definition
provides an effective way to identify a Replacement Proportion of Incremental Units
in any calculation period:
replProp = if (incrUnits = 0, 0, if (incrUnits <= expUnits, 1, expUnits / incrUnits))
Alternatively, if you accept that replUnits = min (incrUnits, expUnits), then it
is easy to see that replProp = replUnits / incrUnits = min (1, expUnits / incrUnits)
except when incrUnits = 0. In our specific example, demand is always increasing,
so Incremental Units consistently exceeds Expired Units and we get the following
results for the Replacement Proportion.
Assumed ‘Replacement Proportion’ result
Based on this Replacement Proportion, STEM generates a Replacement Capital Expenditure
result, and an Initial Capital Expenditure complement. And by remembering this proportion
for each new installed age of a resource, STEM can also generate Initial and Replacement
Depreciation results. (These financial outputs are also available for the network
as a whole.)

Initial and replacement capex/depreciation results
You can see from the symmetrical pattern of the initial capex above that this mechanism
makes a faithful classification of the split between what may regarded as ‘growth’
and ‘replacement’.
Minor corrections
STEM 7.2a also includes three trivial fixes to what may be regarded as accidental
flaws in the original STEM 7.2, as well as one tiny refinement to the StemGetResult()
function for Excel. (These release notes can also be found in the Installation Files
area of the STEM Support website.)
ID |
Description
|
#2373
|
Add-in flag to suppress StemGetResult() status info
Issue: A customer wished to populate a table of service allocated-cost results for
service / resource pairs where not all pairs generate results (because they may
be unrelated in the model). However, they preferred not to see the error message,
‘Element not found’, in this case.
Action: We have added a ‘Suppress Errors’ flag to the Stem Toolbar Definitions sheet.
When this is set to FALSE (the default), the STEM add-in reports errors as usual.
However, if it is set to TRUE, then the StemGetResult() function returns an array
of empty variants (instead of an error message) from which Excel will set a zero
value into each affected cell.
|
#2881
|
STEM 7.2 doesn't recognise my dongle
Issue: The original STEM 7.2 build did not correctly recognise a STEM 7.2 hardware
dongle.
Action: Fixed in STEM 7.2a.
|
#2884
|
How to distinguish between replacement capex and new capex
Issue: A customer wished to differentiate between initial capex and replacement
capex in a modelling context where some equipment installed early on was being replaced
before the project was complete.
Action: STEM 7.2a introduces a new Expired Units result, from which a Replacement
Proportion is inferred for Incremental Units, and which is then used to split capital
expenditure and associated depreciation between initial and replacement equipment.
|
#2886
|
Error running a model from Excel
Issue: Attempting to run a model from Excel would result in the message, “Variable
not defined – pcMsgTitle.”
Action: Fixed in STEM 7.2a.
|
#2889
|
2D Selection checkbox not moved when dialog resized
Issue: If you draw a graph for a service allocated-cost result, then the initial
choose elements to draw dialog (for services) includes a 2D Selection checkbox which
controls how the secondary selection of resources is presented. This checkbox was
not being moved with the other controls if the dialog was resized.
Action: Fixed in STEM 7.2a.
|
Availability
The STEM 7.2a maintenance release was issued on 27 January 2010 and is now available
for customers with a current subscription to download from our website. STEM 7.2a
is fully compatible with models created in the original 7.2 release.