<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Apdex Exchange</title>
	<atom:link href="http://apdex.org/blog/Index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://apdex.org/blog</link>
	<description>Apdex Methodology Discussions</description>
	<lastBuildDate>Tue, 24 Aug 2010 21:54:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Apdex-G Section [6] References</title>
		<link>http://apdex.org/blog/?p=2194</link>
		<comments>http://apdex.org/blog/?p=2194#comments</comments>
		<pubDate>Tue, 24 Aug 2010 03:40:52 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=2194</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=2194&amp;t=Apdex-G+Section+%5B6%5D+References&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #20. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>I have been working systematically through the process of generalizing the current Apdex spec. Along the way, I have been skipping over parts of the current spec to work on the paragraphs that presented challenges. I am now going back to fill in those less contentious paragraphs, posting updated drafts of each section of the Apdex-G spec. The first five are <a href="http://apdex.org/blog/?p=1987">Section [1] Introduction</a>, <a href="http://apdex.org/blog/?p=2020">Section [2] Index Overview</a>, <a href="http://apdex.org/blog/?p=2054">Section [3] Calculation Inputs</a>, <a href="http://apdex.org/blog/?p=2059">Section [4] Calculating the Index</a>, and <a href="http://apdex.org/blog/?p=2085">Section [5] Reporting</a>; today I continue with Section [6] References. </p>
<p><span id="more-2194"></span><br />
<strong>Summary</strong> </p>
<p>In this section, I have retained the original references from Apdex section &sect;6, added four new ones, and introduced headings to show which sections the references relate to.</p>
<p>Because this material includes some drafts posted previously, some of which I have edited, everything in this series of posts is considered the second draft of Apdex-G.</p>
<div class="specBox">
<div class="Apdex leftCol">
<h3>Apdex, current spec:</h3>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part6" style="font-size: 85%;">
<h3>Apdex-G, second draft:</h3>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;6. References</strong></p>
<ol>
<li>&#8220;Defining The Application Performance Index,&#8221; by Peter Sevcik, <em>Business Communications Review</em>, March 2005. This is a comprehensive overview of Apdex and the formation of the Apdex Alliance.</li>
<li>“Understanding How Users View Application Performance,” by Peter Sevcik, <em>Business Communications Review</em>, July 2002.  Describes the three zones of performance.</li>
<li>“This Is Your Father’s Performance After All!,” by Peter Christy, published in <em>Business Communications Review</em>, November 2002.  This is a rebuttal from Peter Christy on reference 2.</li>
<li>“How Fast is Fast Enough?,” by Peter Sevcik, <em>Business Communications Review</em>, March 2003.  This article continues the discussion in references 2 and 3 above of user perception of application response time.</li>
</ol>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part6">
<strong>[6] References</strong></p>
<p><strong>Section 1</strong></p>
<p>[6.1] &#8220;Defining The Application Performance Index,&#8221; by Peter Sevcik, <em>Business Communications Review</em>, March 2005. This is a comprehensive overview of Apdex and the formation of the Apdex Alliance.<br />
[Download: <a href="http://www.netforecast.com/Articles/BCR%20C38%20The%20Apdex%20Alliance.pdf">pdf at netforecast.com</a>]</p>
<p>[6.2] “Understanding How Users View Application Performance,” by Peter Sevcik, <em>Business Communications Review</em>, July 2002.  Describes the three zones of performance.<br />
[Download: <a href="http://www.netforecast.com/Articles/BCR%20C22%20Performance%20Zones.pdf">pdf at netforecast.com</a>]</p>
<p>[6.3] “This Is Your Father’s Performance After All!,” by Peter Christy, published in <em>Business Communications Review</em>, November 2002.  This is a rebuttal from Peter Christy on reference 2.<br />
[Download: <a href="http://www.allbusiness.com/business_planning/business_structures/3602442-1.html">article at allbusiness.com</a>]</p>
<p>[6.4] “How Fast is Fast Enough?,” by Peter Sevcik, <em>Business Communications Review</em>, March 2003.  This article continues the discussion in references 2 and 3 above of user perception of application response time.<br />
[Download: <a href="http://www.allbusiness.com/business_planning/business_structures/3602516-1.html">article at allbusiness.com (but without images)</a>]</p>
<p><strong>Section 2</strong></p>
<p>[6.5] &#8220;The Zone of Tolerance,&#8221; by Robert Johnston, <em>International Journal of Service Industry Management,</em> Vol 6, No 2 1995. This paper reviews literature on service quality and in particular the zone of tolerance, the zone of acceptable or expected outcomes in a service experience. &#8220;The importance of the zone of tolerance is that customers may accept variation within a range of performance and any increase in performance within this area will only have a marginal effect on perceptions. It is only when performance moves outside of this range that it will have any real effect on perceived service quality.&#8221;<br />
[Download: <a href="http://bit.ly/bEenDG">pdf </a>]</dd>
<p><strong>Section 4</strong></p>
<p>[6.6] &#8220;The Apdex Index Revealed,&#8221; by Neil J. Gunther, <em>CMG MeasureIT,</em> February 2009. This paper reviews the Apdex metric in detail, explaining the basis for the formula, discussing some criticisms, and possible enhancements.<br />
[Download: <a href="http://www.cmg.org/measureit/issues/mit56/m_56_15.html">paper at www.cmg.org</a>]</dd>
<p><strong>Section 5</strong></p>
<p>[6.7] &#8220;RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files,&#8221; by Y. Shafranovich, <em>The Internet Society</em>, October 2005. The Apdex Uniform Output format incorporates the IETF specification of CSV published in RFC 4180.<br />
[Download: <a href="http://tools.ietf.org/html/rfc4180">tools.ietf.org</a>]</p>
<p>[6.8] &#8220;Interval Notation,&#8221; by Y. Shafranovich, <em>Zonaland Education</em>. Interval notation is a method of writing down a set of numbers. The Apdex Uniform Output format employs a scheme based on interval notation to describe performance intervals, ranges of input values that correspond to common satisfaction levels.<br />
[Download: <a href="http://zonalandeducation.com/mmts/miscellaneousMath/intervalNotation/intervalNotation.html">article at zonalandeducation.com</a>]</p>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Next Steps &#8230;</strong></p>
<p>This completes my second draft. I will begin work on Apdex-R, the addendum addressing measurements of response times. Apdex-R will cover all the domain-specific content of the current spec that has been excised from Apdex-G. I am postponing work on Section [7] Glossary until I have completed a draft of Apdex-R. If I want to record any new terminology, or edit previous definitions, I will amend my previous post, <a href="http://apdex.org/blog/?p=710">An Extensible Apdex Glossary</a>.</p>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=2194</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apdex-G Section [5] Reporting</title>
		<link>http://apdex.org/blog/?p=2085</link>
		<comments>http://apdex.org/blog/?p=2085#comments</comments>
		<pubDate>Fri, 20 Aug 2010 12:29:49 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=2085</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=2085&amp;t=Apdex-G+Section+%5B5%5D+Reporting&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #19. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>I have been working systematically through the process of generalizing the current Apdex spec. Along the way, I have been skipping over parts of the current spec to work on the paragraphs that presented challenges. I am now going back to fill in those less contentious paragraphs, posting updated drafts of each section of the Apdex-G spec. The first four are <a href="http://apdex.org/blog/?p=1987">Section [1] Introduction</a>, <a href="http://apdex.org/blog/?p=2020">Section [2] Index Overview</a>, <a href="http://apdex.org/blog/?p=2054">Section [3] Calculation Inputs</a>, and <a href="http://apdex.org/blog/?p=2059">Section [4] Calculating the Index</a>; today I continue with Section [5] Reporting. </p>
<p><span id="more-2085"></span><br />
<strong>Summary</strong> </p>
<p>In this section, I have generalized and reorganized the material in Apdex section &sect;5 as follows:</p>
<ul>
<li>The introduction is a rewording of the current spec.</li>
<li>Section [5.1] corresponds to Apdex section &sect;5.1. I have numbered the four rules.</li>
<li>Section [5.1.1] corresponds to Apdex section &sect;5.3, describing general cases. Placing it here improves the flow.</li>
<li>Section [5.2] corresponds to the last part of Apdex section &sect;5.1 on Uniform Output, revised and extended. These extensions were discussed in two previous posts &#8212; <a href="http://apdex.org/blog/?p=923">Configurable Reporting in Apdex-G</a> and <a href="http://apdex.org/blog/?p=625">Report Groups and Quality Ratings in Apdex-G</a>. </li>
<li>Section [5.3] corresponds to Apdex section &sect;5.2. I have generalized the language, and tried to enumerate the possible classes of errors in a general way. This section was discussed briefly with the first draft.</li>
<li>Section [5.4] corresponds to Apdex section &sect;5.4. I have generalized the language.</li>
</ul>
<p>Because this material includes some drafts posted previously, some of which I have edited, everything in this series of posts is considered the second draft of Apdex-G. After the second draft is posted, I will begin work on Apdex-R, the addendum addressing measurements of response times. Apdex-R will cover all the domain-specific content of the current spec that has been excised from Apdex-G. </p>
<div class="specBox">
<div class="Apdex leftCol">
<h3>Apdex, current spec:</h3>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part5" style="font-size: 85%;">
<h3>Apdex-G, second draft:</h3>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;5. Reporting the Index</strong></p>
<p>The index is a decimal value between 0 and 1.  The Apdex representation on all reports (screen, print, or otherwise) must adhere to the following rules.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<strong>[5] Reporting the Index</strong></p>
<p>In this section, the terms <em>Report(s)</em> and <em>Reporting</em> refer to any representation of an Apdex index, whether in print, on a computer screen, or elsewhere.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;5.1 Displaying the Apdex Value</strong></p>
<p>The index always starts with a 0, followed by a decimal point, followed by the fractional value for the calculation to two decimals, and the value of T is clearly associated with the index presentation as defined below.  There is a special case of the value 1.00 that starts with the digit of 1.  A 1.00 is presented when the formula produces a result that can be rounded arithmetically to 1.00 (results equal to or greater than 0.995 round to 1.00). </p>
<p>Apdex may not be reported in granularity smaller than one one-hundredth.  Decimal values of 3 or more digits are not permitted.</p>
<p>Tools in a computer screen or in printed reports always identify it as an Apdex value.  When there are many values of the index presented in tabular form representing many reporting groups, then the Apdex label should appear with the appropriate column or row.</p>
<p>All Apdex values are calculated with a particular target threshold, T.  The value of T must be clearly displayed in association with the Apdex score.  Furthermore, in order to facilitate exporting Apdex values from a tool and then importing them to other analysis tools, all tools must support at least one uniform output as shown below.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<strong>[5.1] Reporting the Apdex Value</strong></p>
<p>Reports must adhere to the following rules:</p>
<ol>
<li>The index is a decimal value between 0 and 1, rounded to a precision of two decimal places. Values equal to or greater than 0.995 round to 1.00. </li>
<li>Unless its value is 1.00, the index is always reported with a zero in the tens place, followed by a decimal point, followed by no more than two decimal places.</li>
<li>Apdex values must be identified as such.  When several Apdex values are presented in tabular form, a single Apdex identifier can be identify a group of values in a row, column, or table.</li>
<li>All Apdex values are calculated based on specified performance zones. The performance zone specification must be clearly displayed in association with the Apdex score.</li>
</ol>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em></p>
<p><strong>&sect;5.3 When T is a General Case</strong></p>
<p>General Apdex value discussions that reflect any target of T are written with “T” as shown in the following examples.</p>
<p><strong>Uniform Output:</strong>  “Everyone should understand that 0.90 [T] is a better value than 0.80 [T].”<br />
<strong>Subscripted Output:</strong> “Everyone should understand that 0.90<sub>T</sub> is a better value than 0.80<sub>T</sub>.”<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<strong>[5.1.1] Describing General Cases</strong> </p>
<p>In general discussions of Apdex values, references to unspecified performance thresholds are written using the notation “[T]”, as shown in the following examples.</p>
<p>“Everyone should understand that 0.90 [T] is a better value than 0.80 [T].”<br />
&#8220;Apdex scores in the range 0.85 to 0.93 [T] are rated <em>Good</em>.&#8221;</p>
<p>Sections [5.3] and [5.4] also use this notation when referring to threshold reporting.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>Uniform Output (Mandatory)</strong></p>
<p>The tool shall display, print, and export to an ASCII file each Apdex value with the following fixed format.</p>
<p><strong>Table 2. Uniform Output Definition</strong></p>
<table class="text" id="table2">
<tr>
<th class="width15">Element Position</th>
<th class="width55">Definition</th>
<th class="width30">Example/Range</th>
</tr>
<tr>
<td>1</td>
<td>Value whole number digit</td>
<td>0 or 1</td>
</tr>
<tr>
<td>2</td>
<td>Decimal point</td>
<td>.</td>
</tr>
<tr>
<td>3</td>
<td>Value tenths digit</td>
<td>0 through 9</td>
</tr>
<tr>
<td>4</td>
<td>Value hundredths digit</td>
<td>0 through 9</td>
</tr>
<tr>
<td>5</td>
<td>Space</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td>Left bracket designating start of T</td>
<td>[</td>
</tr>
<tr>
<td>7</td>
<td>First digit of T</td>
<td>0.1 or greater</td>
</tr>
<tr>
<td>N</td>
<td>Rest of T as defined in section 3.3</td>
<td>Numeric digits</td>
</tr>
<tr>
<td>N+1</td>
<td>Right bracket designating end of T</td>
<td>]</td>
</tr>
<tr>
<td>N+2</td>
<td>Small group indicator (see 5.2 below)</td>
<td>* if present</td>
</tr>
<caption>Table 2. Uniform Output Definition</caption>
</table>
<p>Examples of the uniform output are: 0.85 [5.5], 1.00 [8.0]*, 0.90 [4.0], and 0.77 [450].</p>
<p><strong>Subscripted Output (Optional)</strong></p>
<p>Tools may display Apdex values with a T shown as a mathematical subscript.  For example, an Apdex value of 0.75 that is based upon a T of 4 seconds is shown as 0.754.</p>
<p>When T has a decimal component, as defined in section 3.3, then the exact value of T must be shown (example: 0.754.5).  In order to make the index easy to read, tools may drop the decimal portion of T if it is zero (example: 0.754.0 becomes 0.754).<br />
<!--close Apdex--></div>
<p>&nbsp;</p>
<div class="Apdex-G part5">
<strong>[5.2] Uniform Output File (Mandatory)</strong></p>
<p>Separate tools may be used to calculate Apdex index values from measurement data and to report Apdex index values. To support the exchange of index values between Apdex analysis and reporting tools, all Apdex analysis tools must support the Apdex Uniform Output format. A tool shall display, print, and export Apdex-G values to an ASCII file having a comma-separated values (CSV) format. For this purpose, Apdex-G incorporates the IETF specification of CSV published in RFC 4180 (see section [6] References). </p>
<p>A Uniform Output File is composed of a uniform output header record, followed by one or more uniform output data records. The header record contains the same number of comma-separated fields as all data records in the file. Fields in the header record contain fixed literal values, or names that correspond to each field in the data records. The content of a uniform output header and data records are described in Tables 2 and 3 below. In Table 2, each element except the last is followed by a comma. </p>
<table class="text" id="table5">
<tr>
<th class="width10" rowspan="2">Element Number</th>
<th class="width25" rowspan="2">Definition</th>
<th class="width25" colspan="2">Header Record</th>
<th class="width40" colspan="2">Data Record</th>
</tr>
<tr>
<th class="width5">Type</th>
<th class="width20">Content</th>
<th class="width5">Type</th>
<th class="width35">Content</th>
</tr>
<tr>
<td>1</td>
<td>Apdex data record identifier</td>
<td>Literal</td>
<td>Apdex Header</td>
<td>Literal</td>
<td>Apdex</td>
</tr>
<tr>
<th colspan="2"><strong>Report Group Metadata Section</strong></th>
<th colspan="2">Header Record</th>
<th colspan="2">Data Record</th>
</tr>
<tr>
<td>2</td>
<td><strong>A</strong>pdex <strong>R</strong>eport <strong>G</strong>roup section identifier</td>
<td>Literal</td>
<td>ARG</td>
<td>Literal</td>
<td>ARG</td>
</tr>
<tr>
<td>3</td>
<td>Report Group Name</td>
<td>Literal</td>
<td>Report Group</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>4</td>
<td>Report Group Description</td>
<td>Literal</td>
<td>Description</td>
<td>Text String</td>
<td>Defined by tool or user. <em>See note 1 below</em></td>
</tr>
<tr>
<td>5</td>
<td>Measurement Type</td>
<td>Literal</td>
<td>Type</td>
<td>Name</td>
<td>G, or addendum type (e.g. R for Apdex-R)</td>
</tr>
<tr>
<td>6</td>
<td>Measurement Subtype</td>
<td>Literal</td>
<td>Subtype</td>
<td>Name</td>
<td>Values specified in an addendum for this measurement type</td>
</tr>
<tr>
<td>7</td>
<td>Application</td>
<td>Literal</td>
<td>Application</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>8</td>
<td>User Group</td>
<td>Literal</td>
<td>User Group</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>9</td>
<td>Time Period Start</td>
<td>Literal</td>
<td>Start Time</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<td>10</td>
<td>Time Period End</td>
<td>Literal</td>
<td>End Time</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<th colspan="2"><strong>Input Data Summary Section</strong></th>
<th colspan="2">Header Record</th>
<th colspan="2">Data Record</th>
</tr>
<tr>
<td>11</td>
<td><strong>A</strong>pdex <strong>D</strong>ata <strong>S</strong>ummary section identifier</td>
<td>Literal</td>
<td>ADS</td>
<td>Literal</td>
<td>ADS</td>
</tr>
<tr>
<td>12</td>
<td>Sample Count</td>
<td>Literal</td>
<td>Total Samples</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>13</td>
<td>Satisfied Zone Count</td>
<td>Literal</td>
<td>Satisfied Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>14</td>
<td>Tolerating Zone Count</td>
<td>Literal</td>
<td>Tolerating Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>15</td>
<td>Frustrated Zone Count</td>
<td>Literal</td>
<td>Frustrated Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>16</td>
<td>Earliest Sample Timestamp</td>
<td>Literal</td>
<td>First Sample</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<td>17</td>
<td>Latest Sample Timestamp</td>
<td>Literal</td>
<td>Last Sample</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<th colspan="2"><strong>Apdex Index Section</strong></th>
<th colspan="2">Header Record</th>
<th colspan="2">Data Record</th>
</tr>
<tr>
<td>18</td>
<td><strong>A</strong>pdex <strong>I</strong>nde<strong>X</strong> section identifier</td>
<td>Literal</td>
<td>AIX</td>
<td>Literal</td>
<td>AIX</td>
</tr>
</ul>
<tr>
<td>19</td>
<td>Apdex index value</td>
<td>Literal</td>
<td>Apdex Index</td>
<td>Number</td>
<td>Decimal in range [0.00, 1.00]</td>
</tr>
<tr>
<td>20</td>
<td>Satisfied Zone Identifier</td>
<td>Literal</td>
<td>S</td>
<td>Literal</td>
<td>S</td>
</tr>
<tr>
<td>21</td>
<td>Satisfied Thresholds(s)</td>
<td>Group</td>
<td>Performance Interval Names</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>22</td>
<td>Tolerating Zone Identifier</td>
<td>Literal</td>
<td>T</td>
<td>Literal</td>
<td>T</td>
</tr>
<tr>
<td>23</td>
<td>Tolerating Thresholds(s)</td>
<td>Group</td>
<td>Performance Interval Names</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>24</td>
<td>Frustrated Zone Identifier</td>
<td>Literal</td>
<td>F</td>
<td>Literal</td>
<td>F</td>
</tr>
<tr>
<td>25</td>
<td>Frustrated Thresholds(s)</td>
<td>Group</td>
<td>Performance Interval Names</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>26</td>
<td><strong>S</strong>mall <strong>G</strong>roup <strong>I</strong>ndicator</td>
<td>Literal</td>
<td>SGI</td>
<td>Literal</td>
<td>* or NS</td>
</tr>
<caption>Table 2. Layout of a Uniform Output Data Record</caption>
</table>
<p><strong>Note 1</strong>: To avoid ambiguity, tool creators must ensure that Report Group description fields do not contain commas, because commas separate fields in the Uniform Output format.</p>
<p><strong>Performance Interval Names</strong> </p>
<p>If a tool has obtained user-specified names for performance intervals, those names should be included in the corresponding fields of the header record (elements 21, 23, and 25 in Table 2). If user-specified names are not available, distinct default names must be supplied for each performance interval field in the header record. See also section [2.5.1] Thresholds and Performance Intervals. </p>
<p><strong>Performance Interval Groups</strong></p>
<p>In Table 2, each Interval Group (elements 21, 23, and 25)  is composed of one or more Performance Interval elements, separated by commas. Table 3 shows the structure of <strong>a single</strong> Performance Interval element, therefore the components shown in Table 3 are <strong>not</strong> separated by commas.</p>
<table class="text" id="table3">
<tr>
<th class="width10" rowspan="2">Component</th>
<th class="width25" rowspan="2">Definition</th>
<th class="width25" colspan="2">Header Record</th>
<th class="width40" colspan="2">Data Record</th>
</tr>
<tr>
<th class="width5">Type</th>
<th class="width20">Content</th>
<th class="width5">Type</th>
<th class="width35">Content</th>
</tr>
<tr>
<td>1</td>
<td>Opening backet</td>
<td rowspan="5">Name</td>
<td rowspan="5">Performance Interval Name</td>
<td>Literal</td>
<td>( or [</td>
</tr>
<tr>
<td>2</td>
<td>Lower threshold</td>
<td>Number</td>
<td>Decimal number -- see [3.4]</td>
</tr>
<tr>
<td>3</td>
<td>Colon</td>
<td>Literal</td>
<td>: <em>See note 2 below</em></td>
</tr>
<tr>
<td>4</td>
<td>Upper threshold</td>
<td>Number</td>
<td>Decimal number &#8212; see [3.4]</td>
</tr>
<tr>
<td>5</td>
<td>Closing backet</td>
<td>Literal</td>
<td>) or ]</td>
</tr>
<caption>Table 3. Components of a Performance Interval within a Uniform Output Data Record</caption>
</table>
<p><strong>Note 2</strong>: Interval Notation, described in References [6.8], uses a comma to separate the upper and lower bounds of an interval. To avoid ambiguity Apdex substitutes a colon, because commas separate fields in the Uniform Output format.</p>
<p><strong>Optional Sections</strong></p>
<p>The Uniform Output File format comprises three sections, each having its own identifier (fields 2, 11, and 18). The Report Group Metadata Section and the Apdex Index Section are required, because they contain the necessary data for reporting Apdex scores. The Input Data Summary Section is optional, but tool creators are encouraged to produce this data at the analysis stage, and to pass it to Reporting tools. Reporting tools can use this data to provide additional context for Apdex scores. If the Input Data Summary Section is omitted, fields 11 through 17 must be omitted from the header and data records. </p>
<p><strong>Examples of the uniform output</strong></p>
<p>Examples of the uniform output are:</p>
<p>       Apdex Header,ARG,,,,,,,,,AIX,Apdex Index,S,Green,T,Yellow,F,Red,SGI  CRLF  <em>user labels</em><br />
       Apdex,ARG,,,,,,,,,AIX,0.72,S,[0:4],T,(4:16],F,(16:INF)  CRLF<br />
       Apdex,ARG,,,,,,,,,AIX,0.85,S,[0:6],T,(6:20],F,(20:INF),*  CRLF<br />
       Apdex,ARG,,,,,,,,,AIX,0.58,S,[0:3],T,(3:10],F,(10:INF)  CRLF<br />
       Apdex,ARG,,,,,,,,,AIX,0.91,S,[0:10],T,(10:30],F,(30:INF)  CRLF</p>
