Table of Contents
Chapter 1:
Introduction__________________________________________________3
Chapter 2: Literature
Review_____________________________________________ 6
Chapter 3:
Methodology_________________________________________________16
3.1
Step One: Performance Metric Collection ___________________________16
3.2
Step Two: Identify Information Requirement_________________________19
3.2.1
Task One: Identification of Use Cases_______________________19
3.2.2
Task Two: Identification of Classes and Attributes_____________22
3.2.3
Class Diagram_ ________________________________________23
3.2.4
Information Requirement_________________________________24
3.3
Step Three: Implementation______________________________________ 25
3.3.1
Relational Database_____________________________________25
3.3.2
Introduction to Online Benchmarking System: The Web Interface 32
3.3.3
Performance Analysis Based on SMART____________________34
Chapter 4: Website Documentation_______________________________________47
4.1 Purpose
of Documentation_______________________________________47
4.2
What you need to know_________________________________________47
4.3
ASP Code Structure____________________________________________48
4.4
A Walkthrough of Online SMART Application______________________52
4.5
ASP Databases________________________________________________ 57
4.5.1
ASP _________________________________________________58
4.5.2
ADO_________________________________________________59
4.5.3
The
4.6
System Evaluation_____________________________________________ 63
Chapter 5:
Conclusion__________________________________________________64
Future
Research__________________________________________________65
Appendix A: Performance Metric
List_____________________________________66
Appendix B:
Questionnaire______________________________________________82
Appendix C: Sample survey/Metric
Evaluation Package_______________________100
Appendix D: Feedback from Survey
Evaluation______________________________110
Appendix E: Use Case
List_______________________________________________124
Appendix F: Classes and
Attributes________________________________________129
Appendix G: Snap shots of Online
Benchmarking System______________________ 135
Reference____________________________________________________________142
CHAPTER 1: INTRODUCTION
In order to remain competitive, transportation service providers, such as trucking firms, must constantly evaluate their operations, management structures, information systems, and customer relations with respect to their competitors. One of the standard approaches used by industry to evaluate performance is known as benchmarking. Benchmarking is a process by which companies determine the best practices that lead to exceptional performance; however, benchmarking is a complicated and time-consuming process. First, the data necessary to support a benchmarking analysis can be difficult and time-consuming to obtain. For example, companies may be reluctant to share the data necessary to determine best practices because of proprietary or competitive concerns. Second, performance metrics required to perform the benchmarking can be difficult to determine and difficult to interpret their relevance to best practices. Third, finding the best practice in a subject area can be a lengthy task that requires expertise and analysis techniques. Fourth, communication with benchmarking partners must be effective and require full cooperation from all parties. As a result, a system is needed that can aid in the process of benchmarking. The system or tool should partially or completely solve the problems mentioned above. In particular, the system should allow the users to track the performance metrics in specific subject areas, such as customer service or product service performance. Since users are interested in identifying best practices and performance metrics, the system should facilitate the data collection process within these subject areas. In addition, the system must be designed in a user friendly way so that users can quickly apply and learn the system. In turn, communication of all parties involved is improved because the system allows a systematic approach to benchmarking.
There are many systematic ways of conducting a benchmarking study; however, an “online benchmarking” system is one of the innovative ways that one can use to benchmark a transportation company. This research examines the development of an on-line benchmarking system to facilitate the benchmarking of transportation providers. We have implemented the system in prototype form as an “on-line benchmarking system (OBS)”. In particular, the system allows transportation providers to recommend performance metrics, rate their importance, classify the metrics into service categories, and develop other specifications for a performance measurement system. In addition, the system allows for the on-line collection of performance metric values through an on-line survey process. The data is collected and stored in a database for later benchmarking analysis against other participating benchmarking parties in an anonymous fashion. Finally, the system facilitates best practice analysis through a multi-criteria process based on a balanced score card approach. The metrics are categorized according to the four categories in the balance scorecard approach to performance measurement.
This project addresses the need for timely, accurate and comprehensive information concerning the performance and capabilities of transportation and local delivery providers in the form of an on-line benchmarking database. In addition to an on-line benchmarking database, this project examines the development of innovative technologies and methodologies to allow the interactive analysis of transportation providers compared to best practices.
Benchmarking surveys
are one of the most popular techniques used to collect performance data. For
instance, a transportation provider may perform a survey to examine some
specific operations, such as, customer relations, delivery operations, or
e-commerce strategies of peer-group companies. In this project, we investigate
the development of a benchmarking system with online capabilities to facilitate
benchmarking survey and data collection. The system will not only contain
information from the survey but will also contain information about the
surveys, such as performance metrics, survey questions, subject areas, etc.
The primary goal of this project is to support innovation and dissemination of knowledge within the area of benchmarking analysis for transportation carriers. The following are contributions of the project.
§ Standardized performance metrics
for transportation carriers within all areas of operation.
§ Innovative tools for the display and comparison of benchmark results to
indicate the performance of Transportation Company.
In this report, we present the details of the collected performance metrics and the structure of the online benchmarking system in the context of trucking carriers. In addition, an online application based on Simple Multi-Attribute Rating Techniques (SMART) will be discussed in full. SMART is the method that we use to prioritize the performance of carriers. We begin with a review of literature relevant to the benchmarking of transportation service providers.
CHAPTER 2: LITERATURE REVIEW
According to Zivan (1992), then Xerox's vice president for logistics and distribution, a pioneer in developing benchmarking processes, defines benchmarking as the heart of the planning process for any company that holds customer satisfaction as its highest priority. Indeed, benchmarking is an integral part of any quality improvement process. Performance metrics are used to indicate the performance of an organization within a benchmarking analysis and within performance measurement systems.
According to Watson, et. al (1999), performance metrics can be defined as the analytical tools in the performance measurement process that take measurements, display results, and determine subsequent actions. A specific value of a metric indicates the performance of a specific area in an organization. There are many performance metrics that are important to a company’s operation. In general, an enterprise will have hundreds of potential performance metrics to be incorporated into their performance measurement systems. Because of the large number of potential performance metrics, it is often very useful to classify the metrics into subject areas. For example, Watson et al. (1999) proposed a comprehensive logistics performance framework and a best practice template in their work. A total of one hundred and twelve metrics were identified and categorized into four groups, which were “cycle time”, “quality”, “financial”, and “resource”. In addition, a list of eighty-two best practices was complied from two hundred and sixty six best practices that matched the appropriate metrics. In addition, their work “identifies benchmarking that links qualitative values (best practices) with quantitative measurement (performance metrics), across the value chain” (1999).
2) The identification of critical success factors or critical performance metrics (financial and operational metrics only) that directly affect the performance of companies.
3) The identification of a performance metrics list that are related to the financial and operational aspects of the company.
4) The identification of relationships between financial and operational performance metrics.
In order to measure performance, three different scores are used to distinguish successful and less successful companies. The scores are named BRAVO-1, BRAVO-2, and BRAVO-3. “BRAVO-1 is a score in the long term and consists of ratios concerning the growth, productivity, solvency and profitability of the company. BRAVO-3 is a score to measure the operational performance at segment level. This score is defined as the turnover per segment (or category) in proportion to the relevant costs in the segment. BRAVO-2 score is derived from the BRAVO-3 scores. This is done by taking the weighted sum of the BRAVO-3 scores over the segments in which the company operates. Generally, the authors use a weighting method to calculate the BRAVO score. However, no detail on the weighting method is given.
In the BRAVO project, the authors segmented or categorized all of the 150 companies into three different groups, which were “transportation”, “distribution” and “warehousing”. In addition, trucks were divided into general container trucks and specialized trucks. As a result, performance data (financial, operational) was collected according to the segmentation (categorization). Based on the segmentation of the trucking companies, the authors constructed two models, which were the “Transportation” model and “Distribution Model”. Both models attempted explicitly to identify the relationship between financial performance metrics and operational performance metrics. The models were constructed with performance metrics arranged hierarchically. In addition, mathematical relationships were primarily used as the indicators of the relationship that existed among the various metrics.
1) Perform a one-factor correlation analysis on all the measures to find out which operational measures are strongly associated with financial measures.
2) Compare the average value of the operational performance measures for the companies that are performing well.
3) Find the operational measures that have the highest impact
4) Discuss with experts to decided if the data need further segmentation (segmentation is used by the authors to indicate the categorization of metrics)
5) Repeat step 2 to 4 if necessary with new segmentation.
In the following, we discuss the CSF as identified by the Bravo authors using the approach above. We begin by first looking into the Transportation model, and then the Distribution model.
The model consisted of many operational factors that related to one another. The purpose of the model was to determine the most influential factors that were associated with operational performance. In this model, companies were further segmented into Short Distance group and Long Distance group because the average distance per trip had a significant effect on the BRAVO-3 score. The results in the short distance sub-segment showed that both “average wages per driver” and “average load in a truck” were the most important metrics that were highly correlated to the performance of companies. Improvement made to these metrics could result in better operational performance; therefore, the metrics were classified as “Critical Success Factor (CSF)”. On the other hand, the results in the long distance sub-segment showed that “turnover per trip”, “turnover per km per 1000kg”, and “turnover per truck” were highly correlated with the BRAVO-3 score (Note that “turnover” was used by the authors to indicate “revenue”); however, the three metrics should be used to diagnose the situation of a company only, because they do not suggest a solution the operational performance of a company due to their relation to financial performance. Therefore, the metrics were not classified as CSF. On the other hand, the “percentage of km (kilometer) driven empty” and “distance traveled per trip” were considered as CSFs. Therefore, improvement made to these metrics can directly improve the operational performance.
In the distribution model, the focus of operation lies on stopping instead of driving. Therefore, operational performance of companies is determined mostly by stopping operations. In this model, companies were further divided into small drop weight and large drop weight groups.
Results for the small drop weight companies showed that “variable cost per km” was directly proportional to the operational performance of the company. Even though turnover per km was highly correlated with operational performance, the metric was associated with financial performance as well. Therefore, this metric could not be considered as CSF. Other important operational metrics included “number of stops per trip” and “average distance between two stops”.
Results for the large drop weight companies suggested that “turnover per km” was highly correlated with BRAVO-3 score. Since “turnover per km” was associated with financial performance, it was not classified as CSF; however, “distance between two stops” was determined to be a CSF. In this case, the shorter the distance between two stops, the better the performance of the company. Finally, the size of a company (defined as number of trucks and annual revenue of the company) was determined to be a CSF.
All the CSF identified in the Bravo research enables individual companies to study the company’s current situation so that improvement plans could be carried out in the future. The limitation of the project was that it concentrated on operational performance and disregarded overhead costs, because overhead was not considered significant in this sector. In addition, company performance was compared with one CSF only. However, there might be more than one CSF that could account for the success or failure of a company.
The research served as an important guideline for our project so that we have better understanding of certain performance metrics of a transportation company. On the other hand, CSF and some other metrics that were presented in this study were included in our performance metric list. For example, revenue/truck, average load, average speed, number of truck per company and load factor. The different models and their evaluations were also important because the authors studied the problem from different point of views. In addition, the segmentation of transportation companies in the BRAVO project highlighted the importance of categorization when comparing performance. In the article “An innovative survey in the transportation and distribution sector”, Donselaar stressed on the importance of proper categorization of trucking companies when conducting the BRAVO project. In the authors own words: “Segmentation is crucial for benchmarking: comparing apples and pears makes little sense (1997).” In fact, the author argued that segmentation of transportation and Distribution Companies were important in the selection of CSFs and it was an important condition for the measurement of success. In our project, we integrated Doonselar’s segmentation concept by including an important “carrier categorization” questionnaire in our benchmarking system.
The BRAVO research indicates that the selection of key performance metrics is extremely important so that the performance of a company can be accurately and precisely measured. Since the selection of key performance metrics is important, we investigate more on this subject. Caplice et al (1994) have a structured approach to select crucial performance metrics. Caplice et. al.(1994) proposed eight criteria to consider when selecting performance metrics for logistics and business purposes, which were: 1) Validity, 2) Robustness, 3) Usefulness, 4) Integration, 5) Economy, 6) Compatibility, 7) Level of detail, and 8) Behavioral soundness. In addition, they suggested three forms of measurement that could be used to capture the performance of business activities, which were 1) Utilization, 2) Productivity, and 3) Effectiveness (1994).
Surveys can be an effective tool to identify areas that may contain key performance metrics. A study by Tang et al. (2001) applied the Analytical Hierarchy Process (AHP) to measure the performance of outbound logistic processes within Taiwan’s notebook computer industry. By conducting a survey, they identified seven key performance metric areas that closely related to logistic activities: 1) information system, 2) customer service, 3) order process, 4) distribution process, 5) assembly process, 6) inventory control, and 7) warehouse management.
The identification of relationships in performance metrics can be useful in constructing a performance measurement system or conducting a benchmarking project. Boyd and Cox (1997) used a technique known as the “negative branch” to evaluate the cause and effect relationships of performance metrics within an organization. According to them, the construction of a “Negative branch” is a four step process: “1) Write down the positive effects that are expected to result from the action, 2) Write down the negative effects that might result from the action, 3) Connect the proposed solution with your suspected positive and negative effects by cause-and-effect relationships, and 4) Read the negative branches from bottom up using if-then logic, scrutinizing every statement and logical connection along the way, and make necessary corrections (1997).” For example, if on-time delivery is a performance metric, then drivers may be forced to exceed the time allowed for consecutive driving hours in order to consistently meet on-time delivery. This process helps to identify trade-offs between the metrics.
In addition to the categorization of transportation company, we realize that proper categorization of performance metrics is crucial. Well categorized metrics reduce the chances of using the wrong metrics and make the proper undertanding/analyzing of certain metrics possible. Kaplan and Norton (2001) create a performance metric framework known as the balanced scorecard. The balanced scorecard is a “multifaceted tool for communications, alignment, improvement, and control that integrates critical non-financial performance measures into the basic management structure of the organization (1992)”. According to the authors, the balanced scorecard “retains measures of financial performance – the lagging outcome indicators- but supplements these with mewasures on the drivers, the lead indicators, of future fianancial performance (2000).” The framework was divided into four perspectives: customer, internal business, learning and growth, and financial (2000). The learning and growth perspective includes employee training and corporate cultural attitudes related to both individual and corporate self-improvement (2002). The internal business perspective refers to internal business processes. Performance metrics that are based on this perspective enable the managers to know the status of their business. Furthermore, the metrics tell whether the products and services conform to customer requirements (2002). On the other hand, the customer perspective is based on the importance of customer satisfaction in all businesses (2002). Finally, the financial perspective is based on timely and accurate financial data from the management. By using balanced scorecard, we can categorized virtually all metrics into these perspective. According to Brewer and Speh (2000), this framework “balances the inclination to overemphasize financial performance by incorporating metrics related to business process measures, innovation and learning measures, and customer satisfaction measures”. In addition, Brewer and Speh developed a method that applied the balance scorecard to measure the performance of supply chain.
In the project, we integrated the four perspectives of Kaplan and Norton’s balanced scorecard into the metrics categorization. In other words, the performance metrics that we have identified for transportation providers within the on-line benchmarking system are classified according to balanced scorecard framework. Indeed, the integration of these perspectives into our categorization facilitate the understanding and dissemination of the metrics.
CHAPTER 3: METHODOLOGY
In order to satisfy our objectives, the following procedures were executed step by step:
(1) Performance metric collection: We collected a total of seventy-nine performance metrics that were most related to the various operations of trucking service providers. All the metrics were categorized to the four balanced scorecard perspectives accordingly.
(2) Identify information requirements: We identified the “tasks” that we needed to perform so that the objectives of this project could be fulfilled. In order to identify the information requirements, we utilized the Unified Modeling Language (See section 3.2.1 for more detail) to analyze the situation.
(3) Implementation: After we had identified all the required tasks, we needed to implement the tasks. The implementation was mainly achieve by (i) creating a data-driven dynamic website, (ii) creating a relational database, and (iii) implementing an online decision tools based on the collected metrics known as “Simple Multi-Attribute Rating Techniques” or SMART.
3.1 Step One: Performance Metric Collection
A performance metric is an indicator of performance
in a system. A metric may have a certain value and unit that measures and
indicates the system performance. The importance of performance metrics in
benchmarking is that the metrics highlight the important aspects of a system
that can be improved. In other words, performance measurement evaluates
performance relative to a defined goal. A benchmarking team may identify the
performance metrics of a process so that a complete performance measurement
system can be designed. By improving the values of certain metrics, the
performance of a system can be improved.
In order to facilitate online benchmarking, we need a comprehensive list of performance metrics in all areas of interest for transportation providers. In order to develop a comprehensive list of potential metrics, we examined literature related to trucking service providers and discussed metrics with experts within the industry. After identifying potential metrics, we categorized the metrics into the four categories associated with the balance scorecard. The grouping of metrics was subjectively based on their functionalities and properties. For instance, the “unloading time” metric was categorized into the “operational measures” group because “unloading time” was directly related to the time needed to unload goods in an operation.
By
using the balanced scorecard groupings, we attempted to cover all the major
operations within a company. In other words, the metrics collection is not meant to be a
complete list of metrics, but to serve as a resourceful reference for
transportation service providers (mainly for trucking service providers). The
four groups of performance metrics covered the most important performance areas
that can be improved in a company. For instance, if a manager wishes to improve
customer relations, the manager can look into the “customer” group for useful
metric(s). Similarly, the manager can look into other groups as needed.
As indicated in Table 1, the metrics are classified according to the
categories in the balanced scorecard. The metric table is not rigid. In fact,
one can add more metrics into the table so that the collection can be more
comprehensive.
|
Internal Business Process |
Financial Measures |
Learning and growth |
Customer |
|
Loading size |
Direct cost per truck |
Absentee rate |
Claims settling rate |
|
Average length of haul |
Maintenance
cost /mile |
Average # of workdays |
%
Of active customer |
|
Average speed |
Driver’s gross pay |
Driver’s weekly work hours |
Delivery accuracy |
|
Operating hour/Truck/day |
Operating Revenue/wages |
Average
nights a driver’s home/week |
% Correct order |
|
%Distance driven empty |
Revenue/driver |
Training received |
% Order returned |
|
Trailer loading rate |
Revenue/(Driving time) |
Recognition |
Delivery date compliance |
|
Trailer unloading rate |
Revenue/Trip |
Accident rate |
Re-purchase rate |
|
Load Factor |
Revenue/Truck |
Availability rate |
% Order on time |
|
Miles/Truck/week |
Operating Revenue/Distance |
Education |
Service termination rate |
|
Average
loaded miles |
Revenue/Hour |
Turnover rate |
Claims rate |
|
Average
empty miles |
Maintenance Cost |
# Grievances/year |
Complete order rate |
|
# Stops per route |
Logistics operating expenses |
Recruitment rate |
Damage free rate |
|
% Routes repeated |
% Return on asset |
Truck operator’s experience |
On-time delivery |
|
Average
MPG |
% Return on investment |
# Truck operators |
On-time order entry |
|
Trailer,
tractor ratio |
Revenue growth rate |
Employment opportunities/year |
On-time loading |
|
% Driven not empty |
% Market share |
% Offers accepted |
Correct destination rate |
|
Time driven between 2 stops |
Rental Expenses |
Promotion rate |
Data Entry Accuracy |
|
Tracking accuracy |
Insurance expenses |
|
|
|
Inventory record accuracy |
Annual inventory usage |
|
|
|
Pick rate |
Inventory asset value |
|
|
|
Fill rate/Quantity |
Operating revenue/year |
|
|
|
Material handling rate |
|
|
|
|
Inventory Turnover |
|
|
|
|
% Complete sales |
|
|
|
|
Loads/trailer/year |
|
|
|
|
Average
# of dispatches/load |
|
|
|
Table 1: Performance Metrics
For each metric, we developed a detailed metric description that included a name, a textual description of the metric, a formula for computing the metric if applicable, the measurement units for the metric, the purpose of the metric, and a place for comments or discussion about the metric. The following is an example of such a description:
Name: Loading Capacity
Definition: Maximum load per trailer in tons
Formula: N/A
Units: Tons
Purpose: Used to identify the loading capacity of trailers.
Discussion: This metrics is needed to derive other metrics, such as “Average load of truck”.
Please refer to “Appendix A” for complete list of metric descriptions.
3.2 Step Two: Identify Information requirement
Before we can identify the information requirements, we need to understand the technical requirements of the project. Information requirements are the requirements of the project that one has to identify and satisfy so that the objectives of the project can be met. In order to identify the project requirements, we performed the following two tasks:
The following are the detailed descriptions of the tasks that we have performed.
Unified Modeling Language (UML)
Before we get into the discussion of use cases, we need to introduce the UML, which is the parent of use case. We utilized UML to develop the representation of information requirements.
As defined by the Rational software company, the definition of UML is:
The Unified Modeling Language (UML) is a language for
specifying, visualizing, constructing, and documenting the artifacts of
software systems, as well as for business modeling and other non-software
systems. The UML represents a collection of best engineering practices that
have proven successful in the modeling of large and complex systems. (Source: www.rational.com)
In addition, UML provides the application modeling language for,
(Source: www.rational.com)
Since UML is a powerful tool to model a problem, we utilize it to model our information requirements. In other words, UML helped us to identify all the requirements in this project so that we knew exactly what we wanted to build. By using UML, we identified all major classes and attributes in the project. In addition, we identified use cases of the system as well. In the following section, we will discuss use cases in detail.
As we have seen, use case is one of the components of UML. A UML use case can be used to show all the functionalities in a given system. A use case consists of four major elements:
(i) Actor: An actor is anything that interacts with a system. It can be a human actor or non-human actor.
(ii) Definition: The description of the user-system interaction
(iii) Scenario: If different scenarios exist in a use case. Then, list all possible scenarios.
(iv) Use Case: Name of the use case has to be defined
In this project, we brainstormed a list of possible uses of the online benchmarking system. Then, the list was further refined. The refinement was done in the way that only specific uses of the system that satisfied the objective requirements was allowed. The following is an example of a use case that describes the interaction of the user with the system. Please refer to Appendix E for the complete listing of use cases. Indeed, the use cases shown in Appendix E encompass most if not all of the possible uses and scenarios that might occur during system/user interactions.
Definition: Surveys are available online so that users who are interested in participating in taking a survey can fill out an electronic survey form easily. The survey respondent has to go to a designated web page that contains the survey.
Actor: Transportation service provider (TSP) – Transportation service provider is the company that provides transportation service.
Scenarios:
|
Actor (TSP) |
System |
|
Click “Survey” link. |
|
|
|
Display all surveys that are available in the system. |
|
Select a survey by clicking on it. |
|
|
|
Display the survey questions. |
|
Fill out the questionnaire. Click “Submit” button after the user completed the questionnaire. |
|
|
|
Perform error checking - If error is detected, display error message and ask user to correct the error. - Else, display message to thank the survey taker. |
In the following, we discuss the important concept of classes and attributes that contribute to our database design.
Major classes and their corresponding attributes were identified. Classes describe the objects that we have to store in the system so that the system contains all the functionality stated in the use cases. Attributes are all the properties that are associated with classes. In the following, an example of the registered user class and its attribute are given. Please refer to Appendix F for all major classes and their attributes.
Class: Registered User
Description:
A registered user is a person who registered online in the benchmarking website
so that he/she can use some features in the website.
Attribute: First Name
Description: A name that describes the first name of the registered user.
Domain: A text string
Attribute: Last Name
Description: A name that describes the last name of the registered user.
Domain: A text string
Attribute: Company Name
Description: A name that describes the name of the company that the registered user currently works.
Domain: A text string
Attribute: Phone number
Description: A phone number is a text string of number that can be used to make a phone call. This is the phone number of the company that a registered user currently works.
Domain: An text string in the form ###-###-####
Attribute: Email address
Description: A user name and domain name that can be used to send or receive email.
Domain: A text string in the form UserName@DomainName
Attribute: User name
Description: A user name that is selected by the registered user as the login information and validation.
Domain: A text string or number or combination of both.
Attribute: password
Description: A string or number or combination of both that is selected by the registered user as the login validation and information.
Domain: A text string or number or combination of both
After we had identified all the classes and attributes, a class diagram that indicates the relationship between the classes was drawn. Since the benchmarking website is a data driven website, we need a database to support it. Note that the class diagram served as an important guide to the fundamental design/structure of our database. The class diagram is shown below:

