Beruflich Dokumente
Kultur Dokumente
0RGHO%XLOGHU
TM
Version 3.0
for Windows
User’s Guide
("3-) .
ZZZ1QK\VRIW1FRP
This page intentionally left blank.
%QUV/GVTKZ
0RGHO%XLOGHU
TM
Version 3.0
for Windows
User’s Guide
0RGHO%XLOGHU
TM
Version 3.0
This manual and software product are both copyrighted and all rights are reserved by NHYSOFT, Inc. The distribution
and sale of this product are intended for the use of the original purchaser only and for use on only one computer system.
Windows, Windows NT, Windows 95, and Windows 98 are registered trademarks of Microsoft Corporation.
Software License Agreement
Do not use this Software until you have carefully read this Agreement, which provides the terms and conditions for its
use. Installing the Software indicates that you have read, understand, and accept this Agreement. If you do not accept
this Agreement, return the Software and accompanying items to the distributor within 30 days of purchase with a dated
receipt or invoice for a full refund. If you purchased the software directly from NHYSOFT, contact NHYSOFT and return it
with a dated receipt or invoice to NHYSOFT Returns, 26361 Ibeza Road, Mission Viejo, CA 92692-5233.
1. EVALUATION USE: This Software automatically installs into an Evaluation Mode which has some features disabled. A
Personal Authorization Code is required to unlock disabled features and put the Software into the Normal Mode. You may
freely use and distribute this Software in the Evaluation Mode for evaluation purposes only. You may use the Software for
up to 30 consecutive calendar days in the Evaluation Mode, at the end of which you must uninstall it from your system.
2. LICENSE: NHYSOFT grants you a nonexclusive right to use this Software on a single computer in the Normal Mode.
NHYSOFT will provide a Personal Authorization Code when you register this Software that will unlock the disabled
features and enable the Normal Mode on one unique computer. You may make one archival or backup copy of the
Software for your own use. However, because the Software is protected by copyright laws, it is illegal: to modify, adapt,
translate, rent, sublicense, loan, resell for profit, create derivative works based upon or network the software or any part
thereof, or to distribute, break, or circumvent the Personal Authorization Code. The software also contains NHYSOFT
trade secrets, and you may not decompile or otherwise reverse engineer the Software.
3. SATISFACTION GUARANTEE: If you are not 100% satisfied with this Software, return it to the distributor within 60
days of purchase with a dated receipt or invoice for a full refund. If you purchased the software directly from NHYSOFT,
contact NHYSOFT and return it with a dated receipt or invoice to NHYSOFT Returns, 26361 Ibeza Road, Mission Viejo,
CA 92692-5233.
4. LIMITED WARRANTY: NHYSOFT warrants that the magnetic media upon which the Software is recorded is free from
defects in materials and workmanship when used under normal conditions. NHYSOFT also warrants that the Software
will perform substantially as described in the User Manual. If the disks are defective, then return the Software to
NHYSOFT Returns, 26361 Ibeza Road, Mission Viejo, CA 92692-5233 within 60 days of purchase with a dated receipt or
invoice and replacement disks will be mailed to you.
5. DISCLAIMER OF WARRANTIES: Except as expressly provided above, this Software and documentation is provided
“as-is” and, to the maximum extent permitted by applicable law, NHYSOFT hereby disclaims all other warranties, express
or implied, that the Software, documentation, or other materials are fit for any particular purpose. NHYSOFT does not
warrant that the Software is free from bugs, interruptions, errors, or other program limitations. NHYSOFT does not
guarantee the accuracy and/or usefulness of the results or solutions, even if performed in accordance with the
procedures, commands, and instructions contained in the enclosed material. NHYSOFT, its agents, employees and
distributors shall not be liable for technical, editorial, or other errors or omissions which may be contained in, or the
negligent preparation of this material. All warranties or guarantees given or made by NHYSOFT with respect to the
Software are (1) for the benefit of the original purchase/licensee of the Software only and are not transferable, and (2)
shall be null and void if a purchaser/licensee breaches any terms or conditions of this Agreement.
6. LIMITATION OF LIABILITY AND DAMAGES: Except to the extent of the above warranty of materials and
workmanship, the entire liability of NHYSOFT and its representatives for any reasons shall be limited to the amount paid
by the customer for the Software purchased from NHYSOFT or its distributors. To the maximum extent permitted by law,
NHYSOFT and its licensors, distributors, dealers or suppliers are not liable for any direct, special, incidental, or
consequential damages (including damages for loss of business, loss of profits or investment, or the like), whether based
on breach of contract, breach of warranty, tort (including negligence), product liability or otherwise, even if NHYSOFT or
its representatives have been advised of the possibility of such damages and even if a remedy set forth herein is found to
have failed in its essential purpose. The limitations of damages or liability set forth in this Agreement are fundamental
elements of the basis of the bargain between NHYSOFT and you. You acknowledge and agree that NHYSOFT would not
be able to provide this product on an economic basis without such limitations.
7. MISCELLANEOUS: This Agreement sets forth the entire liability of NHYSOFT and its representatives and defines your
exclusive remedy with respect to the Software and is a complete statement of the agreement between you and
NHYSOFT. This Agreement shall not limit any rights that NHYSOFT may have under trade secret, copyright, patent or
other laws. The agents, employees, distributors, and dealers of NHYSOFT are not authorized to make modifications to
this Agreement, or to make any additional representations, commitments, or warranties binding on NHYSOFT. If any
provision of this Agreement is invalid or unenforceable under applicable law, then it shall be, to that extent, deemed
omitted and the remaining provisions shall continue in full force and effect. The validity and performance of this
Agreement shall be governed by California law (without reference to choice of law principles), and applicable federal law.
This Agreement is deemed entered into at Mission Viejo, California, and shall be construed as to its fair meaning and not
strictly for or against either party.
%QUV/GVTKZ
0RGHO%XLOGHU
TM
v
Assigning parameters to tasks............................................................................................................... 38
Deleting parameter assignments ........................................................................................................... 40
Scale parameters ................................................................................................................................... 40
Primary and secondary parameters ....................................................................................................... 43
Grade parameters .................................................................................................................................. 43
Running a model check ......................................................................................................................... 45
Viewing and printing cost model reports ................................................................................................ 46
Changing the report logo image............................................................................................................. 48
Entering historical project cost data ....................................................................................................... 49
Registering a project .............................................................................................................................. 50
Adding a task record to the project cost database................................................................................. 51
Percent completed option ...................................................................................................................... 53
Entering parameter values for historical projects ................................................................................... 53
Entering historical labor hours ............................................................................................................... 55
Adding to the project history database................................................................................................... 58
Entering escalation factors..................................................................................................................... 62
Viewing and printing historical data reports ........................................................................................... 64
Summary................................................................................................................................................ 65
4. Using the Solver ...................................................................................................................................... 67
The Solver.............................................................................................................................................. 67
General form of the Solver CER ............................................................................................................ 70
The composite parameter X................................................................................................................... 72
Optimizing parameter ranges................................................................................................................. 73
Polynomial options ................................................................................................................................. 75
How the Solver works ............................................................................................................................ 75
Solver controls ....................................................................................................................................... 76
Running the Solver................................................................................................................................. 78
The Parameter Correlation report .......................................................................................................... 81
Prediction accuracy reports ................................................................................................................... 81
Taking manual control of the CER solution............................................................................................ 82
Refining the cost model ......................................................................................................................... 83
Update the project data.......................................................................................................................... 85
Rerun the Solver .................................................................................................................................... 86
Adding the New Design Fraction parameter .......................................................................................... 87
Rerun the Solver .................................................................................................................................... 88
Cost risk analysis ................................................................................................................................... 89
Compile the cost model ......................................................................................................................... 92
5. Using Nonparametric Tasks................................................................................................................... 94
Fixed Cost tasks..................................................................................................................................... 94
Entering the basis of CER for a fixed cost task...................................................................................... 97
Entering cost risk for a fixed cost task ................................................................................................... 97
Level of Effort tasks ............................................................................................................................... 98
Explicit Formula tasks .......................................................................................................................... 101
Summary tasks .................................................................................................................................... 107
Manual Entry tasks............................................................................................................................... 108
Compiling the cost model..................................................................................................................... 109
vi
6. Advanced Topics................................................................................................................................... 111
Guidelines for selecting parameters .................................................................................................... 111
Assessing cost model accuracy........................................................................................................... 112
Step 1 - Verify historical data accuracy................................................................................................ 113
Step 2 – Look for missing parameter assignments.............................................................................. 113
Step 3 - Consider the quality of the historical cost data....................................................................... 113
Step 4 - Consider the variability in your processes .............................................................................. 114
Using computed parameters ................................................................................................................ 114
Creating a computed parameter .......................................................................................................... 115
Run the Solver to update the cost equations ....................................................................................... 119
Bidding itemized travel expenses......................................................................................................... 121
Defining bid metrics ............................................................................................................................. 121
Merging cost model files ...................................................................................................................... 123
Saving reports ...................................................................................................................................... 124
Final cost model preparations.............................................................................................................. 125
Appendix A - Sample Cost Model Reports.............................................................................................. 128
Cost Model Summary........................................................................................................................... 130
Task List............................................................................................................................................... 131
Basis of CERs ...................................................................................................................................... 132
Parameter List...................................................................................................................................... 133
Parameter Details ................................................................................................................................ 134
Cost Categories ................................................................................................................................... 135
Labor Parameter Assignments ............................................................................................................ 136
Material Parameter Assignments ......................................................................................................... 137
ODC Parameter Assignments.............................................................................................................. 138
Explicit Formula Tasks ......................................................................................................................... 139
Fixed Cost Tasks ................................................................................................................................. 140
Level of Effort Tasks ............................................................................................................................ 141
Bid Metrics ........................................................................................................................................... 142
Projects ................................................................................................................................................ 143
Project Parameters .............................................................................................................................. 145
Project Tasks ....................................................................................................................................... 147
Project Direct Cost by Category........................................................................................................... 149
Project Direct Cost by Task.................................................................................................................. 154
Escalation Factors ............................................................................................................................... 156
Parameter Correlation.......................................................................................................................... 157
Labor Prediction Accuracy ................................................................................................................... 158
Material Prediction Accuracy................................................................................................................ 160
ODC Prediction Accuracy .................................................................................................................... 162
CER Coefficients.................................................................................................................................. 164
Cost Variance and Risk ....................................................................................................................... 168
Index........................................................................................................................................................... 170
Authorization Code Request & Registration Form.................................................................................173
Customer Support Form........................................................................................................................... 174
vii
viii
What’s New in Version 3.0
This is the third major release of the CostMetrix ModelBuilder and Estimator suite of parametric
cost estimating software for Microsoft Windows-based personal computers. Here is a brief
summary of some of the new features in this release.
ƒ Computed parameter formulas can now reference other computed parameters so you can
create a mathematical chain of variables that depend on each other. CostMetrix
ModelBuilder checks each formula as you enter it for circular references that cannot be
resolved.
ƒ Explicit formula tasks can now use formulas that reference other explicit formula tasks so
you can now create a mathematical chain of explicit formula tasks that depend on each other.
ƒ The Solver is now faster and produces even better cost estimating relationships than before.
ƒ You can now edit the Solver parameter exponents and CER coefficients directly if you desire
and ModelBuilder will update the CER accuracy statistics based on your changes.
ƒ You can now document the basis of each CER in the cost model. Parametric tasks
automatically receive the following standard basis description (which can be edited):
The cost estimating relationships for this task were derived by CostMetrix ModelBuilder
based on a parametric analysis of the historical cost data contained in this cost
ƒ ModelBuilder now compiles and embeds cost variance information in the cost model for cost
risk analysis in CostMetrix Estimator. This is a major advance that will markedly improve
the estimating process.
There are also many subtle improvements “under the hood” of CostMetrix ModelBuilder. These
new features and enhancements help make ModelBuilder even more powerful, faster, and more
productive. If you have an idea for an additional enhancement, please feel free to contact us at
www.nhysoft.com. We would like to hear it!
iv
v
1 Introduction
Welcome to CostMetrix ModelBuilder, the personal computer software
that will help you develop and validate high-quality parametric cost models
for estimating the cost of virtually any type of project or process.
CostMetrix can help you produce more accurate cost estimates in a
fraction of the time of conventional methods.
This user’s guide will introduce you to CostMetrix ModelBuilder and show
you how to use the powerful features it offers for developing parametric cost
models. This chapter includes the following topics:
ö What is CostMetrix?
ö What is parametric cost estimating?
ö Benefits of using parametric cost models
ö How ModelBuilder works
ö Cost models and tasks
ö A brief history of parametric estimating
ö Key features of ModelBuilder
ö Cost estimating with CostMetrix Estimator
ö Estimating accuracy
ö System requirements
ö Installing and uninstalling ModelBuilder
CostMetrix Estimator™ lets you quickly and easily create parametric cost
CostMetrix ModelBuilder User’s Guide
2 Chapter 1 Introduction
What is parametric Cost estimating is a critical business function in industries such as manu-
cost estimating? facturing, engineering, and contracting. In many cases, the accuracy of the
project cost estimates can determine the ultimate success or failure of the
company. Parametric cost models are powerful tools that can provide
accurate project cost estimates in a fraction of the time and effort of tradi-
tional methods. Indeed, they are so effective that the U.S. Department of
Defense (DoD) stated in the Parametric Estimating Handbook1 that using
parametric cost models “can result in significantly reduced proposal devel-
opment, evaluation, and negotiation costs, and associated cycle time
reductions”.
Parametric cost models fall into two categories; commercial and proprietary
(company-developed). Commercial parametric estimating models contain
generic algorithms and estimating methods based on a database of industry-
wide data, encompassing many different products. A commercial parametric
model must be “calibrated” to make it useful for estimating the costs of a
specific company or department.
1
The Parametric Cost Estimating Handbook is available through the International Society of
Parametric Analysts (ISPA) and can be downloaded from the parametric cost estimating web
site at www.ispa-cost.org/PEIWeb/.
The figure below shows a diagram of the cost model development process
recommended by the DoD Parametric Estimating Handbook. CostMetrix
ModelBuilder and CostMetrix Estimator were designed to perform or assist
eight of the ten major steps.
10 Model Maintenance
A ModelBuilder cost model is easy to maintain and update with new project
data, even by someone other than the original developer. It provides
comprehensive documentation of the cost model details and statistics to
make auditing easy, and produces a robust cost model that can be easily
deployed directly to estimators or stored on a server for easy version
management.
automatically adjusts material and other direct costs for inflation based on
escalation tables, and use manual cost entries for special cases such as when
suppliers or other organizations submit bids that must be added to the cost
estimate.
Benefits of using Some of the many benefits of using parametric cost models for estimating
parametric cost are:
models
More reliable estimates with less subjectivity – A cost model derived and
validated using historical cost data will be much less subjective than
personal estimates and will prove consistently more reliable.
Much faster estimates and estimate revisions – A cost model can eliminate
much of the labor and tedium associated with creating cost estimates.
Estimates that might take many hours to prepare by manual methods can be
generated in minutes with a cost model. Estimate revisions can also be made
quickly and easily.
Track cost trends and productivity using the metrics developed with the
cost model – A cost model can provide important cost and performance
metrics which measure the productivity and efficiency of an organization.
As you progress through this user’s guide, you will see how ModelBuilder
accomplishes each of these objectives using the power of the personal
computer and an intuitive visual design approach. You will also learn how
you can incorporate existing cost estimating rules into your cost models, or
use ModelBuilder to derive powerful cost estimating relationships directly
from past project cost data.
Each task in a ModelBuilder cost model can have its own unique algorithms
for calculating cost. ModelBuilder lets you incorporate cost estimating
relationships you may have previously developed, plus it includes a powerful
Solver that can automatically derive cost estimating relationships from past
project cost data. This is a powerful capability that no other cost estimating
system offers.
Cost models and The cornerstone of a ModelBuilder cost model is the Task List; a
hierarchical set of work or cost elements. Cost estimators will select tasks
tasks
from this list to be included in each project cost estimate. Therefore, the
Task List should be comprehensive enough to account for all the significant
cost elements of a typical project.
Each task in the Task List has it own unique cost estimating relationships
(except Summary tasks and Manual Entry tasks which are special cases). For
each task, you can enter the cost estimating relationships directly, or you can
let ModelBuilder derive them from past project cost data.
If you have known cost estimating relationships that you want to incorporate
into a cost model, you would use one or more of these three types of tasks:
Fixed Cost tasks The cost of a Fixed Cost task is a fixed amount as
defined in the cost model.
The tasks in a cost model can be broken down into multiple levels of
Summary tasks and subtasks.
This set of tasks provides power and flexibility in the design of cost models.
The history of A key goal in the development of CostMetrix ModelBuilder and CostMetrix
parametric Estimator was to make it easier to employ parametric estimating techniques
estimating which are recommended by the U.S Department of Defense (DoD) as the
best practice for cost estimating. According to the DoD, a parametric cost
estimate is one that uses cost estimating relationships and associated
mathematical algorithms (or logic) to establish cost estimates. A parametric
cost model is a group of cost estimating relationships used together to
estimate entire cost proposals that consist of multiple cost elements.
The cost estimating relationships Rand developed did not attempt to analyze
the cost of a project at the lowest levels of activity. Instead, they focused on
the high-level cost drivers. They discovered that meaningful relationships
could be developed between the cost of fighter aircraft and parameters such
as speed, range, and altitude. They could further improve estimating
accuracy by breaking costs down into major categories and refining
parameters, but they focused on extracting cost trends from high-level data
rather than building cost estimates using a bottoms-up approach. This
resulted in cost models that were easy and fast to use.
developed for that purpose. As you will learn in Chapter 3, there are many
advantages of letting ModelBuilder do the cost estimating relationship
(CER) derivation for you.
Key features of Creating a parametric cost model from scratch using traditional methods is
ModelBuilder usually a very time consuming, laborious process. ModelBuilder makes the
process so much faster and easier you won’t want to go back to manual
methods.
With ModelBuilder, cost models can be built around your specific business
processes and practices. You can efficiently develop sophisticated cost
models for virtually any type of business process from production of
products to delivery of services. Some typical example applications are
engineering projects, research and development, product design, software
Cost estimating CostMetrix Estimator is a cost estimating program for use with
with CostMetrix ModelBuilder cost models. Using the CostMetrix Estimator program with
Estimator ModelBuilder cost models, you can quickly create fully documented
estimates (cost proposals) with rationale. The amount of time and effort
required to produce cost estimates is dramatically reduced using CostMetrix
Estimator compared to traditional bottoms-up estimating techniques.
When you start a cost estimate with CostMetrix Estimator, you select which
ModelBuilder cost model to use as the basis. CostMetrix Estimator extracts
the tasks and cost estimating relationships from the cost model and
encapsulates them into a cost estimate file. You then use a menu to select the
tasks that apply to the project you are estimating and enter proposal-specific
data such as parameter values, bid rates, etc. You are then ready to review
the cost estimate and expenditure profiles and print summary and detailed
cost proposal reports. The entire process can take just a few minutes to
complete.
Better estimating Ease of use and speed are two very desirable characteristics in a cost
accuracy estimating system. However, the most important characteristic is that it
provides reliable predictions of the cost to perform future projects.
CostMetrix ModelBuilder and CostMetrix Estimator are designed to not
only reduce the time required to create estimates, but also to improve
accuracy.
History-based parametric cost models are typically much more accurate than
bottoms-up estimates for several reasons:
1. They are based on past project data, so they are more objective and are
less likely to be influenced by the estimator’s biases about the project.
2. Parametric cost models can be designed to account for subtle variations
in project conditions or groundrules, which are hard to accurately
account for in bottoms-up cost estimates.
3. Parametric cost models can be updated to account for changing business
conditions or process changes.
4. A parametric cost estimate can be revised quickly and easily if require-
ments or groundrules change.
High-quality cost ModelBuilder was developed to help you create high-quality cost models.
models What does high-quality mean in the context of cost models? A high-quality
cost model has the following four characteristics:
System For best performance, the computer system requirements for ModelBuilder
requirements are:
Uninstalling If you need to uninstall ModelBuilder to update to a newer version or for any
ModelBuilder other reason, follow these steps:
NOTE: It is safe to remove all shared files in the ModelBuilder installation directory
during an uninstall, and you should always do so before installing a later version of
ModelBuilder.
Getting help In addition to this manual, ModelBuilder has an online help system, which
you can access with the F1 function key. You can also open the help system
window by selecting Help Topics from the Help menu.
ö Tasks
ö Parameters
ö Cost categories
ö Escalation
ö Cost vs. price
ö Overhead and G&A
Take for example a task called Analysis, which has several subtasks
representing the various types of analysis that might be performed on a
project. There could be Thermal analysis, Stress analysis, Reliability
analysis, etc., as shown below.
Analysis -
Thermal Analysis
Stress Analysis
Reliability Analysis
independent activities and each one of these could also be broken down
further into subtasks if appropriate to facilitate defining estimating
algorithms, or to provide the estimator with flexibility in selecting task
elements that may be needed for proposals. Not every project would
necessarily require every type of analysis, so the estimator can choose the
analysis tasks that should be included for each estimate. Therefore, the task
list serves as a checklist to help the estimator include all the tasks and costs
that apply to a project, and exclude those that do not. The example cost
models described in Chapters 4 and 5 illustrate simple Task Lists with
multiple hierarchical levels.
NOTE: ModelBuilder allows you to construct Task Lists with up to six indentured
levels so you can create extremely complex project cost model structures if you need
them.
Each task in the Task List has it own unique cost estimating relationships
(except Summary tasks and Manual Entry tasks described below). For each
task, you can let ModelBuilder derive cost estimating relationships from past
project cost data, or you can enter the cost estimating relationships directly.
Clarity – Is the scope of the task clear such that estimators will understand
what is and is not included in it? If it is not, it should be broken down into
subtasks until each one can be clearly defined.
Task types In Chapter 1 you were briefly introduced to the six different types of tasks
that can be used in a ModelBuilder cost model. They are:
♦ Summary tasks
♦ Parametric tasks
♦ Fixed Cost tasks
♦ Level of Effort tasks
♦ Explicit Formula tasks
♦ Manual Entry tasks
The primary difference between the various types of tasks is the way the cost
estimating relationships are derived or computed. The example cost model
described in Chapters 3 through 5 illustrates how each one can be used.
Summary tasks A Summary task serves as a cost summary for a set of subordinate subtasks.
A Summary task does not actually have a cost estimating relationship of its
own; its cost is simply the sum of the cost of all the subtasks under it.
Summary tasks can have other Summary tasks beneath them, so you can
build multi-level task structures to represent complex task hierarchy
relationships.
Parametric tasks A Parametric task is used when you have historical records of the cost of a
task from prior projects. From this data, ModelBuilder can derive cost
estimating relationships for you using its built-in CER Solver.
The figure below shows the basic process of using Parametric tasks in
ModelBuilder. The user specifies tasks and cost-related parameters, and
enters cost data from past projects into the ModelBuilder database. The
Solver in ModelBuilder then computes cost estimating relationships from
this information and provides reports of the estimating accuracy.
Solver
The general form of a Parametric task cost equation is shown below for
labor, material and ODC costs derived based on a parametric relationship.
Where A, B, and C are the coefficients of a 2nd order polynomial equation and
X is a composite parameter of the form:
e e e
X = P1 1 x P2 2 x P3 3 …
where P1, P2, P3 ... are user-defined parameters and e1, e2, e3 … are exponential
parameter weighting factors which are derived by ModelBuilder based on
the historical cost data you enter.
Parametric tasks are a key feature of ModelBuilder because they allow you
to quickly and easily extract accurate cost estimating algorithms from raw
historical cost data. ModelBuilder goes further by providing a quantitative
measure of the quality of the estimating algorithm. In other words,
ModelBuilder tells you how well the user-defined parameters predict cost
based on the historical cost data provided. This makes it possible to develop
a highly refined estimating system with well-understood accuracy.
ModelBuilder also assists you in identifying the key cost drivers in a task or
work element. Knowing the cost drivers is a key step to controlling or
reducing cost in any project. This information is an invaluable aid to any
organization trying to be more competitive and those instituting a design-to-
cost process2.
Although history-based parametric cost models are the “best practice” for
cost estimating (according to the DoD), it is frequently not possible to
construct a complete project cost model using only Parametric tasks. The
most common reason is because historical cost data is not available for every
element of a typical project. Therefore, ModelBuilder allows you to combine
Parametric tasks with other cost estimating relationships (not directly
derived from historical data) where necessary to form complete cost models
for virtually any type of project. And ModelBuilder makes it easy to convert
non-history-based cost estimating relationships to history-based parametric
CERs over time, as you accumulate historical cost data for a more robust
cost model.
Fixed Cost tasks With a Fixed Cost task, the cost estimating relationship is a fixed amount
(which can include labor, material and ODC) that does not change from
project to project. For example, a fixed setup charge can be easily modeled
using a Fixed Cost task. The general form of a Fixed Cost task equation is
shown below for labor, material and ODC costs.
where CL, CM, and CO are labor, material, and ODC cost constants defined by
the cost model designer.
Level of Effort With a Level of Effort task, the cost estimating relationship is a constant
tasks weekly amount for the duration of the task. For example, security services
for a job site could be bid using a Level of Effort task where the weekly cost
is known, and the estimator enters the start and end dates of the task. The
cost model designer specifies the cost per week.
The general form of the Level of Effort task cost equation is shown below for
labor, material and ODC costs.
2
Design-to-cost is a term for the process of tailoring a product design, including its
characteristics, features, and performance to meet a specific cost target.
where LL, LM, and LO are labor, material, and ODC cost burn rates (hours/week
or $/week) defined by the cost model designer and t is the duration of
performance in weeks which CostMetrix Estimator calculates from the task
start and end dates.
Explicit Formula With an Explicit Formula task, the cost estimating relationship is an explicit
tasks formula defined by the cost model designer. The cost estimating formula can
include parameter values that must be entered by the estimator and it can
include the cost of other tasks in the cost model. Although this is technically
a parametric estimating technique, the cost estimating relationship is defined
explicitly by the cost model designer, rather than being derived by
ModelBuilder from past (historical) project data. Therefore, the cost model
designer is responsible to ensure the validity of the cost estimating
relationship by whatever means available.
The mathematical operators and functions that can be used in the formula are
shown below.
+ Addition
- Subtraction
* Multiplication
/ Division
^ Exponential (only positive numbers for the base)
( Open parenthesis
) Close parenthesis
ABS Absolute value
ATAN Arc tangent
COS Cosine
EXP Exponential
LN Natural log
ROUND Round off
SIN Sine
SQRT Square root
SQR Square
TRUNC Truncate
The general form of the Explicit Formula task cost equation is shown below
for labor, material and ODC costs derived based on a parametric
relationship.
Labor Cost = fL(P1, P2, P3 ..., Li, Mi, Oi) in units of labor hours
where fL(P1, P2, P3 ..., Li, Mi, Oi), fM(P1, P2, P3 ..., Li, Mi, Oi), and fO(P1, P2, P3 ..., Li, Mi,
Oi)are explicit functions entered by the cost model designer, P1, P2, P3... are
parameter values, and Li, Mi, and Oi are the labor, material, and ODC costs of
other tasks in the cost model.
Manual Entry A Manual Entry task is used when the cost estimate for a task is to be
tasks provided by an outside organization, supplier, or subcontractor and inserted
directly into each cost estimate as labor, material and ODC values. Manual
Entry tasks can also be used if the cost estimating relationship of a task
cannot be defined in advance. In such cases, manual estimating methods can
be used until adequate historical cost data is accumulated with which you
can convert the Manual Entry task into a Parametric task.
When you use a Manual Entry task in a cost model, the cost estimator must
obtain and enter the cost estimate for this item at the time the project cost
estimate is prepared. This technique can be used to enter labor, material,
and/or other direct costs (ODC).
Parameters Parameters are the project variables that have a direct impact on project
cost. If you are a circuit board designer, the number of components on the
circuit board might be one of the parameters in your cost model for
estimating the cost of designing it. The inference is that cost increases as the
number of components increases. Likewise, if you are a civil engineer, the
length of a bridge might be a parameter in your cost model to estimate the
cost to design or construct it. ModelBuilder can handle simple linear cost
relationships as well as complex nonlinear relationships between parameter
values and cost.
Parameters are not limited to numerical quantities. They can also be non-
numerical values such as complexity factors, quality factors, etc. For
example, if you are a carpet installer, you may have padding in several
quality grades at different costs. Your cost model could have a parameter for
the quality grade with several different grade values (Grade A, Grade B,
...etc.). You could even use the season of installation (winter, spring,
summer, or fall) as a parameter if that had a significant affect on the cost of
your projects.
While the possible variety of parameters is almost limitless, there are two
important requirements that every parameter must meet when applied to
Parametric tasks:
1. You must be able to estimate the value of the parameter before the
project starts (at the time the estimate is being made).
2. You must be able to establish the actual value of a parameter on each
project after it is completed.
ModelBuilder lets you specify the units for a quantity parameter, and you
can set limits on the maximum and minimum value the estimator can enter
for the parameter if you desire.
Scale parameters In the real world, not every parameter has a simple numerical value. For
example, complexity factors and quality factors typically don’t have a
natural numerical value. For these, it is often best to rank them on a relative
basis. Scale and grade parameters were created to address these cases.
A scale parameter allows you to define a scale of valid values (for example
from 1 to 10) and assign descriptive labels to specific values within this
range which the estimator can use as reference points to assign a value for a
project when an estimate is made. For example, you could define a scale of
design complexity from 1 to 5 by listing a past project as an example
corresponding to each integer value from 1 to 5. However, ModelBuilder
will not limit the estimator to one of the fixed integer values. The scale is
continuous rather than discrete. The estimator could enter 3.7 for the
complexity value if that seemed appropriate on a relative scale, and
ModelBuilder would interpolate the value accordingly.
Grade parameters A grade parameter is a non-numerical parameter that can be used to define a
variable that must be one of several specific values. For example, if you
develop software for commercial and military customers, the cost of military
software development might be higher than commercial software
development. Therefore, you could define a grade parameter with two
possible values; commercial and military. ModelBuilder can analyze
historical cost data to extract the mathematical relationship between this
parameter and software development cost.
+ Addition
- Subtraction
* Multiplication
/ Division
^ Exponential (only positive numbers for the base)
( Open parenthesis
) Close parenthesis
ABS Absolute value
ATAN Arc tangent
COS Cosine
EXP Exponential
LN Natural log
ROUND Round off
SIN Sine
SQRT Square root
SQR Square
TRUNC Truncate
The expression can also include parameter variables named P1, P2, P3... etc.,
which are the values of each parameter in the parameter catalog. (You can
access a list of the parameter names and variable names from the main menu
for reference.) You can add parameters, multiply them by other parameters
or numerical constants, or perform the mathematical operations shown
above.
Parameter references in the expression must obey two other important rules:
Cost categories Project costs typically come in three types; labor, material, and other direct
costs (ODC). Labor costs are the hourly pay and/or salary costs associated
with the personnel performing or supporting the work. Since salaries and pay
rates change with time, ModelBuilder works with labor costs in units of
labor hours rather than labor dollars. The CostMetrix Estimator program can
then calculate accurate cost estimates by multiplying the predicted labor
hours by the labor rates (i.e. $/hr) in effect at the time the work is to be
performed.
ODC is a general category that covers all costs that are not labor or
materials. Common examples are travel and reproduction expenses, legal
fees, licenses and permits, service charges, etc.
Cost Types in
each Task
Other Direct
Labor Material
Costs (ODC)
Project Manager Raw Material Travel
Sr. Engineer Purchased Parts Reproduction
Engineer 1 Supplies Subcontracts
. . .
. . .
. . .
Within these three cost types are any number of cost categories. Labor
categories correspond to the pay grades or salary grades of the personnel on
the job. For example, labor categories could be Project Manager, Sr.
Engineer, Machinist, Clerk, etc. Each labor category has a specific direct
labor rate ($/hr) associated with it.
Escalation If you performed two identical projects a year apart in time, you would
probably not incur the same material or ODC expenses. Even if all other
project variables could be controlled and held constant, inflation will
typically cause material and ODC costs to rise from year to year. Changes in
material and ODC costs with time are handled by escalation rates in
ModelBuilder.
FYI: CostMetrix Estimator has a similar feature that allows the user to enter predicted
escalation factors for future years. It will then adjust the material and ODC estimates
to account for the escalation from the cost model creation date until the period of
performance. All this is handled automatically for the user. He just has to enter the
escalation factors to take advantage of this feature.
Cost and price The terms cost and price are often confused when discussing cost estimating
systems. Using a literal definition, the cost is the direct and indirect expense
your company or business incurs to execute a project. The price is what you
charge your customer for the project. The difference between the cost and
the price is the profit or fee.
Therefore, when you enter historical project costs into ModelBuilder, you
would normally enter unburdened, direct costs. As a result the cost equations
it derives will be in units of direct unburdened cost. This allows the
estimator to enter overhead and G&A rates that are applicable at the time the
project is performed, resulting in an accurate cost estimate in the period of
performance.
Summary This chapter described some of the key terms used in ModelBuilder and
explained some of the main concepts of the program. Of course, it is easier
to grasp how these concepts are applied when you are actually using the
software. Therefore, Chapters 3 and 4 are presented in the form of a tutorial
in which you will build a sample project cost model. After reading Chapters
1 and 2 and installing ModelBuilder onto your system, you are ready to
begin Chapter 3 and start using ModelBuilder.
Starting a new Johnson Turbopump Technology (JTT) is a fictitious company that designs
cost model and manufactures turbopumps. As you follow the instructions in this chapter
step by step, you will build a simple cost model for the design of turbo-
pumps. In this exercise, you will play the role of Dave Wilson, a Project
Manager in the Engineering Department of JTT, who is creating a cost
model to allow JTT to quickly produce high-quality cost estimates for future
pump design projects.
To get started, launch ModelBuilder and select New Model from the File
menu. Notice the key features of the main window as shown in the figure on
the next page. Although you will use other supporting windows and dialog
boxes, this window is the home base for cost model design. You can resize it
to make more room for long task names by dragging the lower right hand
corner of the window to the desired proportions.
There are five speedbuttons in the upper left hand section of the window
(immediately below the main menu) which provide quick access to
commonly used commands such as opening a cost model, saving a cost
model, or changing display fonts, etc. If you pause the mouse pointer over
each button, a description of the function will be displayed in a pop-up hint
box.
To the right of the speedbuttons are the six main function buttons. In the
process of designing a cost model, you will generally progress from left to
right through the functions accessed by these key buttons. (At the moment,
they are disabled because a cost model file is not currently open.) You will
learn more about each of these functions as you progress through the cost
model design stages.
Speedbuttons
Task List
Parameter Catalog
FYI: You can change the appearance of the buttons to the flat Microsoft Office style
using the Preferences dialog box which is accessed under the Edit menu.
The left side of the main window includes a pane where you will build the
Task List, a breakdown of the activities or work elements of a project. Since
real projects typically consist of multiple tasks, this activity-based approach
allows you to break down a cost model into logical parts. ModelBuilder
allows each task to have its own cost estimating relationships for labor,
material, and ODC costs.
The upper right hand section of the main window contains the Parameter
Catalog, which is a list of all the parameters defined in the cost model. You
will define several parameters in this chapter, adding them to the Parameter
Catalog.
The lower right hand section of the main window contains the Task Detail
tabs where detailed information about each task is displayed and entered.
The information presented there depends on the type of task selected in the
Task List. You will learn more about the items on those tabs later in this
chapter.
Select New Model from the File menu now to start a new cost model file.
When you finish this tutorial, this cost model file will contain the definition
of the cost model structure, the historical cost data, and the cost estimating
relationships. It will be a fully compiled cost model file, meaning it contains
everything necessary for project cost estimating with CostMetrix Estimator.
Entering cost The Summary Information dialog box will appear whenever a cost model is
model summary opened. It can be accessed at any time in the cost model design process by
information clicking on the Summary Info button in the main window. This dialog box is
where the name and description of the cost model, the author, the company
name, and other top-level information are recorded.
For this example, enter the Cost Model Name, Company, Model Description,
and Model Creator Information, as shown in the example. You can use the
tab key to move from field to field as you enter data.
NOTE: If you are using a demo version of ModelBuilder, or if you have not registered
your software and entered the Personal Authorization Code, you will not be able to
save your file at this time. Instead, you will see a registration dialog box. If you are
evaluating ModelBuilder for your organization, simply continue on with the tutorial
without saving.
Creating the Task The next step in designing a cost model is to create the Task List.3 An initial
List generic task is automatically provided in the window when a new cost model
is started. It is shown as Task #1, with a question mark as a prefix meaning
that the task type is not yet specified. Since Parametric tasks are the most
powerful but also the most complicated to use in ModelBuilder, you will
start by making a simple cost model with one Parametric task.
Start the Task List definition by renaming Task #1 to “Design Layout”. You
do this using the same technique you would use to rename a file in the
Windows Explorer.
Renaming a task:
1. Click on the text of Task #1 once to select it.
2. Move the cursor slightly off the text, and then move the cursor back over
the text and click again. This puts the name into edit mode.
3. Type the name “Design Layout” to replace the original name of the task.
The question mark prefix by the task name indicates that ModelBuilder
needs to know what type of task this will be in the cost model. The task type
is selected using the buttons on the Task Summary Info tab in the lower right
hand section of the window.
3
The Task List is sometimes called the work breakdown structure (WBS) by government
agencies and companies that bid for government contracts. It is important to note that items
in the list do not have to be ‘tasks’ in the strictest sense. They can represent any type of
project cost element such as materials or supplies.
ModelBuilder will replace the question mark beside the task name with a red
P symbol indicating a Parametric task. In Chapter 4 you will add other types
of tasks to this cost model and you will see how ModelBuilder assigns a
unique prefix to each type for quick visual identification.
Basis of the CER The box labeled Basis of CER is where you briefly state how the cost
estimating relationships for each task were derived. ModelBuilder auto-
matically enters the following statement when a new Parametric task is
created.
The cost estimating relationships for this task were derived by CostMetrix
ModelBuilder based on a parametric analysis of the historical cost data
contained in this cost model.
This tells anyone reviewing your cost model, or estimates derived from it,
that the basis of the CER is the historical project data contained in the cost
model. You can edit or replace this statement with another if you prefer.
At this point, your screen should look like the figure below.
Parametric task
Entering the task The next step is to add a task description for Design Layout. The task
description description is an aid to the cost estimator who will be using the cost model
with CostMetrix Estimator. When the user clicks on each task name, the
description of each task will appear in a window of CostMetrix Estimator.
The task description is the means by which the cost model designer conveys
the basic meaning and scope of a task to the end-user estimators and the
recipients of the estimates. The task descriptions are also listed in a
ModelBuilder report that you can print to document the description of each
task in the cost model for future reference or audit, and in a CostMetrix
Estimator report that the user can print to document the description of each
task for the customer. Therefore, it is highly recommended that a short but
concise task description be entered for each task in the list.
To enter the first task description, click the mouse in the Task Description
text window and type the description shown below. ModelBuilder will
assign the description you enter to the task that is currently selected in the
Task List.
This task consists of making a master layout of the pump design configuration
from which detail drawings and analyses can be performed. It also includes
1st cut analysis for element sizing.
TIP: You can use the standard Windows Cut, Copy, and Paste functions to import
text from other documents on your computer. If you have task descriptions in
another document, simply copy and paste them into the description window of
ModelBuilder. Task descriptions can be up to 240 characters long.
Creating quantity Parameters are the project variables that directly influence the cost of
parameters performing one or more tasks. In other words, they are the cost drivers. In
this simple cost model you will define several parameters which have been
chosen to demonstrate some of the capabilities of CostMetrix ModelBuilder
and to show how it can help you extract even subtle cost relationships from
your historical project cost data.
Selecting a Quantity parameter type will cause the Limits detail tab to
appear in the lower half of the dialog box. The limits feature in
ModelBuilder is used to prevent an estimator from accidentally entering an
erroneous or invalid parameter value when creating a cost estimate based on
this cost model. It allows you to set specific range limits within which the
estimator’s entries must remain. If the estimator tries to enter a value
outside the limits set here, an error message will be generated and the value
will be reset to the nearest limit. Since we know that the number of parts can
never be less than 0 (negative numbers not allowed), enter “0” in the
Minimum valid value: data field.
Later in this tutorial you will use the limits feature to set a maximum value
for this parameter, below which the accuracy of this cost model has been
validated. This will prevent the estimator from entering values outside the
range of the historical project cost data where the cost model accuracy is
unknown.
Later in the tutorial, you’ll define a parameter called Flow Rate with units of
cubic feet per minute (cfm), which will be specified on the Parameter
Editor. Units are important, because you want the estimator to enter
parameter values using exactly the same units you use to derive the cost
model. If you assumed the units of yards for a parameter, and the estimator
enters the parameter value in feet, a significant error could result in the cost
estimate.
The dialog box should now look like the figure below. Click on the OK
button to close it and you will see that the new parameter is now listed in the
Parameter Catalog. All the parameters defined for this cost model will
eventually be listed in the Parameter Catalog from which they can be
assigned to any Parametric task in the cost model.
With the first parameter defined, you can now assign it to one or more tasks
in the cost model. Assigning a parameter to a task is how you tell
ModelBuilder that the cost of the task is related to (i.e., is a function of) the
value of that parameter. Later, after you have given ModelBuilder some
historical project cost data, it will try to solve for a set of mathematical
relationships that accurately predict the cost as a function of those
parameters. ModelBuilder does all the difficult and laborious math work for
you so you can focus on refining your cost model and testing various
parameters for valid cost relationships.
Assigning One of the unique features of ModelBuilder is the graphical user interface
parameters to for building cost models. Assigning a parameter to a task is a simple drag
tasks and drop process. To assign the # of Parts parameter to the labor cost
category of Design Layout follow these simple steps:
3. Click on and drag the # of Parts parameter from the Parameter Catalog
into the Assigned Labor Parameters window and drop it.
NOTE: The # of Parts parameter remains in the Parameter Catalog and is available
to be assigned to other tasks. Parameters in the catalog are global variables; that is,
they have a single value for an entire project. If the estimator enters a value of 45 in
his estimate for # of Parts, that value will apply to all tasks in that project that have #
of Parts assigned.
Assignments for labor, material, and ODC cost categories are made individu-
ally on the three tabs under Parameter Assignments. If you don’t incur costs
in one or more of those categories, you should not assign parameters there.
In this case, assume that Design Layout involves labor costs only, so material
and ODC parameter assignments are not required.
TIP: Use experience and common sense as your guides when selecting and
assigning parameters. ModelBuilder will try to find the mathematical relationships in
the project historical cost data based on your parameter assignments. If the data and
your parameter assignments don’t correlate, ModelBuilder will tell you so you can try
others.
Deleting If you mistakenly assign a parameter to the wrong task or category, simply
parameter click on the parameter name in the Assignments window and click the Delete
Entry button on the Parameter Assignments tab to remove it. For practice,
assignments
delete the # of Parts parameter assignment to Design Layout labor, then drag
it from the parameter catalog and drop it into Labor Assignments again to
restore it.
WARNING: If you have historical data in the cost model database, deleting a pa-
rameter assignment will purge the associated historical values for that parameter in
the database. In this example, no project data has been entered yet, so nothing is
lost. ModelBuilder will always ask you to confirm the action when you delete a
parameter assignment.
Scale parameters The next step in designing this cost model illustrates the use of a scale
parameter. Assume that Dave Wilson suspects that the Design Layout cost is
dependent on the pressure ratio of the pump. A high pressure ratio means the
pump must be designed more carefully to achieve high efficiency. Therefore,
the design cost generally increases as the pressure ratio gets larger.
You can add this cost relationship to the cost model using a scale parameter.
A scale parameter includes a range of numerical values with a descriptive
label for each value within this range, which the estimator can use as
reference points to assign a value for a future project when an estimate is
made. You will use the following descriptions and values for the pressure
ratio parameter.
If the pump has a pressure ratio between 1/1 and 4/1, the parameter will be
assigned a numerical value of 1 on a scale of 1 to 5. Similarly, if it has a
pressure ratio between 51/1 and 100/1, the parameter will be assigned a
value of 4. The descriptive levels are simply a means of calibrating the range
of pressure ratios to a numerical scale, which relates to the degree of
difficulty. The descriptions can be subjective terms such as low, medium,
and high, but their meanings should be terms that are well understood by
estimators.
The order of the scale values is important; they must be listed in order of
ascending degree of difficulty (i.e., cost). Each level is assigned a numerical
value of 1 for the baseline cost, increasing by 1 to the highest cost. (See
Optimizing parameter ranges on page 73 for information on fine tuning
these values in special circumstances).
A key thing to remember about scale parameters is that the estimator can
select one of the defined scale descriptions when estimating, or he can
interpolate any intermediate value by entering an appropriate numerical
value. For example, the estimator could enter a value of 1.4 for the Pressure
Ratio parameter and CostMetrix Estimator will interpolate the cost
proportionately between the first two levels in the table.
To create this new scale parameter, click on the New/Edit button next to the
Parameter Catalog to open the Parameter Editor, then click on the New
Param button and enter the name “Pressure Ratio”. This parameter should
be a Scale type, so click on the Scale button.
Click to create
scale levels
Enter descriptions
and values
If you make a mistake, you can delete a scale level using the Delete button
beside the list. If you enter them out of order, you can use the Move Up and
Move Dn buttons to rearrange the list. You can override the values
ModelBuilder places in the Value field, but in most cases you won’t need to.
If you rearrange the scale descriptions, be sure to edit the values if necessary
to obtain an ascending integer series; 1, 2, 3, … as shown above.
After you have entered all of the scale descriptions and values in the correct
order, click on the OK button to return to the main window. There should be
two parameters in the Parameter Catalog now in the order shown below. If
they are out of order, use the parameter Move Up and Move Dn buttons to
rearrange them to be consistent with this example.
Using the drag and drop technique, assign the Pressure Ratio parameter to
the labor category of the Design Layout task. So far, your assignments have
told ModelBuilder that the Design Layout cost is dependent upon the # of
Parts and the pump Pressure Ratio.
Primary and You may have noticed that the first parameter in the Assigned Labor
secondary Parameters window of the Parameter Assignments tab has brackets around
parameters it. This indicates that it is the primary parameter for this task in the labor
cost category. All other parameters after it will have no brackets indicating
they are secondary parameters.
You should put the most significant parameter (or at least the one you
assume to be most significant) at the top of the list in the Assigned Labor
Parameters window. For example, the # of Parts is probably the most
significant factor in the cost of pump Design Layout compared to Pump Type
or Pressure Ratio. How do you know? Just use common sense. A good rule
of thumb is to look for a parameter that is most closely proportional to the
task cost and use it for the primary parameter. If you have doubts, you can
switch the order of assigned parameters to see which primary parameter
gives you the best accuracy statistics.
Grade parameters A grade parameter can be used to define a variable that must be one of
several specific values. For example, electrical resistors come in several
specific precision grades. Irrigation pipe can be Schedule 40 or Schedule 60
(denoting the pipe grade classifications). Building materials can also be
classified in grade levels such as construction, exterior, interior, clear, etc.
Grade levels must be arranged in order of ascending cost impact. If they are
not, ModelBuilder will not be able to determine a valid cost relationship
from the project data, if one exists. The Values of the grade entries are a
numerical scale used by ModelBuilder. They are normally assigned a value
of 1 for the lowest grade, increasing by 1 to the highest grade as shown
above. (See Optimizing parameter ranges on page 73 for information on fine
tuning these values in special circumstances).
The key thing to remember about grade parameters is the cost estimator will
be required to select one of the predefined grade descriptions when
estimating. For example, there is no halfway point between “Industrial” and
“Research”. If you need a parameter that can accommodate a continuous
range of potential values refer to the Scale type parameter described on page
40.
If you make a mistake, you can delete a grade level using the Delete button
beside the list. If you enter them out of order, you can use the Move Up or
Move Dn buttons to achieve the desired order.
When you have entered both grade levels in the proper order, click on the
OK button to return to the main screen. You should have three parameters in
the catalog now.
Using the drag and drop technique, assign the Product Line parameter to the
labor category of the Design Layout task.
Running a model This is a good time to run the first Model Check. The purpose of the Model
check Check feature is to check for certain types of errors in the cost model design
or the historical project cost data. When you initiate a Model Check by
clicking the Model Check button on the main window, ModelBuilder
inspects the cost model design and project data and checks for over twenty
common types of cost model errors. It then displays an on-screen report of
any errors or warning conditions it finds. Model Check does not spell check
your entries, nor can it detect typographical errors, but it can detect many
types of design errors that could lead to faulty estimates.
Click on the Model Check button to tell ModelBuilder to inspect the current
cost model. In a few seconds the Model Check Report will appear. If all the
data described so far has been entered correctly, the Model Check Report
will indicate that no errors were found in the cost model structure or the
historical data as shown in the figure below.
NOTE: ModelBuilder keeps the Project Data button disabled until you have passed
the Model Check without errors. This prevents you from entering historical cost data
that may be improperly associated.
The Model Check results appear in the Report Viewer, which is used to
preview and/or print all types of ModelBuilder reports. These reports are
preformatted so you can generate them with a single mouse click. On page
48, you will learn how to put your company logo image on the reports. For
now, click on the Close button to return to the main screen.
Click on the Reports button now to open the Select Reports to Print dialog
box shown on the next page. A good way to get familiar with each type of
report is to browse through them using this sample cost model. Three basic
types of reports are available; Cost Model Definition Reports, Historical
Project Data Reports, and Cost Model Analysis Reports. Cost Model
Definition Reports relate to the structure of the cost model such as tasks,
parameters, parameter assignments, etc. Historical Data Reports, and Model
Analysis Reports will be described later.
Select the Parameter List report on the Select Reports to Print dialog box
and click on the View/Print button. Make sure the Check for Preview before
Print option is selected so a report preview will appear on the screen. If this
option is turned off, the report will go directly to the printer without a
preview.
FYI: You can select multiple reports in the Select Reports to Print dialog box and
they will open or print in sequence.
Within the Report Viewer, you can scroll down the report and move between
pages (if you have a multi-page report) using the control buttons. You can
also print directly from the viewer. As an exercise, try selecting each type of
report available on the Select Reports to Print dialog box and view them to
become familiar with the information each provides.
You can also save reports on your hard disk for future use. For more
information see Section 5.
Changing the The logo image that appears on the report in the upper right hand corner
report logo image comes from a bitmap file (.bmp) or Windows metafile (.wmf) on your hard
drive. In this example, it is a Johnson Turbopump logo. ModelBuilder looks
in the folder where the ModelBuilder program is installed for a file called
logo.bmp or logo.wmf, which it uses to generate the logo image on the
report.
usually best to start with an image that is about 4 times the actual size on the
page (such as 532 x 248 pixels) or larger to end up with a high resolution
image on the printed page.
You can create a bitmap logo using the Windows Paint application or any
one of many drawing or illustration programs. You can also create a metafile
logo using Microsoft Powerpoint. Open a new presentation in Powerpoint
then select File/Slide Setup. Set the size of your slide to 11 inches wide by
5.1 inches high to establish the correct proportions. Then create the logo on
the slide using the tools in Powerpoint. When done, save it as a .wmf
metafile instead of the default .ppt presentation format.
Entering historical Under normal circumstances you will have many tasks in your cost models
project cost data to represent each work element of your projects. Later in this tutorial you
will add more tasks as you continue building this cost model in Chapter 4.
However, to clearly illustrate each step in the implementation of a typical
Parametric task, let’s move on to the process of entering historical cost data
from which cost estimating relationships will be derived for the Design
Layout task.
Historical cost data is simply the costs incurred on similar past projects in
the history of your organization. Historical data also includes actual
parameter values for those projects, such as the number of stages in the
pumps, pressure ratios, etc. Each time you enter historical cost data into
ModelBuilder, it must be associated with a specific project and task.
Click on the Project Data button to open the Historical Project Data
window.
There are four sections in this window. From top to bottom they are labeled
Historical Projects, Task Information, Project Parameters, and Project Cost
Data, which is the typical order that historical cost information is entered.
First, you specify the project on which the cost was incurred, then the
particular task, then you enter the appropriate parameter values and the
labor, material, and ODC costs.
Before you can enter historical costs for a project, you must register the
project by giving ModelBuilder some basic information about it. This is
done through the Create Projects button. The Project Name drop-down list
shows all the projects registered in the database. Since no projects have been
registered with ModelBuilder yet, the drop-down list of projects is currently
empty. After you register a project, you will be able to select a parametric
task and enter historical cost data.
Registering a Click on the Create Projects button to open the Project Registration dialog
project box. This dialog box has a set of control buttons across the top that allow
you to navigate through the list of registered projects, and a section of detail
information that applies to the currently selected project. At the moment no
project information is displayed because you have not registered the first
project yet.
Registering a project:
1. Click on the New Project button to create the first project. The words
“New project #1” will appear in the Project Name field.
2. Change this text to “Venus”, which is the product name for a JTT pump.
3. Enter the Venus project start date, end date, compiler’s name, and
description in the dialog box as shown in the figure on the next page.
The project dates, compiler’s name, and description are important parts of
the cost model record in the event it is audited. The start and end dates are
also used by ModelBuilder as the default task dates when cost information is
entered.
Click on the OK button to close the Project Registration dialog box. You
will now see the Venus project listed in the Project Name drop-down box at
the top of the Historical Project Data window. The Venus project is now
registered with ModelBuilder. You could continue to register other projects,
or you can now enter historical cost data on the Venus project. For this
exercise, proceed to entering historical cost data on the Venus project.
Adding a task If you have multiple Parametric tasks defined in your cost model, you can
record to the select the specific task or tasks on the Venus project for which you will enter
project cost historical cost data. ModelBuilder does not automatically assume that you
will enter Venus cost data for all Parametric tasks in the cost model. In some
database
cases, you may not have historical cost data for certain tasks on some
projects.
Therefore, ModelBuilder lets you enter historical cost data for only the tasks
you choose. You do this by adding a task record to the database using the
Select Tasks with Data button.
The Design Layout task is now listed in the Task drop-down list box in the
Task Information section of the Project Data window. This list box lists all
the tasks of the currently selected project with records in the cost database.
Within the Task Information section of the window are several other data
entry boxes. First are date fields for the start and end of this task on the
Venus project. ModelBuilder inserts the project start and end dates by
default, but you can override those dates if the task start and end dates differ
from the project dates. For this example, change the task end date to
“10/1/96”.
ModelBuilder will not allow you to enter a task start date that is later than
the end date because that wouldn’t make sense. If you try, it will
automatically change the end date to match the start date. Likewise, you
cannot enter a task end date that is earlier than the start dates. In that case, it
will automatically change the start date to match the end date. Whenever it
makes an automatic date change, ModelBuilder will issue a beep to warn
you to recheck the dates for correctness.
NOTE: ModelBuilder is Y2K compliant and displays all years in four-digit format.
Percent completed The text box labeled % Completed has a value of 100 by default and in most
option cases you will not need to change it. This field is used when the task you are
entering was not actually completed. If you enter a value of less than 100 in
this box, ModelBuilder will adjust the actual costs you enter for the task
before solving for cost estimating relationships. For example, a task that is
70% completed will be scaled by a factor of 1/0.70 to approximate the cost
that would have been incurred if it had been completed. In other words,
ModelBuilder extrapolates the cost for you.
The Comments field is where you can enter any relevant information about
each task of the project that you wish to capture in the database for archival
or future reference. If there were any unusual circumstances with this task
that might have affected the cost in any way, this is where you can record
them for the audit trail. Leave this section blank in this example cost model.
You should now see three parameter names listed in the Parameters section
of the window. Only the parameters assigned to this particular task will
appear in the list. Also shown is the type of parameter; Quan, Grade or
Scale. ModelBuilder is ready for you to supply the specific values of those
parameters for the Venus project.
Entering # of Parts is a quantity parameter. For quantity parameters, you simply enter
parameter values the values into the table. Assume that the Venus pump had 61 parts. Click
for historical within the Value field on the # of Parts line, type a value of “61” and hit the
enter key.
projects
Pressure Ratio is a scale parameter. For scale parameters, you need to enter
a numerical value within the range of the scale or select one of the scale
descriptions. ModelBuilder makes this easy.
You could also enter “3” directly, or any floating point value within the scale
range of 1 to 5, such as “2.3”.
FYI: If your parameter names or values are very long, you can resize the columns in
the Project Parameters table. Simply click and drag the column dividers in the title
bar to resize the Parameter Name column to the desired width. Then click the mouse
once anywhere on the title bar to refit the Value column to the remaining available
space.
Product Line is a grade parameter. For grade parameters, you need to enter
one of the specific grade values. ModelBuilder guides you here also.
3. Select the appropriate value for the grade parameter directly from the
drop-down list. In this case, select Industrial from the list for this pump,
and CostMetrix Estimator will enter it in the database.
TIP: If a parameter has units defined in the Parameter Editor, you can see a hint by
clicking on the parameter name and pausing the mouse a moment. A hint box will
appear with the units listed.
Entering historical The next step is to enter the historical cost for this task of the Venus project.
labor hours Labor is entered by labor category. Assume that the Venus project had labor
incurred in three labor categories; Sr. Engineer, Admin 2, and Clerk. Each of
these has a specific labor rate ($/hr) associated with it. First you define the
labor categories, then you assign them to the task, and you enter the labor
hours incurred. Start by defining the labor categories.
2. Click on the New/Edit button, which opens the Category Editor. The
Labor tab will be visible on this dialog box.
3. Click on the New Category button to create the first labor category
definition. ModelBuilder will enter the name “New labor category 1” in
the Name field of the dialog box, highlighted so you can immediately
change it to your chosen labor category name.
4. Type “Sr. Engineer” in the Name field. If your company uses labor
codes, you could also enter the appropriate one in the Code field.
TIP: If you have the labor tab selected on the Cost Categories Catalog when you
click the New/Edit button, the Category Editor will open with the labor category tab
visible. If the material tab is selected on the Cost Categories Catalog, the Category
Editor will open with the material category tab visible. Likewise for the ODC category.
The Category Editor will always open with the current cost category visible.
Click on the New Category button again to create the second labor category.
Replace the name “New labor category 2” with Admin 2. Repeat this process
to create the Clerk labor category as well.
Now change to the ODC tab of the Category Editor and create an ODC
category, which you will use later in Chapter 4. For ODC and material
categories you can specify a supplier or source as well as the category name
and ODC code. Click on the New Category button, then enter the name,
description, and supplier shown below.
Click on the OK button to close the Category Editor and notice the Cost
Category Catalog. On the labor tab, you will see the Sr. Engineer, Admin 2,
and Clerk labor categories. On the ODC tab, you will see the Office
Expense. These are now part of the cost model and you won’t have to define
them again, even if you use them in other tasks.
NOTE: You can use the same steps outlined above to enter as many labor, material
or ODC categories as you need for your cost model.
Next you must enter costs for the Design Layout task of the Venus project by
cost category.
Instead of dragging and dropping cost categories, you can accomplish the
same thing by using the right mouse button, which brings up a context-
sensitive menu.
Click on the Admin 2 labor category with the right mouse button to see a
menu pop up with the option Add to Current Project Data Record. Select
this menu item and ModelBuilder will add Admin 2 to the Labor Cost table
for this task on the Venus project. Enter 46 hours for the Admin 2 category.
Similarly, drag and drop or use the pop up menu to add the Clerk labor
category into the Labor Cost table, and enter 37 hours. The Project Data
window and Cost Category Catalog should look similar to the figure on the
next page.
Adding to the Adding a second project to the historical database is just like adding the first
project history project. Close the Cost Category Catalog then click on the Project
Registration button to open the Project Registration dialog box. Click on
database
the New Project button to create the next project. The words “New Project
#2” will appear in the Project Name box. Change this text to “Mars”, which
is the code name of another Johnson Turbopump product. Enter the
following data in the appropriate fields of the dialog box:
When you enter years between 1951 and 1999 in two-digit format (i.e. 50
through 99), ModelBuilder assumes you mean 19XX and automatically
converts it to four-digit format. All other two digit years are assumed to be
20XX.
Click on the OK button to close the Project Registration dialog box. You
should now see the Mars project listed in the Project Name drop-down box
at the top of the window and no tasks listed in the Task Information drop-
down list. The Mars project is now registered with ModelBuilder.
For additional practice, continue to add historical cost data to the cost model
for the Design Layout task using the data listed below for seven additional
projects. Here are the basic steps you should follow:
You don’t have to follow this order rigidly. You can register all the projects
first, then add the tasks and historical cost data if you prefer. When you enter
the pressure ratio for each project, remember to use the drop-down list to
select the appropriate pressure ratio range that corresponds to the specific
value for the pump.
FYI: The file JTPump2.cmf in the Examples folder in the ModelBuilder application
folder on your hard drive contains all the cost model data described in this exercise
up to this point including all the historical project data you are about to enter. Open
this file if you don’t need the practice of entering all the historical data shown below
but wish to resume the exercise at the next step described below. You may want to
save your working file under a new name to preserve the original examples.
NOTE: You will have to create a labor category called Admin 1 to enter the data
shown below.
When completed, you should have entered Design Layout labor costs for a
total of eight projects.
TIP: You can use the standard Windows Cut, Copy, and Paste functions to import
text from other documents on your computer. If you have task descriptions in
another document, simply copy and paste them into the description window of
ModelBuilder. Task descriptions can be up to 240 characters long.
Click in the 1996 percent field of the material escalation tab and enter “1.7”.
This means 1.7 percent average escalation for the entire year of 1996. Below
that enter 1.6 percent for 1997, 1.9 percent for 1998, 2.1 percent for 1999,
and 2.8 percent for 2000. There are no projects before 1996 in the database,
so escalation rates for earlier years are not required in this cost model.
NOTE: Escalation after 2000 is omitted in this example simply to allow the cost
coefficients of your cost model to match those shown in this tutorial. Normally, you
should enter escalation rates for all years starting with the year of the earliest project
up through the current year.
You can create such a spreadsheet with rates applicable to your material and
ODC types and save it in the .csv format. Use actual rates for past years and
projections of future rates for future years (future rates are used by
CostMetrix Estimator only). An example is included in the program folder
where ModelBuilder is installed. To try it, click on the Import button on the
Escalation dialog box. Select the file named Escalation.csv using the Open
dialog box and click on the Open button. ModelBuilder will import the
material and ODC rates listed in the table shown above.
NOTE: One escalation rates file can be created for use with both CostMetrix
ModelBuilder and CostMetrix Estimator. If it is placed on a network file server, all
users can access it and maintenance is simplified. ModelBuilder only uses the rates
in the table for the years listed in the ModelBuilder Escalation dialog box. All other
years are ignored.
If you are updating a cost model that was initially developed in a prior
calendar year, you may need to add one or more years to the escalation table.
For example, if you started a cost model in 1998, the default escalation table
would include the twenty-year period up to and including 1998. If you then
needed to add a few projects to the historical cost database in 1999 to update
the cost model, you should add a year to the escalation table so escalation
adjustments can be accurate up to the date the cost model is compiled.
Viewing and ModelBuilder provides a comprehensive set of historical data reports that
printing historical you can view and/or print. You can access these reports through the Reports
data reports button. You can also access the reports through the Printer button or by
selecting Print Reports... from the File menu.
To review all historical labor, material, and ODC costs you have entered so
far, view or print the historical data reports such as the Project Direct Cost
by Category report. You can also review the parameter values for each
project using the Project Parameters report. Browse through each report
now to become more familiar with their contents.
Run another Model Check by clicking on the Model Check button. If all the
data described above has been entered correctly the model check report will
state:
If that is not the case, use the error messages and warnings as a guide to
double check your cost model data against the information shown on the
prior pages, and make corrections as necessary until you get no errors when
you run Model Check. Once you have achieved this, the Solver button will
be enabled on the main window. With the cost model definition completed
(for now) and the historical cost data entered, you can now proceed to
solving the cost estimating relationships.
But first, save your cost model using the name JTPump3.cmf. You will use it
in the next chapter when you begin to explore the Solver.
Summary This chapter described the process of creating parametric tasks and entering
historical project data. In the next chapter, you will be introduced to the
Solver, a powerful feature of CostMetrix ModelBuilder that will extract
parametric cost estimating relationships from your company data.
The Solver is so unique that it gets its own chapter. After reading this
chapter you will be versed in all aspects of using the Solver and optimizing
your cost estimating relationships with its powerful and time-saving features.
The Solver CostMetrix ModelBuilder can derive cost estimating relationships for
Parametric tasks using its built-in Solver. This is a capability that no other
cost estimating system offers, and it greatly simplifies the procss of
developing high-quality parametric cost estimating relationships.
The Solver can derive cost estimating relationships that model the nonlinear
cost behavior of multiple parameters using a 2nd order polynomial curve
fitting algorithm. For example, it can model exponential learning curves and
diminishing incremental costs.
The upper section of the window contains the main Solver controls and
message display. The lower section is where the Solver results are displayed,
including a graphical depiction of the historical cost data and the CERs that
are derived by the Solver. The graphical display can be very useful in
understanding both the characteristics of your historical data and the quality
of the CERs. There are separate tabs for labor, material and ODC cost
results.
The first step in solving for cost estimating relationships is to initialize the
Solver. To do this, just press the Start button. The Solver will briefly display
a message telling you that it is being initialized. This process may take a few
seconds depending on the number of Parametric tasks in your cost model
and the speed of your processor. When it is completed, the message in the
Solver window will appear as shown below:
The graphics area displays eight data points representing the labor cost (in
hours) for each project in the database, plotted versus the value of the
primary parameter (which for this task happens to be # of Parts). A
horizontal red line at Labor Hrs = 0 indicates that a cost estimating
relationship has not yet been solved.
Design Layout is the name of the first Parametric task in this cost model.
The Solver is ready solve for the parameter weighting coefficients and the
coefficients of a constrained polynomial equation that best fits the historical
cost data based on the parameter values you have entered for the projects. It
will iteratively refine the equation coefficients to optimize the quality of the
cost estimating relationship based on the error between the prediction and
actual costs for the historical projects in the database.
General form of The Solver develops cost estimating relationships of the form:
the Solver CER 2
Cost = A + B(X) + C(X )
Cost = A + B(X)
$ 3
0
0 1 2 3 4 5
In this form, the A coefficient is the cost value when the parameter value X
is zero. This is useful for modeling tasks that include a fixed start-up or set-
up cost. The B coefficient is the slope of the cost line – in other words, the
incremental cost as the value of X increases.
For example, the cost to run a printing job might be $220 for set-up plus
$0.57 per piece. This is represented by the equation:
16
14
12
10
$ 8
6
4
2
0
0 1 2 3 4 5
3.5
2.5
2
$
1.5
1
0.5
0
0 1 2 3 4 5
The value of the C coefficient is negative.0006, and the cost trend is shown
in the figure below.
1800
1600
1400
1200
1000
$ 800
600
400
200
0
0 1000 2000 3000 4000 5000
Now, the start-up cost is still $220, but the incremental cost decreases as the
number of pieces increases, which is commonly the case with printing runs.
NOTE: This CER formulation models continuous cost functions. In other words, the
cost is a single continuous function throughout the range of X. What if you have
discontinuous cost processes to model? For example, what if the cost to print 10,000
pieces actually dropped below the 5000 piece cost because a total different process
could be applied? Simply break the task up into subtasks each of which has a
continuous cost function. One task models runs of less than 10,000 pieces, and
another task models runs of more 10,000 or more.
The composite In the examples described above, a single parameter is assumed for X. In the
parameter X printing example, it is the number of pieces. However, X can be a function
of multiple parameters assigned to the task. The general form of X is
e e e
X = P1 1 * P2 2 * P3 3 …
Where P1, P2, P3, etc, are the actual parameters assigned to the task, and e1,
e2, e3, etc. are the parameter weighting coefficients. In effect, the exponents
determine how strongly each parameter influences cost.
For the printing example, P1 is the number of pieces and the value of e1 is 1,
so the value of X is identically equal to P1. But there are different types of
printing jobs that affect cost, like black and white, spot color, and four color.
You can have another parameter P2 that relates to the type of printing which
can be factored into the value of X, and therefore to the total cost of the job.
For example, assume that a grade parameter called Job Type is defined with
the values shown below for each job type. The values of 1 through 3 are
somewhat arbitrary, but serve to place the three job types on an ascending
numerical scale that simply says that four color is more expensive than spot
color, which is more expensive than black and white.
But while the parameter values may be arbitrary, the exponent value e2 can
be calibrated to represent how job type influences cost. This can be
illustrated by a few more examples. If the value of the e1 exponent is 1 and
the e2 exponent is zero, then the composite parameter reduces to simply:
X = P1
In this case, the job type has no influence on cost at all. The cost is totally
dependent on the number of pieces. Even if the parameter Job Type is used
in the cost model, it will have no effect on the cost estimates. This is an
example of an uncorrelated parameter.
X = P1 * P2
In this case, both parameters are involved and the values of each become
significant. Since the value of Job Type for black and white printing is 1, that
is the baseline value. If four color printing is selected, the cost will be three
times higher since the value of P2 for four color jobs is 3.
If the value of the e1 exponent is 1 and the e2 exponent is 0.5, then the results
start to get interesting. The composite parameter reduces to:
0.5
X = P1 * P2
Now, notice that if black and white printing is selected, the value of P2 is 1,
and 1 to any power is still 1. So the baseline cost is the same regardless of
the value of e2. But if four color printing is selected, the cost will be 1.73
times higher since the value of P2 for four color jobs is 3, and 30.5 is equal to
1.73. So the exponent e1 has effectively calibrated how strongly the Job Type
influences total cost, independent of the number of pieces in the job.
The power of the Solver is that it can determine the optimum values of
polynomial coefficients and exponent values for multiple simultaneous
parameters using your historical cost data, so you get powerful estimating
relationships almost instantly. And the graphical feedback helps the easily
assess the quality of the results.
The exponent for this parameter can be optimized to exactly predict the
relationship between the cost of any two of these job types, but the relative
cost of the third point is determined by the 1, 2, 3 … ascending range of P2.
For example, perhaps the historical data shows that four color jobs are
indeed 1.73 times more expensive than black and white jobs on average. But
are spot color jobs actually 1.41 times more expensive than black and white
as our model indicates? Perhaps not, although the Job Type order indicates
that
we know from experience that the cost of a spot color job is always between
the cost of black and white and four color.
Now, spot color is only 26% more expensive than black and white. Notice
that the change of P2 values only changed the relative cost of these three Job
Types because the exponent value is still optimized to determine the basic
influence of this parameter on total cost.
Polynomial The Solver give you control the type of polynomial to use in the CERs it
options solves. You can always tell it to limit the solution to a linear relationships of
the form:
Cost = A + B(X)
You can also tell the Solver to find the best solution while freezing the value
of A at zero, in other words, no start-up cost. But in some cases, the Solver
limits the type of CER polynomial depending on the number of project data
points available for the current task.
How the Solver The Solver provides a real-time graphical display of the solution as the
works optimization progresses. An explanation of what you will see happening
when you run the Solver follows.
When you press the Solve button, ModelBuilder calculates the composite
parameter X for each project based on the historical parameter values you
entered and the parameter weighting coefficients which it initially estimates.
It then plots the labor cost of the task for each project in the database (if
labor cost data exists in the database) versus the composite parameter X, and
displays those points in the lower portion of the Solver window. The data
points may initially appear quite scattered with no obvious trend present.
ModelBuilder then calculates the coefficients of a cost equation that best fits
the labor cost vs. composite parameter X data points using a weighted Least
Squares Method. ModelBuilder puts constraints on the coefficients of that
cost equation to avoid solutions that don’t make sense from a cost estimating
standpoint. It calculates how well that cost equation matches the historical
cost data and displays the results in the Solver window as the Average
Prediction Error, Typical Prediction Error, Maximum Prediction Error, and
Standard Deviation of the prediction error in labor hours. This completes the
first step in the solution process.
When the solution process is completed for the first Parametric task in the
cost model, ModelBuilder pauses so you can review the results for each cost
category. You can adjust the Solver controls and click Solve again to find a
new solution, move to a different Parametric task, Solve All to solve all
remaining tasks in succession, or click Close to exit the Solver.
Solver controls There are four settings you can use to control the Solver CER solution
algorithm. The Max. Iterations control sets the maximum number of steps
the Solver executes when optimizing the cost estimating relationship. If the
solution converges before the maximum number of iterations is reached, the
Solver will automatically stop. This control is set to 300 by default but can
be increased to as much as 1000 to allow more iterations for data sets that
don’t converge rapidly.
The A = 0 check box allows you to control the A coefficient in the general
equation that ModelBuilder uses in the curve fitting process, which is:
2
Cost = A + B(X) + C(X )
Which is best? That depends on the situation. If a task has a fixed start-up or
set-up cost, a nonzero A coefficient makes sense. However, if the cost of the
task should obviously be zero for zero parameter values, the A = 0 option
will give a more appropriate cost estimating relationship.
Consider the characteristics of the task you are modeling to determine which
option best fits the situation. In some cases, forcing the solution to zero cost
when parameter values are zero makes the most sense. In other cases, a finite
cost at X = 0 is exactly what is expected. You can change this control on a
task by task basis if you desire.
Cost = B(X)
The Minimization buttons control the least squares algorithm used by the
Solver. If the Std. Dev. option is selected, the Solver uses a classical least
squares algorithm, which minimizes the standard deviation of the absolute
error of all data points with respect to the prediction curve. If the Max. %
Error option is selected, the Solver uses a modified algorithm which uses the
percentage error of each data point, rather than the absolute error.
The difference between these two minimization options will be most obvious
when the cost of the task in question varies widely as a function of the
specified parameters. For example, the cost of a software programming
project is typically based on the number of lines of code that must be
developed. For a small project, there might be only 1000 lines of code
4
The least squares method is a mathematical curve fitting technique that minimizes the error
between a predictive curve and a set of discrete data points. For a more complete
explanation of this technique, see the Parametric Cost Estimating Handbook at www.ispa-
cost.org/PEIWeb/, or any one of many math text books.
Using a classical least squares minimization technique (the Std. Dev. option),
the Solver will attempt to derive a cost estimating relationship that
minimizes the standard deviation of the cost error (in labor hours or $) based
on the costs of the projects in the historical database. In other words, the
Solver tries to make the cost estimating curve fit all historical data points
using the cost error squared as the measure of fit quality.
If the Max. % Error option is selected the Solver will attempt to find a
solution that minimizes the percent cost error of all the projects in the
historical database. In other words, the Solver tries to make the cost
estimating curve fit all historical data points using the percent cost error
squared as the measure of fit quality.
In general, the Std. Dev. option will result in cost estimating relationships
that fit the higher cost projects in your database better, but may sacrifice
some accuracy on smaller projects on a percentage basis. On the other hand,
the Max. % Error option will result in cost estimating relationships that fit
the lower cost projects better, but may sacrifice some accuracy on larger
projects on an absolute cost basis. If the costs of all your projects fall into a
narrow range, the choice of Std. Dev. vs. Max. % Error won’t make much
difference in your Solver solutions
These options provide control over the cost estimating solutions found by the
Solver and help it deal gracefully with project data that is not always well-
behaved. Sometimes, reasonable cost estimating trends are difficult to
extract from real-world project data due to the scatter induced by unknown
factors. A good practical approach is to solve each task using the various
combinations of Solver options and select the one that provides the best
results for your cost estimating environment.
Running the For this example, use Max. % Error minimization, check the A = 0 option,
Solver and make sure the Use linear fit option is not selected. Click on the Solve
button to start the Solver and closely observe the graphics area as the Solver
runs. First, you will see a plot of the Solver’s initial guess for the labor cost
category solution. Each point on the plot represents the actual cost of a
specific project in the historical database. The initial plot will show quite a
bit of scatter in the cost versus the composite parameter X relationship,
without an obvious trend.
Then, you will see the cost data points shifting horizontally as the Solver
converges on a solution, and a trend will begin to emerge in the data. When
the Solver finishes, it will plot the computed 2nd order curve through the
eight project data points as shown below. The closeness of the actual cost
Go to previous task
Go to next task
If there were material or ODC costs for this task in this cost model, the
Solver would next solve for those cost relationships for this task, then pause
before going on to the next task if there were any.
Notice that the Solver displays the name of the current task, the number of
labor cost records in the historical database for this task, and the prediction
error results next to the plot of labor hours vs. X. If the labor cost of the task
has only one parameter assigned, then X is equal to the parameter value. If
the labor cost of the task has multiple parameters assigned, then X is a
weighted composite value of the parameters.
The error statistics tell you how well the solution equation predicts the cost
of the historical projects. The average prediction error is the prediction
error (in percent) of all the historical cost data points averaged.
The typical prediction error is the average of the absolute value of the error
(in percent) for all the historical cost data points. It tells you how accurately
the solution predicts the cost of the historical cost data points without
allowing positive and negative prediction errors to cancel and understate the
prediction error spread. For example, if there are two project cost points in
the cost model and the Solver solution predicts one 3% high and the other
3% low, the typical prediction error would be 3%, whereas the average
prediction error would be 0%.
The maximum prediction error is simply the largest prediction error value
among all of the historical cost data points.
NOTE: These prediction error results tell you how well the cost model predicts the
cost of your past projects. This is not necessarily the accuracy you will achieve in
using this cost model to predict future projects. However, if your past projects are
statistically similar to the projects you will be estimating, the results shown in the
Solver are a good indicator of the level of accuracy you can expect in your estimates.
Notice the prediction error you obtained for the labor category of the Design
Layout task. In this example, the maximum prediction error is about 16%
and the typical prediction error is about 8.4%. Don’t be discouraged if your
first attempt at a cost model produces less than perfect prediction accuracy
results. This example cost model was designed to illustrate this, and teach
you techniques you can use to refine your cost models and improve
accuracy.
FYI: The accuracy you will achieve in a cost model is dependent on a number of
factors. In addition to the tasks and parameters you select for your cost model, the
variability of the processes used to perform those tasks is extremely important in
determining the cost model accuracy. Consistently controlled and executed work pro-
cesses will usually result in consistent costs that can be accurately modeled. Poorly
controlled work processes or influences that can’t be modeled such as personal
factors, accidents, etc., will cause “cost scatter”. With a sufficient sampling of
projects, ModelBuilder can filter out many of these variations to find the best average
prediction solution, but the project-to-project prediction errors may remain high if high
process variability exists.
The Parameter Another way to evaluate the quality of your cost model is to examine the
Correlation report Parameter Correlation report. When a cost model is being solved,
ModelBuilder calculates the correlation between the parameters you have
assigned to each task and the cost of each task based on the historical cost
data you entered. A positive correlation means that the cost of a task
increases as the parameter value increases. A negative correlation means that
the cost is either unaffected, or it decreases as the parameter value increases.
The Parameter Correlation Report identifies parameters that show a
negative correlation to their assigned tasks.
Click on the Reports button, select the Parameter Correlation Report and
click View/Print (make sure that the Preview before Print option is checked).
The report that appears will have the following message:
Warning Zero or negative correlation found in the project data between task
[Design Layout] and labor parameter [Product Line]
This means that there is not a positive trend in the historical cost data
between the parameter Product Line and the task Design Layout.
ModelBuilder does not allow negative trends in the Solver solution.
Therefore, you can eliminate the assignment of this uncorrelated parameter
without affecting the accuracy of your cost model.
Now return to the Solver and run it again. You will obtain the same
numerical results without the Product Line parameter in the cost estimating
relationship.
report are useful for documenting the characteristics and quality of your cost
model and can be used for general auditing and validation purposes.
Taking manual The Solver automatically optimizes both the polynomial coefficients, A, B,
control of the CER and C, and selects the parameter weight exponents to optimize the accuracy
solution of the CER based on the historical data. Under most circumstances, it will
find the best solution obtainable. In rare cases, you may want to take manual
control of the CER solution to adjust the CER coefficients or exponents. The
Solver allows you to do this, and even displays the effects of your changes in
the graphics windows.
You can also change the value of B, which changes the overall slope of the
CER curve, or C, which changes the amount of bend. Positive values of C
will cause the curve to bend upward.
To return to the Solver’s optimized solution, click the Solve button again.
To view and edit the parameter exponents for this task, click on the
Parameter Exponents… button. The Parameter Exponents dialog box will
open where you can adjust the parameter values as desired. Notice that the
first parameter is the primary parameter and the Solver always assigns it an
exponent value of 1. ModelBuilder will not allow you to change that value to
0. If you try, it will reset the value to 1 to prevent a zero division error from
occurring.
Refining the cost The graphical display of the historical data points and the prediction curve
model on the Solver can also be very useful for assessing solution results and
understanding the trends in your cost history data. Simple observations of
the plots can lead you to hints about how to improve the accuracy of your
cost model. For example, in the plot shown on page 79 we can see that the
point on the far right is noteworthy because it falls well below the prediction
curve. In fact, the cost of that project is significantly lower than the project
to its immediate left and it seems to be causing the prediction curve to flatten
out at large X values.
In general, valid cost prediction curves have positive slope over the entire
range of use. In other words, the cost always increases as the value of
parameter X increases. While it is common to have a nonlinear prediction
curve, if it is horizontal in any region, or if the slope is negative (cost
decreasing as X increases), common sense dictates that it should be
examined critically, even if the prediction accuracy statistics seem “good
enough”.
you can quickly and easily test the influence of other parameters on the
prediction quality.
For example, try testing a fourth parameter for this cost model. Click on the
New/Edit button in the Parameter Catalog to open the Parameter Editor,
then click on New Param button and enter the title “Pump Type”. This
parameter will be a Grade type, so click on the Grade List button.
Click to create
grade levels
Enter descriptions
and values
If you make a mistake, you can delete a grade level using the Delete button
beside the list. If you enter them out of order, you can use the Move Up or
Move Dn buttons to achieve the desired order.
When you have entered both grade descriptions and values in their proper
order, click on the OK button to return to the main screen. Using the drag
and drop technique, assign the Pump Type parameter to the labor category of
the Design Layout task.
Update the project Now that a new parameter has been assigned to the Design Layout task, the
data historical project data must be updated. Specifically, the Pump Type for each
project must be entered. Return to the Project Data window (you will have
to run a Model Check first) and enter the values shown below for the Pump
Type parameter for each task. Since this is a grade parameter, select the
appropriate grade value using the drop-down arrow on the Project Data
window.
Rerun the Solver Open the Solver again so you can rerun it now that you have added a new
parameter to the cost model. When the Solver window appears, you will
initially see the control settings and solution you obtained when you last ran
the Solver for this task. Without changing the control settings, click the
Solve button to rerun the Solver with the new parameter added. You should
see a small improvement in the typical and maximum prediction error
compared to the last run, and the prediction curve slope looks more
reasonable than before. Therefore, the Product Line parameter has improved
the cost model but perhaps not as much as we might desire.
Assume for the sake of this example that further investigation of the
historical projects leads you to discover that the Neptune pump is a
derivative of an earlier design. Some cost savings were probably realized
because of this heritage. In fact, you also learn that two other projects in the
database had benefited from the use of some amount of prior design heritage.
One way you can account for this cost factor in your cost model is to create a
parameter that specifically addresses design heritage. Call it the New Design
Adding the New Click on the New/Edit button in the Parameter Catalog to open the
Design Fraction Parameter Editor, then click on the New Param button and enter the title
parameter “New Design Fraction”. This parameter will be a quantity type, so click on
the Quantity button. On the Limits tab, enter a minimum valid value of 0 (for
no new design) and a maximum valid value of 1 (for 100% new design).
Now close the Parameter Editor using the OK button, and assign the New
Design Fraction parameter to the labor category of the Design Layout task.
Run the required Model Check again to check the cost model structure and
re-enable the Project Data button.
Click on the Project Data button to open the Project Data window and enter
the following values for the New Design Fraction in the parameter list.
FYI: The file JTPump4.cmf in the Examples folder of the ModelBuilder application
folder contains all the cost model data described in this exercise up to this point
including all the historical project data.
Rerun the Solver Open the Solver again and rerun it with the new parameter added to the cost
model. This time the prediction accuracy improves substantially to less than
2.3% maximum error.
With the addition of the New Design Fraction the cost model now predicts
Design Layout labor very well, at least as far as these eight past projects are
concerned. If these projects used are reasonably typical of the type of
projects to be estimated in the future, this cost model would be considered
excellent by almost any standards.
Have you ever had to defend the accuracy of your cost estimate? How
Cost risk analysis
confident are you that your estimate is accurate? Could the actual cost be
higher? If so, how much higher is it likely to go? Ten percent higher? 50%
higher? 200% higher? Or might the actual cost be significantly lower than
the estimate? These are important questions that every company must ask,
especially when bidding fixed price projects. These are questions that
CostMetrix can help you answer.
This is an area of cost estimating called risk analysis, and it has to do with
quantifying the uncertainty in a cost estimate. One of the advantages of
CostMetrix is that risk analysis comes along as a natural byproduct of
analyzing cost data based on historical performance. The Solver
automatically generates much of the information needed to provide a quality
cost risk analysis with every cost estimate.
The first step is to understand that Solver CERs produce what’s commonly
called a “nominal” or “most probable” cost estimate. That’s just another way
of saying that each estimate is actually an average cost for that type of
project. According to this approach, if you performed ten projects of this
type, some would cost more than the estimate, some would cost less, but
overall they would average out to match the “most probable” cost estimate.
How much more or less any individual project could vary from this estimate
depends on the type of project, variability of the processes used to perform
the project, technical and administrative risks, etc. The Solver can help you
quantify these uncertainties.
1.2
P robability of oc c urranc e
0.8
0.6
0.4
0.2
0
0 < < <2c os t lower 4 6 $
A vg 8 c os t higher10> > > 12
Assume for a moment that you are a cost analyst (perhaps you are in fact)
and you were evaluating the actual cost records for one hundred projects
involving circuit board assembly. Assume that the projects were all
fundamentally the same so there are no major technical differences to
account for between the projects. First, you calculate the average cost by
simply summing the project costs and dividing by the number of projects.
Then, you compare the cost of each project to the average and notice that
eight of the one hundred are within ±5% of the average cost. Going further
you determine that 41 of the one hundred are within ±10% of the average
cost, 50 are within 12% of the average cost, and 78 are within ±20% of the
average cost. Finally, you notice that all the sample projects are within ±25%
of the average cost. If you go further and plot these data points on a graph,
you find that it looks much like the figure shown above.
This analysis tells you something very valuable about this type of project.
First, you now know the average cost and you can use that fact alone for
estimating the cost of future projects of this type. But also, you know the
range of uncertainty of the cost estimate. Since all the sample projects were
within ±25% of the average, and you had a significantly large number of
sample projects on which to base the analysis, it is reasonable to assume that
future projects will be within ±25% of the average cost. While it is possible
that a future project could fall outside that range, it is very unlikely.
The analysis also tells you that half of the sample projects were within 12%
of the average cost estimate. Therefore, for future projects, a cost variation
of ±12% should be expected as average based on historical trends.
1.2
P robability of oc c urranc e
0.8
0.6
0.4
0.2
0
0 - M 2ax % - Ty4p % 6 $
A vg + - 8Ty p % 10ax %
+ M 12
Therefore, in any cost estimate there are three truly important pieces of
information. The first is the average cost which is the middle of the probable
range of costs. Next is the “typical” error which tells you how much cost
variation is normal or common. Third is the “maximum” error which is the
maximum cost variation that could occur under most circumstance.
The figure below shows the Cost Variance and Risk report in ModelBuilder
which summarizes the cost risk percentages of each task. This information is
automatically generated by the Solver when it is used to derive parametric
CERs.
ModelBuilder also compiles the typical error and maximum error statistics
for non-parametric tasks such as explicit formula and fixed cost tasks if they
are entered by the cost model designer. In the next chapter, you will also
learn how to enter cost risk percentages for other types of tasks, in addition
to parametric tasks. For manual entry tasks, the cost estimator can enter the
typical error and maximum error as percentages of the average cost.
Compile the cost The last step in constructing a cost model is Compilation. Compilation is the
model process of preparing the cost model for use with CostMetrix Estimator for
estimating future project cost. After you run the Solver and obtain cost esti-
mating relationships for all Parametric tasks, the Compile function can be
run to calculate the constants and coefficients needed for cost estimating. If
you are satisfied with the cost model, simply click on the Compile button
and ModelBuilder will make the necessary final calculations.
NOTE: If you edit a Parametric task or the historical data in the cost model, you
must rerun the Solver to update the cost estimating relationships.
After compiling is completed, be sure to compile and save the cost model so
CostMetrix Estimator can utilize it.
Summary In this chapter you learned the basic methods of using ModelBuilder with
history-based Parametric tasks, from starting a new cost model to compiling
the completed cost model for use with CostMetrix Estimator. In the next
chapter you will learn how to use nonparametric tasks and combine them
with what you have already learned about Parametric tasks.
Real-world cost models typically have many tasks, but it is not always
possible to build a complete cost model using only Parametric tasks. For this
reason, ModelBuilder also includes other types of tasks, for situations where
nonparametric tasks are needed. This chapter describes how to use five types
of nonparametric tasks.
Fixed Cost tasks Start by opening the JTPump5.cmf cost model file in the Examples folder of
the ModelBuilder application folder. This cost model includes the Design
Layout task you developed in Chapter 3, and adds a Drafting task, which is
also a Parametric task with historical project cost data. You will learn how
to use nonparametric tasks by adding one of each type to this cost model in
this Chapter. You will also learn how to manipulate the Task List by adding,
inserting, and rearranging tasks.
To preserve the original JTPump5.cmf cost model file for future tutorial use,
click on File/Save Model As… and save your working file under a new
name.
A Fixed Cost task is just what its name implies. When the estimator selects a
Fixed Cost task, a fixed amount of labor hours, material dollars, and/or ODC
dollars will be added to the estimate. These costs are defined in the fixed
cost task.
Start by adding a Fixed Cost task at the top of the Task List. To do this, click
on the Design Layout task to select it, then press the Insert button directly
above the Task List. This button inserts a task in the list directly above the
currently selected item. Name this new task Requirements Development and
assign it the Fixed Cost type by clicking the Fixed Cost button on the Task
Summary Info tab. Enter the following text for the Task Description:
As soon as you clicked on the Fixed Cost button, an F icon appeared in front
of the task name. This is to indicate that this is a Fixed Cost task. The Fixed
Cost Detail tab also appeared when you selected the Fixed Cost button.
Click on the Fixed Cost Detail tab and you will see additional tabs for the
labor, material, and ODC cost types. This is where you can enter costs that
will be “fixed” in the cost model for this task.
If you create a Fixed Cost task, you must enter fixed costs in at least one of
the cost categories. If you don’t, Model Check will generate an error
message. Try it now by clicking on the Model Check button. You will see
the following message:
This tells you that you have defined a Fixed Cost task with no costs
assigned. Close the Model Check report and click on the Requirements
Development task again so you can enter fixed cost information. You will do
this by dragging and dropping cost categories from the Cost Category
Catalog, or you can use the right mouse button on the Cost Category
Catalog to invoke a context-sensitive menu.
Next, assign the Clerk labor category to this task using the right mouse
button method.
5. Click on the Clerk labor category in the Cost Category Catalog using the
right mouse button. You will see a context-sensitive menu that includes
the command Add to Selected Fixed Cost Task.
6. Click this item with the mouse and the labor category will be added to
the Fixed Cost task that is currently selected.
7. Enter “8.5” in the Labor Hours field for Clerk.
Now change to the ODC tab of the Fixed Cost Detail tab and the ODC tab of
the Cost Category Catalog.
8. Drag and drop the Office Expense ODC category from the Cost Category
Catalog onto the ODC table of the Fixed Cost Detail tab. This will
create an Office Expense entry in the ODC table.
Now you can close the Cost Category Catalog. That completes the steps
required to assign these fixed costs to the Requirements Development task.
When a cost estimator uses this cost model with CostMetrix Estimator and
this task is selected, the program will add the direct labor and the ODC costs
estimates defined above (with appropriate escalation rates applied to ODC).
FYI: If your cost category names are very long, you can resize the columns in the
Fixed Cost Detail tables. Simply click and drag the column divider in the title bar to
resize the category name column to the desired width. Then click the mouse once
anywhere on the title bar to refit the right column to the remaining available space.
Even though the CER for this task was not derived from the historical data in
Entering the basis the cost model, it is still important to provide an explanation of how it was
of CER for a fixed developed. In fact, on most government contract proposals, the basis of
cost task every CER must be explained. On the Task Summary Info tab, enter the
following statement as the basis for the CER for the Requirements
Development task:
The CER for this task is based on the average cost of requirements
development recorded on six prior projects and documented in DM
99-163.
Entering cost risk In chapter 4 you learned how the Solver is able to calculate the cost
variability for parametric tasks based on its analysis of the historical data.
for a fixed cost
That information is then available for cost risk analysis in CostMetrix
task
Estimator. The cost risk for fixed cost tasks can be entered manually through
the Cost Risk button. You may have prior project information on which to
base this variance information, or you may have accepted industry or
departmental standards for the typical and maximum cost variance expected
for this type of work element. In either case, entering this information will
help cost estimators to assess the overall cost risk on project estimates using
the features built into CostMetrix Estimator.
Click on the Cost Risk button on the Fixed Cost Detail tab to open the Cost
Variability (Risk) dialog box. It contains three tabs, one each for labor,
material, and ODC. Each category of cost can have its own unique cost risk.
For this example, enter 15% and 30% for the typical and maximum labor
cost risk as shown in the figure below.
Next, change to the ODC tab, and enter 20% and 35% respectively for the
ODC cost risk. This information is now part of the Requirements
Development task definition. Each time it is used in an estimate, the cost
estimator will be able to evaluate the proposed cost risk based on these
standards.
Level of Effort A Level of Effort task estimates cost based on a constant weekly expenditure
tasks of labor hours and material/ODC dollars throughout the duration of the task.
These so-called “burn rates” are defined in the cost model. When a Level of
Effort task is selected in CostMetrix Estimator, the user will specify the start
and end dates of the task. The total cost of the task is then computed based
on the duration of the tasks and the cost per week specified in the cost
model.
Click on the Drafting task to select it, then press the Add Task button
directly above the Task List. This button adds a task in the list at the end of
the currently selected indentured level. Name this new task Project
Management and assign it the Level of Effort type by clicking the Level of
Effort button on the Task Summary Info tab. Enter the following text for the
Task Description:
If you create a Level of Effort task, you must enter weekly costs in at least
one of the cost categories. If you don’t, Model Check will generate an error
message. Try it now by clicking on the Model Check button. You will see
the following message:
This tells you that you have defined a Level of Effort task with no costs
assigned. Close the Model Check report and click on the Project
Management task again so you can enter level of effort cost information.
You will do this by dragging and dropping cost categories from the Cost
Category Catalog, or you can use the right mouse button on the Cost
Category Catalog to invoke a context-sensitive menu.
Next, assign the Admin 1 labor category to this task using the right mouse
button method.
5. Click on the Admin 1 labor category in the Cost Category Catalog using
the right mouse button. You will see a context-sensitive menu that
includes the command Add to Selected Level of Effort Task.
6. Click this item with the mouse and the labor category will be added to
the Level of Effort task that is currently selected.
7. Enter “5.7” in the Hrs/Week field for Admin 1.
Now change to the ODC tab of the Cost Category Catalog. Assign the Office
Expense ODC category to this task using the right mouse button menu as
follows.
5. Click on the Office Expense ODC category in the Cost Category Catalog
using the right mouse button. You will see a context-sensitive menu that
includes the command Add to Selected Level of Effort Task.
6. Click this item with the mouse and the ODC category will be added to
the Level of Effort task that is currently selected. Notice that the ODC
tab of the Level of Effort Detail tabs automatically moves to the top.
7. Enter “67.80” in the ODC $ field for Office Expense.
On the Task Summary Info tab, enter the following statement as the basis for
the CER for the Project Management task:
Click on the Cost Risk button on the Level of Effort Cost Detail tab to open
the Cost Variability (Risk) dialog box. Enter 9.6% and 16.3% for the typical
and maximum labor cost risk, and enter 14.5% and 21.2% for the typical and
maximum ODC cost risk. Notice that the Cost Variability (Risk) dialog box
shows both of the non-parametric tasks in this cost model so you can see and
edit each without having to go back to the main window to select the task.
That completes the steps required to assign level of effort costs to the
Project Management task. When a cost estimator uses this cost model with
CostMetrix Estimator and this task is selected, CostMetrix Estimator will
prompt the estimator to enter the planned task start and end dates. It will then
add the direct labor and the ODC costs estimates defined above (with
appropriate escalation applied to ODC) based on the duration of the task.
Explicit Formula An Explicit Formula task lets you enter virtually any known cost estimating
tasks relationship for a task. Explicit cost estimating relationships are not derived
by ModelBuilder from raw historical cost data. Using an Explicit Formula
task, you can implement cost estimating relationships you may have derived
from past experience, cost analysis, or other means. The cost formula can
include parameter variables or special variables that represent the labor,
material, or ODC costs of other tasks in the cost model. For example, you
can define a task whose cost is a function of the cost of one or more other
tasks in your cost model.
Name the new task Design Review and assign the Explicit Formula type to it
by clicking the Explicit Formula button on the Task Summary Info tab. An E
suffix will appear in front of the task name. Enter the following text for the
Task Description:
FYI: If you want to rearrange the items in the Task List, just drag a task and drop it
at the desired location. ModelBuilder will move the task, keeping all internal data
linked.
As soon as you clicked the Explicit Formula button, the Explicit Formula
Detail tab appeared under the Task Summary Info tab. Click on this tab to
see the Explicit Formula Detail information. On this tab you will see
additional tabs for the three cost types; labor, material, and ODC. This is
where you can enter the formulas for explicit costs and the breakdown of
these estimates into the desired cost categories by percent. On each tab is a
place to enter the cost formula.
Separate formulas can be entered for labor, material, and ODC costs. At least
one cost type (labor, material, or ODC) must have a cost formula. If you
don’t have at least one formula per explicit task, Model Check will generate
an error. Try it now by clicking on the Model Check button. You will see an
error message like the one below.
This tells you that you have defined an Explicit Formula task with no cost
formulas assigned. Close the Model Check report and click on the Design
Review task again, then click on the Explicit Formula Detail tab so you can
enter level of effort cost information. You will do this by assigning cost
estimating formulas for labor, material, and ODC expenses, and specifying
the breakdown into appropriate cost categories.
In this example cost model, the labor formula will be entered in terms of the
parameter variable for the New Design Fraction. To determine the variable
name for the New Design Fraction, click on the parameter name in the
Parameter Catalog and pause your mouse. The variable name P4 will appear
in a hint box next to the mouse cursor.
You can also see a complete list of all valid parameter variable names by
clicking on the Param Variables button. This will bring up a table that lists
each parameter and the internal variable name as shown on the next page.
The variable names consist of a prefix “P” and a number suffix which is
simply the number of the parameter in the order listed in the Parameter
Catalog. Therefore if you use the variable P4 in the formula, that refers to
the value of the New Design Fraction.
Assume that you want to enter a formula to bid 56 labor hours for the design
review but you want to decrease that amount if the design is based on a past
design. You reason that the time required to prepare for the review would be
less if it were based on a previous design. You could use a formula like:
32 + 24*P4
where P4 is the New Design Fraction. The constant 32 represents the time
required to conduct the review, and the constant 24 represents to time
required to prepare for it. Using this formula, the preparation time is prorated
based on the New Design Fraction. If the New Design Fraction is 1.0, this
formula will result in an estimate of 56 labor hours. If the New Design
Fraction is 0.5, the estimate will be 44 hours.
Close the Parameter Variables window, then click the mouse inside the
labor formula box of the Explicit Formula Detail tab and type “32 + 24*P4”
into the Labor Formula box. Spaces between the numbers and the “+” sign
are acceptable.
An explicit formula can also reference labor, material, or ODC cost variables
used internally by ModelBuilder. To see a list of the valid cost variable
names, click on the Cost Variables button. This displays a table that lists the
labor, material and ODC cost variable names for each task as shown on the
next page. As you can see, each variable consists of a prefix of L, M, or O
for labor, material, and ODC respectively, and a number suffix which is
simply the number of the task in the order listed in the Task List. For
example, the labor hours of the Design Layout task is designated L2, and the
ODC cost of the Drafting task is designated O3. The units of labor variables
are always hours. The units of material and ODC task variables are always
direct dollars.
If you use these variable names in your cost formulas, CostMetrix Estimator
will calculate the labor, material, or ODC cost value for the indicated task
and substitute that value into the formula to calculate the cost of the Explicit
Formula task.
NOTE: Prior to Version 3.0, ModelBuilder would not allow you to reference another
Explicit Formula task in the formula of an Explicit Formula task. That is not longer
prohibited, but make sure your formulas don’t create circular references.
Prior to Version 3.0, ModelBuilder would not allow you to reference another
Explicit Formula task in the formula of an Explicit Formula task.
Entering the labor cost breakdown for the Design Review task:
1. Open to the Cost Category Catalog by clicking the Show Categories
button.
2. Drag the following three cost categories from the Cost Category Catalog
onto the Labor Categories table on the Explicit Formula Detail tab; Sr.
Engineer, Engineer 2, and Admin 1.
3. Enter “35” under % of Total Hrs for Sr. Engineer, “45” for Engineer 2,
and “12” for Admin 1. These are the percentages for each category.
Next, assign the Clerk labor category to this task using the right mouse
button method.
4. Click on the Clerk labor category in the Cost Category Catalog using the
right mouse button. You will see a context-sensitive menu that includes
the command Add to Selected Explicit Formula Task.
5. Click this item with the mouse and the labor category will be added to
the Explicit Formula task that is currently selected.
6. Enter “8” in the % of Total Hrs field for Clerk.
This cost estimating relationship is now “hard-wired” into the cost model.
When a cost estimator uses this cost model with CostMetrix Estimator and
this task is selected, the Design Review cost will be calculated based on this
formula. CostMetrix Estimator will calculate the total number of labor hours
and then break it down into the four labor categories according to the
percentages specified.
On the Task Summary Info tab, enter the following statement as the basis for
the CER for the Design Review task:
Click on the Cost Risk button on the Level of Effort Cost Detail tab to open
the Cost Variability (Risk) dialog box. Enter 25% and 50% for the typical
and maximum labor cost risk as shown in the figure below.
Summary tasks Summary tasks allow you to create indentured task levels. Each one serves as
a subtotal for a set of subtasks. That is, it subdivides a cost model into
logical groups of tasks and subtasks. In this example, you will create a
Summary task for all analyses, under which will be three subtasks.
The creation of the Summary task is very simple. Click on the Design Review
task to select it, then click on the Insert button to add a task immediately
above it in the Task List. Rename the new task Analyses and assign the
Summary type to it. Enter the following text for the Task Description:
For the basis of the CER, enter “Not applicable” since summary tasks have
no cost estimating relationships.
The Task List should look like the figure below. Now that the Summary task
is created, you will add subtasks under it.
Manual Entry A Manual Entry task can be used when the cost estimate for a task is to be
tasks provided by an outside organization, supplier, or subcontractor, and is to be
inserted directly into the cost estimate as direct labor, material and ODC
values. Manual Entry tasks can also be used if historical project cost data is
not available for a task in the cost model. In such cases, bottoms-up
estimating methods can be used until adequate historical cost data is
accumulated to convert the Manual Entry task into a Parametric task.
Next, you will enter two analysis subtasks, which we assume are performed
by outside organizations. The cost estimates for these tasks will be collected
from those organizations and entered into each cost estimate manually. Click
on the Analyses summary task to select it, then click on the Sub button. The
Sub button adds a subtask to the currently selected task. Name the subtask
CFD Analysis (for Computational Fluid Dynamics). Assign it the Manual
Entry type and an M prefix will appear in front of the task name. Enter the
following text for the Task Description:
With the CFD Analysis task selected, click on the Add Task button to create
another subtask under Analyses. Name this task Stress Analysis and also
assign it the Manual Entry type. Enter the following text for the Task
Description:
The Task List should now look like the figure below. That’s all that is
required to define Manual Entry tasks. All of the estimate information will
be entered by the estimator at the time the estimate is created.
NOTE: Your Task Lists can be much more complex than those shown in this simple
example. A list can have up to six levels of tasks and subtasks with a virtually
unlimited number of tasks, allowing very complex cost models to be created. There is
no restriction on the mixing of different types of tasks (Parametric, Fixed Cost,
Explicit Formula etc.)
Manual Entry tasks can serve as a checklist in the cost model, prompting the
cost estimator to use them in the estimate if they are appropriate. The reader
is referred to the CostMetrix Estimator User’s Guide to learn how Manual
Entry costs are entered into an estimate.
FYI: If you drag and drop a Summary task from one location in the Task List to
another to rearrange it, ModelBuilder will also move all subtasks under the Summary
task with it, keeping the hierarchy intact for you.
Enter the following statement as the basis for the CER for the CFD Analysis
and Stress Analysis tasks:
The estimator can later substitute this statement with the basis of the
estimate provided by the outside source.
Compiling the cost At this point you should run the Solver again and recompile the cost model.
model Save it as JTPump6.cmf. It can then be used for cost estimating purposes
with parametric and nonparametric tasks. Remember that the Solver only
solves for cost estimating relationships for Parametric tasks, in this case
Design Layout and Drafting. The cost estimating relationships for all other
tasks were either entered directly as part of the task definition, or will be
derived externally by the estimator (for Manual Entry tasks).
Guidelines for In Chapters 3, 4, and 5 you built a simple cost model for a fictitious company
selecting called Johnson Turbopump Technology which designs and builds
parameters turbopumps. In the example, you were Dave Wilson, a Project Manager in
the Engineering Department, who was designing a cost model to allow JTT
to quickly produce cost estimates for future projects. In the process, you
used parametric and nonparametric tasks, entered historical project cost data,
solved for the cost estimating relationships, and compiled the cost model.
The selection of parameters for this cost model was drawn from Dave
Wilson’s experience and knowledge of the variables that are relevant in
determining the actual cost of pump design projects. In the case of the
Design Layout task, the Solver confirmed that his assumptions were pretty
reasonable.
1. Start simple with only a few parameters for each task and add more only
as needed to achieve the desired prediction accuracy.
2. Use common sense in selecting parameters. Does your experience tell
you that a correlation is likely? If it does, try it.
3. Try to have at least three projects in your historical database for every
parameter assigned to a task. For example, if you have three parameters,
try to use at least nine project data points for the Solver to derive cost
estimating relationships. From a statistical analysis perspective, the more
project data points you have, the better.
4. Make sure that your project cost data includes a range of values for each
parameter in your cost model. The Solver cannot derive a cost estimating
relationship for a parameter if every project has the same value of that
parameter. For example, if every pump in the Johnson database had 61
parts, it is statistically impossible for the Solver to derive a meaningful
relationship between # of parts and cost.
5. Watch out for coincidental correlations. Just because a positive
correlation is found between a parameter and your project cost data, it
doesn’t mean that it is a valid correlation for cost estimating purposes.
For example, if you tried to correlate the number of letters in the project
leader’s last name to the cost of the projects in your database, you might
coincidentally get a positive result. But you wouldn’t want to use that for
cost estimating because it would obviously be a mere coincidence.
Statistics don’t lie, but they can deceive. Therefore, use common sense.
The more project data you have in your database, the less susceptible
you are to coincidental correlation problems.
Assessing cost But what do you do when the prediction error results are not as good as you
model accuracy expected? Perhaps your initial parameter guesses didn’t correlate to your
cost history data as well as you had hoped. When you obtain cost model
accuracy results that are worse than you expected, you should do the
following four things in order of priority.
Step 1 - Verify If you make a data entry error when sorting or entering historical cost data,
historical data such as misplacing a decimal point, or you forget to enter costs for a task in
accuracy an applicable cost category, it can significantly affect the cost estimating
relationships derived by ModelBuilder. Since it is trying to find the best cost
equations that fit all the project data you enter, even one data point that is
substantially shifted by mistake can impact the cost model’s ability to predict
the cost of the other data points accurately. Therefore, the first step in
refining cost model accuracy should be to verify that all the historical project
cost data is entered accurately. If errors are found and corrected, you must
run the Solver again to update the cost equations for the modified cost data.
Step 2 – Look for In the real world, there are hundreds of factors (parameters) that can affect
missing parameter the cost of performing a task, some major and some minor. The objective of
assignments cost modeling is to identify the key parameters the ones that have the
greatest impact on cost and build these into the cost model. If the
accuracy of your cost model predictions is not as good as you would like,
consider whether all of the major parameters have been identified and
assigned to the appropriate tasks. Perhaps an important parameter has not
been accounted for. It’s easy to test parameters with ModelBuilder to see if
they are relevant to a particular task. Simply add them to the cost model,
update the historical project parameter values, solve the cost equations again,
and compare the prediction accuracy. The Parameter Correlation report will
tell you if the new parameter exhibits a correlation to your project cost data.
But remember to watch out for coincidental correlations. Use your common
sense as a guide.
Step 3 - Consider Occasionally unusual things happen in the course of performing a project.
the quality of the Personnel on the job change, unforeseen events happen, and influences
historical cost outside our control affect project cost. Most of the time, the effects of these
unusual events are small, and to some extent are an accepted part of doing
data
the job. At other times, the effects can be profound. For example, if a fire
destroys part of a project, or your project manager quits and takes key
information.
Look for individual historical projects with more than the typical prediction
error. For example, if all the projects have less than 10% prediction error
except one, which has 30% error, this outlying project might have experi-
enced some anomaly that makes it defy attempts to fit into a “typical”
profile.
Step 4 - Consider If you have completed the first three steps above and still are not satisfied
the variability in with your cost model prediction accuracy, consider the variability in your
your processes processes. The processes are simply the methods, procedures, or means by
which you execute the tasks. All other things being equal, well controlled
and executed work processes will usually result in consistent costs that can
be accurately modeled. Poorly controlled work processes or unmodelable
influences such as personal factors or accidents will cause high “cost scatter”
that cannot be removed by any solver.
Therefore, if your cost model cannot be refined to the point where it meets
your estimating requirements, it could be a sign that there is scatter in your
historical cost data due to process variations. This too can be a valuable
insight since the first step in cost control and/or reduction is to control the
processes used to perform the work. Only by controlling the processes can
cost drivers be identified. And only after cost drivers have been identified
can they be refined to improve operating efficiency and reduce costs. When
you reduce costs you can yield higher profits and bid more aggressively and
confidently against competitors.
Using computed Computed parameters can be used to add subtle refinements or simplify a
parameters cost model and make it easier for estimators to use. You can use a computed
parameter whenever you need to calculate the value of a cost parameter from
one or more other parameters. Therefore, you can save the estimator the
trouble of calculating the parameter value externally by having CostMetrix
Estimator calculate it.
For example, assume you are a contractor who needs to calculate cement
cost by the cubic yard but the estimator is accustomed to bidding in terms of
square feet. You could define a parameter for cement volume in units of
cubic feet, which is computed based on square footage using a formula you
specify. The estimator could then enter the square footage and ModelBuilder
would automatically calculate the cement cubic footage.
The cost of an engineering task can be more accurately predicted when the
standard drawing parameter is used in the cost relationship instead of a raw
drawing count because the standard drawing concept accounts for the
relative effort of each type of drawing. Therefore, a cost model could have
individual quantity parameters defined for each type of drawing and a
computed parameter to calculate the standard drawing count. Only the
standard drawing parameter would be assigned to the tasks for cost
estimating relationship derivation.
Creating a In this example you will redefine the # of Parts parameter to be a computed
computed parameter. To start this exercise, open the cost model called JTPump7.cmf in
parameter the Examples folder where the ModelBuilder application is located. This is
the same cost model you completed in the last chapter, except the CFD
Analysis and Stress Analysis tasks have been converted to Parametric types
This message tells you that the current values of the # of Parts parameter
will be deleted in the project history database when it is changed from a
quantity type to a computed parameter. Click OK to accept this warning and
allow the change to occur.
The detail tab at the bottom of the Parameter Editor dialog box will change
to show an input box for the parameter formula. This is where you type the
mathematical expression you want ModelBuilder to use to calculate the
value of this parameter. For this example enter the following formula:
36*(P6^0.78)
This formula approximates the value of the number of parts based on the
number of stages. It was derived from a simple empirical analysis of past
projects, comparing the number of parts and the number of stages, which
appear to be directly related. Doing this analysis once means the estimator
can enter the number of stages and then the number of parts will be
automatically calculated. The screen should look like the illustration below.
Notice that the equal sign is implied in the formula input box. An error
message will be displayed if you put an equal sign in your formula. The
parameter variables P1 through P6 represent the value of the parameters in
your catalog. You can display a list of the parameter names and variable
names by clicking on the Show Variables … button.
After you enter the parameter formula and click the Accept button, you will
see a message telling you that ModelBuilder is updating the parameter
references in the cost model and historical database. This will take a few
seconds to complete. Then you can click on the OK button to close the
Parameter Editor.
NOTE: Prior to Version 3.0, ModelBuilder would not allow you to reference another
computed parameter in the formula of a computed parameter. That is not longer
prohibited, but make sure your formulas don’t create circular references.
Run a Model Check to test for design errors (you should find none) and
enable the Project Data button. Open the Project Data window by clicking
the Project Data button.
the table you will see that you can’t edit it directly. Scroll down through the
list of parameters to the # of Stages parameter and change its value to “1”,
then hit the Enter key. The # of Parts will automatically recalculate and a
value of 36 will be displayed there, which is the value obtained by the
parameter formula. Change the value of the # of Stages back to “2” before
going on.
FYI: If you register a new project and add a task that references a computed
parameter, the value of the computed parameter will be blank in the table until you
enter values for the parameters referenced in the formula, at which time it will
automatically recalculate and update the computed value.
You should also notice that you did not change any parameter assignments in
this example. The # of Parts parameter is still assigned to the Design Layout,
Drafting, and Stress Analysis tasks as before, and ModelBuilder will solve
for cost estimate relationships based on those parameters. However, # of
Parts is now calculated based on the value of the # of Stages parameter
rather than being entered directly as a quantity.
With these changes completed, you should rerun the Solver to obtain new
cost estimating relationships based on the computed parameter formula.
Run the Solver to Open the Solver by clicking on the Solver button of the main window. Start
update the cost the Solver with the Start button, then select the Max. % Error and A = 0
equations options, and click Solve when the Solver is initialized. When the Solver
finishes, inspect the maximum prediction error statistic for Design Layout
labor costs.
Whereas it was about 2.3% before the # of Parts parameter was changed to a
computed type, it has now increased to about 4.4% error. Although it made
the accuracy somewhat worse than before, the computed parameter makes
the cost model easier for estimators to use, and may in fact give better results
overall if the # of Stages is easier for estimators to predict than the # of
Parts.
When the Solver finishes computing the cost equations for the first task,
click on the right arrow to set up to solve cost equations for the next task.
The following message will be displayed in the message window:
You can either continue solving for cost equations by clicking on the Solve
button again, or skip that task and go to the next by clicking on the right
arrow button. You can also exit the Solver by clicking on the Close button.
Click on the Solve button to solve the cost equations for the next three
Parametric tasks; Drafting, CFD Analysis, and Stress Analysis, pausing after
each task is solved to inspect the prediction results.
Bidding itemized Travel costs are a type of ODC expense and can be treated like any other
travel expenses ODC cost in CostMetrix ModelBuilder and CostMetrix Estimator. Travel
expenses can be derived parametrically from historical cost data, or they can
be part of Fixed Cost, Level of Effort, or Explicit Formula tasks. An
estimator can also add a travel expense ODC category and bid travel
expenses as a manual entry in cost estimates. By default, CostMetrix
Estimator will report travel expenses on the ODC Summary Report.
Defining bid You may have special bid metrics that you or your customers use to evaluate
metrics your cost estimates. For example, engineering departments sometimes use
hours per drawing or hours per part as a key measure of the reasonableness
of a cost estimate. ModelBuilder allows you to define custom bid metric
formulas, which will be used by CostMetrix Estimator to calculate and
report your bid metrics for each cost estimate prepared.
You define bid metrics by selecting Bid Metrics from the Edit menu on the
main window, which opens the Bid Metrics dialog box shown on the next
page. You can define as many bid metric descriptions and formulas on this
dialog box as you need.
Use the Add button to create the first bid metric. In the Description column,
type:
L0/P1
Be sure to use the number 0, not the letter O. Bid metrics formulas can use
the same parameter and cost variable formulas used in Explicit Formula
tasks with one key addition. The L0, M0, and O0 variables are reserved for
the total labor, material, and ODC costs of all tasks. In other words, L0 is the
total labor hours for all tasks; M0 is the total direct material cost for all
tasks; and O0 is the total direct ODC cost for all tasks.
Use the Add button again to create two more bid metrics as shown below for
this cost model. Notice that you can reference Summary tasks as well as
perform compound arithmetic operations.
You have just defined several bid metrics for this cost model that illustrate
how easy it is to do so. When this cost model is used to create cost estimates
with CostMetrix Estimator, these metrics will be calculated and can be
displayed or printed on the Bid Metrics report.
Merging cost On occasion, you may need to merge two or more cost models together to
model files create a master cost model. ModelBuilder can quickly do this for you so you
don’t have to manually combine cost model elements such as tasks,
parameters, projects, historical cost data, etc.
To merge two cost models, start with one cost model open, then select
Merge Cost Models… from the File menu. A file selection dialog box will
appear so you can select the cost model file to be imported. Select the file
and click Open. ModelBuilder will merge the files.
1. The tasks in the imported cost model are appended to the end of the
current task list. If one of the imported tasks has the same name as one of
the tasks in the open cost model, ModelBuilder will automatically
append a number to the name of the imported task to ensure that all tasks
have unique names.
2. The parameters in the imported cost model are added at the end of the
parameter list of the open cost model. If one of the imported parameters
has the same name as one of the parameters in the open cost model,
ModelBuilder will automatically append a number to the name of the
imported parameter to ensure that all parameters have unique names.
3. Parameter variable references (P1, P2, etc.) in computed parameter
formulas of the imported cost model will be adjusted automatically to
maintain the proper parameter variable references when imported.
4. Parameter and cost variable references (L1, M2, etc.) in Explicit
Formula tasks in the imported cost model will be adjusted automatically
After a cost model is imported, you can rearrange the task order, edit task or
parameter names, or make any other changes you need.
Saving reports In general, the easiest way to generate reports is to open the cost model with
ModelBuilder and view or print the desired reports with the Report Viewer.
Occasionally, you may want to save a report for future use apart from the
cost model. The Report Viewer includes the capability to save reports to your
hard drive. Three file formats are allowed:
To save a report, open it with the Report Viewer and use the Save button on
the tool bar. (The save button has a floppy disk icon.) On the Save Report
dialog box, use the Save as type: drop-down list to select the desired file
type.
Here are some of the factors you may want to consider when selecting the
file type.
1. QRP format saves the report exactly as you see it on the screen. You can
use the Archived Reports feature on the View menu of ModelBuilder to
open, view, and print any reports you may have saved in QRP format.
2. The XLS format is useful if you want to capture the data in a report in a
format readable by Excel, but it does not provide a WYSIWYG transfer
of borders and logos. The XLS format saves the text on a report only and
places it in the nearest cell of an equally spaced spreadsheet grid.
3. The RTF format saves the text on a report in a format that can be opened
directly by Microsoft Word. However, the translator does not save
borders or logos, and some editing may be necessary in Word if you
want the layout of the text to match the on-screen report precisely.
Final cost model Once you are satisfied with your cost model, there are eleven steps you
preparations should take to make sure it is complete and ready for use in cost estimating.
After it compiles, ModelBuilder will prompt you to save the file. After
you do, the .cmf file can be read by CostMetrix Estimator for creating
project cost estimates.
10. Print reports for final documentation
A complete set of cost model reports provides a thorough set of
documentation for a cost model for in-house or external audit purposes.
11. Test your cost model
Test your new cost model by making sample estimates with CostMetrix
Estimator to verify that it produces reasonable estimates with a wide
range of parameter values. This is an important validation check to
make sure errors did not escape detection.
Summary In this chapter you learned some of the more advanced techniques of using
ModelBuilder. You are now fully equipped to build your own high-quality
custom cost models using ModelBuilder.
Model Description: This cost model is for estimating the cost of nonrecurring design for new pump
products
Number of tasks: 9
Number of parameters: 6
1 # of Parts Computed
6 # of Stages Quan
Drafting # of Parts
New Design Fraction
Drafting <none>
Drafting # of Parts
New Design Fraction
Engineer 2 63.0
Engineer 1 12.0
Design Layout Sr. Engineer 101.0
Admin 2 27.0
Clerk 8.0
Drafting Sr. Designer 114.0
Draftsman 1 125.0
Draftsman 2 161.0
Clerk 47.0
Stress Analysis Sr. Engineer 55.0
Engineer 2 182.0
Engineer 1 37.0
* Material and ODC historical costs have been adjusted for escalation where applicable.
* Material and ODC historical costs have been adjusted for escalation where applicable.
Type Message
Warning Zero or negative correlation found in the project data between task [CFD Analysis] and ODC
parameter [New Design Fraction]
* Actual material costs have been adjusted for escalation where applicable.
* Actual material costs have been adjusted for escalation where applicable.
* Actual ODC costs have been adjusted for escalation where applicable.
Labor Coefficients
Material Coefficients
A 0.00000
B 0.00000
C 0.00000
ODC Coefficients
P1 # of Stages 1.00000
P2 Pressure Ratio 0.00000
P3 Flow Rate 0.10649
P4 New Design Fraction 0.03419
B E
Basis of CER · 33
Edit mode, task name · 32
entering · 94
Entering costs into a project cost record · 55
Bid metrics · 116
Entering explicit formula cost breakdown · 101
adding · 117
Entering the value of a grade parameter · 52
report · 118
Entering the value of a scale parameter · 51
Bitmap logo · 46
Escalation · 26
entering rates · 60
importing · 61
C Explicit Formula tasks · 20
detail information · 98
CER · 8
general form · 68
Check for Preview before Print · 45 F
Coefficients, cost equation · 73
Compilation · 90
Fixed Cost tasks · 91
Compile button · 90
Compiling the cost model · 105
Composite parameter X · 70
definition · 68 G
Computed parameters · 23
expression rules · 24 General and administrative expenses (G&A) · 26
using · 110 Grade parameters · 23, 41
Cost categories · 25 adding grade descriptions · 43
Cost drivers · 18 values · 42
Cost Estimating Relationship · 8
Cost model accuracy
assessing · 108 H
Cost model name · 31
Cost models · 2 Help
accuracy · 11
This form is used to register your software with NHYSOFT and request a Personal Authorization Code which will
unlock secured features of the program. Please provide the following information to receive your Personal
Authorization Code. Please print using uppercase letters. Complete and fax this form to (208) 279-7016. Your
Authorization code will be faxed back usually within one business day.
Address ôôôôôôôôôôôôôôôôôôôôôôôôôô
ôôôôôôôôôôôôôôôôôôôôôôôôôô
City ôôôôôôôôôôôôôôôôôôôôôôôôôô
Country ôôôôôôôôôôôôôô
Phone (ô ô ô) ô ô ô - ô ô ô ô Fax (ô ô ô) ô ô ô - ô ô ô ô
Your Job Function ❏ Product User ❏ System Administrator ❏ Other (specify) _______________________
The following information must be obtained after the software has been installed on the specific system where it
will be used. Click on Register under the Help menu to view the Registration dialog box.
To request support, report a bug, or make a product suggestion, please provide the following
information and fax this form to (208) 279-7016. We will review your comments and fax back a
response.
Phone #: ( ) Fax #: ( )
• Can you provide a copy of the cost model file (.cmf) or cost estimate file (.cef), if applicable, to
illustrate your problem or bug? (circle one): Yes / No
If the answer is yes, please provide an email address and we will contact you if the file is needed.