<p>       Apdex Header,ARG,,,,,,,,,AIX,Apdex Index,S,PI3,T,PI2,PI4,F,PI1,PI5,SGI  CRLF  <em>generic labels</em><br />
       Apdex,ARG,,,,,,,,,AIX,0.88,S,(10:12],T,(6:10],(12:16],F,[0:6],(16:INF)  CRLF<br />
       Apdex,ARG,,,,,,,,,AIX,0.96,S,(9:15],T,(6:9],(15:18],F,[0:6],(18:INF)  CRLF</p>
<p>[ <em>More details and examples will be added here</em> ]</p>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;5.2 Indicating Sample Size</strong></p>
<p>Apdex values are calculated based upon a set of measurements (samples) in the report group. If there are a small number of samples, the tool must still present a result. However, a result for such a small report group must be clearly marked.</p>
<p>A small report group is defined as any number of samples between 0 and 99. Apdex tools will clearly indicate that the result is based upon one of the following scenarios:</p>
<dl>
<dt>No Samples</dt>
<dd>The Apdex calculation could not be performed because there were no samples (NS) within the report group. Where the calculated Apdex value would normally appear, the tool will show an output of NS. Examples: NS [4.0], NS<sub>4</sub></dd>
<dt>Small Group</dt>
<dd>When an Apdex value is the output of a small group (1 to 99) calculation, an asterisk (*) must be appended to that value. Examples: 0.80 [4.0]*, 0.80<sub>4</sub>*.</dd>
</dl>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<strong>[5.3] Indicating Sample Size</strong></p>
<p>Apdex values are calculated based upon a set of measurements (samples) in the report group.  If there are a small number of samples, the tool must still present a result.  However, a result for such a small report group must be clearly marked.</p>
<p>A small report group is defined as one having fewer than 100 samples. An addendum may modify this definition to be appropriate for a particular measurement domain. Apdex tools will clearly indicate that the result is based upon one of the following scenarios:</p>
<dl class="glossary">
<dt>No Samples</dt>
<dd>The Apdex calculation could not be performed because there were no samples (NS) within the report group.  Where the calculated Apdex value would normally appear, the tool will show an output of NS [T], where [T] is the normal threshold display (see section [5.1.1]).</dd>
<dt>Small Group</dt>
<dd>When an Apdex value is the output of a small group calculation, an asterisk (*) must be appended to that value, for example: 0.84* [T], where [T] is the normal threshold display (see section [5.1.1]). </dd>
</dl>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;5.4 Additional Reporting Rules</strong></p>
<p>Some tool vendors may wish to add graphical aids to report the Apdex value. This is an optional feature, but, if implemented, it must follow these guidelines. </p>
<p>Two forms of alternative representations are permitted: the rating (a word), and a color indication. The following table shows the fixed set of alternative modes of representing the Apdex. The table shows examples where the target threshold (T) is 4 seconds. </p>
<p>The color indication can be determined by the vendor in line with their existing product set, however a legend must clearly indicate which color represents each Apdex rating.</p>
<p><strong>Table 3 – Apdex Qualitative Reporting Rules</strong><br />
(Examples where T=4)</p>
<table class="text" id="table6A">
<tr>
<th class="width30"><strong>Apdex Value Range</strong></th>
<th class="width25"><strong>Rating</strong></th>
<th class="width45"><strong>Color Indication</strong></th>
</tr>
<tr>
<td>0.94<sub>4</sub> to 1.00<sub>4</sub></td>
<td>Excellent<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.85<sub>4</sub> to 0.93<sub>4</sub></td>
<td>Good<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.70<sub>4</sub> to 0.84<sub>4</sub></td>
<td>Fair<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.50<sub>4</sub> to 0.69<sub>4</sub></td>
<td>Poor<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.00<sub>4</sub> to 0.49<sub>4</sub></td>
<td>Unacceptable<sub>4</sub> or UNAX<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td colspan="3"><strong>Low Sample Cases</strong></td>
</tr>
<tr>
<td>0.NS<sub>4</sub></td>
<td>NoSample<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus an NS inside color indication)</td>
</tr>
<tr>
<td>0.85<sub>4</sub>*</td>
<td>Good<sub>4</sub>*</td>
<td>Determined by vendor (with a 4 plus an * inside color indication)</td>
</tr>
<caption>Table 3. Apdex Qualitative Reporting Rules</caption>
</table>
<p><em>Note.  In the current specification, the &#8216;Apdex Value Range&#8217; column of Table 3 contains a typo in the &#8216;NoSample&#8217; row, which (as shown above) reads &#8216;0.NS<sub>4</sub>&#8216;. That cell should read &#8216;NS<sub>4</sub>&#8216;.</em><br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<strong>[5.4] Apdex Quality Ratings</strong></p>
<p>Some tool creators may wish to assign quality ratings to Apdex value ranges, and to present those ratings graphically. This is an optional feature, but, if implemented, it must follow these guidelines. </p>
<p>Two alternative representations are permitted for quality ratings: a rating word or a color indication. Table 6 below lists the value ranges to be used when assigning a rating to an Apdex value. The table shows examples for the target threshold [T], where [T] is the normal threshold display as described in section [5.1.1]. </p>
<p>Colors may be selected by the vendor for consistency with other products, or based on user-supplied preferences. However a legend must clearly indicate which color represents each Apdex rating. </p>
<table class="text" id="table6B">
<tr>
<th class="width30"><strong>Apdex Value Range</strong></th>
<th class="width25"><strong>Rating Word</strong></th>
<th class="width45"><strong>Color Indication</strong></th>
</tr>
<tr>
<td>0.94 to 1.00 [T]</td>
<td>Excellent [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.85 to 0.93 [T]</td>
<td>Good [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.70 to 0.84 [T]</td>
<td>Fair [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.50 to 0.69 [T]</td>
<td>Poor [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.00 to 0.49 [T]</td>
<td>Unacceptable [T] or UNAX [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td colspan="3"><strong>Low Sample Cases</strong></td>
</tr>
<tr>
<td>NS [T]</td>
<td>NoSample [T]</td>
<td>Determined by vendor (with [T] plus an NS inside color indication)</td>
</tr>
<tr>
<td>0.85* [T]</td>
<td>Good* [T]</td>
<td>Determined by vendor (with [T] plus an * inside color indication)</td>
</tr>
<caption>Table 6. Rules for Apdex Quality Ratings</caption>
</table>
<p><strong>Note:</strong> An addendum may specify alternative colors [<em>TBD: and/or value ranges?</em>] to be applied when reporting Apdex scores for a particular measurement domain.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Public Comment</strong></p>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=2085</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apdex-G Section [4] Calculating the Index</title>
		<link>http://apdex.org/blog/?p=2059</link>
		<comments>http://apdex.org/blog/?p=2059#comments</comments>
		<pubDate>Thu, 19 Aug 2010 19:51:04 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=2059</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=2059&amp;t=Apdex-G+Section+%5B4%5D+Calculating+the+Index&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #18. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>I have been working systematically through the process of generalizing the current Apdex spec. Along the way, I have been skipping over parts of the current spec to work on the paragraphs that presented challenges. I am now going back to fill in those less contentious paragraphs, posting updated drafts of each section of the Apdex-G spec. The first three are <a href="http://apdex.org/blog/?p=1987">Section [1] Introduction</a>, <a href="http://apdex.org/blog/?p=2020">Section [2] Index Overview</a>, and <a href="http://apdex.org/blog/?p=2054">Section [3] Calculation Inputs</a>; today I continue with Section [4] Calculating the Index.</p>
<p><span id="more-2059"></span><br />
<strong>Summary</strong> </p>
<p>The first draft of this section of Apdex-G was posted as <a href="http://apdex.org/blog/?p=922">Configurable Scoring in Apdex-G</a>. In this section, I have generalized and reorganized the material in Apdex section &sect;4 as follows:</p>
<ul>
<li>The introduction generalizes the language in the current spec.</li>
<li>Section [4.1] corresponds to Apdex section &sect;4.1. I have generalized the language, removing references to response times. Since the first draft, I have revised the references to earlier sections, making them more complete. </li>
<li>Section [4.1.1] corresponds to the last paragraph of Apdex section &sect;4.1. I have rewritten this section, generalizing the language and adding the second paragraph. I am not sure if the third paragraph is required.</li>
<li>Section [4.1.2] is new. It reflects the discussion of alternative scoring methods published with the first draft, and extends the conclusion with a rule for the implementation of a sliding scale.</li>
<li>Section [4.2] corresponds to Apdex section &sect;4.2. I have generalized the language, and tried to enumerate the possible classes of errors in a general way. This section was discussed briefly with the first draft.</li>
</ul>
<p>Because this material includes some drafts posted previously, some of which I have edited, everything in this series of posts is considered the second draft of Apdex-G. After the second draft is posted, I will begin work on Apdex-R, the addendum addressing measurements of response times. Apdex-R will cover all the domain-specific content of the current spec that has been excised from Apdex-G. </p>
<div class="specBox">
<div class="Apdex leftCol">
<h3>Apdex, current spec:</h3>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4" style="font-size: 85%;">
<h3>Apdex-G, second draft:</h3>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;4. Calculating the Index</strong><br />
The Apdex does not entail new measurements – rather it is a new way to represent existing measurements, calculated by counting the measurement samples in each of the performance zones.</p>
<p><strong>&sect;4.1 The Apdex Formula</strong><br />
The Apdex is calculated for each report group using the following equation:</p>
<p>Given,</p>
<ul>
A report group that defines a set of measurement samples, and a target threshold T (seconds) between the satisfied-tolerating zones of performance</ul>
<p>Where,</p>
<ul>
F defines the threshold between the tolerating-frustrated zones of performance,<br />
and<br />
F = 4T
</ul>
<p>Such that,</p>
<ul>
There are counts of response time measurement samples within the above defined performance zones of:<br />
Satisfied_Count = number of satisfied response time samples,<br />
Tolerating_Count = number of tolerating response time samples,<br />
Total_Samples = number of all samples in the report group</ul>
<p>Then,</p>
<ul>
<img src="http://apdex.org/blog/wp-content/uploads/2010/08/Apdex-Formula.JPG" alt="Apdex Formula" title="Apdex Formula" width="380" height="75" class="aligncenter size-full wp-image-1788" />
</ul>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4">
<strong>[4] Calculating the Index</strong></p>
<p>The Apdex does not entail new measurements, rather it is a new way to represent an existing set of measurements, reflecting the degree to which those measurements achieve designated targets. </p>
<p><strong>[4.1] The Standard Apdex Formula</strong></p>
<p>The Apdex index is calculated as follows. Given:</p>
<ul>
<strong>Measurement data</strong> that meets the requirements of section [3.1]</p>
<p><strong>A report group</strong> comprising measurement samples, defined as specified in sections [3.2] and [3.3]</p>
<p><strong>Three performance zones</strong> (Satisfied, Tolerating, Frustrated), defined as specified in sections [2.5], [2.5.1], [2.5.2], and [3.4]</p>
<p><strong>An allocation process</strong> that assigns each sample to a performance zone, and counts all samples, so that:</p>
<p><strong>Total_Samples</strong> is the number of all samples in the report group</p>
<p><strong>Satisfied_Count</strong> is the number of report group samples in the Satisfied Zone</p>
<p><strong>Tolerating_Count</strong> is the number of report group samples in the Tolerating Zone
</ul>
<p>Then the Apdex index for the report group is:</p>
<ul>
<img src="http://apdex.org/blog/wp-content/uploads/2010/08/Apdex-Formula.JPG" alt="Apdex Formula" title="Apdex Formula" width="380" height="75" class="aligncenter size-full wp-image-1788" />
</ul>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
Note that measurements in the frustrated zone are counted in the number of total user samples in the denominator.  To achieve the optimal Apdex value of 1.00, all users must experience satisfactory performance.  If some users see tolerating or frustrating performance, then the index rapidly dips below 1.00.  For example, if 80% of users are satisfied and 10% are tolerating, while the remaining 10% are frustrated, the index is 0.85.</p>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4">
<strong>[4.1.1] The Standard Formula in Action</strong></p>
<p>Note that measurements in the Frustrated zone are counted in Total_Samples, the denominator of the formula, but do not contribute to the numerator.  </p>
<p>Another way to describe the Apdex index is as the weighted proportion of satisfactory samples in the report group. Samples in the Satisfied Zone have weights of 1, those in the Tolerating Zone have weights of &frac12;, and those in the Frustrated Zone have weights of 0. </p>
<div class="box">
[ <em>TBD:</em> ] Therefore to achieve the optimal Apdex value of 1.00, all samples must represent the Satisfaction Level of &#8216;Satisfied&#8217;.  If any samples reflect Tolerating or Frustrated performance, the index drops below 1.00.  For example, if 80% of samples are Satisfied and 10% are Tolerating, while the remaining 10% are Frustrated, the index is 0.85.
</div>
<p><strong>[4.1.2] Alternative Scoring in the Tolerating Zone</strong></p>
<p>If the characteristics of a particular measurement and reporting domain justify using graduated weights within the Tolerating zone, an Addendum may substitute an alternative scoring function for the factor <em>Tolerating_Count/2</em> in the standard formula. Any alternative scoring function (such as a sliding scale) must have the property that sample values (or value ranges) closest to the satisfied zone receive the greatest weight, in accordance with the index objectives (see [2.1] item 6).<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;4.2 Dealing with Exceptions</strong></p>
<p>User aborts are factored into the above equation.  A user abort occurs when a user enters a new inquiry before the system responds with the original inquiry.  A user-generated abort stops the timing of the Task.  Therefore, user aborts can fall into any of the satisfied, tolerating, frustrated zones.  If a tool can detect a clear server-generated abort, then it is handled differently.  Server aborts (e.g., TCP closes within a Task) are counted as a frustrated sample regardless of the Task time measurement.</p>
<p>Some tools may have the optional capability to interpret the application to a greater level of detail than the minimal Task boundary.  For example, they may be able to detect user relevant information at the layer of the application logic. If the tool can detect Task errors, then these application errors (e.g. Web page 404 replies) are counted as frustrated samples.</p>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4">
<strong>[4.2] Dealing with Exceptions</strong> </p>
<p>When a Report Group contains samples marked as errors or exceptions, tools performing the Apdex calculation should classify those measurements as follows:</p>
<p><strong>User Error:</strong> Exceptions caused by user actions may be classified as Satisfied, Tolerating, or Frustrated in the same way as any other measurement, if the necessary field(s) are present in the sample. If the field(s) required to perform classification are absent, user-generated exceptions should be classified as Satisfied.</p>
<p><strong>Warning:</strong> Exceptions indicating abnormal system or process behavior may be classified as Tolerating if the system or process returned immediately to normal operation without requiring abnormal intervention.</p>
<p><strong>Failure:</strong> Exceptions indicating a system or process failure that is experienced by the user should be classified as Frustrated.</p>
<p><strong>Measurement Error:</strong> Exceptions indicating measurement errors should be discarded from the Report Group.</p>
<p><strong>Unknown:</strong> Exceptions not amenable to classification should be discarded from the Report Group. However, tool creators must attempt to minimize the number of error types assigned to this category.</p>
<p>Because all exceptions are specific to a particular measurement domain, an addendum may specify domain-specific refinements to these general guidelines.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Public Comment</strong></p>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=2059</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apdex-G Section [3] Calculation Inputs</title>
		<link>http://apdex.org/blog/?p=2054</link>
		<comments>http://apdex.org/blog/?p=2054#comments</comments>
		<pubDate>Wed, 18 Aug 2010 10:16:35 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=2054</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=2054&amp;t=Apdex-G+Section+%5B3%5D+Calculation+Inputs&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #17. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>I have been working systematically through the process of generalizing the current Apdex spec. Along the way, I have been skipping over parts of the current spec to work on the paragraphs that presented challenges. I am now going back to fill in those less contentious paragraphs. Over the next week, I plan to post updated drafts of each section of the Apdex-G spec. The first two are <a href="http://apdex.org/blog/?p=1987">Section [1] Introduction</a> and <a href="http://apdex.org/blog/?p=2020">Section [2] Index Overview</a>; today I continue with Section [3] Calculation Inputs.</p>
<p><span id="more-2054"></span><br />
<strong>Summary</strong> </p>
<p>In this section of Apdex-G, I have generalized and reorganized the material in Apdex section &sect;3 as follows:</p>
<ul>
<li>The introduction repeats the current spec, adding a note about the possibility of a domain specific addendum.</li>
<li>Section [3.1] corresponds to Apdex section &sect;3.1. I have generalized the language, and removed the discussion of Web response time measurements, which will be reviewed later for inclusion in Apdex-R.</li>
<li>Section [3.2] corresponds to Apdex section &sect;3.2. I have rewritten this section to improve the flow, added the <em>Measurement Subtype</em> filter (to accommodate the distinction between Task and Task Chain in the current spec, and later in Apdex-R, for example).</li>
<li>Section [3.3] corresponds to Apdex section &sect;3.4. I reversed the order of sections &sect;3.3 and &sect;3.4, to improve the flow of ideas. For the same reason, I moved content about report group size in &sect;3.2 to [3.3].</li>
<li>Section [3.4] corresponds to Apdex section &sect;3.3, generalizing response time terminology, and adding a paragraph about adjusting thresholds to compensate for differences between tools.</li>
</ul>
<p>Because this material includes some drafts posted previously, some of which I have edited, everything in this series of posts is considered the second draft of Apdex-G. After the second draft is posted, I will begin work on Apdex-R, the addendum addressing measurements of response times. Apdex-R will cover all the domain-specific content of the current spec that has been excised from Apdex-G. </p>
<div class="specBox">
<div class="Apdex leftCol">
<h3>Apdex, current spec:</h3>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part3" style="font-size: 85%;">
<h3>Apdex-G, second draft:</h3>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;3. Apdex Calculation Inputs</strong></p>
<p>A wide variety of tools and methods may be used to gather the necessary information for an Apdex calculation and report.  The following are the minimal requirements for such a tool.</p>
<p>Each tool vendor may add features and capabilities above these minimal requirements.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part3">
<strong>[3] Apdex Calculation Inputs</strong></p>
<p>Apdex does not favor any tool or method; a wide variety of tools and methods may be used to gather the necessary information for an Apdex calculation and report. </p>
<p>This section specifies the minimal requirements governing input to any Apdex calculation. A tool creator may add features and capabilities above these minimal requirements. An addendum for a particular measurement type may also specify domain-specific rules governing the methods and tools used to obtain measurements of that type.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;3.1 Response Time Measurements</strong></p>
<p>Tool vendors must identify which applications their tool is capable of interpreting at the Task level.  </p>
<p>[<em>Examples of Web page response-time measurement</em>]</p>
<p>Implementations of Apdex-based reporting may vary, provided that individual measurements are assigned to a performance zone that is factored into an Apdex calculation and reported as further defined in this specification.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part3">
<strong>[3.1] Measurements</strong><br />
Tool creators must identify the measurement types their tool is capable of analyzing. When a tool analyzes a measurement type that is covered by an addendum, the tool creator must apply the rules specified in that addendum, in addition to those specified in this document.</p>
<p>Implementations of Apdex-based reporting may vary, provided that individual measurements are assigned to a performance zone that is factored into an Apdex calculation and reported as further defined in this specification.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;3.2 Defining a Report Group</strong></p>
<p>The report group is a specified set of individual measurement samples (of Task Time or Task Chain Time) that will form the foundation for an Apdex calculation.  A report group’s set of measurement samples may be unique or may have overlapping measurement samples with other report groups.  Report groups can be defined in many ways, but the following are required:</p>
<dl>
<dt>Type</dt>
<dd>Task or Task Chain; measurements of Task Time and Task Chain Time may not be combined in one report group.</dd>
<dt>Application</dt>
<dd>An application as selected by the technician.  At a minimum, this is the application that the tool can interpret to the Task level (see above).</dd>
<dt>User Group</dt>
<dd>The technician must be able to define various user groups of an application (e.g., geography, organization).</dd>
<dt>Time Period</dt>
<dd>The technician must be able to define time of day periods for which the index will be calculated.</dd>
</dl>
<p>The report group is one of the fundamental controls available to a technician.  The report group may be defined as broadly as all of the samples for an application, or as narrowly as a single sample.  Single samples are useful for diagnostic purposes.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part3">
<strong>[3.2] Report Groups</strong></p>
<p>The report group is a named set of measurement samples that will be input to an Apdex calculation. Tools must provide a way for the technician to specify a report group.  </p>
<p> Report groups can be defined in many ways, but tools must allow the technician to specify values for the following filters: </p>
<dl class="glossary">
<dt>Measurement Type</dt>
<dd>Required if the tool analyzes measurements of more than one type. Measurements of different types may not be included in the same report group.</dd>
<dt>Measurement Subtype</dt>
<dd>Required if the measurement type is covered by an addendum that defines distinct subtypes, and the tool analyzes measurements of more than one subtype. Measurements of different subtypes may not be included in the same report group.</dd>
<dt>Application(s) or Process(es)</dt>
<dd>Required if the tool analyzes measurements of more than one application or process. Measurements of more than one application or process may be included in the same report group if they are subject to the same thresholds.</dd>
<dt>Usage Segment(s)</dt>
<dd>Required if the tool analyzes measurements of more than one usage segment. A usage segment is any identifiable subset of the measurements of an application or process, such as a demographic segment, a geographic segment, an organizational segment, etc. Measurements of different usage segments may be included in the same report group if they are subject to the same thresholds. </dd>
<dt>Time Period(s)</dt>
<dd>Required. The technician must be able to define the time period(s) for which the index will be calculated.</dd>
</dl>
<p>Filters can be applied alone and in combination with others, to select a report group from a larger database of measurement data. An addendum governing a particular measurement type may define additional filters to be provided for measurement of that type.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;3.4 Number of Measurement Samples</strong></p>
<p>There must be at least one sample in the report group in order to calculate an Apdex value.  Single sample Apdex results are permitted but discouraged.  The primary reason to have a small sample size is to cover low traffic periods or provide data for diagnostic reasons.  These are not considered good indicators of application performance.</p>
<p>The minimum sample size for normal reporting of the index is 100 samples within a report group. Special handling is required for smaller report groups; Section 5.2 specifies the method for reporting an Apdex result for a report group of fewer than 100 samples.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part3">
<strong>[3.3] Report Group Size</strong></p>
<p>A set of measurement samples comprising a  report group may be unique or may overlap with the measurement samples in other report groups.  A report group may be defined as broadly as all of the samples for an application, or as narrowly as a single sample.  </p>
<p>For normal reporting, the default minimum sample count for a report group is 100 samples; addenda may specify domain-specific minima. Any report group containing fewer than the specified minimum sample count is considered a <em>small group</em>.</p>
<p>Small groups may not be reliable as performance indicators, but may occur when reporting low traffic periods, or when reporting diagnostic measurements. Special handling is required for reporting small groups; this is specified in section [5.2]. </p>
<p> A report group must contain at least one sample for an Apdex value to be calculated.  Single samples report groups may be useful for diagnostic purposes. Single sample Apdex results are also permitted when reporting low traffic periods, but discouraged.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;3.3 Threshold Settings</strong></p>
<p>The technician (operator of the tool) must be able to set the target threshold, T (satisfied-tolerating boundary) and no other Apdex threshold for each application.  This threshold is a positive decimal value in seconds, having no more than two significant digits of granularity.</p>
<p>This means that the following types of values are permitted:</p>
<dl>
<dt>0&lt;T&lt;10</dt>
<dd>Greater than 0 seconds and below 10 seconds can be defined to a tenth of a second.<br />Examples: 0.5, 1.2, 5.8, 9.9</dd>
<dt>10&lt;T&lt;100</dt>
<dd>Equal to or greater than 10 seconds but below 100 seconds can be defined to one second.<br />Examples: 10, 19, 56, 85, 99</dd>
<dt>100<T&lt;1,000</dt>
<dd>Equal to or greater than 100 seconds but below 1000 seconds can be defined to 10 seconds.<br />Examples: 100, 190, 560, 850, 990</dd>
<dt>T&gt;1,000</dt>
<dd>Values equal to or greater than 1,000 seconds follow the same two significant digits restriction.</dd>
</dl>
<p>The threshold must be consistent for all samples of a report group.</p>
<p>All tools will ship with a default setting of T that will be selected by the tool vendor.  The default enables the tool to begin supplying information with minimal set-up by the technician.  It is recommended that the default target threshold value, T, be set to 4 seconds.  Technicians have the ability to change this default setting as defined above.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part3">
<strong>[3.4] Thresholds</strong></p>
<p>Tools must provide a way for the technician to specify the thresholds that define the boundaries of performance intervals to be used when calculating an Apdex index for a report group. A single set of thresholds is applied to all samples in a report group.</p>
<p>Thresholds are decimal values having no more than two significant digits of precision. This means that the following types of values are permitted, for any measurement unit, where a &#8216;unit&#8217; refers to the dimension of the measurement type, such as seconds, meters, kilograms:</p>
<dl class="glossary">
<dt>0&lt;T&lt;10</dt>
<dd>Values greater than 0 units and below 10 units can be defined to a tenth of a unit.<br />Examples: 0.5, 1.2, 5.8, 9.9</dd>
<dt>10&lt;T&lt;100</dt>
<dd>Values equal to or greater than 10 units but below 100 units can be defined to one unit.<br />Examples: 10, 19, 56, 85, 99</dd>
<dt>100<T&lt;1,000</dt>
<dd>Values equal to or greater than 100 units but below 1000 units can be defined to 10 units.<br />Examples: 100, 190, 560, 850, 990</dd>
<dt>T&gt;1,000</dt>
<dd>Values equal to or greater than 1,000 units follow the same two significant digits restriction.</dd>
</dl>
<p>A tool that supports a specific measurement type will ship with default threshold values selected by the tool creator, which technicians can change. These defaults enable the tool to begin supplying information with minimal set-up by the technician. An addendum may specify additional rules governing default threshold values, relationships among threshold values, and the required precision of threshold values, as appropriate for a specific measurement type. </p>
<p>A goal of Apdex is to operate so that different Apdex tools will report similar index values for user experiences having comparable levels of quality (see [2.1] item 8). However, tools use different measurement methods, and measure from different vantage points within a system. As a result, data purporting to measure the same quantity can have different values. If such differences are systematic, the technician can adjust the Apdex thresholds used with measurements from different tools so that the Apdex calculation produces comparable index values.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Public Comment</strong></p>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=2054</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apdex-G Section [2] Index Overview</title>
		<link>http://apdex.org/blog/?p=2020</link>
		<comments>http://apdex.org/blog/?p=2020#comments</comments>
		<pubDate>Tue, 17 Aug 2010 04:01:47 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=2020</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=2020&amp;t=Apdex-G+Section+%5B2%5D+Index+Overview&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #16. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>I have been working systematically through the process of generalizing the current Apdex spec. Along the way, I have been skipping over parts of the current spec to work on the paragraphs that presented challenges. I am now going back to fill in those less contentious paragraphs. Over the next week, I plan to post updated drafts of each section of the Apdex-G spec. I began yesterday, with <a href="http://apdex.org/blog/?p=1987">Section [1] Introduction</a>; today I continue with Section [2] Index Overview.</p>
<p><span id="more-2020"></span><br />
<strong>Summary</strong> </p>
<p>In this section of Apdex-G, I have generalized and reorganized the material in Apdex section &sect;2 as follows:</p>
<ul>
<li>The introduction contains a brief description of the reasons for reducing a set of measurements to an index.</li>
<li>Section [2.1] corresponds to Apdex section &sect;2.1. I have generalized the language, and made the last two goals (comparability among tools and applications) more realistic. This section was originally discussed in <a href="http://apdex.org/blog/?p=221">Core Apdex Qualities</a>.</li>
<li>Section [2.2] corresponds to Apdex section &sect;2.2. I have added definitions for some terms used but not defined in the current Apdex spec, and introduced <em>Measurement Domain</em> and <em>Tool Creator</em>.</li>
<li>Section [2.3] replaces all the material currently found in Apdex section &sect;2.3, which will be reviewed later for inclusion in Apdex-R.</li>
<li>Section [2.4] replaces all the material currently found in Apdex section &sect;2.4, which will be reviewed later for inclusion in Apdex-R.</li>
<li>Section [2.5] presents the most significant changes in section [2]. The difference is illustrated in Figure 1 below. First, section [2.5] defines three <em>Satisfaction Levels</em>. Next, section [2.5.1] defines <em>Thresholds</em> as the boundaries of <em>Performance Intervals</em>, which are ranges of values within the measurement domain that share a common satisfaction level. Finally, section [2.5.2] defines <em>Performance Zones</em> as a collection (union) of one or more performance intervals. The arguments for these proposals were presented in <a href="http://apdex.org/blog/?p=921">Configurable Zone Alignment in Apdex-G</a> and <a href="http://apdex.org/blog/?p=1390">Generalizing the Apdex Thresholds</a>. The extensive discussion of threshold relationships at the end of section &sect;2.5 will be reviewed later for inclusion in Apdex-R.</li>
<li>Section [2.6] corresponds to Apdex section &sect;2.6.</li>
</ul>
<p><img src="http://apdex.org/blog/wp-content/uploads/2010/07/Conceptual-Models.JPG" alt="Conceptual Models of Apdex and Apdex-G" title="Conceptual Models of Apdex and Apdex-G" width="910" height="350" class="aligncenter size-full wp-image-1542" /></p>
<p><em>Figure 1. Conceptual Models of Apdex and Apdex-G</em></p>
<p>Because this material includes some drafts posted previously, some of which I have edited, everything in this series of posts is considered the second draft of Apdex-G. After the second draft is posted, I will begin work on Apdex-R, the addendum addressing measurements of response times. Apdex-R will cover all the domain-specific content of the current spec that has been excised from Apdex-G. </p>
<div class="specBox">
<div class="Apdex leftCol">
<h3>Apdex, current spec:</h3>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part2" style="font-size: 85%;">
<h3>Apdex-G, second draft:</h3>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;2. Index Overview</strong><br />
There are many aspects of performance relating to the delivery and management of information technology.  One critical performance factor is the responsiveness of the human-computer interface from the perspective of the human user.  This responsiveness is a core quality of a transactional application.  The speed by which an application reacts to the needs of the user directly affects the user’s productivity and satisfaction with the application experience.  It is a critical metric of application performance that has direct implications for business revenue, customer retention, and user productivity.</p>
<p>Therefore, measuring and tracking application response time is important to an enterprise that values the opinion and productivity of its users’ experiences.  However, measuring is a necessary but insufficient step in proper management of the user experience.  Meaningful reporting of the measurements is equally important.  The Application Performance Index (“Apdex”) defines a methodology for reporting the responsiveness of human-application transactions, in terms of its effect on user productivity.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2] Index Overview</strong></p>
<p>Performance is a critical metric of application or process quality that has direct implications for business revenue, customer retention, and user productivity.  Users of any application or process are directly affected by its performance. An enterprise that values the opinion of its customers, or the productivity of its internal users, must measure and track the performance of its applications and processes. </p>
<p>Collecting measurements is only one step in the proper management of user experience. Managers must set quality objectives, and track whether those objectives are being met. Such tracking requires that large numbers of individual performance measurements be summarized for easy review. To address this requirement, the Apdex standard defines a method for reporting the degree to which a set of performance measurements meet designated targets.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;2.1 Index Objectives</strong></p>
<p>The fundamental objective of Apdex is to simplify the reporting of application response time measurements by making it possible to represent any such measurement using a common metric. Response time data can describe a wide range of targets, and its magnitude can vary widely. The index is designed to normalize for this variability of time (wide range of seconds) and measurement requirements (many distinct targets), producing a single metric that always has the same meaning.  The goals of this metric are:</p>
<ul>
<li>To provide a useful summary of an application’s responsiveness</li>
<li>To make it easy to understand the significance of values produced by the index</li>
<li>To work for all transactional applications</li>
<li>To operate within a fixed rage (0-to1) and be unit-neutral</li>
<li>To indicate application performance directly so that 0 is the worst performance and 1 is the best performance</li>
<li>To operate in such a way that specific values of the index (e.g., 0.5) report the same user experience across any application, user group, or enterprise</li>
<li>To operate in such a way that equivalent user experiences observed by different measurement and reporting tools will report the same value</li>
</ul>
<p>The purpose of this document is to provide a standard by which many vendors of measurement and reporting tools can achieve these seven objectives.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.1] Index Objectives</strong></p>
<p>The fundamental objective of Apdex is to simplify the reporting of any application or process measurements by making it possible to represent a set of such measurement using a common metric. Measurements can describe many applications or processes, and their magnitudes can vary widely. The Apdex metric normalizes this variability, producing values that lie within a fixed range, for all measurement input. </p>
<p>The goals of the Apdex metric are:</p>
<ol>
<li>To be easy to understand</li>
<li>To be a summary of the quality or performance of an application or process, based on a set of measurements</li>
<li>To be a performance indicator for any application or process that is subject to performance targets</li>
<li>To be dimensionless, irrespective of the measurement domain being reported</li>
<li>To lie within a fixed range of values, irrespective of the measurement data being summarized</li>
<li>To operate so that index values of 1 and 0 indicate the best and worst performance respectively</li>
<li>To operate so that a particular value of the index indicates a comparable level of quality for different applications or process</li>
<li>To operate so that different Apdex tools will report similar index values for user experiences having comparable levels of quality</li>
</ol>
<p>This document defines a standard by which creators of measurement and reporting tools can achieve these objectives.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;2.2 Terms in This Document</strong></p>
<p>This document makes a clear distinction between the user of an application that is being measured and the user of the tool that is performing the measurement and generating index values.  The latter is called the technician.  Other unique terms are defined in the glossary at the end of this document.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.2] Terminology</strong></p>
<p>The following terms are defined:</p>
<dl class="glossary">
<dt>Measurement Domain</dt>
<dd>The set of all possible values from which the input to an Apdex calculation is drawn. Unless limited by a domain-specific Addendum, this will be the real number domain (-&infin;, &infin;)</dd>
<div class="clear"></div>
<dt>Apdex Tool</dt>
<dd>A system that calculates Apdex values, or reports Apdex values, or does both. The calculation and reporting functions may be separated between an Apdex analysis tool and an Apdex reporting tool. Apdex tools may employ software or hardware components, or both. </dd>
<div class="clear"></div>
<dt>Tool Creator</dt>
<dd>The developer(s) of an Apdex tool. In practice, a tool creator may refer to a tool vendor, an open-source community, or an individual developer. </dd>
<div class="clear"></div>
<dt>Technician</dt>
<dd>The person who controls an Apdex tool, or who reads and interprets Apdex values.  Typically, a technician is an enterprise staff member responsible for application or process quality.</dd>
<div class="clear"></div>
<dt>User or Customer</dt>
<dd>A person served by an application or process that is the subject of an Apdex index.</dd>
<div class="clear"></div>
</dl>
<p>Other Apdex terms are defined in context within this document and its addenda. Section [7] Glossary collects together all Apdex terminology.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<p><strong>&sect;2.3 User-Application Interaction Model</strong></p>
<p>[ <em>Domain specific content about users’ perceptions of application responsiveness</em> ]<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.3] Measurement Types</strong></p>
<p>This document specifies domain-independent rules that apply to all measurement types. An addendum may define a class of measurements within a specific measurement domain, and specify supplemental rules that apply only to that class of measurements. The addendum type (see [1.1]) may also be referred to as the <em>Measurement Type</em> of that class of measurements.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;2.4 Processes, Tasks and Task Chains</strong></p>
<p>[ <em>Domain specific content about components of application responsiveness</em> ]<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.4] Measurement Subtypes</strong></p>
<p>This document specifies domain-independent rules that apply to all measurement types. An addendum that addresses a particular measurement type may also identify subtypes of that measurement type, and specify supplemental rules that apply to each of those subtypes.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="Apdex leftCol">
<strong>&sect;2.5 How Users Interpret Application Response Times.</strong></p>
<p>Users have a finite set of reactions or views by which they characterize application response time.  Each such group of time durations is called a performance zone.  Performance zones are defined by two thresholds – times where the zone begins and ends.  Apdex defines three such performance zones:</p>
<dl>
<dt>Satisfied</dt>
<dd>Response times that are fast enough to satisfy the user, who is therefore able to concentrate fully on the work at hand, with minimal negative impact on his/her thought process.</dd>
<dt>Tolerating</dt>
<dd>Responses in the tolerating zone are longer than those of the satisfied zone, exceeding the threshold at which the user notices how long it takes to interact with the system, and potentially impairing the user’s productivity.  Application responses in this zone are less than ideal but don’t by themselves threaten the usability of the application.</dd>
<dt>Frustrated</dt>
<dd>As response times increase, at some threshold the user becomes unhappy with slow performance entering the frustrated zone.  With response times in the frustrated zone, a casual user is likely to abandon a course of action and a production user is likely to cancel a Task.</dd>
</dl>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.5] Satisfaction Levels</strong></p>
<p>Apdex works by assigning a satisfaction level to each measurement, as defined below:</p>
<dl class="glossary">
<dt>Satisfaction Level</dt>
<dd>One of three categories (<strong>Satisfied</strong>, <strong>Tolerating</strong>, or <strong>Frustrated</strong>) that reflects how an organization using Apdex evaluates the performance of the application or process being reported. For the Apdex method to be applicable to a <strong>Measurement Domain</strong>, it must be possible to assign a Satisfaction Level to any value within the Measurement Domain.</dd>
<div class="clear"></div>
<dt>Quality Level</dt>
<dd>An alternative term for <strong>Satisfaction Level</strong>.</dd>
<div class="clear"></div>
<dt>Satisfied</dt>
<dd>A <strong>Satisfaction Level</strong> that reflects the desired level of performance for the application or process being reported. Measurements classified as Satisfied usually indicate that the application or process being measured is meeting its targets and needs little or no attention.</dd>
<div class="clear"></div>
<dt>Tolerating</dt>
<dd>A <strong>Satisfaction Level</strong> that reflects a level of performance below the desired level, but which can be tolerated. Measurements classified as Tolerating may signal the need for caution or greater attention to the application or process being measured.</dd>
<div class="clear"></div>
<dt>Frustrated</dt>
<dd>A <strong>Satisfaction Level</strong> that reflects an unsatisfactory level of performance for the application or process being reported. Measurements classified as Frustrated may be associated with undesirable outcomes, and lead to remedial or abnormal actions.</p>
<p>[<em>TBD, include these examples of abnormal actions?</em> For example, a customer may abandon an unsatisfactory transaction, an executive may assign more resources to a critical business process that is not meeting its assigned targets, or a supervisor may halt a manufacturing process whose product is outside the specified tolerance.] </dd>
<div class="clear"></div>
</dl>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
[ <em>Section &sect;2.5 (continued):</em> ]<br />
The three zones are defined by two thresholds: T and F, in seconds, as follows.</p>
<ul>
<li>Satisfied Zone = zero to T.</li>
<li>Tolerating Zone = Greater than T to F.</li>
<li>Frustrated Zone = Greater than F</li>
</ul>
<p>The value of F is four times the value T.  For example, if users perceive response time as tolerable beginning at 4 seconds then they will be frustrated at greater than 16 seconds.  The research that supports this model is described in Reference 1.  Further background information is available in References 2-4.</p>
<p>Most research into application response times has focused on user attitudes and behaviors when exposed to differing Task times. Since Processes and Task Chains are simply sequences of Tasks, this Apdex specification assumes that applicable research conclusions obtained for Tasks can be generalized to apply to Task Chains also. Therefore Apdex considers that the above discussion of performance zones and thresholds applies either to a single Task or to a Task Chain (a sequence of related Tasks).</p>
<p>Because the set of Task times comprising a Task Chain time are likely either to be independent (because environmental conditions affecting one Task have no effect on other tasks in a chain), or to be positively correlated (because Tasks share a common system environment) it is reasonable to generalize the conclusions obtained for single Task times to Task Chain times. Such a generalization would not be valid if the Task times comprising a Task Chain tended to be negatively correlated, because in that case (for example) user frustration with one task could be offset by obtaining rapid response time from another task in the chain. Users accustomed to such offsetting behavior might well expect smaller levels of variance in total Task Chain times, and thus develop thresholds for Task Chains that were lower than the sum of the individual Task thresholds, and which did not adhere to the rule that F is four times T. In this situation, the proposed Apdex mathematics would still work, but the resulting Apdex score might well overestimate the users’ perceived quality of a Task Chain. At present, Apdex considers that such negatively correlated Task times are unlikely to occur in practice.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.5.1] Thresholds and Performance Intervals</strong></p>
<p> A performance interval is a range of values within the measurement domain that share a common satisfaction level. Thresholds define the boundaries of performance intervals:</p>
<dl class="glossary">
<dt>Threshold</dt>
<dd>One of N distinct values within the <strong>Measurement Domain</strong>, which partition the Measurement Domain into N+1 contiguous non-empty <strong>Performance Intervals</strong> in such a way that measurement values within a Performance Interval have identical <strong>Satisfaction Levels</strong>. Each Threshold lies within one and only one Performance Interval. Unless otherwise specified by a domain-specific <strong>Addendum</strong>, a Threshold lies within the Performance Interval for which it acts as the upper bound.</dd>
<div class="clear"></div>
<dt>Threshold Name</dt>
<dd>Thresholds can have user-assigned names. Tools may also assign default generic names (T1, T2, &#8230; or T<sub>1</sub>, T<sub>2</sub>, &#8230;) to thresholds based on their order, from low to high. An <strong>Addendum</strong> may specify domain-specific names and orderings.</dd>
<div class="clear"></div>
<dt>Performance Interval</dt>
<dd>A partition of the <strong>Measurement Domain</strong> defined by <strong>Thresholds</strong>. All measurement values within a Performance Interval have the same <strong>Satisfaction Level</strong>, which is therefore considered to be an attribute of the Performance Interval. There must be at least three Performance Intervals, one for each of the three Satisfaction Levels. When the context is unambiguous, the term &#8216;Performance Interval&#8217; may be shortened to  <strong>Interval</strong>.</em></dd>
<div class="clear"></div>
<dt>Performance Interval Name</dt>
<dd>Performance Intervals can have user-assigned names. Tools may also assign default generic names (such as PI1, PI2, &#8230; or PI<sub>1</sub>, PI<sub>2</sub>, &#8230;) or names signifying the <strong>Satisfaction Level</strong> of the Interval (such as PIS, PIT1, PIT2, PIF1, &#8230; or PI<sub>s</sub>, PI<sub>t1</sub>,  PI<sub>t2</sub>, PI<sub>f1</sub> &#8230;). Default names should be assigned to Intervals based on their order, from low to high. An <strong>Addendum</strong> may specify domain-specific names and orderings.</dd>
<div class="clear"></div>
</dl>
<p><strong>[2.5.2] Performance Zones </strong></p>
<p>Apdex defines three <strong>Performance Zones</strong>, one for each satisfaction level. The performance zone is the union of all Performance Intervals having that satisfaction level:</p>
<dl class="glossary">
<dt>Satisfied Zone</dt>
<dd>The union of all <strong>Performance Intervals</strong> that have the <strong>Satisfaction Level</strong> of &#8216;Satisfied&#8217;. </dd>
<div class="clear"></div>
<dt>Tolerating Zone</dt>
<dd>The union of all <strong>Performance Intervals</strong> that have the <strong>Satisfaction Level</strong> of &#8216;Tolerating&#8217;. </dd>
<div class="clear"></div>
<dt>Frustrated Zone</dt>
<dd>The union of all <strong>Performance Intervals</strong> that have the <strong>Satisfaction Level</strong> of &#8216;Frustrated&#8217;. </dd>
<div class="clear"></div>
</dl>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;2.6 How the Index Works</strong></p>
<p>The Apdex method converts response time (seconds) into an index (unitless) by counting the number of samples in each performance zone relative to all samples.  The result is a ratio that is therefore within the range of 0-to-1.  An index of zero means that all of the samples were within the frustrated zone. An index of 1 means that all of the samples were within the satisfied zone.  An index that is greater than zero and less than one means that the samples were from a mix of the performance zones. The higher the index value, the more satisfied the user population was for that group of application performance response samples.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<strong>[2.6] How the Index Works</strong></p>
<p>The Apdex method converts measurements into an index by counting the samples in each performance zone and computing a weighted proportion of satisfied samples. Satisfied samples carry more weight than tolerating samples, which in turn carry more weight than frustrated samples.</p>
<p>The index is a ratio that always lies in the range 0 to 1.  An index of zero means that all of the samples were within the frustrated zone. An index of 1 means that all of the samples were within the satisfied zone.  An index that is greater than zero and less than one means that the samples were from a mix of the performance zones. The higher the index value, the higher the overall satisfaction level of the measurements.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Open Issues and Public Review</strong></p>
<p>I am undecided on some text formatting questions. As a result, this draft deliberately illustrates different possibilities, rather than adopting single a consistent style throughout:</p>
<ul>
<li>I am unsure whether to capitalize and/or bold Apdex terminology (a) when it is first introduced, and (b) when it is referenced later. In section [2.5] above I experimented with using bold face for terms of art that are referenced within definitions.</li>
<li>I am considering using glossary-style definitions when introducing terms within the body of the document. This approach, illustrated in [2.2] and [2.5] above, allows definitions in the glossary to be made identical to their counterparts in the earlier sections of the spec.</li>
</ul>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.experimenting </p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=2020</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apdex-G Section [1] Introduction</title>
		<link>http://apdex.org/blog/?p=1987</link>
		<comments>http://apdex.org/blog/?p=1987#comments</comments>
		<pubDate>Mon, 16 Aug 2010 23:07:46 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=1987</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=1987&amp;t=Apdex-G+Section+%5B1%5D+Introduction&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #15. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>I have been working systematically through the process of generalizing the current Apdex spec. Along the way, I have been skipping over parts of the current spec to work on the paragraphs that presented challenges. I am now ready to go back and fill in those less contentious paragraphs. Over the next week, I plan to post updated drafts of each section of the Apdex-G spec, beginning today with Section [1] Introduction. </p>
<p>Because this material includes some drafts posted previously, some of which I have edited, everything in this series of posts is considered the second draft of Apdex-G. After the second draft is posted, I will begin work on Apdex-R, the addendum addressing measurements of response times. Apdex-R will cover all the domain-specific content of the current spec that has been excised from Apdex-G.<br />
<span id="more-1987"></span><br />
<strong>Summary</strong> </p>
<p>In this section of Apdex-G, I have reorganized the material in Apdex section &sect;1 as follows:</p>
<ul>
<li>The introduction contains a brief generic description of Apdex, originally discussed in <a href="http://apdex.org/blog/?p=1009">Generalizing the Apdex Language</a>.</li>
<li>Section [1.1] is largely new in Apdex-G. It introduces the separation of Apdex specifications into generic and domain-specific documents. This was originally discussed in <a href="http://apdex.org/blog/?p=855">Which Apdex Features Can Be Generalized?</a></li>
<li>Section [1.2] corresponds to Apdex section &sect;1.1, apart from material that has been moved to [1.3]</li>
<li>Section [1.3] summarizes Alliance goals and points to the Alliance website for more details. It replaces material currently found in Apdex sections &sect;1.1 and &sect;1.2.</li>
</ul>
<p>Parts of the current spec, shown on the left below, have been rearranged to show correspondences with the Apdex-G proposal:</p>
<div class="specBox">
<div class="Apdex leftCol">
<h3>Apdex, current spec:</h3>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part1" style="font-size: 85%;">
<h3>Apdex-G, second draft:</h3>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;1. Introduction</strong></p>
<p>The Apdex Alliance is a group of companies collaborating to promote an application performance metric called Application Performance Index (Apdex).  Apdex is a numerical measure of user satisfaction with the performance of enterprise applications, intended to reflect the effectiveness of IT investments in contributing to business objectives. The Apdex metric may be used by any organization seeking insight into their IT investments.  This specification defines Apdex, which is a method for calculating and reporting a metric of transactional application response time in the form of an index with a value of 0 to 1.</p>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part1">
<strong>[1] Introduction</strong></p>
<p>Apdex (Application Performance Index) is a metric that reflects the degree to which a set of performance measurements achieves designated targets. </p>
<p>Originally designed as an index of user satisfaction with the responsiveness of enterprise applications, Apdex can also be used to report on many other quality measures, such as the degree to which a product conforms to technical standards, or the degree to which a service achieves business objectives. </p>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
[<em> No corresponding material </em>]<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part1">
<strong>[1.1] Apdex Specification Documents</strong></p>
<p>This document, Apdex-G, specifies rules for calculating and reporting the Apdex index. </p>
<p>The suffix &#8216;G&#8217; denotes <em>generic</em>, indicating that this document specifies domain-independent rules. A supplemental document, termed an <em>addendum</em>, may contain rules that apply only to applications of Apdex within a specific measurement domain. An addendum is named Apdex-X, where the suffix &#8216;X&#8217; is the Addendum Type, and denotes a specific measurement domain. For example, the addendum Apdex-R contains supplemental rules for applying Apdex to response times.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;1.1 Status of This Document</strong></p>
<p>This specification document is the cornerstone of the Apdex Alliance.  It was developed and ratified by the current Alliance member companies through a consensus process. The voting members of the Apdex Alliance at the time that this document was formally adopted are:</p>
<p><strong>Industry Members</strong><br />
[<em>... list of names ... </em>]</p>
<p><strong>Advisory Board Members</strong><br />
[<em>... list of names ... </em>]</p>
<p><em>This appears at the end of section &sect;1.1 of the current spec:</em></p>
<p>This specification may be updated over time based upon feedback from practical experience with Apdex, or to reflect new insights into application performance and its impact on business.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part1">
<strong>[1.2] Document Status</strong></p>
<p>This document was developed by the Apdex Alliance, a group of companies and individuals collaborating to promote Apdex. It was ratified by &#8230;</p>
<p>[<em> Ratification history/status of Apdex-G will be inserted here </em>].</p>
<p>Apdex specifications may be updated from time to time to reflect feedback based on practical experience with Apdex. Current versions of all Apdex specifications are available from the Alliance web site, www.apdex.org.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<strong>&sect;1.2 Relationship of this Document to Other Documents</strong></p>
<p>The Apdex Alliance plans to develop and maintain additional documents and educational material to help enterprises understand the Apdex metric and put it to productive use within their organizations.  The Apdex Technical Guide will provide detailed information on defining Apdex parameters within an enterprise.  Most recent information about the Alliance and Apdex documents will be made available at the Alliance web site at www.apdex.org.</p>
<p><em>This appears in section &sect;1.1 of the current spec:</em></p>
<p>Members of the Alliance have made a commitment to implement tools or services that adhere to this specification.  The Alliance is also committed to supporting an ongoing process of inquiry into the relationship between application responsiveness and user satisfaction.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part1">
<strong>[1.3] Broader Apdex Goals</strong></p>
<p>The Apdex Alliance has adopted the following statements of intent: </p>
<ul>
<strong>Tools:</strong> Members of the Alliance will implement tools and/or services that adhere to this specification.<br />
<strong>Research:</strong> Members of the Alliance support an ongoing process of inquiry into the relationship between application or process performance and customer satisfaction.<br />
<strong>Education:</strong> Members of the Alliance will develop and maintain additional documents and educational material to help enterprises understand the Apdex metric and put it to productive use within their organizations.<br />
<strong>Documentation:</strong> Members of the Alliance will contribute to an Apdex Technical Guide, which will provide detailed information about implementing Apdex.
</ul>
<p>These statements reflect goals that fall outside the scope of this specification. Currrent information about Apdex Alliance goals and activities can be found at the Alliance web site, www.apdex.org<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Public Review</strong></p>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=1987</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurable Scoring in Apdex-G</title>
		<link>http://apdex.org/blog/?p=922</link>
		<comments>http://apdex.org/blog/?p=922#comments</comments>
		<pubDate>Tue, 10 Aug 2010 04:01:24 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=922</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }</p>

p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
    [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=922&amp;t=Configurable+Scoring+in+Apdex-G&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }</p>
<style type="text/css">
p { clear: left; }
.clear { clear: both; }
.box {
     border: 1px solid #DDDDDD;
     padding: 5px;
     }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #14. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>The current Apdex specification defines an attractively simple scoring rule in which measurements falling within the zones Satisfied, Tolerating, and Frustrated receive scores of 1, &frac12;, and 0 respectively. Enhancements have been proposed that would involve retaining the core approach to scoring while allowing for more than two targets (or thresholds), thereby creating more than three zones, and using finer scoring gradations (but still between 0 and 1) for rating measurements that fall within those zones. </p>
<p>In my previous posts in this series, I have stated that the notion of classifying all measurements into one of <strong>three</strong> performance zones is a core feature of Apdex that should be retained, because three-category classification schemes are common to many measurement and reporting domains. I have also made the case for allowing more thresholds, and thereby defining each performance zone as the union of one or more distinct <em>performance intervals</em>. For the conclusion of that discussion, see <a href="http://apdex.org/blog/?p=1390">Generalizing the Apdex Thresholds</a>. </p>
<p>In this post I will consider whether the Apdex formula itself should be generalized. In particular, should Apdex-G accommodate other scoring rules within the Tolerating Zone--and if so, how?</p>
<p><span id="more-922"></span></p>
<p>I am going to approach that question through the process of reviewing section &sect;4 of the current spec (shown in the left-hand column below), and proposing text for the corresponding paragraphs of Apdex-G (shown on the right). </p>
<p><strong>Describing the Formula</strong></p>
<p>In composing the introductory paragraph and section [4.1] of Apdex-G, in addition to removing references to response times, my goal was to reduce the amount of repitition in the spec. Rather than describing concepts that have already been defined in earlier sections, I decided to simply refer to the appropriate descriptions or definitions. In this case, the relevant paragraphs should all be found in section [3] Apdex Inputs. I have not yet drafted these, but when I do, I will make sure they fit properly with section [4]. </p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;4. Calculating the Index</strong><br />
The Apdex does not entail new measurements – rather it is a new way to represent existing measurements, calculated by counting the measurement samples in each of the performance zones.</p>
<p><strong>&sect;4.1 The Apdex Formula</strong><br />
The Apdex is calculated for each report group using the following equation:</p>
<p>Given,</p>
<ul>
A report group that defines a set of measurement samples, and a target threshold T (seconds) between the satisfied-tolerating zones of performance</ul>
<p>Where,</p>
<ul>
F defines the threshold between the tolerating-frustrated zones of performance,<br />
and<br />
F = 4T
</ul>
<p>Such that,</p>
<ul>
There are counts of response time measurement samples within the above defined performance zones of:<br />
Satisfied_Count = number of satisfied response time samples,<br />
Tolerating_Count = number of tolerating response time samples,<br />
Total_Samples = number of all samples in the report group</ul>
<p>Then,</p>
<ul>
<img src="http://apdex.org/blog/wp-content/uploads/2010/08/Apdex-Formula.JPG" alt="Apdex Formula" title="Apdex Formula" width="380" height="75" class="aligncenter size-full wp-image-1788" />
</ul>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4">
<em>First draft:</em><br />
<strong>[4] Calculating the Index</strong></p>
<p>The Apdex does not entail new measurements, rather it is a new way to represent an existing set of measurements, reflecting the degree to which those measurements achieve designated targets. </p>
<p><strong>[4.1] The Standard Apdex Formula</strong></p>
<p>The Apdex index is calculated as follows. Given:</p>
<ul>
<strong>Measurement data</strong> that meets the requirements of section [3.1]</p>
<p><strong>A report group</strong> comprising measurement samples, defined according to section [3.2]</p>
<p><strong>Three performance zones</strong> (Satisfied, Tolerating, Frustrated), defined according to sections [3.3] and [3.4]</p>
<p><strong>An allocation process</strong> that assigns each sample to a performance zone, and counts all samples, so that:</p>
<p><strong>Total_Samples</strong> is the number of all samples in the report group</p>
<p><strong>Satisfied_Count</strong> is the number of report group samples in the Satisfied Zone</p>
<p><strong>Tolerating_Count</strong> is the number of report group samples in the Tolerating Zone
</ul>
<p>Then the Apdex index for the report group is:</p>
<ul>
<img src="http://apdex.org/blog/wp-content/uploads/2010/08/Apdex-Formula.JPG" alt="Apdex Formula" title="Apdex Formula" width="380" height="75" class="aligncenter size-full wp-image-1788" />
</ul>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Pros and Cons of Configurable Scoring</strong></p>
<div class="quote">
"If the Tolerating zone extends from 4 seconds (satisfactory) to 16 seconds (frustrating), shouldn't measurements having the value 4.01, which are very close to being satisfactory, score higher than measurements of 15.99, which are almost frustrating?"<br />
<span class="quoteSource">-- Is Apdex Sharp Enough? Alan Ackers, Apdex Symposium, 2008 <cite><a href="#ACKE08">ACKE08</a></cite></span>
</div>
<p>One way to describe an Apdex score is as <em>the weighted proportion of satisfactory samples in a report group</em>. Samples in the Satisfied Zone have weights of 1, those in the Frustrated Zone have weights of 0. I see no reason why those weights should change. But today, <strong>all</strong> samples in the Tolerating Zone have weights of &frac12;, regardless of their values. </p>
<p>Alan Ackers and Neil Gunther <cite><a href="#GUNT09">GUNT09</a></cite> discuss further partitioning the Tolerating Zone into sub-zones, to make the Apdex score more responsive to the distribution of tolerating samples. Similar ideas, like scoring measurements within the Tolerating zone on a sliding scale between 1 and 0, have been raised during informal discussions of Apdex at conferences like CMG. All such proposals assign progressively higher weights to samples approaching the Satisfied zone, lower weights approaching the Frustrated Zone. Ackers and others have described some pros and cons of this idea, which I summarize below:</p>
<div class="specBox">
<div class="leftHalf box" >
<strong>Advantages:</strong></p>
<ul>
<li><strong>Less exposure to boundary effects:</strong> This is unlikely to matter when reporting on transaction response times, which tend to vary widely. But when measuring a rapid and well-defined activity like a database lookup, rounding effects can produce clumps of similar or identical samples. In that situation, a small change to an Apdex threshold can move a large group into a different performance zone, significantly altering the Apdex score. A graduated scoring function reduces the impact of this type of boundary effect, because samples close to the Satisfied or Frustrated thresholds already have weights close to 1 or 0 respectively. </li>
</ul>
<p><!--close Apdex--></div>
<div class="rightHalf box" >
<strong>Disadvantages:</strong></p>
<ul>
<li><strong>Harder to sell Apdex politically:</strong> The formula is not as simple conceptually, making it harder to explain and justify to business management as a performance indicator.</li>
</ul>
<ul>
<li><strong>Computational complexity:</strong> The sample sorting process is far more involved, because more buckets and comparisons are needed. The more complex calculation requires additional processor usage and results in slower calculations, which are not good for tools that need to calculate Apdex in real time.</li>
</ul>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p>In practice, for most measurement domains, if the average of all weights used (which must be values between 1 and 0) remains &frac12;, then I think applying any graduated scoring system within the Tolerating zone would be unlikely to make much difference to the result of an Apdex calculation. In which case, the current method of using a constant weight of &frac12; for all samples in the Tolerating Zone is preferable, because it is much simpler to compute.</p>
<p>On the other hand, we do want Apdex-G to be applicable to <em>any</em> measurement domain that uses a three-category classification scheme. And allowing an Addendum the option of specifying a more general rule for scoring samples <em>within the Tolerating Zone</em> does not seem to undermine any fundamental characteristic of Apdex. </p>
<p>Therefore I propose that Apdex-G adopt the current Apdex formula as the <em>standard</em> scoring method, but also allow an Addendum to substitute an alternative scoring function (such as a sliding scale) for the factor <em>Tolerating_Count/2</em> in the standard formula. In the draft spec for Apdex-G (continued below), I have included that option as section [4.1.2], following a note on the standard formula that I have carried over from the current Apdex spec, with some clarifying wording changes. </p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec (heading added):</em><br />
<strong>The Formula in Action</strong></p>
<p>Note that measurements in the frustrated zone are counted in the number of total user samples in the denominator.  To achieve the optimal Apdex value of 1.00, all users must experience satisfactory performance.  If some users see tolerating or frustrating performance, then the index rapidly dips below 1.00.  For example, if 80% of users are satisfied and 10% are tolerating, while the remaining 10% are frustrated, the index is 0.85.</p>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4">
<em>First draft:</em><br />
<strong>[4.1.1] The Standard Formula in Action</strong></p>
<p>Note that measurements in the Frustrated zone are counted in Total_Samples, the denominator of the formula, but do not contribute to the numerator.  </p>
<p>Another way to describe the Apdex index is as the weighted proportion of satisfactory samples in the report group. Samples in the Satisfied Zone have weights of 1, those in the Tolerating Zone have weights of &frac12;, and those in the Frustrated Zone have weights of 0. </p>
<div class="box">
<em>[TBD:]</em> Therefore to achieve the optimal Apdex value of 1.00, all samples must represent the Satisfaction Level of 'Satisfied'.  If any samples reflect Tolerating or Frustrated performance, the index drops below 1.00.  For example, if 80% of samples are Satisfied and 10% are Tolerating, while the remaining 10% are Frustrated, the index is 0.85.
</div>
<p><strong>[4.1.2] Alternative Scoring in the Tolerating Zone</strong></p>
<p>If the characteristics of a particular measurement and reporting domain justify using graduated weights within the Tolerating zone, an Addendum may substitute an alternative scoring function (such as a sliding scale) for the factor <em>Tolerating_Count/2</em> in the standard formula.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Errors and Exceptions</strong></p>
<p>Not all measurements reflect normal operation of the system or process under study. And because the intent of an Apdex index is to track the degree to which a system under study is achieving designated targets, errors and exceptions cannot be ignored. Indeed, they should be counted whenever possible, because they usually indicate that a system or process <strong>failed</strong> to achieve a target performance level. </p>
<p>Apdex-G provides some general guidelines for handling exceptions, which may be refined and extended by an addendum to cover domain-specific errors and exceptions. The discussion in the current spec will be reviewed for inclusion in Apdex-R.</p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;4.2 Dealing with Exceptions</strong></p>
<p>User aborts are factored into the above equation.  A user abort occurs when a user enters a new inquiry before the system responds with the original inquiry.  A user-generated abort stops the timing of the Task.  Therefore, user aborts can fall into any of the satisfied, tolerating, frustrated zones.  If a tool can detect a clear server-generated abort, then it is handled differently.  Server aborts (e.g., TCP closes within a Task) are counted as a frustrated sample regardless of the Task time measurement.</p>
<p>Some tools may have the optional capability to interpret the application to a greater level of detail than the minimal Task boundary.  For example, they may be able to detect user relevant information at the layer of the application logic. If the tool can detect Task errors, then these application errors (e.g. Web page 404 replies) are counted as frustrated samples.</p>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part4">
<em>First draft:</em><br />
<strong>[4.2] Dealing with Exceptions</strong> </p>
<p>When a Report Group contains samples marked as errors or exceptions, tools performing the Apdex calculation should classify those measurements as follows:</p>
<ul>
(a) <strong>Exceptions caused by intentional user intervention</strong> may be classified as Satisfied, Tolerating, or Frustrated in the same way as any other measurement, if the necessary field(s) are present in the sample. If the field(s) required to perform classification are absent, user-generated exceptions should be classified as Satisfied.
</ul>
<ul>
(b) <strong>Exceptions indicating abnormal system or process behavior</strong> may be classified as Tolerating if the system or process immediately returned to normal operation without requiring abnormal intervention.
</ul>
<ul>
(c) <strong>Exceptions indicating a system or process failure</strong> should be classified as Frustrated.
</ul>
<ul>
(d) <strong>Exceptions indicating measurement errors</strong> should be discarded from the Report Group.
</ul>
<ul>
(e) <strong>Exceptions not amenable to classification</strong> should be discarded from the Report Group.
</ul>
<p>An addendum may specify domain-specific refinements to these general guidelines.</p>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
<p><strong>References</strong></p>
<dl class="bibliography" >
<dt id="GUNT09" >GUNT09</dt>
<dd><em>The Apdex Index Revealed</em> Neil J. Gunther, February 2009. [<a href="http://www.cmg.org/measureit/issues/mit56/m_56_15.html" target="_blank" rel="nofollow">CMG MeasureIT</a>]</dd>
<dt id="ACKE08" >AKER08</dt>
<dd><em>Discussion: Is Apdex Sharp Enough?</em> Alan Ackers, December 2008. [<a href="http://bit.ly/bPA7Mk" target="_blank" rel="nofollow">Apdex Symposium presentation</a>]</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=922</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Report Groups and Quality Ratings in Apdex-G</title>
		<link>http://apdex.org/blog/?p=625</link>
		<comments>http://apdex.org/blog/?p=625#comments</comments>
		<pubDate>Tue, 03 Aug 2010 00:30:02 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=625</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
    [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=625&amp;t=Report+Groups+and+Quality+Ratings+in+Apdex-G&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #13. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>In my previous post in this series, I reviewed the first part of section &sect;5 Reporting in the Apdex-G spec, introducing <a href="http://bit.ly/cabNhV">Interval Notation</a> and proposing a new comma-separated format for the Uniform Output File. For the full story, see <a href="http://apdex.org/blog/?p=923">Configurable Reporting in Apdex-G</a>. In this post, I cover the remainder of section &sect;5. </p>
<p>First I will explore the question of what data should be made available to an independent reporting tool that queries an Apdex-based data analysis service. The current spec requires tools to report Apdex scores in Uniform Output format, but does not require any identifiers or context to be supplied with those scores. This strikes me as an omission, especially since section &sect;3.2 Report Groups contains mandatory rules for defining report groups, which are &#8220;the foundation for an Apdex calculation&#8221;. </p>
<p><span id="more-625"></span></p>
<p><strong>The Importance of Context</strong></p>
<p>In <em>The Big Book of Key Performance Indicators</em>, Eric Peterson writes (on page 8&#41; that &#8220;Key performance indicators are always rates, ratios, averages or percentages; they are never raw numbers. Raw numbers are valuable to web analytics reporting to be sure, but <em>because they don’t provide context</em>, are less powerful than key performance indicators,&#8221; and (on page 11), &#8220;Raw numbers are not key performance indicators. I know that many smart people disagree with me on this point but, well, they’re wrong&#8221; <cite><a href="#PETE06">PETE06</a></cite>.</p>
<p>Among those who do disagree is Brian Clifton, author of the book <a href="http://www.advanced-web-metrics.com/blog/about-the-book/">Advanced Web Metrics with Google Analytics</a>. In his blog, <em>Measuring Success</em>, he writes that &#8220;a KPI is not always an average, ratio or percentage – sometimes raw numbers are better&#8221; <cite><a href="#CLIF08">CLIF08</a></cite>.</p>
<p>Having surveyed the field of <a href="http://apdex.org/blog/?p=630">(Key) Performance Indicators</a>, I am not surprised to find people disagreeing about what is and is not a KPI. But why not have both derived metrics <em>and</em> raw numbers? A derived metric like Apdex is ideal for tracking progress against targets, while the underlying data, like sample counts, supply important context. </p>
<p>Today Apdex recognizes this (see section &sect;5.2 below) by demanding an asterisk when the sample count is below 100, but this does not always substitute for knowing the actual sample count. When comparing a pair of Apdex scores, 0.95 is &#8220;excellent&#8221; while 0.90 is merely &#8220;good&#8221; (see section &sect;5.4 below) &#8212; the first is clearly better, right? But what if those two scores were based on the measurements of customer satisfaction shown in Table 1 below? </p>
<table class="text" id="table1">
<tr>
<th class="width10">Application</th>
<th class="width15">Description</th>
<th class="width15">Total Samples</th>
<th class="width15">Satisfied Customers</th>
<th class="width15">Tolerating Customers</th>
<th class="width15">Frustrated Customers</th>
<th class="width15">Apdex Score</th>
</tr>
<tr>
<td>A</td>
<td>Search</td>
<td>20,000</td>
<td>18,500</td>
<td>1,000</td>
<td>500</td>
<td>0.95</td>
</tr>
<tr>
<td>B</td>
<td>Purchase</td>
<td>200</td>
<td>160</td>
<td>40</td>
<td>0</td>
<td>0.90</td>
</tr>
<caption>Table 1. Comparison of Two Apdex Scores</caption>
</table>
<p>A management dashboard probably needs to draw attention to the 500 frustrated customers of application A, despite its higher Apdex score. Size <em>does</em> matter, for two reasons. Whenever we measure something that varies, we first need enough samples to establish that any apparent effect we observe in a sample is truly a property of the real world, and not simply a chance occurrence. Second, we need to determine the magnitude of that effect. In the field of statistics, these two aspects are called &#8217;statistical significance&#8217; and &#8216;practical (or scientific) significance&#8217;, and the two are frequently confused by scientists and non-scientists alike <cite><a href="#ZILI08">ZILI08</a>, <a href="#ZILI09">ZILI09</a></cite>. </p>
<p><strong>Supporting Management Dashboards</strong><br />
<img src="http://apdex.org/blog/wp-content/uploads/2010/07/Neil-Gunther-Apdex-List.png" alt="Neil Gunther&#039;s Apdex List" title="Neil Gunther&#039;s Apdex List" width="88" height="381" class="alignright size-full wp-image-1719" /></p>
<p>Neil Gunther&#8217;s paper, The Apdex Index Revealed <cite><a href="#GUNT09">GUNT09</a></cite> lists a possible criticism of Apdex for not specifying how to present results for &#8220;hundreds of applications&#8221;:</p>
<div class="quote">
In a typical commercial enterprise, one may have to manage hundreds or perhaps thousands of servers running multiple applications per server. Even if viewing all of them simultaneously is unlikely, it may be necessary to look at a large subset of them. How do you digest hundreds of Apdex Indexes? How do you digest changes across hundreds of Apdex Indexes? Other than simple tabulation, the Apdex Alliance does not seem to have addressed this issue.<br />
<span class="quoteSource">&#8211; Neil Gunther, The Apdex Index Revealed, 2009. Section 3.6.</span>
</div>
<p>Actually, the Apdex spec deliberately choses to address this (in sections &sect;5 and &sect;5.1) by leaving the form of any &#8220;report&#8221; of Apdex scores to be determined by the tool doing the reporting. I think this is the right place to draw the line. Apdex is primarily focused on the data analysis aspect of reporting, not on data visualization. But the spec should support visualization tools by supplying the data they need. </p>
<p>Visualization tools need to implement natural ways to highlight the most important results, and suppress visual clutter. Sorting the lowest Apdex scores to the top could be one way. Another might be to sort by the number of samples underlying an Apdex score. That would distinguish scores based on 20,000 samples from those based on 200 samples, so that problems indicated in the larger group can be given a higher priority. Other possibilities include sorting displays by frustrated sample count, by application, by user, by a timestamp, or by report group name. I am proposing that the Apdex-G spec extend the Uniform Output format to supply these kinds of identifiers.  </p>
<p>Neil suggests a display format (shown on the right) in which many Apdex result are lined up side-by-side for easy comparison. I agree with this direction&#8211;it is typical of many dashboard displays&#8211;but it can be improved upon. It devotes too much ink to the colored bars, and not enough to the Apdex scores (the black lines). This aspect of data visualization is a key design feature for dashboards. Edward Tufte <cite><a href="#TUFT03">TUFT03</a></cite> and Stephen Few <cite><a href="#FEW10">FEW10</a></cite> both emphasize the crucial importance of maximizing the <em>data-ink ratio</em>, namely:</p>
<div class="quote">
 .. the proportion of ink (or pixels, when displaying information on a screen) that&#8217;s used to present actual data, without redundancy, compared to the total amount of ink (or pixels) used in the entire display, such as in a table or graph. The goal is to design a display that has the highest possible data-ink ratio (that is, as close to the total of 1.0 or 100% as possible), without eliminating something that is necessary for effective communication.&#8221;<br />
<span class="quoteSource">&#8211; Stephen Few, Elegance Through Simplicity, 2004 <cite><a href="#FEW04">FEW04</a></cite></span>
</div>
<p><strong>[5.1.2] Report Group Section</strong></p>
<p>Section [5.1.2] is a new section that specifies an extension of the Uniform Output spec defined previously in section [5.1.1]. The additional elements, labeled 2-15, summarize the report group and distribution of samples underlying the Apdex metric. At this stage I am undecided on whether some or all of these fields should be made mandatory within the Uniform Output. Once we decide which elements are to be optional or mandatory, I believe we can design the fields of the Uniform Output Header Record to describe the contents of a file. This will allow any tool processing a Uniform Output file to identify the presence or absence of optional fields.</p>
<p>Because this proposal extends the current spec, there is no corresponding text in section &sect;5. So the two columns below show the current section &sect;3.2 Report Groups on the left, and the draft proposal for section [5.1.2] on the right.  </p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>3.2 Defining a Report Group</strong></p>
<p>The report group is a specified set of individual measurement samples (of Task Time or Task Chain Time) that will form the foundation for an Apdex calculation.  A report group’s set of measurement samples may be unique or may have overlapping measurement samples with other report groups.  Report groups can be defined in many ways, but the following are required:</p>
<dl>
<dt><strong>Type</strong></dt>
<dd>Task or Task Chain; measurements of Task Time and Task Chain Time may not be combined in one report group.</dd>
<dt><strong>Application</strong></dt>
<dd>An application as selected by the technician.  At a minimum, this is the application that the tool can interpret to the Task level (see above).</dd>
<dt><strong>User Group</strong></dt>
<dd>The technician must be able to define various user groups of an application (e.g., geography, organization).</dd>
<dt><strong>Time Period</strong></dt>
<dd>The technician must be able to define time of day periods for which the index will be calculated.</dd>
</dl>
<p>The report group is one of the fundamental controls available to a technician.  The report group may be defined as broadly as all of the samples for an application, or as narrowly as a single sample.  Single samples are useful for diagnostic purposes.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<em>First draft:</em><br />
<strong>[5.1.2] Report Group Section</strong></p>
<p>The Report Group Section, defined in Table 5 below, is an [optional?] extension of the uniform output data record described in section [5.1.1]. <em>Note: Elements 1 and 16-22 repeat the contents of section [5.1.1] for convenience in this draft.</em></p>
<table class="text" id="table5">
<tr>
<th class="width15">Element Number</th>
<th class="width30">Definition</th>
<th class="width10">Type</th>
<th class="width45">Content</th>
</tr>
<tr>
<td>1</td>
<td>Apdex metric identifier</td>
<td>Literal</td>
<td>Apdex</td>
</tr>
<tr>
<td colspan="4"><strong>Report Group Identifiers</strong> </td>
</tr>
<tr>
<td>2</td>
<td>Report Group Name</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>3</td>
<td>Report Group Description</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>4</td>
<td>Metric Type</td>
<td>Name</td>
<td>Addendum type (e.g. R for Apdex-R)</td>
</tr>
<tr>
<td>5</td>
<td>Metric Subtype</td>
<td>Name</td>
<td>As defined within an addendum</td>
</tr>
<tr>
<td>6</td>
<td>Application</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>7</td>
<td>User Group</td>
<td>Name</td>
<td>Defined by tool or user</td>
</tr>
<tr>
<td>8</td>
<td>Time Period Start</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<td>9</td>
<td>Time Period End</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<td colspan="4"><strong>Input summary</strong> </td>
</tr>
<tr>
<td>10</td>
<td>Sample Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>11</td>
<td>Satisfied Zone Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>12</td>
<td>Tolerating Zone Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>13</td>
<td>Frustrated Zone Count</td>
<td>Number</td>
<td>Integer</td>
</tr>
<tr>
<td>14</td>
<td>Earliest Sample Timestamp</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<td>15</td>
<td>Latest Sample Timestamp</td>
<td>Timestamp</td>
<td>ISO 8601: [YYYY][MM][DD]T[hh][mm][ss]Z</td>
</tr>
<tr>
<td colspan="4"><strong>Apdex Index</strong> </td>
</tr>
</ul>
<tr>
<td>16</td>
<td>Apdex Index</td>
<td>Number</td>
<td>Decimal in range [0.00, 1.00]</td>
</tr>
<tr>
<td>17</td>
<td>Satisfied Zone Identifier</td>
<td>Literal</td>
<td>S</td>
</tr>
<tr>
<td>18</td>
<td>Satisfied Thresholds(s)</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>19</td>
<td>Tolerating Zone Identifier</td>
<td>Literal</td>
<td>T</td>
</tr>
<tr>
<td>20</td>
<td>Tolerating Thresholds(s)</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>21</td>
<td>Frustrated Zone Identifier</td>
<td>Literal</td>
<td>F</td>
</tr>
<tr>
<td>22</td>
<td>Frustrated Thresholds(s)</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<caption>Table 5. Layout of an Extended Uniform Output Data Record</caption>
</table>
<p><strong>Report Group Section Header Record</strong><br />
<em>[To be defined]</em></p>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>[5.3] Describing General Cases</strong></p>
<p><em>I have reversed the order in which I review sections &sect;5.3 and &sect;5.2. in this post, to eliminate a forward reference. Eventually I will make the same change in the Apdex-G spec, but for now it&#8217;s probably less confusing to retain the current spec&#8217;s numbering.</em> </p>
<p>Because Apdex-G has generalized the definition and format of thresholds, I propose that Apdex-G should support only generic references to thresholds, rather than the specific forms defined in the current spec. I propose to drop the example of subscripted format because it is not consistent with the defined Apdex-G terminology. It may be included in Apdex-R.</p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;5.3 When T is a General Case</strong></p>
<p>General Apdex value discussions that reflect any target of T are written with “T” as shown in the following examples.</p>
<p><strong>Uniform Output:</strong>  “Everyone should understand that 0.90 [T] is a better value than 0.80 [T].”<br />
<strong>Subscripted Output:</strong> “Everyone should understand that 0.90<sub>T</sub> is a better value than 0.80<sub>T</sub>.”<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<em>First draft:</em><br />
<strong>[5.3] Describing General Cases</strong></p>
<p>In general discussions of Apdex values, references to unspecified performance thresholds are written using the notation [T], as shown in the following examples.</p>
<p>“Everyone should understand that 0.90 [T] is a better value than 0.80 [T].”<br />
&#8220;Apdex scores in the range 0.85 to 0.93 [T] are rated <em>Good</em>&#8221;</p>
<p>For more examples, see sections [5.2] and [5.4] of this document, which also use this notation.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>[5.2] Sample Size</strong> </p>
<p>To adapt the current section &sect;5.2 for the Apdex-G spec, I have made the langauge consistent with the notation for general thresholds defined in [5.3], and allowed for an addendum to override the definition of a &#8217;small group&#8217; of samples.</p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;5.2 Indicating Sample Size</strong></p>
<p>Apdex values are calculated based upon a set of measurements (samples) in the report group. If there are a small number of samples, the tool must still present a result. However, a result for such a small report group must be clearly marked.</p>
<p>A small report group is defined as any number of samples between 0 and 99. Apdex tools will clearly indicate that the result is based upon one of the following scenarios:</p>
<dl>
<dt>No Samples</dt>
<dd>The Apdex calculation could not be performed because there were no samples (NS) within the report group. Where the calculated Apdex value would normally appear, the tool will show an output of NS. Examples: NS [4.0], NS<sub>4</sub></dd>
<dt>Small Group</dt>
<dd>When an Apdex value is the output of a small group (1 to 99) calculation, an asterisk (*) must be appended to that value. Examples: 0.80 [4.0]*, 0.80<sub>4</sub>*.</dd>
</dl>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<em>First draft:</em><br />
<strong>[5.2] Indicating Sample Size</strong></p>
<p>Apdex values are calculated based upon a set of measurements (samples) in the report group.  If there are a small number of samples, the tool must still present a result.  However, a result for such a small report group must be clearly marked.</p>
<p>A small report group is defined as one having fewer than 100 samples. An addendum may modify this definition to be appropriate for a particular measurement domain. Apdex tools will clearly indicate that the result is based upon one of the following scenarios:</p>
<dl>
<dt>No Samples</dt>
<dd>The Apdex calculation could not be performed because there were no samples (NS) within the report group.  Where the calculated Apdex value would normally appear, the tool will show an output of NS [T], where [T] is the normal threshold display (see section [5.3]).</dd>
<dt>Small Group</dt>
<dd>When an Apdex value is the output of a small group calculation, an asterisk (*) must be appended to that value, for example: 0.84* [T], where [T] is the normal threshold display (see section [5.3]). </dd>
</dl>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>[5.4] Quality Ratings</strong> </p>
<p>To adapt the current section &sect;5.4 for the Apdex-G spec, I have:</p>
<ul>
<li>introduced the term &#8220;Quality Ratings&#8221; to describe this feature</li>
<li>clarified the layout and wording of the introductory paragraphs</li>
<li>made the notation in the table consistent with the notation defined for general thresholds in [5.3]</li>
<li>allowed for an addendum to override the color specifications if appropriate</li>
</ul>
<p>The actual rating band values are those defined in Apdex today, which I have carried forward into Apdex-G. I have left open for further discussion the question of whether an addendum may specify domain-specific values to override these.</p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;5.4 Additional Reporting Rules</strong></p>
<p>Some tool vendors may wish to add graphical aids to report the Apdex value. This is an optional feature, but, if implemented, it must follow these guidelines. </p>
<p>Two forms of alternative representations are permitted: the rating (a word), and a color indication. The following table shows the fixed set of alternative modes of representing the Apdex. The table shows examples where the target threshold (T) is 4 seconds. </p>
<p>The color indication can be determined by the vendor in line with their existing product set, however a legend must clearly indicate which color represents each Apdex rating.</p>
<p><strong>Table 3 – Apdex Qualitative Reporting Rules</strong><br />
(Examples where T=4)</p>
<table class="text" id="table6A">
<tr>
<th class="width30"><strong>Apdex Value Range</strong></th>
<th class="width25"><strong>Rating</strong></th>
<th class="width45"><strong>Color Indication</strong></th>
</tr>
<tr>
<td>0.94<sub>4</sub> to 1.00<sub>4</sub></td>
<td>Excellent<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.85<sub>4</sub> to 0.93<sub>4</sub></td>
<td>Good<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.70<sub>4</sub> to 0.84<sub>4</sub></td>
<td>Fair<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.50<sub>4</sub> to 0.69<sub>4</sub></td>
<td>Poor<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td>0.00<sub>4</sub> to 0.49<sub>4</sub></td>
<td>Unacceptable<sub>4</sub> or UNAX<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus a color indication)</td>
</tr>
<tr>
<td colspan="3"><strong>Low Sample Cases</strong></td>
</tr>
<tr>
<td>0.NS<sub>4</sub></td>
<td>NoSample<sub>4</sub></td>
<td>Determined by vendor (with a 4 plus an NS inside color indication)</td>
</tr>
<tr>
<td>0.85<sub>4</sub>*</td>
<td>Good<sub>4</sub>*</td>
<td>Determined by vendor (with a 4 plus an * inside color indication)</td>
</tr>
<caption>Table 3. Apdex Qualitative Reporting Rules</caption>
</table>
<p><em>Note.  In the current specification, the &#8216;Apdex Value Range&#8217; column of Table 3 contains a typo in the &#8216;NoSample&#8217; row, which (as shown above) reads &#8216;0.NS<sub>4</sub>&#8216;. That cell should read &#8216;NS<sub>4</sub>&#8216;.</em><br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<em>First draft:</em><br />
<strong>[5.4] Apdex Quality Ratings</strong></p>
<p>Some tool creators may wish to assign quality ratings to Apdex value ranges, and to present those ratings graphically. This is an optional feature, but, if implemented, it must follow these guidelines. </p>
<p>Two alternative representations are permitted for quality ratings: a rating word or a color indication. Table 6 below lists the value ranges to be used when assigning a rating to an Apdex value. The table shows examples for the target threshold [T], where [T] is the normal threshold display as described in section [5.3]. </p>
<p>Colors may be selected by the vendor for consistency with other products, or based on user-supplied preferences. However a legend must clearly indicate which color represents each Apdex rating. </p>
<table class="text" id="table6B">
<tr>
<th class="width30"><strong>Apdex Value Range</strong></th>
<th class="width25"><strong>Rating Word</strong></th>
<th class="width45"><strong>Color Indication</strong></th>
</tr>
<tr>
<td>0.94 to 1.00 [T]</td>
<td>Excellent [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.85 to 0.93 [T]</td>
<td>Good [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.70 to 0.84 [T]</td>
<td>Fair [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.50 to 0.69 [T]</td>
<td>Poor [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td>0.00 to 0.49 [T]</td>
<td>Unacceptable [T] or UNAX [T]</td>
<td>Determined by vendor (with [T] plus a color indication)</td>
</tr>
<tr>
<td colspan="3"><strong>Low Sample Cases</strong></td>
</tr>
<tr>
<td>NS [T]</td>
<td>NoSample [T]</td>
<td>Determined by vendor (with [T] plus an NS inside color indication)</td>
</tr>
<tr>
<td>0.85* [T]</td>
<td>Good* [T]</td>
<td>Determined by vendor (with [T] plus an * inside color indication)</td>
</tr>
<caption>Table 6. Rules for Apdex Quality Ratings</caption>
</table>
<p><strong>Note:</strong> An addendum may specify alternative colors [<em>TBD: and/or value ranges?</em>] to be applied when reporting Apdex scores for a particular measurement domain.<br />
<!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
<p><strong>References</strong></p>
<dl class="bibliography" >
<dt id="CLIF08" >CLIF08</dt>
<dd><em>A KPI is not always an average, ratio or percentage – sometimes raw numbers are better</em>, Brian Clifton, 2008. [<a href="http://bit.ly/q2uc" target="_blank" rel="nofollow">Measuring Success, June 2008</a>]</dd>
<dt id="FEW04" >FEW04</dt>
<dd><em>Elegance Through Simplicity</em> Stephen Few, 2004. [<a href="http://www.perceptualedge.com/" target="_blank" rel="nofollow">Perceptual Edge, October 16, 2004</a>]</dd>
<dt id="FEW10" >FEW10</dt>
<dd><em>Perceptual Edge</em> Stephen Few, 2010. [<a href="http://www.perceptualedge.com/" target="_blank" rel="nofollow">Perceptual Edge Website</a>]</dd>
<dt id="GUNT09" >GUNT09</dt>
<dd><em>The Apdex Index Revealed</em>, Neil J. Gunther, February 2009. [<a href="http://www.cmg.org/measureit/issues/mit56/m_56_15.html" target="_blank" rel="nofollow">CMG MeasureIT</a>]</dd>
<dt id="PETE06" >PETE06</dt>
<dd><em>The Big Book of Key Performance Indicators</em>, Eric T. Peterson, 2006. [<a href="http://bit.ly/7RoffY" target="_blank" rel="nofollow">1.1Mb pdf</a>]</dd>
<dt id="TUFT03" >TUFT03</dt>
<dd><em>Executive Dashboards</em>, Edward Tufte and others, 2003-2009. [<a href="http://bit.ly/ceBTMp" target="_blank" rel="nofollow">Discussion thread on "Ask E.T."</a>]</dd>
<dt id="ZILI08" >ZILI08</dt>
<dd><em>The Cult of Statistical Significance: How the Standard Error Costs Us Jobs, Justice, and Lives</em> Stephen T. Ziliak and Deirdre N. McCloskey, University of Michigan Press, 2008. [<a href="http://bit.ly/ceBTMp" target="_blank" rel="nofollow">Amazon Books</a>]</dd>
<dt id="ZILI09" >ZILI09</dt>
<dd><em> The Cult of Statistical Significance</em> Stephen T. Ziliak and Deirdre N. McCloskey, Joint Statistical Meetings, Washington, DC, August 3, 2009. [<a href="http://www.statlit.org/pdf/2009ZiliakMcCloskeyASA.pdf" target="_blank" rel="nofollow">179Kb pdf</a>]</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=625</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurable Reporting in Apdex-G</title>
		<link>http://apdex.org/blog/?p=923</link>
		<comments>http://apdex.org/blog/?p=923#comments</comments>
		<pubDate>Sat, 31 Jul 2010 00:00:04 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=923</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
    [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=923&amp;t=Configurable+Reporting+in+Apdex-G&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.leftHalf { float: left; width: 47%; }
.rightHalf { float: right; width: 47%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }
.width45 { width: 45%; }
.width50 { width: 50%; }
.width55 { width: 55%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #12. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>In my previous post in this series, I introduced a conceptual model for Apdex-G. Compared to the current Apdex model, the key addition is the <em>Performance Interval</em>, a range of values within the measurement domain that shares a common <em>Satisfaction Level</em> of &#8216;Satisfied&#8217;, &#8216;Tolerating&#8217;, or &#8216;Frustrated&#8217;. <em>Thresholds</em> now form the boundaries of performance intervals, rather than <em>Performance Zones</em>&#8211;which are now defined as a collection (union) of one or more performance intervals. For the full story, see <a href="http://apdex.org/blog/?p=1390">Generalizing the Apdex Thresholds</a>. </p>
<p>This generalization allows Apdex-G to accommodate arbitrary orderings of satisfaction levels within the measurement domain, including discontinuous performance zones. But it also complicates Apdex reporting. The current Apdex model, which employs just two thresholds, <strong>T</strong> and <strong>F</strong>, makes it easy to report the threshold(s) alongside the value of an Apdex score. And doing so is a mandatory requirement of Apdex:</p>
<div class="quote">
All Apdex values are calculated with a particular target threshold, T.  The value of T must be clearly displayed in association with the Apdex score. </p>
<p><span class="quoteSource">&#8211; Apdex spec, section &sect;5 Reporting the Index, introduction</span>
</div>
<p>How can we retain this essential Apdex feature in Apdex-G, which must accommodate reporting on arbitrary alignments of performance intervals?  </p>
<p><span id="more-923"></span></p>
<p><strong>Holding to Einstein&#8217;s Razor</strong></p>
<p>The short answer is, of course, that we can&#8217;t make all Apdex-G scores as simple to display and read as the current Apdex metric. In the immortal words of Albert Einstein, we should &#8220;make everything as simple as possible, but no simpler&#8221;. Interestingly, those words are just a shortened version of what Einstein actually said, which turns out to be particularly relevant in this context:</p>
<div class="quote">
It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.<br />
<span class="quoteSource">&#8211;“On the Method of Theoretical Physics&#8221; The Herbert Spencer Lecture, delivered at Oxford on June 10, 1933</span>
</div>
<p>This principle is sometimes called <em>Einstein&#8217;s razor</em> by people who view it as a counterpoint to <a href="http://en.wikipedia.org/wiki/Occam%27s_razor">Occam&#8217;s razor</a>, namely &#8220;entities must not be multiplied beyond necessity&#8221;. Both principles can be applied to Apdex-G. First, I believe I have followed Occam&#8217;s razor when extending Apdex. Apdex-G does introduce a new entity&#8211;a performance interval&#8211;but that is necessary to accommodate arbitrary alignments of satisfaction levels. Second, we must follow Einstein&#8217;s razor to ensure that when reporting an Apdex-G score, we do not &#8220;surrender the adequate representation&#8221; of the configuration of those performance intervals.</p>
<p><strong>Introducing Interval Notation</strong></p>
<p>Clearly, Apdex-G must define a standard notation for describing any perfomance interval. This notation must show the lower and upper thresholds that define the interval, and whether or not they are contained within the interval. For example, in the current Apdex spec, we could describe the tolerating zone (Z<sub>t</sub> say), using the following inequality:</p>
<p>T &lt; Z<sub>t</sub> &le; F</p>
<p>where in this example the symbols T and F signify threshold <em>values</em>. The choice of inequalities, &lt; and &le;, show that T, the lower threshold, is not contained within the zone, while F, the upper threshold, is included. </p>
<p><a href="http://bit.ly/cabNhV">Interval notation</a> <cite><a href="#ZONAW1">ZONAW1</a>, <a href="#SOSMW1">SOSMW1</a>, <a href="#WIKIW1">WIKIW1</a></cite> is an alternative way convey the same information without using inequality symbols; Roberta Bloom has created a handy <a href="http://bit.ly/dBRgER">one-page summary</a> <cite><a href="#BLOO07">BLOO07</a></cite>.  For the Apdex tolerating zone we would write:</p>
<p>Z<sub>t</sub>: (T, F]</p>
<p>The round bracket (or parenthesis) signifies exclusion from the interval, the square bracket signifies inclusion. So we could describe the Apdex index like this:</p>
<p>Apdex: [0.00, 1.00]</p>
<p>To describe a tolerating zone composed of two intervals (for example, Metric Type #7, Symmetric Process Control in <a href="http://apdex.org/blog/?p=1390#table4">Table 4</a> of my previous post), we would write something like this:</p>
<p>Z<sub>t</sub>: (t<sub>1</sub>, t<sub>2</sub>] &cup; (t<sub>3</sub>, t<sub>4</sub>]</p>
<p>where the t<sub>i</sub> (i=1..4) are threshold values, and the mathematical &#8220;cup&#8221; symbol &cup; signifies the union of the two intervals. The full description of Metric Type #7 would be: </p>
<p>Z<sub>s</sub>: (t<sub>2</sub>, t<sub>3</sub>]<br />
Z<sub>t</sub>: (t<sub>1</sub>, t<sub>2</sub>] &cup; (t<sub>3</sub>, t<sub>4</sub>]<br />
Z<sub>f</sub>: (&minus;&infin;, t<sub>1</sub>] &cup; (t<sub>4</sub>, &infin;)</p>
<p>This choice of round and square brackets in this example follow the Apdex-G rule that &#8220;Each Threshold lies within one and only one Performance Interval. Unless otherwise specified by a domain-specific Addendum, a Threshold lies within the Performance Interval for which it acts as the upper bound&#8221;. The final bracket is round by convention; in this notation, infinity symbols are always accompanied by round brackets. </p>
<p>I propose that we adopt interval notation to describe performance intervals and performance zones within the Apdex-G <em>Uniform Output</em> spec. Granted, the 3-line example given above is a lot more cumbersome than the current Apdex requirement of a simple suffix displaying a single T value. But note that:</p>
<ul>
<li>the example illustrates how to report a more complex metric type that employs five performance intervals</li>
<li>an addendum (like Apdex-R) can specify simpler alternative notation (like the current subscript method) if the metric type warrants it</li>
<li>in addition to requiring that all tools support the Uniform Output specification, the spec allows tools to use other ways to display Apdex scores</li>
</ul>
<p>These matters are addressed in Section &sect;5 of the Apdex spec, which is shown in the left-hand column in the following paragraphs. On the right are my proposals for the corresponding portions of Apdex-G.</p>
<p><strong>General Reporting Rules</strong></p>
<p>I have generalized these rules, tightened up the language a little, and removed the last sentence. It has been incorporated into the introduction to section [5.1.1].</p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;5. Reporting the Index</strong></p>
<p>The index is a decimal value between 0 and 1.  The Apdex representation on all reports (screen, print, or otherwise) must adhere to the following rules.</p>
<p><strong>&sect;5.1 Displaying the Apdex Value</strong></p>
<p>The index always starts with a 0, followed by a decimal point, followed by the fractional value for the calculation to two decimals, and the value of T is clearly associated with the index presentation as defined below.  There is a special case of the value 1.00 that starts with the digit of 1.  A 1.00 is presented when the formula produces a result that can be rounded arithmetically to 1.00 (results equal to or greater than 0.995 round to 1.00). </p>
<p>Apdex may not be reported in granularity smaller than one one-hundredth.  Decimal values of 3 or more digits are not permitted.</p>
<p>Tools in a computer screen or in printed reports always identify it as an Apdex value.  When there are many values of the index presented in tabular form representing many reporting groups, then the Apdex label should appear with the appropriate column or row.</p>
<p>All Apdex values are calculated with a particular target threshold, T.  The value of T must be clearly displayed in association with the Apdex score.  Furthermore, in order to facilitate exporting Apdex values from a tool and then importing them to other analysis tools, all tools must support at least one uniform output as shown below.<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<em>First draft:</em><br />
<strong>[5] Reporting the Index</strong></p>
<p>In this section, the terms <em>Report(s)</em> and <em>Reporting</em> refer to any representation of an Apdex index, whether in print, on a computer screen, or elsewhere. </p>
<p><strong>[5.1] Reporting the Apdex Value</strong></p>
<p>Reports must adhere to the following rules:</p>
<ol>
<li>The index is a decimal value between 0 and 1, rounded to a precision of two decimal places. Values equal to or greater than 0.995 round to 1.00. </li>
<li>Unless its value is 1.00, the index is always reported with a zero in the tens place, followed by a decimal point, followed by no more than two decimal places.</li>
<li>Apdex values must be identified as such.  When several Apdex values are presented in tabular form, a single Apdex identifier can identify a group of values in a row, column, or table.</li>
<li>All Apdex values are calculated based on specified performance zones. The performance zone specification must be clearly displayed in association with the Apdex score.</li>
</ol>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>[5.1.1] Uniform Output</strong></p>
<p>First some housekeeping: In Apdex-G, I have numbered the principal subsections, and removed the optional subscripted format for output. This format is not applicable in Apdex-G, and will be reviewed later for inclusion in Apdex-R.  </p>
<p>To support Apdex-G&#8217;s more complex performance zones, comprising an unknown number of performance intervals, we have to abandon the fixed format specification for Uniform Output provided in the current spec. I propose that we replace it with a more flexible comma-separated values (CSV) file. For compatibility with existing Apdex implementations, we can retain the current fixed format as an option in the Apdex-R spec.</p>
<p>There is no universally accepted standard specification for CSV files, but to provide a degree of rigor in the Apdex-G specification, we can incorporate the public domain specification for CSV files published as <a href="http://tools.ietf.org/html/rfc4180">RFC 4180</a> <cite><a href="#RFC4180">RFC4180</a></cite>. </p>
<p>Section [5.1.2] is a placeholder for a new proposal which would permit (or maybe require) tools to supply additional Report Group identifiers in Uniform Output files.</p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>Uniform Output (Mandatory)</strong></p>
<p>The tool shall display, print, and export to an ASCII file each Apdex value with the following fixed format.</p>
<p><strong>Table 2. Uniform Output Definition</strong></p>
<table class="text" id="table2">
<tr>
<th class="width15">Element Position</th>
<th class="width55">Definition</th>
<th class="width30">Example/Range</th>
</tr>
<tr>
<td>1</td>
<td>Value whole number digit</td>
<td>0 or 1</td>
</tr>
<tr>
<td>2</td>
<td>Decimal point</td>
<td>.</td>
</tr>
<tr>
<td>3</td>
<td>Value tenths digit</td>
<td>0 through 9</td>
</tr>
<tr>
<td>4</td>
<td>Value hundredths digit</td>
<td>0 through 9</td>
</tr>
<tr>
<td>5</td>
<td>Space</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td>Left bracket designating start of T</td>
<td>[</td>
</tr>
<tr>
<td>7</td>
<td>First digit of T</td>
<td>0.1 or greater</td>
</tr>
<tr>
<td>N</td>
<td>Rest of T as defined in section 3.3</td>
<td>Numeric digits</td>
</tr>
<tr>
<td>N+1</td>
<td>Right bracket designating end of T</td>
<td>]</td>
</tr>
<tr>
<td>N+2</td>
<td>Small group indicator (see 5.2 below)</td>
<td>* if present</td>
</tr>
<caption>Table 2. Uniform Output Definition</caption>
</table>
<p>Examples of the uniform output are: 0.85 [5.5], 1.00 [8.0]*, 0.90 [4.0], and 0.77 [450].</p>
<p><strong>Subscripted Output (Optional)</strong></p>
<p>Tools may display Apdex values with a T shown as a mathematical subscript.  For example, an Apdex value of 0.75 that is based upon a T of 4 seconds is shown as 0.754.</p>
<p>When T has a decimal component, as defined in section 3.3, then the exact value of T must be shown (example: 0.754.5).  In order to make the index easy to read, tools may drop the decimal portion of T if it is zero (example: 0.754.0 becomes 0.754).<br />
<!--close Apdex--></div>
<div class="Apdex-G rightCol part5">
<em>First draft:</em><br />
<strong>[5.1.1] Uniform Output File (Mandatory)</strong></p>
<p>To support the exchange of index values between Apdex analysis and reporting tools, all Apdex analysis tools must support the Apdex Uniform Output format. A tool shall display, print, and export Apdex-G values to an ASCII file having a comma-separated values (CSV) format. For this purpose, Apdex-G incorporates the IETF specification of CSV published in RFC 4180 (see section [6] References). </p>
<p>A Uniform Output File is composed of a uniform output header record, followed by one or more uniform output data records. The content of a uniform output data record is described in Tables 2, 3, and 4 below. </p>
<table class="text" id="table2">
<tr>
<th class="width15">Element Number</th>
<th class="width35">Definition</th>
<th class="width10">Type</th>
<th class="width40">Content</th>
</tr>
<tr>
<td>1</td>
<td>Apdex metric identifier</td>
<td>Literal</td>
<td>Apdex</td>
</tr>
<tr>
<td>2</td>
<td>Apdex Index</td>
<td>Number</td>
<td>Decimal in range [0.00, 1.00]</td>
</tr>
<tr>
<td>3</td>
<td>Satisfied Zone Identifier</td>
<td>Literal</td>
<td>S</td>
</tr>
<tr>
<td>4</td>
<td>Satisfied Thresholds(s)</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>5</td>
<td>Tolerating Zone Identifier</td>
<td>Literal</td>
<td>T</td>
</tr>
<tr>
<td>6</td>
<td>Tolerating Thresholds(s)</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<tr>
<td>7</td>
<td>Frustrated Zone Identifier</td>
<td>Literal</td>
<td>F</td>
</tr>
<tr>
<td>8</td>
<td>Frustrated Thresholds(s)</td>
<td>Group</td>
<td>Interval Group, see Table 3</td>
</tr>
<caption>Table 2. Layout of a Uniform Output Data Record</caption>
</table>
<p>In Table 2, each element except the last is followed by a comma. In addition, each Interval Group (elements 4, 6, and 8 in Table 2)  is composed of one or more Performance Interval elements, which are also separated by commas. Table 3 shows the components of a single Performance Interval element. The components shown in Table 3 are <strong>not</strong> separated by commas.</p>
<table class="text" id="table3">
<tr>
<th class="width15">Component</th>
<th class="width35">Definition</th>
<th class="width10">Type</th>
<th class="width40">Content</th>
</tr>
<tr>
<td>1</td>
<td>Opening backet</td>
<td>Literal</td>
<td>( or [</td>
</tr>
<tr>
<td>2</td>
<td>Lower threshold</td>
<td>Number</td>
<td>Decimal number -- see [3.3]</td>
</tr>
<tr>
<td>3</td>
<td>Comma</td>
<td>Literal</td>
<td>,</td>
</tr>
<tr>
<td>4</td>
<td>Upper threshold</td>
<td>Number</td>
<td>Decimal number &#8212; see [3.3]</td>
</tr>
<tr>
<td>5</td>
<td>Closing backet</td>
<td>Literal</td>
<td>) or ]</td>
</tr>
<caption>Table 3. Components of a Performance Interval within a Uniform Output Data Record</caption>
</table>
<p><strong>Uniform Output Header Record</strong></p>
<p>In an output file having the uniform output format, the first line is a header record that contains the same number of comma-separated fields as all data records in the file. Fields in the header record contain fixed literal values, or names that correspond to each field in the data records, as specified in Table 4.</p>
<table class="text" id="table4">
<tr>
<th class="width15">Element Number</th>
<th class="width35">Definition</th>
<th class="width10">Type</th>
<th class="width40">Content</th>
</tr>
<tr>
<td>1</td>
<td>Apdex header identifier</td>
<td>Literal</td>
<td>Apdex Header</td>
</tr>
<tr>
<td>2</td>
<td>Apdex Index</td>
<td>Literal</td>
<td>Apdex Index</td>
</tr>
<tr>
<td>3</td>
<td>Satisfied Zone Identifier</td>
<td>Literal</td>
<td>S</td>
</tr>
<tr>
<td>4</td>
<td>Performance Intervals</td>
<td>Group</td>
<td>Performance Interval Names</td>
</tr>
<tr>
<td>5</td>
<td>Tolerating Zone Identifier</td>
<td>Literal</td>
<td>T</td>
</tr>
<tr>
<td>6</td>
<td>Performance Intervals</td>
<td>Group</td>
<td>Performance Interval Names</td>
</tr>
<tr>
<td>7</td>
<td>Frustrated Zone Identifier</td>
<td>Literal</td>
<td>F</td>
</tr>
<tr>
<td>8</td>
<td>Performance Intervals</td>
<td>Group</td>
<td>Performance Interval Names</td>
</tr>
<caption>Table 4. Layout of a Uniform Output Header Record</caption>
</table>
<p><strong>Performance Interval Names:</strong> If a tool has obtained user-specified names for performance intervals, those names should be included in the corresponding fields of the header record (elements 4, 6, and 8 in Table 4). If user-specified names are not available, distinct default names must be supplied for each performance interval field in the header record. See also section [2.5.1] Thresholds and Performance Intervals. </p>
<p><strong>Examples of the uniform output</strong></p>
<p>Examples of the uniform output are: </p>
<p>       Apdex Header,Apdex Index,S,Green,T,Yellow,F,Red  CRLF  <em>user labels</em><br />
       Apdex,0.72,S,[0,4],T,(4,16],F,(16,INF)  CRLF<br />
       Apdex,0.85,S,[0,6],T,(6,20],F,(20,INF)  CRLF<br />
       Apdex,0.58,S,[0,3],T,(3,10],F,(10,INF)  CRLF<br />
       Apdex,0.91,S,[0,10],T,(10,30],F,(30,INF)  CRLF</p>
<p>       Apdex Header,Apdex Index,S,PI3,T,PI2,PI4,F,PI1,PI5  CRLF  <em>generic labels</em><br />
       Apdex,0.88,S,(10,12],T,(6,10],(12,16],F,[0,6],(16,INF)  CRLF<br />
       Apdex,0.96,S,(9,15],T,(6,9],(15,18],F,[0,6],(18,INF)  CRLF</p>
<p><em>Proposal for future discussion:</em><br />
<strong>[5.1.2] Report Group Section</strong></p>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>More on Section [5] Reporting &#8230;</strong></p>
<p>I debated whether to call this post <em>configurable</em> reporting, because the configuration options that most affect reporting are the selection of Apdex-G performance intervals and thresholds. But the rules for reporting do have to accommodate those options, which in turn forces us to introduce more flexibility throughout the reporting specifications. And we have more decisions to consider. This post has addressed the first half of the reporting area; in a further post, I will draft the remaining paragraphs of Apdex-G section [5]:</p>
<ul>
<strong>[5.1.2] Report Group Section</strong> The current spec requires tools to report Apdex scores in Uniform Output format, but does not require any identifiers or context to be reported with those scores. This strikes me as an omission. I will explore the question of what data should be made available to an independent reporting tool that queries an Apdex-based data analysis service, and discuss the relationship of those sections to section [3.2] Report Groups.</p>
<p><strong>[5.2] Sample Size</strong> We must consider whether we need any configuration options in the rules for Apdex sample sizes.</p>
<p><strong>[5.3] Describing General Cases</strong> This section of the current spec can be retained in Apdex-G with minor modifications.</p>
<p><strong>[5.4] Quality Ratings</strong> We must consider whether we need any configuration options for the display of Apdex ratings or grades.
</ul>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
<p><strong>References</strong></p>
<dl class="bibliography" >
<dt id="BLOO07" >BLOO07</dt>
<dd><em>Interval Notation</em> Roberta Bloom, 2007. [<a href="http://bit.ly/dBRgER" target="_blank"  rel="nofollow">pdf</a>]</dd>
<dt id="RFC4180" >RFC4180</dt>
<dd><em>Common Format and MIME Type for Comma-Separated Values (CSV) Files</em> Y. Shafranovich, 2005. [<a href="http://tools.ietf.org/html/rfc4180" target="_blank"  rel="nofollow">RFC 4180, The Internet Society, October 2005</a>]</dd>
<dt id="SOSMW1" >SOSMW1</dt>
<dd><em>The Real Number Line, Interval Notation and Set Notation</em> Helmut Knaust, S.O.S. MATHematics [<a href="http://bit.ly/bEXvY7" target="_blank"  rel="nofollow">S.O.S. MATHematics Website</a>]</dd>
<dt id="WIKIW1" >WIKIW1</dt>
<dd><em>Interval (mathematics)</em> [<a href="http://en.wikipedia.org/wiki/Interval_%28mathematics%29" target="_blank"  rel="nofollow">Wikipedia</a>]</dd>
<dt id="ZONAW1" >ZONAW1</dt>
<dd><em>Interval Notation</em> Zonaland Education. [<a href="http://bit.ly/cabNhV" target="_blank"  rel="nofollow">Zonaland Website</a>]</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=923</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generalizing the Apdex Thresholds</title>
		<link>http://apdex.org/blog/?p=1390</link>
		<comments>http://apdex.org/blog/?p=1390#comments</comments>
		<pubDate>Tue, 27 Jul 2010 04:01:13 +0000</pubDate>
		<dc:creator>Chris Loosley</dc:creator>
				<category><![CDATA[Apdex Specification]]></category>
		<category><![CDATA[How Apdex Works]]></category>

		<guid isPermaLink="false">http://apdex.org/blog/?p=1390</guid>
		<description><![CDATA[ 
p { clear: left; }
.clear { clear: both; }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
    [...]]]></description>
			<content:encoded><![CDATA[<!-- This is a HTML comment, it will not display in any page. Feel free to remove this comment if it cause any inconvenient to you.
	Thanks for using digg digg, please visit http://www.mkyong.com/blog/digg-digg-wordpress-plugin for any comments and ideas, 
	
    Author : Yong Mook Kim
    Website : http://www.mkyong.com
	--><div style='float:right'><table> <td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://apdex.org/blog/?p=1390&amp;t=Generalizing+the+Apdex+Thresholds&amp;s=normal' height='80' width='52' frameborder='0' scrolling='no'></iframe></td></table></div><style type="text/css">
p { clear: left; }
.clear { clear: both; }
.clearBox {
     margin: 0 40px;
     }
.textBox {
     margin: 0 40px;
     border: 1px solid #DDDDDD;
     background-color: #E8E8E8; 
     padding: 10px;
     }
.specBox { 
     min-width: 500px; 
     z-index: 1000;
     position: relative;
     overflow: visible;
     }
.Apdex { 
     border: 1px solid #DDDDDD; 
     padding: 5px;
     background-color: #F0F0D0;
     }
.Apdex-G { 
     border: 1px solid #6D83B2; 
     padding: 5px;
     }
.leftCol { float: left; width: 32%; display: block; font-size: 85%;}
.rightCol { float: right; width: 62%; }
.part1 { background-color: #FFFFF0; }
.part2 { background-color: #FFF8F0; }
.part3 { background-color: #F8F8F0; }
.part4 { background-color: #F8F0F0; }
.part5 { background-color: #F0F0F0; }
.part6 { background-color: #E8F0F0; }
.part7 { background-color: #E8E8F0; }
.red { background-color: #FE0000 !important; }
.yellow { background-color: #FDFE00 !important; }
.green { background-color: #339933 !important; }
.dark { color: #888888; }
.quote {
     border-left: 7px solid #CCCCCC; 
     padding: 10px 100px 20px 25px;
     }
.quoteSource {
     float: right;
     padding-right: 25px;
     font-style: italic;
     }
cite { 
     font-style: normal; 
     font-size: smaller; 
     font-variant: small-caps; 
     }
cite:before { content: "["; }
cite:after { content: "]"; }
dl.bibliography dt { 
     font-style: normal; 
     font-size: small; 
     font-variant: small-caps;
     float: left; 
     clear: left; 
     width: 6em;
     margin: 0 5px 5px 0; 
     border: 1px solid #CCCCCC; 
     padding: 2px;
     }
dl.bibliography dd { 
     margin-left: 6.5em; 
     border-left: 5px solid #FFFFFF; 
     margin-bottom: 10px;
     }
dl.glossary dt { 
     float: left; 
     clear: left; 
     border: 1px solid #DDDDDD;
     width: 10em;
     margin: 0 5px 5px 0; 
     padding: 2px;
     }
.leftCol  dl.glossary dt,
.rightCol dl.glossary dt { 
     width: 7em;
     }
dl.glossary dd { 
     margin-left: 11em; 
     padding-left: 5px; 
     margin-bottom: 10px;
     }
.leftCol  dl.glossary dd,
.rightCol dl.glossary dd { 
     margin-left: 8em; 
     }</p>
<p>table.text {
     margin: 10px 40px; 
     border:1px solid #DDDDDD;
     }
.text caption {
     caption-side: bottom;
     }
.text td {
     vertical-align: top;
     }
.text caption { 
     text-align: left; 
     font-style: italic; 
     margin-bottom: 10px; 
     }</p>
<p>.width05 { width: 5%; }
.width08 { width: 8%; }
.width10 { width: 10%; }
.width12 { width: 12%; }
.width15 { width: 15%; }
.width20 { width: 20%; }
.width24 { width: 24%; }
.width30 { width: 30%; }
.width36 { width: 36%; }
.width40 { width: 40%; }</p>
</style>
<p><em>I’m writing a series of posts about Generalizing Apdex. This is #11. To minimize confusion, section numbers in the current spec are accompanied by the section symbol, like this: &sect;1. The corresponding section numbers in the generalized spec, Apdex-G, are enclosed in square brackets, like this: [1].</em></p>
<p>In my previous post in this series, I discussed non-monotonic metrics. These are metrics for which improvement in the metric does not always always correspond to an improvement in quality. To accommodate such metrics, the Apdex-G specification must support six distinct orderings of the three Apdex performance zones (<em>Satisfied</em>, <em>Tolerating</em>, and <em>Frustrated</em>). It should also accept discontinuous zone definitions. For the full story, see <a href="http://apdex.org/blog/?p=921">Configurable Zone Alignment in Apdex-G</a>, </p>
<p>These requirements introduce two complications, both involving the current spec&#8217;s use of just two thresholds, <strong>T</strong> and <strong>F</strong>, to define the three Apdex zones. In this post, I will review:</p>
<ol>
<li>The relationship between thresholds and zones</li>
<li>The number of thresholds required</li>
</ol>
<p><span id="more-1390"></span></p>
<p><strong>The Relationship Between Thresholds and Zones</strong></p>
<p>To explain the first problem, the Table 1 below lists the six possible orderings of three continuous zones, grouping them according to whether low or high data values are preferred. Reading from left to right, each row shows the alignment of the three Apdex performance zones, low to high, within the measurement domain. It also shows where the thresholds <strong>T</strong> and <strong>F</strong> would be placed in Apdex-G, to delimit the zones. </p>
<table class="text" id="table1">
<tr>
<th class="width12">Preference [1]</th>
<th class="width08">Number [2]</th>
<th class="width24">Metric Type [3]</th>
<th class="width12">Low Zone [5]</th>
<th class="width10">Low Threshold [6] [7] [8]</th>
<th class="width12">Middle Zone [5]</th>
<th class="width10">High Threshold [6] [7] [8]</th>
<th class="width12">High Zone [5]</th>
</tr>
<tr class="even">
<td class="rowtitle" rowspan="3">High Values Preferred</td>
<td>1</td>
<td>Monotonic Increasing</td>
<td>Frustrated</td>
<td>[F]</td>
<td>Tolerating</td>
<td>[T]</td>
<td>Satisfied</td>
</tr>
<tr class="even">
<td>3</td>
<td>Service Quality Scores</td>
<td>Frustrated</td>
<td>[F]</td>
<td>Satisfied</td>
<td>[T]</td>
<td>Tolerating</td>
</tr>
<tr class="even">
<td>5</td>
<td>Avoid, Preferably Above</td>
<td>Tolerating</td>
<td>[T]</td>
<td>Frustrated</td>
<td>[F]</td>
<td>Satisfied</td>
</tr>
<tr class="even">
<td class="rowtitle" rowspan="3">Low Values Preferred</td>
<td>2</td>
<td>Monotonic Decreasing [4]</td>
<td>Satisfied</td>
<td>[T]</td>
<td>Tolerating</td>
<td>[F]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>4</td>
<td>Controlled Service Times</td>
<td>Tolerating</td>
<td>[T]</td>
<td>Satisfied</td>
<td>[F]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>6</td>
<td>Avoid, Preferably Below</td>
<td>Satisfied</td>
<td>[F]</td>
<td>Frustrated</td>
<td>[T]</td>
<td>Tolerating</td>
</tr>
<caption>Table 1. Six possible alignments of continuous zones, using [T] and [F] as thresholds</caption>
</table>
<p><strong>Explanatory Notes</strong></p>
<ol>
<li>When the Satisfied Zone is above (to the right of) the Frustrated Zone, higher values are preferred, and vice versa.</li>
<li>These numbers refer to the previous post. They were used when describing the different types of metrics.</li>
<li>These types were identified in the previous post.</li>
<li>The Monotonic Decreasing metric type corresponds to the present Apdex spec.</li>
<li>For each metric type, Low Zone < Middle Zone < High Zone</li>
<li>I use the notation [T] and [F] to denote the Apdex-G versions of the two thresholds.</li>
<li>In each row I placed the thresholds so that they are always adjacent to their &#8220;corresponding&#8221; zones. [T] is always adjacent to the Tolerating Zone; [F] is always adjacent to the Frustrated Zone. Indeed, in each row there is only one sensible way to position a pair of thresholds having those labels; reversing their positions always separates one of the thresholds from its corresponding zone. </li>
<li>In the current Apdex spec, thresholds are defined to fall <strong>within</strong> the lower of two adjacent zones. For example, T is the upper bound of the Satisfied Zone, and the Tolerating Zone is defined as &#8220;Greater than T to F&#8221;. There is an argument for reversing this convention, so that a threshold falls within the higher of the two zones. Then T would fall within the Tolerating Zone, which (to me) seems more natural. However, whether or not we retain or change that convention has no bearing on the placement of thresholds in this table.</li>
</ol>
<p><strong>Problems with Using [T] and [F]</strong></p>
<p>In the current Apdex spec, <strong>T</strong> and <strong>F</strong> have natural meanings: above <strong>T</strong> begins the Tolerating Zone, above <strong>F</strong> begins the Frustrated Zone. But when we shuffle the zones, <strong>and</strong> continue to use <strong>T</strong> and <strong>F</strong> as delimiters, we can&#8217;t hold onto these natural meanings. Even though I have assigned the <em>roles</em> of [T] and [F] in the only possible way in each row, the result still requires their <em>meanings</em> to vary from row to row. Sometimes they mark the preferred end of their corresponding zone, sometimes the opposite. </p>
<p>As a result, if we adopt the approach shown in Table 1, there will be no simple and natural way to describe the roles of [T] and [F] in Apdex-G. The only ways would be either to reproduce Table 1, or my explanation of why [T] and [F] occupy those positions in Table 1, or both. Since our aim is to keep Apdex-G as simple as possible, these are not attractive propositions. </p>
<p>An alternative approach would be to use thresholds called [S], [T], and [F], picking two as appropriate for each metric type, so as to retain the natural relationship between threshold names and roles that exists in the current spec. Table 2 illustrates how this idea might be applied:</p>
<table class="text" id="table2">
<tr>
<th class="width12">Preference</th>
<th class="width08">Number</th>
<th class="width24">Metric Type</th>
<th class="width12">Low Zone</th>
<th class="width10">Low Threshold</th>
<th class="width12">Middle Zone</th>
<th class="width10">High Threshold</th>
<th class="width12">High Zone</th>
</tr>
<tr class="even">
<td class="rowtitle" rowspan="3">High Values Preferred</td>
<td>1</td>
<td>Monotonic Increasing</td>
<td>Frustrated</td>
<td>[T]</td>
<td>Tolerating</td>
<td>[S]</td>
<td>Satisfied</td>
</tr>
<tr class="even">
<td>3</td>
<td>Service Quality Scores</td>
<td>Frustrated</td>
<td>[S]</td>
<td>Satisfied</td>
<td>[T]</td>
<td>Tolerating</td>
</tr>
<tr class="even">
<td>5</td>
<td>Avoid, Preferably Above</td>
<td>Tolerating</td>
<td>[F]</td>
<td>Frustrated</td>
<td>[S]</td>
<td>Satisfied</td>
</tr>
<tr class="even">
<td class="rowtitle" rowspan="3">Low Values Preferred</td>
<td>2</td>
<td>Monotonic Decreasing</td>
<td>Satisfied</td>
<td>[T]</td>
<td>Tolerating</td>
<td>[F]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>4</td>
<td>Controlled Service Times</td>
<td>Tolerating</td>
<td>[S]</td>
<td>Satisfied</td>
<td>[F]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>6</td>
<td>Avoid, Preferably Below</td>
<td>Satisfied</td>
<td>[F]</td>
<td>Frustrated</td>
<td>[T]</td>
<td>Tolerating</td>
</tr>
<caption>Table 2. Six possible alignments of continuous zones, using [S], [T], or [F] as thresholds.</caption>
</table>
<p>This approach has the merit of removing any confusion over threshold roles: above [S] is the Satisfied Zone, above [T] is the Tolerating Zone, above [F] is the Frustrated Zone. That much is natural and easy to specify. However, we have now introduced a complication into the Apdex-G spec: which pair of thresholds is appropriate for any given metric type? To answer that, we would still need to include a version of Table 2 in the spec. And if we have to do that, does this solution even qualify as a &#8220;generalization&#8221; of Apdex?</p>
<p><strong>Generic Threshold Names</strong></p>
<p>I therefore conclude that it would be better not to introduce the names [S], [T], and [F] when defining the purpose of thresholds in Apdex-G. Instead we should use generic threshold names that contain no implied references to the names of the Apdex performance zones. </p>
<p>An addendum (like Apdex-R, for response time metrics) can still specify domain-specific threshold names (like [T] and [F]) to replace the generic ones. But in Apdex-G, we would use names like [LT] and [HT], signifying the Low and High Threshold respectively, or completely neutral threshold labels like [T1] and [T2]. This last approach seems to work best when describing discontinuous zones, which I discuss next. But first, here&#8217;s Table 3, showing this conclusion:</p>
<table class="text" id="table3">
<tr>
<th class="width12">Preference</th>
<th class="width08">Number</th>
<th class="width24">Metric Type</th>
<th class="width12">Low Zone</th>
<th class="width10">Low Threshold</th>
<th class="width12">Middle Zone</th>
<th class="width10">High Threshold</th>
<th class="width12">High Zone</th>
</tr>
<tr class="even">
<td class="rowtitle" rowspan="3">High Values Preferred</td>
<td>1</td>
<td>Monotonic Increasing</td>
<td>Frustrated</td>
<td>[T1]</td>
<td>Tolerating</td>
<td>[T2]</td>
<td>Satisfied</td>
</tr>
<tr class="even">
<td>3</td>
<td>Service Quality Scores</td>
<td>Frustrated</td>
<td>[T1]</td>
<td>Satisfied</td>
<td>[T2]</td>
<td>Tolerating</td>
</tr>
<tr class="even">
<td>5</td>
<td>Avoid, Preferably Above</td>
<td>Tolerating</td>
<td>[T1]</td>
<td>Frustrated</td>
<td>[T2]</td>
<td>Satisfied</td>
</tr>
<tr class="even">
<td class="rowtitle" rowspan="3">Low Values Preferred</td>
<td>2</td>
<td>Monotonic Decreasing</td>
<td>Satisfied</td>
<td>[T1]</td>
<td>Tolerating</td>
<td>[T2]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>4</td>
<td>Controlled Service Times</td>
<td>Tolerating</td>
<td>[T1]</td>
<td>Satisfied</td>
<td>[T2]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>6</td>
<td>Avoid, Preferably Below</td>
<td>Satisfied</td>
<td>[T1]</td>
<td>Frustrated</td>
<td>[T2]</td>
<td>Tolerating</td>
</tr>
<caption>Table 3. Six possible alignments of continuous zones, using [T1] and [T2] as thresholds.</caption>
</table>
<p><strong>The Number of Thresholds</strong></p>
<p>As I discussed in my previous post, to support typical <a href="http://apdex.org/blog/?p=921#SPC">process control applications</a>, Apdex-G must accommodate bifurcated performance zones. The classic control diagram is symmetric, with both the Yellow/Tolerating and Red/Frustrated Zones being split equally on either side of the central Green/Satisfied Zone. </p>
<p>We can also imagine cases in which measurements of a process to be reported by Apdex are strongly skewed, so that the Frustrated Zone occurs on only one side of the target value. Both positive and negative skews are common in real-world measurement data, when the process or application being measured has a natural lower or upper bound. For example: </p>
<ul>
<li>timings are often postively skewed, because times cannot be less than zero, but may have no upper bound</li>
<li>bandwidth data may be negatively skewed, because network technology imposes an upper limit, but no lower limit</li>
</ul>
<p>With those possibilities in mind, Table 4 shows the three types of process control metrics. As in Tables 1-3, reading from left to right, each row shows the alignment of the Apdex performance zones, low to high, within the measurement domain. The only difference is that the Frustrated and Tolerating Zones are now split into two regions, one above and one below the Satisfied Zone. And in the case of the Frustrated Zone, one of those regions may be absent.</p>
<table class="text" id="table4">
<tr>
<th class="width05">No. [1]</th>
<th class="width15">Metric Type [2]</th>
<th class="width12 red">Low Red Zone [3]</th>
<th class="width05">Thr. 1 [4]</th>
<th class="width12 yellow"><span class="dark">Low Yellow Zone</span></th>
<th class="width05">Thr. 2</th>
<th class="width12 green">Green Zone</th>
<th class="width05">Thr. 3</th>
<th class="width12 yellow"><span class="dark">High Yellow Zone</span></th>
<th class="width05">Thr. 4</th>
<th class="width13 red">High Red Zone [5]</th>
</tr>
<tr class="even">
<td>7</td>
<td>Symmetric</td>
<td>Frustrated</td>
<td>[T1]</td>
<td>Tolerating</td>
<td>[T2]</td>
<td>Satisfied</td>
<td>[T3]</td>
<td>Tolerating</td>
<td>[T4]</td>
<td>Frustrated</td>
</tr>
<tr class="even">
<td>8</td>
<td>Negative Skew</td>
<td>Frustrated</td>
<td>[T1]</td>
<td>Tolerating</td>
<td>[T2]</td>
<td>Satisfied</td>
<td>[T3]</td>
<td>Tolerating</td>
<td></td>
<td></td>
</tr>
<tr class="even">
<td>9</td>
<td>Positive Skew</td>
<td></td>
<td></td>
<td>Tolerating</td>
<td>[T2]</td>
<td>Satisfied</td>
<td>[T3]</td>
<td>Tolerating</td>
<td>[T4]</td>
<td>Frustrated</td>
</tr>
<caption>Table 4. Three possible alignments of bifurcated zones for process control applications</caption>
</table>
<p><strong>Explanatory Notes</strong></p>
<ol>
<li>To enumerate the different types of metrics and zone alignments, these numbers continue the sequence begun in Table 3.</li>
<li>These names reflect the likely shape of the <a href="http://bit.ly/bWV7ag">data distribution</a> for each metric type.</li>
<li>The names and colors reflect the <a href="http://apdex.org/blog/?p=921#SPC">example</a>.</li>
<li>I use the abbreviation &#8220;Thr&#8221; for &#8220;Threshold&#8221; in this table.</li>
<li>For each metric type, Low Red Zone < Low Yellow Zone < Green Zone < High Yellow Zone < High Red Zone </li>
</ol>
<p><strong>Introducing Performance Intervals</strong></p>
<p>There are basically two ways to get from my earlier draft of <a href="http://apdex.org/blog/?p=920#spec">section [2.5] of Apdex-G</a> to a version that accommodates the nine zone alignments listed in Tables 3 and 4. Either we have to <em>add detail</em>, enumerating the nine metric types, or we have to be <em>less specific</em> about the exact composition of the three performance zones, the number of thresholds, and their names. I much prefer the second approach, because any generic rule specified in Apdex-G can be further refined and focused by a domain-specific Addendum like Apdex-R. </p>
<p>I believe we can retain the essential feature of Apdex&#8211;three distinct performance zones&#8211;while permitting more flexibility in their alignment. As illustrated in the diagrams below, we can do that by introducing an additional concept: a <strong>performance interval</strong>, which is defined to be a range of values within the measurement domain that share a common satisfaction or quality level (i.e. &#8216;Satisfied&#8217;, &#8216;Tolerating&#8217;, or &#8216;Frustrated&#8217;). Thresholds now define the boundaries of the performance intervals, not the performance zones, which are now simply a collection (union) of one or more intervals. The Apdex-G diagram illustrates Metric Type #7, Symmetric Process Control measurements.</p>
<p><img src="http://apdex.org/blog/wp-content/uploads/2010/07/Conceptual-Models.JPG" alt="Conceptual Models of Apdex and Apdex-G" title="Conceptual Models of Apdex and Apdex-G" width="910" height="350" class="aligncenter size-full wp-image-1542" /></p>
<p>This is not an entirely new concept. First, the proposed performance intervals can be defined as mathematical <a href="http://en.wikipedia.org/wiki/Interval_%28mathematics%29">intervals</a>, which will be convenient when we work on section [5] Reporting. Second, the current performance zones are already identical to performance intervals, so that the current model is just a trivial case of the general model. But by allowing subdivision of the measurement domain into an arbitrary number of intervals, then collecting those intervals into three performance zones, we permit Apdex-G to support all the different metric types we discussed above&#8211;and more if the need arises.</p>
<p><strong>Drafting New Definitions</strong></p>
<p>Below I propose language to describe these concepts. The left hand column shows how the current Apdex spec describes performance zones and thresholds; draft descriptions of the corresponding concepts in Apdex-G appear on the right. My goal in this draft is to define the new rules correctly, so that they are both precise and general. And since the concepts to be described in section [2.5.1] must also be spelled out systematically in section [7], the Glossary, I have chosen to work out the details using the Glossary format. When those definitions are finalized, I will edit them into a narrative format to create section [2.5.1]. </p>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;2.5 How Users Interpret Application Response Times.</strong></p>
<p>Users have a finite set of reactions or views by which they characterize application response time.  Each such group of time durations is called a performance zone.  Performance zones are defined by two thresholds – times where the zone begins and ends.  Apdex defines three such performance zones:</p>
<dl>
<dt>Satisfied</dt>
<dd>Response times that are fast enough to satisfy the user, who is therefore able to concentrate fully on the work at hand, with minimal negative impact on his/her thought process.</dd>
<dt>Tolerating</dt>
<dd>Responses in the tolerating zone are longer than those of the satisfied zone, exceeding the threshold at which the user notices how long it takes to interact with the system, and potentially impairing the user’s productivity.  Application responses in this zone are less than ideal but don’t by themselves threaten the usability of the application.</dd>
<dt>Frustrated</dt>
<dd>As response times increase, at some threshold the user becomes unhappy with slow performance entering the frustrated zone.  With response times in the frustrated zone, a casual user is likely to abandon a course of action and a production user is likely to cancel a Task.</dd>
</dl>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<em>My <a href="http://apdex.org/blog/?p=920#spec">first</a> draft, slightly modified:</em><br />
<strong>[2.5] Performance Zones</strong></p>
<p>Apdex assigns each measurement to a performance zone based on its value, where a performance zone is a range of values. Apdex defines three non-overlapping performance zones:</p>
<dl>
<dt>Satisfied Zone</dt>
<dd>This zone reflects the desired level of performance for the application or process being reported. Measurements in the satisfied zone usually indicate that the application or process being measured is meeting its targets and needs little or no attention.</dd>
<dt>Tolerating Zone</dt>
<dd>This zone reflects a level of performance below the desired level, but which can be tolerated. Measurements in the tolerating zone may signal the need for caution or greater attention to the application or process being measured.</dd>
<dt>Frustrated Zone</dt>
<dd>This zone reflects an unsatisfactory level of performance for the application or process being reported. Measurements in the frustrated zone may be associated with undesirable outcomes, and lead to remedial or abnormal actions. <em>&#8230; currently this is followed by some examples of abnormal actions &#8230; </em></dd>
</dl>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec (heading added):</em><br />
<strong>Thresholds</strong><br />
The three zones are defined by two thresholds: T and F, in seconds, as follows.</p>
<ul>
<li>Satisfied Zone = zero to T.</li>
<li>Tolerating Zone = Greater than T to F.</li>
<li>Frustrated Zone = Greater than F</li>
</ul>
<p>The value of F is four times the value T.  For example, if users perceive response time as tolerable beginning at 4 seconds then they will be frustrated at greater than 16 seconds.  The research that supports this model is described in Reference 1.  Further background information is available in References 2-4.</p>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<em>First draft (to be replaced):</em><br />
<strong>[2.5.1] Thresholds </strong></p>
<p><del>The three performance zones are defined by two threshold values: the tolerating threshold (T) and the frustrated threshold (F). In a typical zone alignment, the tolerating zone lies between the satisfied zone and the frustrated zone, and:</del></p>
<ul>
<li><del>The value T is contained in the satisfied zone, and is the boundary between the satisfied zone and the tolerating zone.</del></li>
<li><del>The value F is contained in the tolerating zone, and is the boundary between the tolerating zone and the frustrated zone.</del></li>
</ul>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<div class="specBox">
<div class="Apdex leftCol">
<em>Current spec:</em><br />
<strong>&sect;7. Glossary</strong></p>
<dl class="glossary">
<dt>Performance Zone</dt>
<dd>A range of time (between two time values) that a user waits for an application to respond during which his/her perception of the application’s responsiveness does not change.</dd>
<div class="clear"></div>
<dt>Satisfied Zone</dt>
<dd>The range of application response times between 0 and T in which the user is not affected by the response time.</dd>
<div class="clear"></div>
<dt>Tolerating Zone</dt>
<dd>The range of application response times between T and F in which the user is negatively affected by response time.</dd>
<div class="clear"></div>
<dt>Frustrated Zone</dt>
<dd>Any application response time above F in which the user is very negatively affected by response time.</dd>
<div class="clear"></div>
<dt>Threshold</dt>
<dd>The response time value that defines a boundary between performance zones.</dd>
<div class="clear"></div>
</dl>
<p><!--close Apdex--></div>
<div class="Apdex-G rightCol part2">
<em>First draft of proposed new terminology:</em><br />
<strong>[7] Glossary</strong></p>
<dl class="glossary">
<dt>Addendum</dt>
<dd>A supplemental Apdex specification containing rules that apply only to applications of the Apdex method within a specific domain.</dd>
<div class="clear"></div>
<dt>Addendum Name</dt>
<dd>An addendum is named Apdex-X, where X is a suffix appropriate to a particular domain. Examples might be Apdex-R for response time, Apdex-V for VOIP quality, and so on.</dd>
<div class="clear"></div>
<dt>Tool</dt>
<dd>The measurement and reporting system (devices, software, etc.) that generates Apdex values.</dd>
<div class="clear"></div>
<dt>Measurement Domain</dt>
<dd>The set of all possible values from which the input to an Apdex calculation is drawn. Unless limited by a domain-specific <strong>Addendum</strong>, this will be the real number domain (-&infin;, &infin;)</dd>
<div class="clear"></div>
<dt>Satisfaction Level</dt>
<dd>One of three categories (<strong>Satisfied</strong>, <strong>Tolerating</strong>, or <strong>Frustrated</strong>) that reflects how an organization using Apdex evaluates the performance of the application or process being reported. For the Apdex method to be applicable to a <strong>Measurement Domain</strong>, it must be possible to assign a Satisfaction Level to any value within the Measurement Domain.</dd>
<div class="clear"></div>
<dt>Quality Level</dt>
<dd>An alternative term for <strong>Satisfaction Level</strong>.</dd>
<div class="clear"></div>
<dt>Satisfied</dt>
<dd>A <strong>Satisfaction Level</strong> that reflects the desired level of performance for the application or process being reported. Measurements classified as Satisfied usually indicate that the application or process being measured is meeting its targets and needs little or no attention.</dd>
<div class="clear"></div>
<dt>Tolerating</dt>
<dd>A <strong>Satisfaction Level</strong> that reflects a level of performance below the desired level, but which can be tolerated. Measurements classified as Tolerating may signal the need for caution or greater attention to the application or process being measured.</dd>
<div class="clear"></div>
<dt>Frustrated</dt>
<dd>A <strong>Satisfaction Level</strong> that reflects an unsatisfactory level of performance for the application or process being reported. Measurements classified as Frustrated may be associated with undesirable outcomes, and lead to remedial or abnormal actions.</dd>
<div class="clear"></div>
<dt>Performance Interval</dt>
<dd>A partition of the <strong>Measurement Domain</strong> defined by <strong>Thresholds</strong>. All measurement values within a Performance Interval have the same <strong>Satisfaction Level</strong>, which is therefore considered to be an attribute of the Performance Interval. There must be at least three Performance Intervals, one for each of the three Satisfaction Levels. When the context is unambiguous, the term &#8216;Performance Interval&#8217; may be shortened to  <strong>Interval</strong>.</em></dd>
<div class="clear"></div>
<dt>Performance Interval Name</dt>
<dd>Performance Intervals have user-assigned names. Tools may assign default generic names (such as PI1, PI2, &#8230; or PI<sub>1</sub>, PI<sub>2</sub>, &#8230;) or names signifying the <strong>Satisfaction Level</strong> of the Interval (such as PIS, PIT1, PIT2, PIF1, &#8230; or PI<sub>s</sub>, PI<sub>t1</sub>,  PI<sub>t2</sub>, PI<sub>f1</sub> &#8230;). Default names are assigned to Intervals based on their order, from low to high. An <strong>Addendum</strong> may use domain-specific names and orderings.</dd>
<div class="clear"></div>
<dt>Threshold</dt>
<dd>One of N distinct values within the <strong>Measurement Domain</strong>, which partition the Measurement Domain into N+1 contiguous non-empty <strong>Performance Intervals</strong> in such a way that measurement values within a Performance Interval have identical <strong>Satisfaction Levels</strong>. Each Threshold lies within one and only one Performance Interval. Unless otherwise specified by a domain-specific <strong>Addendum</strong>, a Threshold lies within the Performance Interval for which it acts as the upper bound.</dd>
<div class="clear"></div>
<dt>Threshold Name</dt>
<dd>Threshold have user-assigned names. Tools may assign default generic names (T1, T2, &#8230; or T<sub>1</sub>, T<sub>2</sub>, &#8230;). Default names are assigned to thresholds based on their order, from low to high. An <strong>Addendum</strong> may use domain-specific names and orderings.</dd>
<div class="clear"></div>
<dt>Satisfied Zone</dt>
<dd>The union of all <strong>Performance Intervals</strong> that have the <strong>Satisfaction Level</strong> of &#8216;Satisfied&#8217;. </dd>
<div class="clear"></div>
<dt>Tolerating Zone</dt>
<dd>The union of all <strong>Performance Intervals</strong> that have the <strong>Satisfaction Level</strong> of &#8216;Tolerating&#8217;. </dd>
<div class="clear"></div>
<dt>Frustrated Zone</dt>
<dd>The union of all <strong>Performance Intervals</strong> that have the <strong>Satisfaction Level</strong> of &#8216;Frustrated&#8217;. </dd>
<div class="clear"></div>
<dt>Performance Zone</dt>
<dd>The Satisfied Zone, the Tolerating Zone, or the Frustrated Zone.</dd>
<div class="clear"></div>
</dl>
<p><!--close Apdex-G--></div>
<div class="clear"></div>
<p><!--close specBox--></div>
<p><strong>Next Steps &#8230;</strong></p>
<p>The definitions above may be clumsy in places. Nevertheless, I will add them to the <a href="http://apdex.org/blog/?p=710">Extensible Apdex Glossary</a> once this is posted. I expect that refinements will emerge as the complete document takes shape. Note also that the list of proposed Apdex-G definitions above appears in an order that eliminates most forward references, to maximize its readability. In the Glossary, of course, terms will be listed be in alphabetical order. </p>
<p>As usual, all these proposals are open for public discussion. Please use the comment form below to contribute any comments, suggestions, or questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://apdex.org/blog/?feed=rss2&amp;p=1390</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