Figure
1: Class Diagram
Relationship Interpretation
The relationship between two distinct classes can be interpreted this way: The relationship between “Registered User” and “Scorecard” indicates that, a registered user can create many “scorecards”; however, an existing “scorecard” must belong to only one “registered user” only. The relationship between “Question” and “Answer” implies that, one question can have one or many answers; however, each answer belongs to one question only. The other relationships can be interpreted in a similar manner.
3.2.3 Information
Requirements
After a careful analysis of all the use cases and classes and their attributes, we concluded the information requirements of the project, which were shown in the following:
1) Web Interface: This is the only interface that a user can interact with the system anywhere in the world where an Internet connection is available. The web interface is built by using the latest web technology known as Active Server Pages (ASP) and Hyper Text Markup Language (html) version 4.0. Also, a software known as “Dreamweaver Ultra Dev 4.0” by Macromedia is used as the programming and development platform.
2) Relational Database: A relational database was built based on the class diagram so that data (performance metrics, user information, question, etc.) could be stored. We use the database to support our website so that web interface can be used to collect and display information. If the traffic to the web page and the utilization of the system are both high, we gave a good chance of having many transportation providers as the system users. Thus, the database will integrate the interests of many transportation providers, who are interested in benchmarking.
After the information requirements were identified, we began our implementation.
3.3 Step three: Implementation
The implementation of the system is mainly divided into three parts, which are the (i) Relational database design, and (ii) Web interface and (iii) Online performance analysis application based on SMART. In the following, we start our discussion by elaborating on the design of our database.
3.3.1 Part One: Relational Database Design
Andersen (1999) defines a database as an “organized collection of objects that is used to store, manipulate, and retrieve data for a specific purpose.” In the project, we used the relational database model that was first developed by Dr. E.F. Codd in 1970. The flexibility of the relational model contributes to the development of many database software packages that are available today, such as Microsoft Access, Oracle, SQL server, DB2, and Informix. In a relational database, data is stored in “tables” and the logical stored form of data is known as “record”. A table is made up of two elements, which are “records” and “fields”. “Record”, as we have mentioned earlier, is a logical stored form of data. Each information or data in a record belong to at least one “field”. For example, a metric’s record may consist of several fields, which are “metric name” and “property” and “definition”. Then, the information or data under “metric name” may be “Loading size”. On the other hand, the information or data under “property” may be “hi”. In each record, a metric can be identified by a unique identifier, known as “primary key”. In Figure 2, we set “PM ID” as our primary key in this table. Note that every table has to have one and only one unique primary key. The powerful aspect of the primary key is that it can be used to cross reference information that is stored in other tables in the same database.
Primary
Key Field
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()

