<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: Fractured YEARFRAC and Discounted DISC</title>
	<atom:link href="http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fractured-yearfrac-and-discounted-disc</link>
	<description>Thinking the unthinkable, pondering the imponderable, effing the ineffable and scruting the inscrutable</description>
	<lastBuildDate>Tue, 07 Feb 2012 11:20:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: mikewoodhouse</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-2003</link>
		<dc:creator>mikewoodhouse</dc:creator>
		<pubDate>Wed, 16 Jul 2008 14:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-2003</guid>
		<description>(Coming somewhat late to the party, but better than never, say I)&lt;br/&gt;&lt;br/&gt;Speaking as a front-office (dealing room) software developer of (blimey) about 20 years now, I can attest that I have never seen any of the functions mentioned used in anger in an investment banking context. Which appears to be a Good Thing.&lt;br/&gt;&lt;br/&gt;As mentioned briefly above, the functions are inadequate in their coverage of day count bases and many other &quot;features&quot; of the real-world financial environment. Because some cases can&#039;t be handled at all, there&#039;s little interest in checking Excel&#039;s accuracy at all in this area. There&#039;s ample money at stake for the banks to invest in making sure they can handle everything, and to be able to extend the libraries as innovation occurs within the markets.&lt;br/&gt;&lt;br/&gt;I&#039;d suggest that this is a large part of why the problems have yet to make it into a feature list at MS - the users whose voice would be loudest in complaining aren&#039;t interested.&lt;br/&gt;&lt;br/&gt;Frankly, these calculations are far too important to be left to Microsoft, which is a good thing for the Redmond folk, I&#039;d suggest.</description>
		<content:encoded><![CDATA[<p>(Coming somewhat late to the party, but better than never, say I)</p>
<p>Speaking as a front-office (dealing room) software developer of (blimey) about 20 years now, I can attest that I have never seen any of the functions mentioned used in anger in an investment banking context. Which appears to be a Good Thing.</p>
<p>As mentioned briefly above, the functions are inadequate in their coverage of day count bases and many other &#8220;features&#8221; of the real-world financial environment. Because some cases can&#8217;t be handled at all, there&#8217;s little interest in checking Excel&#8217;s accuracy at all in this area. There&#8217;s ample money at stake for the banks to invest in making sure they can handle everything, and to be able to extend the libraries as innovation occurs within the markets.</p>
<p>I&#8217;d suggest that this is a large part of why the problems have yet to make it into a feature list at MS &#8211; the users whose voice would be loudest in complaining aren&#8217;t interested.</p>
<p>Frankly, these calculations are far too important to be left to Microsoft, which is a good thing for the Redmond folk, I&#8217;d suggest.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1980</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 09 Jun 2008 18:49:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1980</guid>
		<description>I&#039;ve worked on date codes at a financial software company and as a quant at a bank. You&#039;d be mad to trust Excel to get date arithmetic correct. And there are way more day count basis types than the few that Excel supports. I can think of four different 30/360 types. &lt;br/&gt;&lt;br/&gt;Try googling &quot;On the accuracy of statistical procedures in Microsoft Excel&quot; for another area that&#039;s been broken for a long time.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve worked on date codes at a financial software company and as a quant at a bank. You&#8217;d be mad to trust Excel to get date arithmetic correct. And there are way more day count basis types than the few that Excel supports. I can think of four different 30/360 types. </p>
<p>Try googling &#8220;On the accuracy of statistical procedures in Microsoft Excel&#8221; for another area that&#8217;s been broken for a long time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James Justin Harrell</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1979</link>
		<dc:creator>James Justin Harrell</dc:creator>
		<pubDate>Mon, 09 Jun 2008 15:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1979</guid>
		<description>Somebody should write a book about this OOXML fiasco. I would be very interested in reading that, and I haven&#039;t read a book in years.</description>
		<content:encoded><![CDATA[<p>Somebody should write a book about this OOXML fiasco. I would be very interested in reading that, and I haven&#8217;t read a book in years.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1978</link>
		<dc:creator>Nate</dc:creator>
		<pubDate>Tue, 03 Jun 2008 02:24:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1978</guid>
		<description>Well gosh, can you define a YEARFRAC function that returns a result that is free of bugs?  One that just tells me the current best known result of a year fraction according to rules that I specify?&lt;br/&gt;&lt;br/&gt;No?&lt;br/&gt;&lt;br/&gt;Then all these damn spreadsheets are useful... and I&#039;ll just have to tell my boss that we have to go back to doing financial analysis by hand.&lt;br/&gt;&lt;br/&gt;Thanks for dragging me back 30 years.  Those bell bottoms are going to look totally hot now.</description>
		<content:encoded><![CDATA[<p>Well gosh, can you define a YEARFRAC function that returns a result that is free of bugs?  One that just tells me the current best known result of a year fraction according to rules that I specify?</p>
<p>No?</p>
<p>Then all these damn spreadsheets are useful&#8230; and I&#8217;ll just have to tell my boss that we have to go back to doing financial analysis by hand.</p>
<p>Thanks for dragging me back 30 years.  Those bell bottoms are going to look totally hot now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1977</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Mon, 02 Jun 2008 04:21:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1977</guid>
		<description>You wrote:&lt;br/&gt;&lt;br/&gt;&lt;i&gt;On the one hand, the ODF TC really would like to finish its work on ODF 1.2, and part of that is completing the OpenFormula work. A key remaining part of OpenFormula is to ensure that our financial functions synch up with how Excel works.&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;I can appreciate how you strive for accuracy. You really want Excel spreadsheets converted into ODF to return the same numbers which Excel returns. But Excel often gives wrong answers.&lt;br/&gt;&lt;br/&gt;If I was writing a new standard, I would want that standard to produce correct answers. It&#039;s ridiculous that leap year bugs for example should be preserved forever.&lt;br/&gt;&lt;br/&gt;So why not do this: there should not be a single YEARFRAC function. Rather, there should be, for example, EXCEL98_YEARFRAC, EXCEL2007_YEARFRAC, DIS29500_YEARFRAC and so on. Each function would return exactly the values returned by the YEARFRAC function on the specified platform, bugs and all. You&#039;d also write a ISO26300_YEARFRAC function which fixes all known bugs. Of course, if some bugs are subsequently found in your own function you can add a new ISO26300v2_YEARFRAC function which fixes the previous.&lt;br/&gt;&lt;br/&gt;When converting a document from Excel 2007 or any other spreadsheet, function references to YEARFRAC are modified to refer to the platform-specific function name. That will ensure that imported spreadsheet calculations still return the same values.&lt;br/&gt;&lt;br/&gt;The user (spreadsheet editor) will be able to make a conscious decision about whether to retain the platform-specific function names (and their bugs) or change to different functions which aren&#039;t buggy.&lt;br/&gt;&lt;br/&gt;Definitions of the EXCEL2007_* functions and so on seem to be hard to nail down. These could be documented as extensions to ODF,  with the proviso that a document is ODF compliant only if it uses only published extensions.&lt;br/&gt;&lt;br/&gt;Publication of the extensions can be via written specification and/or by  a reference implementation. A reference implementation would contain code in some well-defined language which could be used as a plugin to any ODF compatible tool. The extension could be named by a URL and the tool would download the URL and compile (or interpret) the code directly.&lt;br/&gt;&lt;br/&gt;Yes, it makes a much bigger function list. But the details can be published separately. And you need to be able to preserve the different bugs of Excel 98, Excel 2007 and so on, without crippling people who _don&#039;t_ want to use functions containing those bugs.</description>
		<content:encoded><![CDATA[<p>You wrote:</p>
<p><i>On the one hand, the ODF TC really would like to finish its work on ODF 1.2, and part of that is completing the OpenFormula work. A key remaining part of OpenFormula is to ensure that our financial functions synch up with how Excel works.</i></p>
<p>I can appreciate how you strive for accuracy. You really want Excel spreadsheets converted into ODF to return the same numbers which Excel returns. But Excel often gives wrong answers.</p>
<p>If I was writing a new standard, I would want that standard to produce correct answers. It&#8217;s ridiculous that leap year bugs for example should be preserved forever.</p>
<p>So why not do this: there should not be a single YEARFRAC function. Rather, there should be, for example, EXCEL98_YEARFRAC, EXCEL2007_YEARFRAC, DIS29500_YEARFRAC and so on. Each function would return exactly the values returned by the YEARFRAC function on the specified platform, bugs and all. You&#8217;d also write a ISO26300_YEARFRAC function which fixes all known bugs. Of course, if some bugs are subsequently found in your own function you can add a new ISO26300v2_YEARFRAC function which fixes the previous.</p>
<p>When converting a document from Excel 2007 or any other spreadsheet, function references to YEARFRAC are modified to refer to the platform-specific function name. That will ensure that imported spreadsheet calculations still return the same values.</p>
<p>The user (spreadsheet editor) will be able to make a conscious decision about whether to retain the platform-specific function names (and their bugs) or change to different functions which aren&#8217;t buggy.</p>
<p>Definitions of the EXCEL2007_* functions and so on seem to be hard to nail down. These could be documented as extensions to ODF,  with the proviso that a document is ODF compliant only if it uses only published extensions.</p>
<p>Publication of the extensions can be via written specification and/or by  a reference implementation. A reference implementation would contain code in some well-defined language which could be used as a plugin to any ODF compatible tool. The extension could be named by a URL and the tool would download the URL and compile (or interpret) the code directly.</p>
<p>Yes, it makes a much bigger function list. But the details can be published separately. And you need to be able to preserve the different bugs of Excel 98, Excel 2007 and so on, without crippling people who _don&#8217;t_ want to use functions containing those bugs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Archimerged &#34;Ark&#34;</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1976</link>
		<dc:creator>Archimerged &#34;Ark&#34;</dc:creator>
		<pubDate>Thu, 29 May 2008 21:22:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1976</guid>
		<description>@anonymous of Thu May 29, 09:34:00 AM EDT&lt;br/&gt;&lt;br/&gt;Agreed.  Exclude the first day and include the last, especially if this is the standard practice.  I was arguing against the possibility of having both the first and last day in the range, which as I recall some comments suggested was possible.</description>
		<content:encoded><![CDATA[<p>@anonymous of Thu May 29, 09:34:00 AM EDT</p>
<p>Agreed.  Exclude the first day and include the last, especially if this is the standard practice.  I was arguing against the possibility of having both the first and last day in the range, which as I recall some comments suggested was possible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1975</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Thu, 29 May 2008 13:34:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1975</guid>
		<description>@Archimerged &quot;ark&quot;&lt;br/&gt;&lt;br/&gt;re your discussion of start and end - I&#039;d like to point out that number theory implies the reverse of your recommendation - the last day should count - the first should be considered day 0 - not day 1.  Here&#039;s why.&lt;br/&gt;&lt;br/&gt;   1. The definition of &#039;last day&#039; implies that it is part of the range and it is traditional practice to specify COB (Close Of Business) as the time on the last date.&lt;br/&gt;&lt;br/&gt;   2. Number theory starts counting from 0.  This means that the difference between 3 and 5 being 2 (resulting from simple subtraction may seem ambiguous, but consider the border case of the difference between 0 and 3 (3 days delta) - again simple subtraction.  By your logic I&#039;d have to subtract 1 from 3 (because 3 is not part of the range), resulting in a difference of 2, then add one because subtraction inherently does not count the &#039;first&#039; day.  Finally, the difference between 0 and 0 (same day) is still 0.  (Remember - it was the Phoenicians&#039; invention of 0 that finally made mathematics into a viable tool for counting and accounting work.)&lt;br/&gt;&lt;br/&gt;Finally, consider payments on a loan.  This is one use of the difference between two dates.  Counting the first day as part of the range makes sense as does that last day and everything hangs together (we&#039;re talking delta-days here - not absolute days) provided that you start with day 0 instead of day 1.  Paying off a loan on the first day (as day 1) results in unnecesary complications to your equations which also results in more potential for error.  Treating the first day as day 0 cleans up a lot of issues and simplifies your logic.</description>
		<content:encoded><![CDATA[<p>@Archimerged &#8220;ark&#8221;</p>
<p>re your discussion of start and end &#8211; I&#8217;d like to point out that number theory implies the reverse of your recommendation &#8211; the last day should count &#8211; the first should be considered day 0 &#8211; not day 1.  Here&#8217;s why.</p>
<p>   1. The definition of &#8216;last day&#8217; implies that it is part of the range and it is traditional practice to specify COB (Close Of Business) as the time on the last date.</p>
<p>   2. Number theory starts counting from 0.  This means that the difference between 3 and 5 being 2 (resulting from simple subtraction may seem ambiguous, but consider the border case of the difference between 0 and 3 (3 days delta) &#8211; again simple subtraction.  By your logic I&#8217;d have to subtract 1 from 3 (because 3 is not part of the range), resulting in a difference of 2, then add one because subtraction inherently does not count the &#8216;first&#8217; day.  Finally, the difference between 0 and 0 (same day) is still 0.  (Remember &#8211; it was the Phoenicians&#8217; invention of 0 that finally made mathematics into a viable tool for counting and accounting work.)</p>
<p>Finally, consider payments on a loan.  This is one use of the difference between two dates.  Counting the first day as part of the range makes sense as does that last day and everything hangs together (we&#8217;re talking delta-days here &#8211; not absolute days) provided that you start with day 0 instead of day 1.  Paying off a loan on the first day (as day 1) results in unnecesary complications to your equations which also results in more potential for error.  Treating the first day as day 0 cleans up a lot of issues and simplifies your logic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1971</link>
		<dc:creator>Nate</dc:creator>
		<pubDate>Tue, 27 May 2008 20:07:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1971</guid>
		<description>@Luc - which is hilarious, given that it&#039;s apparently ONE ATTRIBUTE!  They have to change a yes/no to a true/false.&lt;br/&gt;&lt;br/&gt;Amazing.</description>
		<content:encoded><![CDATA[<p>@Luc &#8211; which is hilarious, given that it&#8217;s apparently ONE ATTRIBUTE!  They have to change a yes/no to a true/false.</p>
<p>Amazing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: BobFolkerts</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1970</link>
		<dc:creator>BobFolkerts</dc:creator>
		<pubDate>Tue, 27 May 2008 16:30:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1970</guid>
		<description>When does a year start?  Is this based upon local time for the computer running a spreadsheet, or something like UCT?  This could make a difference, especially if you are looking at time differences between events at different locations.</description>
		<content:encoded><![CDATA[<p>When does a year start?  Is this based upon local time for the computer running a spreadsheet, or something like UCT?  This could make a difference, especially if you are looking at time differences between events at different locations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Archimerged &#34;Ark&#34;</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1969</link>
		<dc:creator>Archimerged &#34;Ark&#34;</dc:creator>
		<pubDate>Mon, 26 May 2008 23:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1969</guid>
		<description>Rob,&lt;br/&gt;&lt;br/&gt;Regarding Mark’s comment and the traditional method:&lt;br/&gt;&lt;br/&gt;You wrote “The traditional method, before computers, would be to factor out the number of whole years...”&lt;br/&gt;&lt;br/&gt;That definition is based on an approximation similar to&lt;br/&gt;&lt;br/&gt;2*(a+b) / (c+d) ≅ a/c + b/d,&lt;br/&gt;&lt;br/&gt;which introduces an unnecessary and unjustified error in the calculation, and accounts for the difference between your value for the ISO definition in example 4, and the Excel value.&lt;br/&gt;&lt;br/&gt;As you wrote,&lt;br/&gt;&lt;br/&gt;YEARFRAC = (interval between start-date and end-date) / length of year.&lt;br/&gt;&lt;br/&gt;Those words leave no place for approximating 2(a+b)/(c+d) as a/c + b/d.&lt;br/&gt;&lt;br/&gt;Note that (c+d)/2 is the average year length and we are assuming an interval beginning in one year and ending in the next.  The three-year case would involve&lt;br/&gt;&lt;br/&gt;3(a+e+b)/(c+e+d) ≅ a/c + e/e + b/d,&lt;br/&gt;&lt;br/&gt;with (c+e+d)/3 the average year length, and the N-year case would be&lt;br/&gt;&lt;br/&gt;N(a+e+f+...+b)/(c+e+f+...+b) ≅ a/c + e/e + f/f + ... + b/d.&lt;br/&gt;&lt;br/&gt;These approximations might have been used in the old days, but they can&#039;t be described as “actual.”&lt;br/&gt;&lt;br/&gt;I gather that you have some influence over what goes into these standards?  In that case, I would suggest that the standard ought to use definitions such as that given below for YEARFRAC, instead of words such as&lt;br/&gt;&lt;br/&gt;&quot;If the Actual/actual basis is used, the year length used is the average length of the years that the range crosses, regardless of where start-date and end-date fall in their respective years.&quot;&lt;br/&gt;&lt;br/&gt;Instead, it should say&lt;br/&gt;&lt;br/&gt;&quot;YEARFRAC is the number of days in the interval times the number of years which the interval includes, divided by the total number of days in those years.  The earlier of the two dates specifies the first day of the interval, and the later of the two dates specifies the first day not included in the interval.&quot;&lt;br/&gt;&lt;br/&gt;Then, it should elaborate:&lt;br/&gt;&lt;br/&gt;Let A be the earlier date and B the later date.&lt;br/&gt;&lt;br/&gt;Let B−A be the (certainly non-negative) number of days from A to B, zero if A==B.&lt;br/&gt;&lt;br/&gt;(As an aside, A is the first day of the interval, and B−1 is the last day (inclusive).  The interval begins at the beginning of the first day and ends at the end of the last day.  A zero length interval ends the instant before it begins, and a one day interval begins at the beginning and ends at the end of the its single day.  How could an interval possibly mean anything else?&lt;br/&gt;&lt;br/&gt;Well, we could say the interval ends at the beginning of the first day after the end, i.e., at the beginning of day B, so that a zero length interval ends at the exact instant it begins.&lt;br/&gt;&lt;br/&gt;In any case, no reasonable definition would have the interval end at the beginning of the last day.  Thus B is obviously the first day not belonging to the interval and no reasonable person could say otherwise.  End of aside about interval definitions.)&lt;br/&gt;&lt;br/&gt;Let x.y be the year of date x, x.m be the month, and x.d be the day.  Let date(x.y,x.m,x.d) be identical to x for all dates x.&lt;br/&gt;&lt;br/&gt;Let F be the first day of the first year of the interval, and let L be the last day of the last year included in the interval:&lt;br/&gt;&lt;br/&gt;F = date( A.y, 1, 1 ), and&lt;br/&gt;&lt;br/&gt;L = date( (B−1).y, 12, 31 ).&lt;br/&gt;&lt;br/&gt;Let N be the number of years covered by the interval:&lt;br/&gt;&lt;br/&gt;N = L.y + 1 − F.y.&lt;br/&gt;&lt;br/&gt;Let D be the total number of days in the years covered by the interval.&lt;br/&gt;&lt;br/&gt;D = L + 1 − F.&lt;br/&gt;&lt;br/&gt;Obviously, the &quot;average length of&lt;br/&gt;the years the range crosses&quot; is&lt;br/&gt;&lt;br/&gt;D / N.&lt;br/&gt;&lt;br/&gt;Then clearly the description quoted above (from the &quot;return value&quot; section) cannot mean anything other than&lt;br/&gt;&lt;br/&gt;YEARFRAC = N * (B − A) / D.&lt;br/&gt;&lt;br/&gt;----&lt;br/&gt;&lt;br/&gt;The first description (from the &quot;description&quot; section) requires us to discard an obviously incorrect interpretation (that all years of the interval should be regarded as having length 366 if the interval crosses February 29).  Also, it needs an additional primitive function, F29(X,Y), which is zero if the interval does not include February 29, and one if it does.  This very need makes it extremely suspect, and I think the only reasonable interpretation of the standard it to regard that description as a holdover from an early draft which was corrected in one place but not another. However, if you exclude the obviously wrong interpretation, it does describe a well-defined calculation, as follows:&lt;br/&gt;&lt;br/&gt;F = date( A.y, 1, 1 )&lt;br/&gt;L = date( (B−1).y, 12, 31 )&lt;br/&gt;N = L.y + 1 − F.y&lt;br/&gt;if N == 1, then&lt;br/&gt;&#160;&#160;&#160;YEARLEN = 365 + F29(A, B)&lt;br/&gt;else&lt;br/&gt;&#160;&#160;&#160;AEND = date( A.y, 12, 31 )&lt;br/&gt;&#160;&#160;&#160;BSTART = date( (B−1).y, 1, 1 )&lt;br/&gt;&#160;&#160;&#160;YEARLEN = (365 + F29(A, AEND)&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;+ BSTART − (AEND + 1)&lt;br/&gt;&#160;&#160;&#160;&#160;&#160;+ 365 + F29(BSTART, B)) / N &lt;br/&gt;endif&lt;br/&gt;YEARFRAC = (B−A) / YEARLEN</description>
		<content:encoded><![CDATA[<p>Rob,</p>
<p>Regarding Mark’s comment and the traditional method:</p>
<p>You wrote “The traditional method, before computers, would be to factor out the number of whole years&#8230;”</p>
<p>That definition is based on an approximation similar to</p>
<p>2*(a+b) / (c+d) ≅ a/c + b/d,</p>
<p>which introduces an unnecessary and unjustified error in the calculation, and accounts for the difference between your value for the ISO definition in example 4, and the Excel value.</p>
<p>As you wrote,</p>
<p>YEARFRAC = (interval between start-date and end-date) / length of year.</p>
<p>Those words leave no place for approximating 2(a+b)/(c+d) as a/c + b/d.</p>
<p>Note that (c+d)/2 is the average year length and we are assuming an interval beginning in one year and ending in the next.  The three-year case would involve</p>
<p>3(a+e+b)/(c+e+d) ≅ a/c + e/e + b/d,</p>
<p>with (c+e+d)/3 the average year length, and the N-year case would be</p>
<p>N(a+e+f+&#8230;+b)/(c+e+f+&#8230;+b) ≅ a/c + e/e + f/f + &#8230; + b/d.</p>
<p>These approximations might have been used in the old days, but they can&#8217;t be described as “actual.”</p>
<p>I gather that you have some influence over what goes into these standards?  In that case, I would suggest that the standard ought to use definitions such as that given below for YEARFRAC, instead of words such as</p>
<p>&#8220;If the Actual/actual basis is used, the year length used is the average length of the years that the range crosses, regardless of where start-date and end-date fall in their respective years.&#8221;</p>
<p>Instead, it should say</p>
<p>&#8220;YEARFRAC is the number of days in the interval times the number of years which the interval includes, divided by the total number of days in those years.  The earlier of the two dates specifies the first day of the interval, and the later of the two dates specifies the first day not included in the interval.&#8221;</p>
<p>Then, it should elaborate:</p>
<p>Let A be the earlier date and B the later date.</p>
<p>Let B−A be the (certainly non-negative) number of days from A to B, zero if A==B.</p>
<p>(As an aside, A is the first day of the interval, and B−1 is the last day (inclusive).  The interval begins at the beginning of the first day and ends at the end of the last day.  A zero length interval ends the instant before it begins, and a one day interval begins at the beginning and ends at the end of the its single day.  How could an interval possibly mean anything else?</p>
<p>Well, we could say the interval ends at the beginning of the first day after the end, i.e., at the beginning of day B, so that a zero length interval ends at the exact instant it begins.</p>
<p>In any case, no reasonable definition would have the interval end at the beginning of the last day.  Thus B is obviously the first day not belonging to the interval and no reasonable person could say otherwise.  End of aside about interval definitions.)</p>
<p>Let x.y be the year of date x, x.m be the month, and x.d be the day.  Let date(x.y,x.m,x.d) be identical to x for all dates x.</p>
<p>Let F be the first day of the first year of the interval, and let L be the last day of the last year included in the interval:</p>
<p>F = date( A.y, 1, 1 ), and</p>
<p>L = date( (B−1).y, 12, 31 ).</p>
<p>Let N be the number of years covered by the interval:</p>
<p>N = L.y + 1 − F.y.</p>
<p>Let D be the total number of days in the years covered by the interval.</p>
<p>D = L + 1 − F.</p>
<p>Obviously, the &#8220;average length of<br />the years the range crosses&#8221; is</p>
<p>D / N.</p>
<p>Then clearly the description quoted above (from the &#8220;return value&#8221; section) cannot mean anything other than</p>
<p>YEARFRAC = N * (B − A) / D.</p>
<p>&#8212;-</p>
<p>The first description (from the &#8220;description&#8221; section) requires us to discard an obviously incorrect interpretation (that all years of the interval should be regarded as having length 366 if the interval crosses February 29).  Also, it needs an additional primitive function, F29(X,Y), which is zero if the interval does not include February 29, and one if it does.  This very need makes it extremely suspect, and I think the only reasonable interpretation of the standard it to regard that description as a holdover from an early draft which was corrected in one place but not another. However, if you exclude the obviously wrong interpretation, it does describe a well-defined calculation, as follows:</p>
<p>F = date( A.y, 1, 1 )<br />L = date( (B−1).y, 12, 31 )<br />N = L.y + 1 − F.y<br />if N == 1, then<br />&nbsp;&nbsp;&nbsp;YEARLEN = 365 + F29(A, B)<br />else<br />&nbsp;&nbsp;&nbsp;AEND = date( A.y, 12, 31 )<br />&nbsp;&nbsp;&nbsp;BSTART = date( (B−1).y, 1, 1 )<br />&nbsp;&nbsp;&nbsp;YEARLEN = (365 + F29(A, AEND)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ BSTART − (AEND + 1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ 365 + F29(BSTART, B)) / N <br />endif<br />YEARFRAC = (B−A) / YEARLEN</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luc Bollen</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1968</link>
		<dc:creator>Luc Bollen</dc:creator>
		<pubDate>Mon, 26 May 2008 12:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1968</guid>
		<description>@Orcmid: I agree with your understanding about OOXML *Transitional&quot; being substantially supported in Office 2007, and OOXML *Strict* being introduced with Office 14.&lt;br/&gt;&lt;br/&gt;What strikes me is that the ambiguity about OOXML Transitional and OOXML Strict is introduced by Doug and Jason themselves.  They are probably the most knowledgeable people at Microsoft about this nomenclature, but still Doug simply said &quot;Microsoft would not implement the *final* ISO version of OOXML until Office 14 ships&quot;.&lt;br/&gt;&lt;br/&gt;Is this simply a negligence, or is it meant to open the door for a more drastic move by Microsoft at a later date ?&lt;br/&gt;In any case, I read this sentence as meaning that Microsoft will not tweak Office 2007 at all in SP2 to support the changes introduced by the BRM in OOXML Transitional.</description>
		<content:encoded><![CDATA[<p>@Orcmid: I agree with your understanding about OOXML *Transitional&#8221; being substantially supported in Office 2007, and OOXML *Strict* being introduced with Office 14.</p>
<p>What strikes me is that the ambiguity about OOXML Transitional and OOXML Strict is introduced by Doug and Jason themselves.  They are probably the most knowledgeable people at Microsoft about this nomenclature, but still Doug simply said &#8220;Microsoft would not implement the *final* ISO version of OOXML until Office 14 ships&#8221;.</p>
<p>Is this simply a negligence, or is it meant to open the door for a more drastic move by Microsoft at a later date ?<br />In any case, I read this sentence as meaning that Microsoft will not tweak Office 2007 at all in SP2 to support the changes introduced by the BRM in OOXML Transitional.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Open Sourcerer</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1967</link>
		<dc:creator>The Open Sourcerer</dc:creator>
		<pubDate>Fri, 23 May 2008 23:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1967</guid>
		<description>@orcmid&lt;br/&gt;&lt;br/&gt;Of course, now we have an official appeal against DIS29500 the game becomes much, much longer.&lt;br/&gt;&lt;br/&gt;Perhaps they had &quot;wind&quot; of the appeal?&lt;br/&gt;&lt;br/&gt;This could drag on for years...</description>
		<content:encoded><![CDATA[<p>@orcmid</p>
<p>Of course, now we have an official appeal against DIS29500 the game becomes much, much longer.</p>
<p>Perhaps they had &#8220;wind&#8221; of the appeal?</p>
<p>This could drag on for years&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orcmid</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1966</link>
		<dc:creator>orcmid</dc:creator>
		<pubDate>Fri, 23 May 2008 04:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1966</guid>
		<description>opensourcerer: The press release is a bit more clear than that reading of Mahugh&#039;s comments.  The claim is that current Office 2007 is pretty much already IS29500 *transitional* and I don&#039;t know that they&#039;ll tweak it much with SP2 next year.  My reading is that the next version of office is where we&#039;ll see movement to IS29500 *strict*.&lt;br/&gt;&lt;br/&gt;The exact quote is that &quot;IS29500 ... is already substantially supported in Office 2007, and the company plans to update that support in the next major version release of the Microsoft Office system, code-named &#039;Office 14.&#039;&quot;</description>
		<content:encoded><![CDATA[<p>opensourcerer: The press release is a bit more clear than that reading of Mahugh&#8217;s comments.  The claim is that current Office 2007 is pretty much already IS29500 *transitional* and I don&#8217;t know that they&#8217;ll tweak it much with SP2 next year.  My reading is that the next version of office is where we&#8217;ll see movement to IS29500 *strict*.</p>
<p>The exact quote is that &#8220;IS29500 &#8230; is already substantially supported in Office 2007, and the company plans to update that support in the next major version release of the Microsoft Office system, code-named &#8216;Office 14.&#8217;&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orcmid</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1965</link>
		<dc:creator>orcmid</dc:creator>
		<pubDate>Fri, 23 May 2008 03:54:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1965</guid>
		<description>Rob, I have been nosing around some more and I can report on the examples now.&lt;br/&gt;&lt;br/&gt;All but the last example for YEARFRAC in the IS29500 you have are identical to the ones in ECMA-376.  They have not changed.&lt;br/&gt;&lt;br/&gt;The final example, illustrating a case with year divisor of 365.33333, is new in IS29500.&lt;br/&gt;&lt;br/&gt;All of the examples are reporting what Excel produces.  I verified them with Excel 2003 and expect no difference in Excel 2007 and probably not Excel 2000.&lt;br/&gt;&lt;br/&gt;My tentative conclusion is that the additional explanation of the parameters and basis values in IS 29500 are simply bogus (except for the easy cases of basis 2 and 3).&lt;br/&gt;&lt;br/&gt;Another tentative conclusion is that there is tremendous confusion about which dates from the beginning to the end date are actually *in* the range.  This is leading to a lot of mischief, but I&#039;m not sure on who&#039;s part.  I notice a couple of places where Wheeler seems to have stumbled into that pitfall, and I&#039;ll clean up my examples and discuss that with him.  This bears on only a small part of his analysis in any case and I suspect it has tripped-up others even more.</description>
		<content:encoded><![CDATA[<p>Rob, I have been nosing around some more and I can report on the examples now.</p>
<p>All but the last example for YEARFRAC in the IS29500 you have are identical to the ones in ECMA-376.  They have not changed.</p>
<p>The final example, illustrating a case with year divisor of 365.33333, is new in IS29500.</p>
<p>All of the examples are reporting what Excel produces.  I verified them with Excel 2003 and expect no difference in Excel 2007 and probably not Excel 2000.</p>
<p>My tentative conclusion is that the additional explanation of the parameters and basis values in IS 29500 are simply bogus (except for the easy cases of basis 2 and 3).</p>
<p>Another tentative conclusion is that there is tremendous confusion about which dates from the beginning to the end date are actually *in* the range.  This is leading to a lot of mischief, but I&#8217;m not sure on who&#8217;s part.  I notice a couple of places where Wheeler seems to have stumbled into that pitfall, and I&#8217;ll clean up my examples and discuss that with him.  This bears on only a small part of his analysis in any case and I suspect it has tripped-up others even more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Open Sourcerer</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1964</link>
		<dc:creator>The Open Sourcerer</dc:creator>
		<pubDate>Wed, 21 May 2008 18:52:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1964</guid>
		<description>Chaps, slightly OT I know, but have you seen this &quot;announcement&quot; today: &lt;a HREF=&quot;http://www.sdtimes.com/content/article.aspx?ArticleID=32228&quot; REL=&quot;nofollow&quot; rel=&quot;nofollow&quot;&gt;http://www.sdtimes.com/content/article.aspx?ArticleID=32228&lt;/a&gt;?&lt;br/&gt;&lt;br/&gt;&quot;Office 2007 Service Pack 2 will add native support for OpenDocument Format (ODF) 1.1, PDF 1.5, PDF/A and XML Paper Specification, an XML-based fixed-document format created by Microsoft.&quot;&lt;br/&gt;&lt;br/&gt;and..&lt;br/&gt;&lt;br/&gt;&quot;... Mahugh stated that Microsoft would not implement the final ISO version of OOXML until Office 14 ships at an unstated date in the future.&quot;&lt;br/&gt;&lt;br/&gt;If true, it is quite an amazing statement and seems to negate all the effort then went into forcing OOXML through ISO...</description>
		<content:encoded><![CDATA[<p>Chaps, slightly OT I know, but have you seen this &#8220;announcement&#8221; today: <a HREF="http://www.sdtimes.com/content/article.aspx?ArticleID=32228" REL="nofollow" rel="nofollow">http://www.sdtimes.com/content/article.aspx?ArticleID=32228</a>?</p>
<p>&#8220;Office 2007 Service Pack 2 will add native support for OpenDocument Format (ODF) 1.1, PDF 1.5, PDF/A and XML Paper Specification, an XML-based fixed-document format created by Microsoft.&#8221;</p>
<p>and..</p>
<p>&#8220;&#8230; Mahugh stated that Microsoft would not implement the final ISO version of OOXML until Office 14 ships at an unstated date in the future.&#8221;</p>
<p>If true, it is quite an amazing statement and seems to negate all the effort then went into forcing OOXML through ISO&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orcmid</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1963</link>
		<dc:creator>orcmid</dc:creator>
		<pubDate>Wed, 21 May 2008 17:41:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1963</guid>
		<description>martin and others: Although Wheeler singles out Excel 2007 (presumably because it implements ECMA-376 in its .xlsx files), the Excel 2007 implementation of the calculations appears to have been unchanged since Excel 2000.&lt;br/&gt;&lt;br/&gt;I&#039;m going to double check this with some of the good examples and edge-case tests that we now have, but I am pretty confident that this is not a problem to be avoided by sticking with pre-2007 versions of Excel. Also, it is not clear whether the non-OpenFormula versions of ODF implementations provide any salvation (say, up through OO.o 2.4 and other products using the same spreadsheet code base).</description>
		<content:encoded><![CDATA[<p>martin and others: Although Wheeler singles out Excel 2007 (presumably because it implements ECMA-376 in its .xlsx files), the Excel 2007 implementation of the calculations appears to have been unchanged since Excel 2000.</p>
<p>I&#8217;m going to double check this with some of the good examples and edge-case tests that we now have, but I am pretty confident that this is not a problem to be avoided by sticking with pre-2007 versions of Excel. Also, it is not clear whether the non-OpenFormula versions of ODF implementations provide any salvation (say, up through OO.o 2.4 and other products using the same spreadsheet code base).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stefan Wagner</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1962</link>
		<dc:creator>Stefan Wagner</dc:creator>
		<pubDate>Wed, 21 May 2008 17:03:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1962</guid>
		<description>I encourage for the correction-way. &lt;br/&gt;&lt;br/&gt;Nearly nobody uses files to archive a document.&lt;br/&gt;If you do, you have to know that you have to archive the program, you used to produce the document, too.&lt;br/&gt;&lt;br/&gt;If the difference was very important, somebody should have realized before, that excel is just estimating a correct result. &lt;br/&gt;&lt;br/&gt;Note beside: &lt;br/&gt;I would like to see the sourcecode of the function? &lt;br/&gt;How do they decide when to use which function?</description>
		<content:encoded><![CDATA[<p>I encourage for the correction-way. </p>
<p>Nearly nobody uses files to archive a document.<br />If you do, you have to know that you have to archive the program, you used to produce the document, too.</p>
<p>If the difference was very important, somebody should have realized before, that excel is just estimating a correct result. </p>
<p>Note beside: <br />I would like to see the sourcecode of the function? <br />How do they decide when to use which function?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PolR</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1961</link>
		<dc:creator>PolR</dc:creator>
		<pubDate>Wed, 21 May 2008 14:39:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1961</guid>
		<description>There are many sides to the Excel compatibility issue. Why on earth someone would want an incorrect calculation? I can think of two reasons.&lt;br/&gt;&lt;br/&gt;One is archiving. The file that was historically used had incorrect calculations in it. This has to be preserved as is for the sake of fidelity to history. If ODF is used for archiving of current Excel files, then bug preservation becomes a requirement.&lt;br/&gt;&lt;br/&gt;This raises the question of which Excel version was used in creating the file. We don&#039;t know yet if the behavior of Excel was the same from version to version. This is not something I would take for granted. Tests are required.&lt;br/&gt;&lt;br/&gt;The other is perception. People use Excel and just trust it to be accurate. If the numbers from another software disagree, then a natural reaction might be to assume Excel must be right because this is what people use and have been using for over a decade. Then the incorrect behavior becomes the truth because nobody cares about the actual truth. &lt;br/&gt;&lt;br/&gt;Martin raises the possibility of failing SOX audits. But if the auditor uses Excel and believes it to be correct, then using the correct formula is what could land you in trouble. You are safe from a SOX perspective as long as everybody uses Excel.&lt;br/&gt;&lt;br/&gt;This means the public relation aspect is essential. There is a need to teach the financial community about the bugs and their consequences. There is a need to teach auditors, CEOs and CFOs that if Excel is part of the financial process, then there is no SOX compliance. &lt;br/&gt;&lt;br/&gt;This is not a small point. I know programmers that download in Excel database extracts, process them in VBA and the upload the result in the database. This kind of processing is the major reason for many users to want millions of rows in their spreadsheet. Otherwise they have to break their database extracts in small parts and stitch the result of partial computations afterwards.</description>
		<content:encoded><![CDATA[<p>There are many sides to the Excel compatibility issue. Why on earth someone would want an incorrect calculation? I can think of two reasons.</p>
<p>One is archiving. The file that was historically used had incorrect calculations in it. This has to be preserved as is for the sake of fidelity to history. If ODF is used for archiving of current Excel files, then bug preservation becomes a requirement.</p>
<p>This raises the question of which Excel version was used in creating the file. We don&#8217;t know yet if the behavior of Excel was the same from version to version. This is not something I would take for granted. Tests are required.</p>
<p>The other is perception. People use Excel and just trust it to be accurate. If the numbers from another software disagree, then a natural reaction might be to assume Excel must be right because this is what people use and have been using for over a decade. Then the incorrect behavior becomes the truth because nobody cares about the actual truth. </p>
<p>Martin raises the possibility of failing SOX audits. But if the auditor uses Excel and believes it to be correct, then using the correct formula is what could land you in trouble. You are safe from a SOX perspective as long as everybody uses Excel.</p>
<p>This means the public relation aspect is essential. There is a need to teach the financial community about the bugs and their consequences. There is a need to teach auditors, CEOs and CFOs that if Excel is part of the financial process, then there is no SOX compliance. </p>
<p>This is not a small point. I know programmers that download in Excel database extracts, process them in VBA and the upload the result in the database. This kind of processing is the major reason for many users to want millions of rows in their spreadsheet. Otherwise they have to break their database extracts in small parts and stitch the result of partial computations afterwards.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1960</link>
		<dc:creator>Nate</dc:creator>
		<pubDate>Wed, 21 May 2008 13:14:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1960</guid>
		<description>Upon further reflection as to what should be defined in OpenFormula, I&#039;d like to suggest that you get away from even the ambiguity of 0-4.  There&#039;s no reason at all why the Basis couldn&#039;t be something quite clear such as &quot;NASD&quot; or &quot;ICMA.&quot;  That would give you the flexibility to optionally support Excel or OOXML&#039;s rules as something like &quot;Excel-0&quot; or &quot;IS29500-3.&quot;&lt;br/&gt;&lt;br/&gt;Again, I would urge you to allow in the specification a generalized Basis setting for the document as a whole, so that it would be easy to change in a single move.&lt;br/&gt;&lt;br/&gt;As far as whether applications need to allow for an &quot;Excel-compatibility&quot; standard, I see that as absolutely vital.  Unless someone is an avid reader of &quot;An Antic Disposition,&quot; they are unlikely to understand ambiguities and errors in Excel&#039;s calculation.  And if they open a .XLS in OpenOffice.org or Symphony, and see different result calculations than in Excel, the assumption is going to be that the new program is wrong.&lt;br/&gt;&lt;br/&gt;I know that sucks, but it&#039;s how the perception will work -- guaranteed.&lt;br/&gt;&lt;br/&gt;The best thing to do it highlight it in the application.  &quot;This spreadsheet uses an ambiguous standard for fractional year calculations, and therefore may misrepresent discount rates.  Click here to select from available techniques for calculating fractional years.&quot;</description>
		<content:encoded><![CDATA[<p>Upon further reflection as to what should be defined in OpenFormula, I&#8217;d like to suggest that you get away from even the ambiguity of 0-4.  There&#8217;s no reason at all why the Basis couldn&#8217;t be something quite clear such as &#8220;NASD&#8221; or &#8220;ICMA.&#8221;  That would give you the flexibility to optionally support Excel or OOXML&#8217;s rules as something like &#8220;Excel-0&#8243; or &#8220;IS29500-3.&#8221;</p>
<p>Again, I would urge you to allow in the specification a generalized Basis setting for the document as a whole, so that it would be easy to change in a single move.</p>
<p>As far as whether applications need to allow for an &#8220;Excel-compatibility&#8221; standard, I see that as absolutely vital.  Unless someone is an avid reader of &#8220;An Antic Disposition,&#8221; they are unlikely to understand ambiguities and errors in Excel&#8217;s calculation.  And if they open a .XLS in OpenOffice.org or Symphony, and see different result calculations than in Excel, the assumption is going to be that the new program is wrong.</p>
<p>I know that sucks, but it&#8217;s how the perception will work &#8212; guaranteed.</p>
<p>The best thing to do it highlight it in the application.  &#8220;This spreadsheet uses an ambiguous standard for fractional year calculations, and therefore may misrepresent discount rates.  Click here to select from available techniques for calculating fractional years.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rhialto</title>
		<link>http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1959</link>
		<dc:creator>Rhialto</dc:creator>
		<pubDate>Wed, 21 May 2008 10:50:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robweir.com/blog/2008/05/fractured-yearfrac-and-discounted-disc.html#comment-1959</guid>
		<description>There is an infinite amount of ambiguity regarding the endpoints of the range. Suppose it is meant that the time of day of each day is noon, for instance. Then the interval from 2003-12-31 to 2004-01-01 has half a day in a normal year and half a day in a leap year, which makes the YEARFRAC value 0,5 / 365 + 0,5 / 366...&lt;br/&gt;Similarly this influences whether a range &quot;crosses&quot; 29 february or not.</description>
		<content:encoded><![CDATA[<p>There is an infinite amount of ambiguity regarding the endpoints of the range. Suppose it is meant that the time of day of each day is noon, for instance. Then the interval from 2003-12-31 to 2004-01-01 has half a day in a normal year and half a day in a leap year, which makes the YEARFRAC value 0,5 / 365 + 0,5 / 366&#8230;<br />Similarly this influences whether a range &#8220;crosses&#8221; 29 february or not.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.374 seconds -->

