Which convention drives what the result of “30 august 2017 + 6M” should be?

If I use c#'s AddMonths method, "30 august 2017 + 6M" will give "28 february 2018" (as the latter is the last day of the february month in the non leap year 2018). See the "Remarks" bit in the previous link.

My question is : are there other possibilities than choosing the last day of the month ? What is the name of the financial convention driving this choice ? I am not sure it is end of month convention.

• What do you want/need the outcome to be? You can make the resulting DateTime object whatever you want. What you mean by financial convention?--this is just manipulation of a DateTime object. – amdopt Jun 4 at 17:48
• Well we could say "30/8/17" is the antepenultimate day in the month, so that "30/8/17+6M" should give the antepenultimate day in month 2/18 which is 27/2/18 and not 28/2/18, stuff like that – 11house Jun 5 at 8:36
• You should never assume conventions, if you are reading some data source where the tenors are listed as 3m 6m 1y etc, then you should check the spec of the data to understand exactly what that means. Otherwise you will be misusing the data. – will Jun 9 at 16:18
• I am not assuming anything. I am just stating that there are different ways of producing the final date. Ways = conventions. – 11house Jun 18 at 12:50

This seems to be the established convention and I'm not aware of other approaches being commonly (or at all) used. It's specified for example in ISDA Definitions:

Section 4.11. FRN Convention; Eurodollar Convention. “FRN Convention” or “Eurodollar Convention” means, in respect of either Payment Dates or Period End Dates ... that the Payment Dates or Period End Dates ... will be each day during the Term of the Swap Transaction that numerically corresponds to the preceding applicable Payment Date or Period End Date ... in the calendar month that is the specified number of months after the month in which the preceding applicable Payment Date or Period End Date occurred ... except that (a) if there is not any such numerically corresponding day in the calendar month in which a Payment Date or Period End Date ... should occur, then the Payment Date or Period End Date will be the last day that is a Business Day in that month,

• Thanks for the reference. – 11house Jun 5 at 8:44

In (L) IBOR definitions and interest rate swaps there are generally two principles worth considering:

• Roll Day (a specific rule which help schedule generators know how to align schedules but not exemplified in this post)

Generally the adjustment rules are easily stated as 'Following (F)' or 'Preceeding (P)'.

Example
Fri 20th Jan + 6M goes to Sun 20th July and adjusted 'F' to Mon 21st July Mon 31st Jan + 6M goes to Sun 31st July and adjusted 'F' to Mon 1st August.

There is a very common rule called 'Modified Following (MF)' and much less common 'Modified Preceeding (MP)' which precludes adjusting a date into a new month, i.e. tries to follow but fails so precedes.

Example
Mon 31st Jan + 6M goes to Sun 31st July and adjusted 'MF' to Fri 29th July.

Almost all EUR and USD derivatives that I have encountered adopt this rule.

There is an additional rule called 'Modified Following Month End (MFME)' which is used for example with GBP derivatives and LIBOR, when the start date is a month end the end date is automatically modified to be a month end

Example
Tue 28th Feb + 6M goes to Mon 28th August under 'MF'.
Tue 28th Feb + 6M goes to Thur 31st August under 'MFME'.

Specific Question Dates

In the case that you add a tenor to yield a date that does not exist such as:

Tue 30 Aug + 6M goes to 30th Feb

there are two possible logical conversions:
1) convert that date to the end of the month instead, 30th Feb -> 28th Feb (or 29th)
2) move forward into the new month by the overlapping days 30th Feb -> 2nd Mar (or 1st)

@Adam has provided an IDSA definition, but I would interpret this as enact 1) and then apply your adjustment rule; 'F' 'P' 'MF' 'MFME'. 2) is the least consistent choice and is not performed.

Example
Tue 30th Aug + 6M goes to Mon 1st Mar (where 28th Feb is a Sunday) under 'F'
Tue 30th Aug + 6M goes to Fri 26th Feb (where 28th Feb is a Sunday) under 'MF'
Tue 30th Aug + 6M goes to Fri 26th Feb (where 28th Feb is a Sunday) under 'MFME' (actually this is not a month end start anyway)

• You give conditions about how to adjuste a "date+tenor", provided you know what "date+tenor" is. I am asking what "date+tenor" is in the "30/8/2017+6M" case, and wheter there are other choices than "28/2/2018". You are not answering my question at all. :) – 11house Jun 5 at 8:41
• @11house - fair enough, there are of course limited options you can do when you land on a fictional date. Perhaps I will leave this answer anyway since it might also benefit the wider community, who may also interpret your question as I did and not necessarily in the way you intended. – Attack68 Jun 5 at 15:08
• quant.stackexchange.com/questions/33748/… I think that your "answer" diverts people from the real question I ask. As you can see in the previous link, that already happened once. – 11house Jun 5 at 16:14