Record Data/Information
Benchmarking Database: Our Database
By using Microsoft Access, we created nine tables and defined the relationships among the tables. Tables are related so that we can create queries as needed to retrieve, store, and manipulate data. Figure 3 showed the architecture of the database with simplified table structure. Based on the design of the class diagram (Figure 1), the nine tables captured all the major elements as shown in the diagram. The lines that link the tables represent the relationship. By drawing a line between two tables, a relationship is defined. Note that we can interpret the relationships in the similar fashion as in the relationship interpretation within the class diagram.
As shown in the table, the name of the table is highlighted in gray. The fields of tables are listed below the table name. Note that the primary key of each table is highlight with “bold” text style.

As we have seen, Figure 3 showed the architecture of the database. However, the database is empty with no data at this point. In the following, we discuss the data collection of performance metrics so that the data can be used to populate the database.
In order to collect the data needed for the online analysis tools, we created online surveys so that performance data can be collected. The questionnaire was designed by referring to the performance metric list. The questions were mainly designed to obtain values for all the metrics in the list. The surveys were divided into five categories, which were “Carrier Categorization”, “Customer Perspective”, “Internal Business Perspective”, “Learning and Growth Perspective”, and “Financial Perspective”. Note that in addition to the four balance scorecard groups, “Carrier Categorization” was added to the survey so that an accurate type of carrier can be recognized. For example, a trucking company may be categorized as a less than truckload and regular-route carrier, who delivers hazardous material only. The following is a question taken from the Internal Business Process Survey (Appendix B).
Q12.What is your total mileage operated in intercity service annually?
Loaded Miles
Empty Miles
Additional questions were formatted for each performance metric. A complete list of survey questions can be found in Appendix B. Before we proceeded with a general survey of transportation providers, we wanted to ensure that we were asking the right questions. Therefore, we requested the assistance of transportation companies. We contacted the companies that were interested in the evaluation process and sent them an evaluation package. There were approximately 60 questions to review. We estimated that it would take one to two hours to review and comment on the survey.
The review of the questionnaire involved examining the survey from a transportation provider’s perspective and commenting on:
(i) Whether or not the question makes sense (categorized correctly with wording that is understandable to transportation professionnals)
(ii) The level of difficulty in gathering the data required for the questions.
(iii) The importance of the questions to transportation providers.
The
questionnaire was reviewed by three experts in industry associated with
WalMart, J. B. Hunt Transport, and ABF Freight System Inc. Please refer to
Appendix D for the results of the industry evaluation on the questionnaire.
By
using standardized evaluation form, feedback was collected and improvements or
clarifications were made to the questionnaire. The following is an example of
the evaluation questions on the evaluation form:
a) Do you understand the key terms of this
question? Yes No
If No,
please specify___________________________
b) Is this question is in a wrong or inappropriate
category? (Operational) Yes No
If Yes,
please recommend a category___________________________
c) Please rate the relevance of this question to
your company’s operation:
Least 1
2 3 4 5 most relevant
Please state why: ________________________________________________________________________________ ________________________________________________________________________________
d) Will data be hard to obtain in order to answer
this question? Yes No
If Yes, please indicate why?
|
(A)
Data is too confidential |
(B)
Data is not collected by my company |
|
(C)
Data is not directly available to me. (someone else has the data, who?
_______________________________) |
(D)
Data is available but will take significant resources or time to obtain |
Other, please specify: ________________________________________________________________________________________________________________________________________________________
The final version of the questionnaire is hosted on
the website and available to the general public. In fact, responses to the
survey are very important. If sufficient responses are received from the
public, we will be able to ensure the successful implementation of the
application based on SMART. Specifically, participation in the survey process
can yield the following benefits:
1) Accurate and
representative performance analysis based on SMART: Online surveys collect
performance data from the users. In turn, sufficient performance data ensures
that the performance analysis will involve most participants of the surveys.
Therefore, the result of the performance analysis will be more representative
and accurate.
2) Identification
of benchmarking partner(s): Participation in the survey contributes to the
amount of performance data. A sufficient amount of available data improves the
chances of identifying a suitable benchmarking candidate through the use of
SMART based performance analysis.
3) Through the
use of the website, the surveys are the essential tool that contributes to the
dissemination of benchmarking knowledge and practices. In other words, if
performance data is sufficient, many may be drawn to the site for benchmarking
related information. Eventually, the website may become a tool to disseminate
benchmarking practices.
In the following, we discuss Part Two, which is the
implementation of the web interface.
3.3.2
Part Two: Introduction to Online Benchmarking System: The Web Interface
The website/interface was built by using both Internet scripting and programming tools, known as “Hyper Text Markup Language 4.0 (html)” and “Active Server Pages 2.0 (ASP)”. The following Figure 4 shows the homepage of the website.

Figure 4. Online
Benchmarking Homepage
Further examples of the website pages are documented in Appendix G. From the homepage, a user can explore the resources provided in the page by clicking on the highlighted links. For example, a user can login, view performance metrics or participate in the surveys. The following flow diagram illustrates the structure and flow of the website.
User registration


No
![]()
Yes
![]()
Figure 5. Online
Benchmarking System Structure
A new user has to register in order to gain access to web application resources such as the performance analysis based on SMART and surveys. Specifically, the user must provide “last name”, “first name”, “email address”, “username” and “password” in order to register. In addition, we included user’s contact address and phone number in the registration page; however, contact address and phone number are not necessary for registration.
Before one can use the system, the user has to login. After the user has logged in, he/she has full access to all the resources available in the website. For example, the user can take surveys or perform a performance analysis based on SMART. Then, the user can either stay in the website (to access more resources) or exit the website. Since the benchmarking system requires the enabling and tracking of cookies, all the sensitive information will be immediately destroyed once the user exits the website. In this case, the sensitive information is limited to username and password only. More information about the website and its code can be found in documentation of Chapter 4.
3.3.3 Performance Analysis Based on SMART
Transportation providers may be interested in comparing their performance to other providers by using the system. The online system provides an application that allows a trucking service provider to compare itself against others in terms of overall performance. The method of comparison is based on the method known as SMART method or “Simple Multi-Attribute Rating Techniques”. SMART is a rating technique that is capable of handling more than one attribute. The method requires the user to assign weights to attributes and calculations are performed to determine the overall “aggregate performance” of a company. The higher the value of aggregate performance, the better the performance of a company. The method based on SMART consists of the following two steps: 1) Identification of crucial performance indicators, and 2) Multi-criteria rating and ranking. In the following, we will discuss the two steps in detail.
Step1. Identification of crucial performance indicators
After all the necessary metrics are collected, we have enough attributes to perform analysis of performance. Note that not all metrics need to be used in the analysis. There are two reasons why we want to use a limited number of metrics:
a) Practicality: It may not be practical to use all the metrics because some companies simply do not collect the metrics.
b) Complexity: Having too many metrics increases the complexity, time and effort of the performance analysis by making it more difficult to assign and interpret weights.
During the process, the user provides performance data for the metrics and rates the metrics. Due to the diversity of trucking companies (e.g. truckload, less than truckload, regular route carrier, private carrier, etc.), some companies may consider different performance metrics as crucial in indicating their performance. Therefore, the metrics can be dynamically changed according to a company’s preference or situation. In the website, we allow the user to determine his/her own critical metrics (or attributes).
Step 2.
Multi-criteria rating and ranking
There are two elements in this steps, which are (i) Swing Weight Assignment, and (ii) performance calculations. In the following, we will discuss each elements in details.
(i) Swing Weight Assignment
Swing weight:
The swing weight is a special weight to apply to a metric. In order to illustrate the concept of swing weight, the following imaginative scenario is used.
Scenario:
John is a CEO of an air conditioning company who needs to expand the company’s production capacity by building another manufacting plant in Arkansas. He has the following locations in mind, which are Fayetteville, Fort Smith, and Little Rock. Therefore, he needs to make a decision on which location is the best choice. In order to make the decision, he has a meeting with the executive managers. After the meeting is concluded, they decided to use the following metric as the selection criteria:
(1) Proximity: The average distance of the manufacturing facility to the nearest location of customer.
(2) Transportation convenience: The average distance of the facility to the closest disribution center.
(3) Size: The size limit of the facility in each location.
John decided to use SMART analysis to figure out the location problem. However, he does not know exactly how to assign swing weights to the three metrics. Therefore, an external consultant, Sam, is hired to advise on this matter. Sam starts by asking John to rank the importance of the three metrics. Specifically, if just one of these metrics could be moved to its best level, which metric would John chooses? In this case, John selects “Proximity”. After the change has been made, Sam continues to ask John to rank the other two metrics based on the respective importance. John’s rankings are:
1) Proximity (most important)
2) Size
3) Transportation convenience (least important)
Now, Sam assigns a weight of “100” to the most important metric, which is “proximity. The other weights are assesed as follows. John is asked to compare a swing from the smallest facility size to the biggest, with a swing from the most distant location from customers to the closest location (proximity). After a careful consideration, John decides that the swing in “size” is 90% as important as the swing in “proximity”. Therefore, “size” is given a weight of 90. Similarly, a swing from the worst “transportation convenience” to the best is considered to be 80% as important as a swing from the furthest to the closest customer location for “proximity”, so “transportation convenience” is assigned a weight of 80. As a result, the swing weights for “proximity”, “size” and “trasportation convenince” are 100, 90 and 80 respectively.
In order to summarize the swing weight assignment, we present a general guideline to assign swing weight in the following.
Swing weight assignment guide
After the performance metrics have been selected for performance analysis, the user must assign a value and a “swing weight” to each individual metric. In order to apply swing weights to metrics, we follow the following guidelines:
(1) Rank the “importance” of the metrics in descending or ascending order.
(2) Assign a weight of “100” to the most important metric.
(3) Assign a swing weight to the second most important metric by comparing the current metric with the previous metric (which is the most important metric). For example, the second metric may be 90% as important as the first metric. Therefore, the swing weight of the second metric is “90”.
(4) Similarly, the assignment of swing weight to the third important metric and the rest of the metrics can be determined by comparing them to the most important metric.
After the “swing weight” and value of metrics have been assigned, we perform the usual SMART calculation.
(ii) Performance calculations
The calculations can be divided into two parts, which are, (a) determine the value function of each attribute, and (b) determine the aggregate performance of each alternative. In the following, we will dicuss each part in details.
a) Determine the value function of each attribute: In this prototype, all the value functions were estimated by assuming a linear relationship. A linear function is used for simplicity and the linearity does not imply a specific preference structure. The linear relationship is found by taking the maximum value of metric and minimum value of metric from the database. For instance, we may take the maximum and minimum value of “on time delivery” from the database. Then, a linear equation is found by using the maximum and minimum value. In the following, we describe the process to find the linear relationship.

max C X
![]()
![]()
min
Figure 6. Value
function of a metric (that preferably has its value maximized)
Figure 6 shows a typical linear value function of a metric. Note that this relationship only applies to those metrics that preferably have their values maximized. For example, if we want to maximize the value of “market share”, then, this type of value function can be used. In the following, we derive the general expression of linear value function.
Let y=mapped metrics value
x=Original metric value![]()
max= Upper bound, or the maximum value of a metric
min= Lower bound, or the minimum value of a metric
Linear relationship:
y=mx+C (1)
Where,
(2)
From (1), we derive C,
C=y-mx (3)
Substitute X=max, Y=100 into (3), yields
C=100-m*max (4)
Substitute (2), (4) into (1), therefore,
y=
(5)
![]()
Equation (5) is the general expression of metric value function. It is used to convert metrics that prefer to be maximized on the range of “0” to “100”.
On the other hand, Figure 7 shows a typical linear value function of a metric, which relationship only applies to those metrics that preferably have their values minimized. For example, if we want to minimize the value of “% distance driven empty”, then this type of value function can be used. In the following, we derive the general expression of linear value function.
X

Figure 7. Value
function of a metric(that preferably has its value minimized)
Linear relationship:
y=mx+C (6)
Where,
(7)
C=y-mx (8)
Substitute x=max, y=0 into (8), yields,
C= - m(max) (9)
Substitute (7), (9) into (6), therefore,
y=
(10)
Equation (10) is used to convert metrics that prefer to have their values minimized on the range of “0” to “100”.
After the value function of each metric has been determined, we can determine the aggregate performance of each company.
b) Determine the aggregate performance of each alternative: The aggregate performance of trucking companies (i.e. alternatives) can be computed at this step. The largest aggregate performance value indicates the best overall performer. The following is the general expression of aggregate performance.
Aggregate
performance =AP =
(11)
Where nw=normalized weight
n= number of metrics
In the online application, all the users who have the same set of metrics as those selected by the current user will have their aggregate performance calculated. For example, the calculations (for other users) will apply the swing weights assigned by the current user, based on the assumption that the current user is more interested in his/her own weighting system. Therefore, the approach of this method depends on the likelihood of different users having matching metrics.
In order to facilitate the “understanding” of SMART based system, the following example illustrates the mechanism of such system.
Example 3.1. In this example, we have a simple scenario: A SMART based system that only has two users (John and Jack). In this case, John tries to use the system to compare the performance of his company to his competitor’s (Jack). In other words, John is the current active user of the system, who tries to determine his company’s performance status against the competitor. Note that, incidentally, Jack’s metric profile matches John’s. Assumptions (1) both users understand the mechanism of SMART, (2) the database was populated with numerous performance data, even if there are only two system users.
Solution:
The user selected the following metrics and assigned both value and swing weight to each of the metrics. In John’s case, he ranked the three metrics according to their respective importance in descending order. As shown in the table below, John ranked “complaint rate” as the most important metric and “length if haul” as the least important metric. In addition, the “preference” in the following table indicates that the metric prefers to be either “maximized (max)” or “minimized (min)”.
|
Selected Metrics |
Preference |
Metric Value |
Swing Weight Assigned |
|
Complaints rate |
min |
20% |
100% |
|
Delivery date compliance |
max |
95% |
90% |
|
Length of haul |
min |
500 miles |
75% |
Table2. John’s
metrics profile
Note: In the SMART based application, we created an interface in the website so that a user can assign swing weights to the selected metrics; however, a user must be familiar with the meaning of swing weights so that the weight can be assigned correctly. In addition, we provided an interface to the user so that a metric’s value could be assigned and recorded.
Other User: Jack
Jack was the user who incidentally selected the metrics that matches the metric profile of John.
Note: In the online performance analysis based on SMART, all user information is stored in the database. Therefore, we always check if there are any matching metric profiles in the database before the calculations execute. If there are no matching profiles available, we will terminate the application and inform the user about the situation.
In order to calculate the aggregate performance for Jack, we use John’s swing weight and impose it on Jack’s because John (current user) is more interested in comparing his aggregate performance with Jack’s by using his own weights. In other words, we always impose the current user’s weight on other users’ metric profile (that matches the current user’s metric profile). Table below shows John imposes his metric weights to Jack’s.
|
Selected Metrics |
Metric Value |
Original Swing weight |
Imposed swing weight |
|
Complaints rate |
10% |
100% |
100% |
|
Delivery date compliance |
85% |
80% |
90% |
|
Length of haul |
300 miles |
60% |
75% |
Table 3. Jon
imposes his metric profile onto Jack’s.
Aggregate Performance
Before we can calculate the aggregate performance of both users, we need to determine the value function for all the metrics. The value function equation is obtained by deriving the linear relationship of x and y.
Metric value range= the maximum and minimum value of a specific metric that is currently available in the database.
Thus,
Metric value range: 0% to 100% (complaints rate)
Assign a weight of “100” for 0% complaints rate, and a weight of “0” for 100% complaints rate.
max=100, min=0, m=-1, C=100
Applying (10), the value function of “complaints rate” is y=-x+100
Metric value range: 0% to 100% (delivery date compliance)
Assign a weight of “100” for 100% delivery date compliance, and a weight of “0” for 0% delivery date compliance.
max=100, min=0, m=1, C=0
Applying (5), the value function of “Delivery compliance date” is y=x
Metric value range: 100 miles to 1000 miles (Length of haul)
Assign a swing weight of “100” for length under 100 miles, and a swing weight of “0” for length over 1000 miles.
max=1000, min=100, C=111.111
Applying (10), the value
function of “Length of Haul” is ![]()
Then, we calculate the aggregate performance for both users:
John’s
Aggregate Performance (Current user):
First, we normalize the swing weight.
|
Metrics |
Swing Weight |
Normalized
Weight (nw) |
|
Complaints rate |
100% |
37.7 |
|
Delivery date compliance |
90% |
33.9 |
|
Length of haul |
75% |
28.4 |
Table 4. John’s
swing weight normalization
Second, we map each metric’s value by using the value function.
|
Metrics |
Original Value |
Mapped Value
(mv) |
|
Complaints rate |
20% |
80 |
|
Delivery date compliance |
95% |
95 |
|
Length of haul |
500 miles |
55 |
Table 5. John’s
metric value mapping
Applying (11), APJohn=(37.7*80+33.9*95+28.4*55)/100 = 77.985
Jack’s Aggregate performance (other users):
First, we normalize the swing weight. Note that we impose current user’s weight to John’s.
|
Metrics |
Swing Weight |
Normalized
weight (nw) |
|
Complaints rate |
100% |
37.7 |
|
Delivery date compliance |
90% |
33.9 |
|
Length of haul |
75% |
28.4 |
Table 6. Jack’s swing
weight normalization
Second, we map each metric’s value by using the value function.
|
Metrics |
Original Value |
Mapped Value
(mv) |
|
Complaints rate |
10% |
90 |
|
Delivery date compliance |
85% |
85 |
|
Length of haul |
300 miles |
78 |
Table 7. Jack’s
metric value normalization
Applying (11), APJack=(37.7*90+33.9*85+28.4*78)/100 = 84.89
Note that the value of aggregate performance of a company is directly related to the performance of the company. In this example, Jack’s company has a greater aggregate performance than John’s company. Therefore, we concluded that Jack’s company has been performing better than John’s company. By looking into the detail of the analysis, we notice that Jack’s company has a much higher value of “complaints rate” than John’s company. In addition, the assigned swing weight is 100% for “complaints rate”. Therefore, the aggregate performance of Jack’s company is higher than John’s company. In order to improve the performance of John’s company, John may focus on improving the value of “complaints rate”, which has the highest impact on the overall performance. The following chapter discusses the website documentation in detail.
CHAPTER 4: WEBSITE
DOCUMENTATION
4.1
Purpose of documentation
The main purpose of the website documentation is to facilitate website improvement and modification. Since the website is built by the current Webmaster, the lack of proper website documentation may impose difficult website management task for future web administrator. Indeed, the main audience of this documentation is aimed at the future web administrator who is interested in maintaining website. Thus, the documentation will describe mainly the code or programming aspect of the website. The following knowledge is highly preferable for anyone who wishes to continually maintain and upgrade the website.
4.2
What you need to know
The following knowledge is helpful for maintaining the website:
1) Basic programming skill is required
2) Knowledge of Active Server Pages is required
3) Knowledge of HTML 4.0 is required
4) Knowledge of Structured Query Language (SQL) is highly desirable
5) Knowledge of Vbscript is highly desirable
6) Basic Client/Server concept is desirable
7) Knowledge of any database management system
8) Knowledge of Dreamweaver Ultra Dev 4 is preferable.
In the following, we will discuss the ASP code that we used to built the website.
4.3
ASP Code Structure:
Application: SMART
Filename: SM_S0.asp
The following code is an excerpt of the web page that is written with both html and asp. The web page is the first page that one will see if the user decided to use the SMART based application. This program can be divided into two parts:
In the first part, the program checks if “hid_check”=true, then carries out the process. Note that the value of “hid_check” is null the first time the program run. Therefore, nothing will be processed in this case and the program ignores the first part. However, when the program proceeds to run to second part, “hid_check” is set to “true” (see the code in bold). When user presses submit, the web page submits (value of hid_check” is submitted) to itself and the program re-runs. However, this time the value of “hid_check” is true so the code in first part is triggered and starts running. As we can see in first part, a user may be redirected to “newcard.asp” or “SM_S2.asp”, depend on the situation.
‘First part
<%
If request.form(“hid_check”)=”true” then ‘Check the flag
If request.form(“chx_newcard”)=”new” then
response.redirect (“newcard.asp”)
end if
‘response.write (request.form(“hid_count”))
if request.form(“rd_SC_ID”)<>”” then
session(“scid”)=cint(request.form(“rd_SC_ID”))
response.redirect (“SM_S2.asp”)
end if
end if
%>
‘Second
part
<form name=”form1” method=”post” action=”SM_S0.asp”>
<table width=”95%” border=”1”>
<tr>
<td width=”27%”><b>New Scorecard</b></td>
<td width=”70%”>
<input type=”checkbox” name=”chx_newcard” value=”new”>
Create a new scorecard</td>
<p></p>
</tr>
<tr>
<td width=”27%”><b>Existed Scorecard</b></td>
<td width=”70%”>
<%
If session(“scid”)=”” then
response.write “No record available”
Else
while Not rs_scorecard.EOF
%>
<input type=”radio” name=”<%=”rd_SC_ID”%>” value=”<%=rs_scorecard(“SC_ID”)%>”>
<% response.write rs_scorecard(“cardname”) & “ “ & rs_scorecard(“Creation_date”)& “<br>”
rs_scorecard.movenext
wend
End if
%>
<input type=”hidden” name=”hid_check” value=”true”> ‘This is a flag
</td>
</table>
<p>
<input type=”submit” name=”Submit” value=”Submit”>
</p>
</form>
Above scenario is very common in Client/Server development. It is very important that the Webmaster understands and masters this technique. Generally, the technique can be represented in the following Diagram.
![]()
Flag=true redirect
![]()
![]()
Page
![]()
![]()
Flag=false submit form
![]()
Diagram 1. Code Structure
(Diagram taken from
“Foundation Dreamweaver Ultra Dev 4” by Paddock R. et al., pg 75)
The file “SM_S0.asp” will produce the web page similar to the following Figure:

Figure 8. Web page
produced by SM_S0.asp
All the SMART
based application web files are structured in the similar manner. The files
that associated with SMART based application are listed in the following:
SM_S0.asp: The
homepage of SMART. In this page, we can create, delete or edit a scorecard
SMART.asp: In
this page, we can select the metrics that we wish to include in our scorecard.
SM_S1.asp: In
this page, all the previously selected metrics are displayed. In addition, the
user is given the option of deleting or adding additional metrics.
SM_S2.asp: In
this page, the user can assign metric values and swing weights to the selected
metrics.
SM_S3.asp: In
this page, we can assign weights to each metric category
SM_S4.asp: In
this page, the aggregate benefit is calculated and result is displayed.
The following
files are used to display the error message an once error is detected in the
application files:
err_noblank.asp:
Error message is displayed if a user tries to submit an empty form.
err_numeric.asp:
Error message is displayed if a user tries to enter a non numeric data into a
specific text box.
err_login.asp:
Error message is displayed if user tries to access a restricted web page.
err_nomatch.asp:
Error message is displayed if there is no user in our database that has the
same metrics that the current user has selected.
Online SMART application can be accessed from the home page of online benchmarking system (OBS). Figure 7 show the home page of OBS.


Access SMART application by
clicking this link
Figure 9. Home
page of OBS
Note that one has to login in order to use the SMART application because the application requires the identification of every user so that a metrics profile or scorecard can be created and stored in the database. If the user has no user name, then he/she must register so that the user can create a user name and password. Once logged in, the system will automatically assign a user id for the current user. Note that the user id has been created and stored in the database when the user registers with the system. In the ASP code, the value of the user id for the current user is stored in the session variable “session(“userid”)”. Figure 8 shows the flows of the SMART based application.

Figure
10. Structure of SMART based performance analysis application
If the user has decided to continue the performance analysis, he/she must either create a new scorecard, continue to work on an existing scorecard, or delete an existing scorecard.
Case One: Create New Scorecard
Assume that the user wishes to create a new scorecard by selecting the “create a scorecard” option and presses the submit button. Then, the user will be brought to a scorecard creation page. In the scorecard creation page, the user is required to complete a simple form. Specifically, the user has to create a name for the current scorecard. Upon completion of the form, the user submits the form. The form submission does three things: (1) Stores the name of the scorecard and the creation date, (2) Assign a scorecard id for the user, and (3) redirect the page to “SM_S2.asp”. At this point, the importance of “scorecard id” exceeds the “user id” because we use scorecard id to identify each individual instead of user id. Since only users who decided to use SMART based application will be assigned a scorecard id, it is more convenient to use scorecard id as identification instead of user id. In the ASP code, the value of scorecard id is stored in the session variable “session(“scid”)”.
After a name had been assigned to the scorecard, the user must decide the metrics that he/she wishes to include in the scorecard by selecting at least one metric from the metric list page. Then, the user submits the form and the selected metrics will be stored in the user’s scorecard and the user will be brought to “metrics value/weight” page. The “metrics value/weight” page is a user interface that let the user assigns swing weights and metric values to the selected metrics. Note that if the user has participated in the benchmarking survey before, the metrics value text field will be automatically filled in. Then, the user can submit the form. The form submission does two things: (1) Stores both metric weights and values, and (2) redirect the page to “SM_S3.asp”.
In the next step, the user has to assign weight value to the categories, which are Internal Business Process, Learning and Growth, Financial, and Customer. Similarly, the user submits the form by clicking the submit button. The form submission does three things: (1) Stores the value of category weights, (2) store the weight, and (3) redirects the page to “SM_S4.asp”.
The “SM_S4.asp” page display results of analysis, which is in the form of aggregate performance. In this page, all the users who have the same metrics in their respective scorecards will have their aggregate performance calculated. (See “3.3.3 Performance Analysis Based on SMART” for more information).
In fact, “SM_S4.asp” is heavily programmed and a lot of calculations are performed so that aggregate performance can be found. Basically, the program on this page is divided into three parts:
The First Part:
The first part of the program checks if there is any user in the database who has the same metrics that has been selected by the current. Each metric in the metric profile of the current user is checked against other user’s metrics profile. Every time a matched profile is found, the aggregate performance of the matched profiled will be calculated in “The Second Part”.
The Second Part:
In this part, the program calculates the aggregate performance by following the steps below:
(i) Normalize the metric weight and store the normalized weight.
(ii) Mapped/normalize the value of each metric by using linear value function. The linear relationship is found by taking the maximum value of metrics value and minimum value of metrics from the database. Then, a linear equation is found by using these maximize and minimize value.
Then, the system calculates the user’s aggregate performance based on the data supplied by step (i) and (ii).
The Third Part:
In this part, the code displays the results of aggregate performance for the current user and other users (who have the matching performance metrics). “A picture is worth a thousand words.” Therefore, we want to be able to display the results graphically, so we created a bar chart.
The third part concludes the program as well as the SMART based application. Note that in order to manipulate data between and in the web pages, one has to create appropriate SQL statements and recordsets so that only specific data will be extract from the database.
Case Two: Edit an Existing Scorecard
On the other hand, if the user has decided to work on an existing scorecard, then, the user will be given the option to change part or all of the previous assigned weight and metric values. Then, aggregate performance will be calculated (based on the new values) as in Case One.
Case Three: Delete an Existing Scorecard
If the user has decided to delete an existing scorecard, then he/she must select the scorecard that is displayed in the page by selecting in the associate scorecard ID in a list menu. After the user has selected the scorecard and pressed the submit button, the user will be direct to a confirmation page that is used to confirm the delete action. After the confirmation, the scorecard will either be deleted or the action will be cancelled, depends on the user’s choice. After the delete action, the user will be redirect to the SMART homepage.
In the following, we direct our attention to the technology that we used to create our website, which is known as the Active Server Page (ASP).
4.5 ASP Databases
In this section, we wish to discuss the common ActiveX Data objects (ADO) that we used to create the website. In addition, we will discuss some Active Server Pages basics and its objects as well. We begin the discussion by introducing the ASP.
4.5.1 ASP
ASP allows the web programmer to connect database to the Internet so that information from the current state of database can be accessed in real time. Whenever the information in the database is changed, the associated web site will instantly reflect the changes without the need to change the HTML code.
There are six Active Server Objects, as shown in the following:
(1) Request
(2) Response
(3) Server
(4) Application
(5) Session
(6) Object Context
The following object descriptions are excerpt from “Beginning ASP Databases” by Kauffman et al (1999).
Request object: This is one of the most frequently used object in the website. The object used to deal with a request that a user might make of a site or application.
Response object: A frequently used object. This object is used to deal with the server’s response back to the browser.
Server object: The object provides several commonly used functions, such as setting timeout properties for scripts and converting text into HTML or URLs, by far the most important is its ability to create new objects or components. Again, another frequently used object.
Application and session object: These objects are used to manage information about the application that is currently running and the unique instances (versions) of the application, which individual users run, known as sessions. Note that session object is frequently used in the website.
Object Context: The object is used with Microsoft Transaction Server. This object was not used in the website.
4.5.2 ADO
ADO is the latest database interface technology developed by Microsoft that allows universal data access. In other words, ADO allows us access to information held in a database of one type from a database package to another type. As a result, we can access the data that held in “Oracle” from “Access” and vice versa. The lowest layer of this interface is known as ODBC, or Open Database Connectivity. However, the complicated structure of ODBC and limited data type access prevent many programmers from effectively using the full potential of the powerful interface. Recognizing the problem, Microsoft creates another database interface that sit on top of ODBC, which is known as OLE-DB. According to Microsoft, the new interface is more efficient and user-friendlier. In fact, OLE-DB allows program to access information in any type of data store, including spreadsheets, graphs and email. In addition, a database driver that known as OLE-DB provider allows us to use the ODBC driver for specific database.
Even though OLE-DB is user-friendlier than ODBC, it is still hard to learn and only a limited programming language can be used to manipulate it. Therefore, a higher level of database interfaces known as ADO is available. In fact, ADO is language independent that we can use many programming languages to manipulate it. In our website, we used Vbscript as our language of choice. Vbscript is used because of its simplicity, popularity, and myriad support sources on the Internet. Figure 10 showed the relationships of the old and new database interface.

Figure 11.
Relationship between different levels of database interface
(Diagram adopt from
“Beginning ASP Databases” by Kauffman et al. pp.17)
In the following, we discuss in general the ADO objects that I often used in the website.
4.5.3 The ADO object Model
There are three main objects on which the ADO object model is built:
· The Connection Object
· The Command Object
· The Recordset Object
(1) The Connection Object – We use this object to make a connection to the database. Once a connection is established, we can use it as many time as we wish.
(2) The Command Object – We use command object to run command against the database. However, the “command” is in SQL instead of ASP script. The command object is usually used to return information from a database, add new record, new tables or delete information within the database.
(3) The Recordset Object – This object is the most frequently used object in our code. The recordset object can be used to amend and view the information within the database. There are many methods and properties that are associated with the recordset. Specifically, we can use recordset to find record, delete record, move through the record, restrict view of record, update record, and sort record.
As one may find in the code, we exclusively use the connection object and the recordset object to extract the records that we want to manipulate.
After the web site has been built, we conducted a system evaluation survey. In this survey, a total of five people have participated in the evaluation process. The five person were selected for their knowledge in such system. In other words, the participants must familiar with at least one of the following items:
(1) Web design,
(2) Know at least one programming language,
(3) Some knowledge about SMART application,
We assigned five tasks to the participant and each task must be performed by using the system. In the following, we described the tasks performed:
Task One: Browse the website freely for 5 minutes.
Task Two: Perform a user registration.
Task Three: Login to the system
Task Four: Take all five questionnaires
Task Five: Use SMART based online application
The evaluation process took less than one hour to complete. We asked the participant to record any problems encountered during the five tasks. In addition, the participants were required to record the web page that produced the error and the type of error. After the errors had been reported, we discussed the problems with the participant. The discussion was to verify the problem. In the following, we listed some of the verified problems found after the evaluation:
Type of Error: Broken links
Description: “Home” broken link in the banner.
Location: survey.asp
Type of Error: registration problems
Description: Error message appear when trying to register
Location: registration.asp
Type of Error: Wrong links
Description: “Home” links to another site called “PMRG” in the banner.
Location: faq.asp
After the problems were verified, they were corrected in the final version of the application.
CHAPTER 5.
CONCLUSION
The Online Benchmarking System is intended to facilitate the benchmarking process. In this project, the following tasks were completed:
However, the completion of the project does not necessary signify the end of the project. In fact, there is always room for improvements. In the following, we suggest some additional research.
Future Research:
(1) Metric relationship improvement: The relationship that we used to map performance metrics from zero to one hundred is always linear. Even though the mapping is sufficient in many cases, some metrics may have a non-linear relationship in terms of utility to the user. Future research can be done to (i) identify metrics with non-linear utility mappings, and (ii) to develop the appropriate value functions for metric mapping. The result will be a much more accurate mapped value for each metric.
(2) Website improvement: (i) Current website has only one online performance analysis tool (SMART). Future research can be done to integrate additional ranking and rating tools, for instance, ranking and rating based on Analytical Hierarchy Process into the website, (ii) Provide more useful and representative displays for comparing performance such as a graphical dashboard, (iii) More web functionalities can be added, for example, “chat room” is a very good web application that enables the user to chat in real time.
Appendix A: Performance
Metrics List
I. Internal Business Measures:
Name: Loading Time per stop
Definition: Time needed to load goods onto a truck
Formula: Loading Time/Number of Trips
Units: Hour/stop
Purpose: To find out the time needed to load goods into a truck every time a truck stops for loading and unloading purposes.
Discussion: This metric may help to identify potential bottlenecks in delivery or shipping operations.
Name: Unloading Time per stop
Definition: Time needed to unload goods from a truck
Formula: Unloading Time/Number of Trips
Units: Hour
Purpose: To find out the time needed to unload goods into a truck every time a truck stops for loading and unloading purposes.
Discussion: This metric may help to identify potential bottlenecks in delivery or shipping operations.
Name: Loading Capacity
Definition: Maximum load per truck in ton
Formula: N/A
Units: Tons
Purpose: Used to identify the loading capacity of trailers.
Discussion: This metrics is needed to derive other metrics, such as “Average load of truck”.
Name: Average Load in Truck
Definition: Average load per truck in tons per trip
Formula: Load/Number of trucks
Units: Tons/Truck
Purpose: Used to track the average load of goods in a truck
Discussion: From a transportation service provider’s perspective, it is desirable to load as many goods as possible in a truck; however, government weight limit regulation must not be exceeded.
Name: Length of haul
Definition: Average distance traveled in miles per
trip
Formula: Length of haul/number of trips
Units: Miles/trip
Purpose: To track the average length of haul
of trucking operation.
Discussion: From a transportation service provider’s perspective, it is
desirable to operate in a distance that is not too far away from the
headquarter/maintenance office. Shorter distance may save on truck maintenance
cost and reduce empty miles.
Name: Average Speed
Definition: Average speed of truck during
operation
Formula: N/A
Units: Mph
Purpose: This metrics is used to track the average speed of truck.
Discussion: From a transportation service provider’s perspective, it is
desirable to operate truck in high driving speed to meet customer goal.
However, the trade off is government regulation and highway safety.
Name: Operating hour / Truck
Definition: Average hours in truck operation
Formula: Total operating hour / # of truck/week
Units: hour/truck/week
Purpose: This metric is used to track the average operating hour of truck in a week.
Discussion: Equipment utilization is one of the keys to better productivity. Equipments or trucks can be operated 24 hours a day if possible to boast productivity. The trade off is higher equipment maintenance cost.
Name: % distance driven empty
Definition: Percentage of miles that the truck is
driven completely empty
Formula: (distance empty load/total distance) *100%
Units: %
Purpose: This metric is used to track the empty mileage of a truck.
Discussion: Empty mile has an adverse effect on the productivity of a company. This metric can be used to modify the schedule or network structure of the trucking operation so that empty mile can be reduced to the minimum.
Name: Time driven between 2 stops
Definition: Driving time between 2 stops
Formula: N/A
Units: Hour
Purpose: This metric is used to measure the average driving time travel between two stops.
Discussion: This metrics can be used to measure the transportation network density.
Name: Stop
time
Definition: Average
time that a truck spends in a stop
Formula: N/A
Units: Hour
Purpose: This metric can be used to track the idle time in the stop.
Discussion: Idle time should be reduced to the minimum. Even though a truck has to stop somewhere to refuel or take a break, the idle time should be keep to the minimum.
Name: Load factor
Definition: A ratio of average load over load capacity
Formula: Average load / Load capacity
Units: N/A
Purpose: This metric is used to measure the utilization of truck’s load capacity.
Discussion: The ideal situation is 100% load factor. This is another key metric for equipment utilization.
Name: # of stop per route
Definition: Average number of stops made in a route
Formula: Total number of stops / total number of routes
Units: Stops / Trip
Purpose: This metric is used to measure the number of stop that a driver has to make in order to complete the route.
Discussion: This metric can be used to measure the transportation network density. The more stops in a route, the higher the density. According to a study, company usually performs better with higher network density.
Name: % driven not empty
Definition: Percentage of miles that the truck is driven full or partially full
Formula: (Distance driven full or partially full load / Total driving distance)*100%
Units: %
Purpose: This metric is used to track the
non-empty mileage of a truck.
Discussion: The non-empty mileage should be keep as high as possible. A high value of “% driven not empty” indicates well-planned route and efficient trucking schedule.
Name: Number of trucks active in company
Definition: Average number of trucks that is driven everyday
Formula: N/A
Units: Trucks
Purpose: This metric is used to track the number of trucks that is driven everyday.
Discussion: This is another metric that is used to measure the equipment utilization. Equipments can be operated 24 hours a day if possible to boast productivity. The trade off is higher equipment maintenance cost.
Name: Tracking Accuracy
Definition: Accuracy of shipment tracking
Formula: (The # of trucks with a known location / Total # of trucks)*100%
Units: %
Purpose: This metric is used to track the
accuracy of shipment tracking.
Discussion: Effective shipment tracking keep mishandling to the minimum.
Name: Inventory record accuracy
Definition: Accuracy of availability of inventory
Formula: (# of correct records / Total # of records) *100%
Units: %
Purpose: This metric is used to measure the availability of inventory in a warehouse.
Discussion: Strictly for warehouse uses only. Some transportation company has warehouses. Accurate inventory record ensures efficient operation of the warehouse.
Name: Forecast accuracy
Definition: Accuracy of forecast on customer demand
Formula: N/A
Units: %
Purpose: This metric is used to track the forecast accuracy of customer demand
Discussion: The importance of customer demand cannot be understated. An accurate forecast ensures the customer demand will be met.
Name: Cycle time
Definition: Time needed to complete a route
Formula: N/A
Units: Hours
Purpose: This metric is used to measure the time needed to complete a route.
Discussion: A short cycle time is desirable in most cases. A short cycle
time ensures goods to be delivered in time and increase the availability of
fleet.
Name: Pick rate
Definition: The rate of a person to pick up lines of items
Formula: (# of lines picked per person per hour / lines for all orders) *100%
Units: %
Purpose: This metric can be used to measure the efficiency of picking up lines of items
Discussion: This metric has an impact on the “loading time” and “unloading time”. Therefore, it is very important to increase the pick rate to ensure efficient operation.
Name: Fill rate
Definition: Percentage of orders filled
Formula: (# of filled orders / Total # of orders) *100%
Units: %
Purpose: This metric is used to track the
average rate to complete an order.
Discussion: A high fill rate is highly desirable. A high fill rate may indicate efficient trucking operation and high customer satisfaction.
Name: Maintenance efficiency
Definition: Efficiency of warehouse maintenance
Formula: maintenance cost / activity
Units: $/activity
Purpose: This metric is used to measure the maintenance efficiency of a warehouse in terms of cost per maintenance activity.
Discussion: It is highly desirable to keep the cost down. In this case, maintenance cost is one the costs that worth looking into.
Name: Material handling rate
Definition: It is defined as material handling expense over material handling asset value
Formula: (material handling expense / material handling asset value)*100%
Units: %
Purpose: This metric is used to measure the
rate of material handling.
Discussion:
Name: Data entry accuracy
Definition: Accuracy of customer order entry process
Formula: (# of error