BUG: Increase range of dates for holiday calculations
State: closed

- [x] closes #27761 
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry


Labels:
name: Bug
name: Datetime
description: Datetime data dtype

Comments:
I have no problem with wider. I was just concerned there might be some performance hit with a wider date range. My usage is primarily calculating payment dates for bonds and swaps, where going out to 50 or 60 years will be fine in general, but in principle it would certainly be better to go back to, say, 1900 and out to, say, 2200. We have certainly seen bonds issued with 100 years to maturity.

> On Aug 6, 2019, at 1:57 PM, gfyoung <notifications@github.com> wrote:
> 
> @gfyoung commented on this pull request.
> 
> In pandas/tseries/holiday.py <https://github.com/pandas-dev/pandas/pull/27790#discussion_r311271201>:
> 
> > @@ -345,8 +345,8 @@ class AbstractHolidayCalendar(metaclass=HolidayCalendarMetaClass):
>      """
>  
>      rules = []  # type: List[Holiday]
> -    start_date = Timestamp(datetime(1970, 1, 1))
> -    end_date = Timestamp(datetime(2030, 12, 31))
> +    start_date = Timestamp(datetime(1960, 1, 1))
> +    end_date = Timestamp(datetime(2080, 12, 31))
> Why not wider? 🤷‍♂
> 
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDUUTXZPOBYVOIYDCWDQDHQVBA5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCAYHE2Y#pullrequestreview-271610475>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDSG2UXRGCMV7Z2ZHSTQDHQVBANCNFSM4IJ2BU2Q>.
> 


Fine with me. Do you need me to make the edit, or will you take care of it at your end?

> On Aug 6, 2019, at 2:04 PM, gfyoung <notifications@github.com> wrote:
> 
> @gfyoung commented on this pull request.
> 
> In pandas/tseries/holiday.py <https://github.com/pandas-dev/pandas/pull/27790#discussion_r311274010>:
> 
> > @@ -345,8 +345,8 @@ class AbstractHolidayCalendar(metaclass=HolidayCalendarMetaClass):
>      """
>  
>      rules = []  # type: List[Holiday]
> -    start_date = Timestamp(datetime(1970, 1, 1))
> -    end_date = Timestamp(datetime(2030, 12, 31))
> +    start_date = Timestamp(datetime(1960, 1, 1))
> +    end_date = Timestamp(datetime(2080, 12, 31))
> I have no problem with wider. I was just concerned there might be some performance hit with a wider date range. My usage is primarily calculating payment dates for bonds and swaps, where going out to 50 or 60 years will be fine in general, but in principle it would certainly be better to go back to, say, 1900 and out to, say, 2200. We have certainly seen bonds issued with 100 years to maturity.
> 
> Let's go with 1900 - 2200
> 
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDWNHFCTT5A2352LNFDQDHRPDA5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCAYIBFA#discussion_r311274010>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDWEGI5PG2RE7PX6KL3QDHRPDANCNFSM4IJ2BU2Q>.
> 


Was there any performance impact?
Are there holidays that were instituted between 1900 and 1970 that will incorrectly be retroactively celebrated?
That’s a good question. I just checked Memorial Day, and according to Wikipedia, while it’s now the last Monday in May, it was celebrated on May 30 from 1868 to 1970. So it does look like some more work might be needed to get old holidays right.


> On Aug 6, 2019, at 3:32 PM, jbrockmendel <notifications@github.com> wrote:
> 
> Are there holidays that were instituted between 1900 and 1970 that will incorrectly be retroactively celebrated?
> 
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDTWBST6543GEIKPKPDQDH3YJA5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3WUZDQ#issuecomment-518868110>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDTFCVRNTQ27ZDHIIO3QDH3YJANCNFSM4IJ2BU2Q>.
> 


We’re OK on Labor Day - it’s been the first Monday in September since 1894.


> On Aug 6, 2019, at 3:39 PM, Richard Stanton <rhstanton@berkeley.edu> wrote:
> 
> That’s a good question. I just checked Memorial Day, and according to Wikipedia, while it’s now the last Monday in May, it was celebrated on May 30 from 1868 to 1970. So it does look like some more work might be needed to get old holidays right.
> 
> 
>> On Aug 6, 2019, at 3:32 PM, jbrockmendel <notifications@github.com <mailto:notifications@github.com>> wrote:
>> 
>> Are there holidays that were instituted between 1900 and 1970 that will incorrectly be retroactively celebrated?
>> 
>> —
>> You are receiving this because you authored the thread.
>> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDTWBST6543GEIKPKPDQDH3YJA5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3WUZDQ#issuecomment-518868110>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDTFCVRNTQ27ZDHIIO3QDH3YJANCNFSM4IJ2BU2Q>.
>> 
> 


I’m fine with just extending the end date for now. 

Sent from my mobile device

> On Aug 6, 2019, at 3:41 PM, Richard Stanton <rhstanton@berkeley.edu> wrote:
> 
> We’re OK on Labor Day - it’s been the first Monday in September since 1894.
> 
> 
>> On Aug 6, 2019, at 3:39 PM, Richard Stanton <rhstanton@berkeley.edu> wrote:
>> 
>> That’s a good question. I just checked Memorial Day, and according to Wikipedia, while it’s now the last Monday in May, it was celebrated on May 30 from 1868 to 1970. So it does look like some more work might be needed to get old holidays right.
>> 
>> 
>>> On Aug 6, 2019, at 3:32 PM, jbrockmendel <notifications@github.com> wrote:
>>> 
>>> Are there holidays that were instituted between 1900 and 1970 that will incorrectly be retroactively celebrated?
>>> 
>>> —
>>> You are receiving this because you authored the thread.
>>> Reply to this email directly, view it on GitHub, or mute the thread.
>>> 
>> 
> 

When I try a simple “git push”, I get the following error:

fatal: The current branch holiday_update has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin holiday_update

What next…?

> On Aug 7, 2019, at 1:17 PM, gfyoung <notifications@github.com> wrote:
> 
> @gfyoung commented on this pull request.
> 
> In pandas/tseries/holiday.py <https://github.com/pandas-dev/pandas/pull/27790#discussion_r311743707>:
> 
> > @@ -345,8 +345,8 @@ class AbstractHolidayCalendar(metaclass=HolidayCalendarMetaClass):
>      """
>  
>      rules = []  # type: List[Holiday]
> -    start_date = Timestamp(datetime(1970, 1, 1))
> -    end_date = Timestamp(datetime(2030, 12, 31))
> +    start_date = Timestamp(datetime(1960, 1, 1))
> +    end_date = Timestamp(datetime(2080, 12, 31))
> Even better: just push new changes to your branch. It will update this PR.
> 
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDQIB3JHLO7H7IGGHRDQDMUT3A5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCA4YGJA#discussion_r311743707>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDXIIB4IIFUVAK4RSLDQDMUT3ANCNFSM4IJ2BU2Q>.
> 


Does `git push --set-upstream origin holiday_update` work?

On Wed, Aug 7, 2019 at 3:50 PM rhstanton <notifications@github.com> wrote:

> When I try a simple “git push”, I get the following error:
>
> fatal: The current branch holiday_update has no upstream branch.
> To push the current branch and set the remote as upstream, use
>
> git push --set-upstream origin holiday_update
>
> What next…?
>
> > On Aug 7, 2019, at 1:17 PM, gfyoung <notifications@github.com> wrote:
> >
> > @gfyoung commented on this pull request.
> >
> > In pandas/tseries/holiday.py <
> https://github.com/pandas-dev/pandas/pull/27790#discussion_r311743707>:
> >
> > > @@ -345,8 +345,8 @@ class
> AbstractHolidayCalendar(metaclass=HolidayCalendarMetaClass):
> > """
> >
> > rules = [] # type: List[Holiday]
> > - start_date = Timestamp(datetime(1970, 1, 1))
> > - end_date = Timestamp(datetime(2030, 12, 31))
> > + start_date = Timestamp(datetime(1960, 1, 1))
> > + end_date = Timestamp(datetime(2080, 12, 31))
> > Even better: just push new changes to your branch. It will update this
> PR.
> >
> > —
> > You are receiving this because you authored the thread.
> > Reply to this email directly, view it on GitHub <
> https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDQIB3JHLO7H7IGGHRDQDMUT3A5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCA4YGJA#discussion_r311743707>,
> or mute the thread <
> https://github.com/notifications/unsubscribe-auth/AAQNZDXIIB4IIFUVAK4RSLDQDMUT3ANCNFSM4IJ2BU2Q
> >.
> >
>
> —
> You are receiving this because you are subscribed to this thread.
> Reply to this email directly, view it on GitHub
> <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAKAOIQI3G5JNWNOCNT7AWDQDMYS3A5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZVNJY#issuecomment-519263911>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAKAOIVDTWEZLRK4JQ6QGKLQDMYS3ANCNFSM4IJ2BU2Q>
> .
>

I can’t tell from the description whether that does something good or bad (like changing the identity of the upstream repository). I was hoping someone could tell me that this was a good thing to try…


> On Aug 7, 2019, at 1:58 PM, Tom Augspurger <notifications@github.com> wrote:
> 
> Does `git push --set-upstream origin holiday_update` work?
> 
> On Wed, Aug 7, 2019 at 3:50 PM rhstanton <notifications@github.com> wrote:
> 
> > When I try a simple “git push”, I get the following error:
> >
> > fatal: The current branch holiday_update has no upstream branch.
> > To push the current branch and set the remote as upstream, use
> >
> > git push --set-upstream origin holiday_update
> >
> > What next…?
> >
> > > On Aug 7, 2019, at 1:17 PM, gfyoung <notifications@github.com> wrote:
> > >
> > > @gfyoung commented on this pull request.
> > >
> > > In pandas/tseries/holiday.py <
> > https://github.com/pandas-dev/pandas/pull/27790#discussion_r311743707>:
> > >
> > > > @@ -345,8 +345,8 @@ class
> > AbstractHolidayCalendar(metaclass=HolidayCalendarMetaClass):
> > > """
> > >
> > > rules = [] # type: List[Holiday]
> > > - start_date = Timestamp(datetime(1970, 1, 1))
> > > - end_date = Timestamp(datetime(2030, 12, 31))
> > > + start_date = Timestamp(datetime(1960, 1, 1))
> > > + end_date = Timestamp(datetime(2080, 12, 31))
> > > Even better: just push new changes to your branch. It will update this
> > PR.
> > >
> > > —
> > > You are receiving this because you authored the thread.
> > > Reply to this email directly, view it on GitHub <
> > https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDQIB3JHLO7H7IGGHRDQDMUT3A5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCA4YGJA#discussion_r311743707>,
> > or mute the thread <
> > https://github.com/notifications/unsubscribe-auth/AAQNZDXIIB4IIFUVAK4RSLDQDMUT3ANCNFSM4IJ2BU2Q
> > >.
> > >
> >
> > —
> > You are receiving this because you are subscribed to this thread.
> > Reply to this email directly, view it on GitHub
> > <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAKAOIQI3G5JNWNOCNT7AWDQDMYS3A5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZVNJY#issuecomment-519263911>,
> > or mute the thread
> > <https://github.com/notifications/unsubscribe-auth/AAKAOIVDTWEZLRK4JQ6QGKLQDMYS3ANCNFSM4IJ2BU2Q>
> > .
> >
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDXBROVIQVWWDX2GVNDQDMZOTA5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZV62A#issuecomment-519266152>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDRNRGHSUDL6YH7UUJDQDMZOTANCNFSM4IJ2BU2Q>.
> 


`git push --set-upstream origin holiday_update`

is what I do every time I push a new branch.  The thing I'm confused about is how you pushed the first time?
I think I did

git push origin holiday_update


> On Aug 7, 2019, at 2:41 PM, jbrockmendel <notifications@github.com> wrote:
> 
> git push --set-upstream origin holiday_update
> 
> is what I do every time I push a new branch. The thing I'm confused about is how you pushed the first time?
> 
> —
> You are receiving this because you authored the thread.
> Reply to this email directly, view it on GitHub <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAQNZDTALEVSCDM4IZY7NW3QDM6P3A5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ZZFLQ#issuecomment-519279278>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AAQNZDTTV2IDSFC5NK7MV5TQDM6P3ANCNFSM4IJ2BU2Q>.
> 


can you merge master, also I think we would want a test for this. 
> can you merge master, also I think we would want a test for this.

Is that something I can do, or does someone with greater permissions need to do this?
You can merge master:
https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request

On Thu, Sep 19, 2019 at 12:41 PM rhstanton <notifications@github.com> wrote:

> can you merge master, also I think we would want a test for this.
>
> Is that something I can do, or does someone with greater permissions need
> to do this?
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/pandas-dev/pandas/pull/27790?email_source=notifications&email_token=AAKAOITYRGUOBXNGWHQR3U3QKO2UJA5CNFSM4IJ2BU22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7EINEY#issuecomment-533235347>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAKAOIR76TUDZJLQ6W6LUNDQKO2UJANCNFSM4IJ2BU2Q>
> .
>

Hello @rhstanton! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:







There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2019-10-18 17:17:22 UTC
I've added a test and pushed back to github, but I'm not sure how to merge my new code into master...

Github tells me "This branch has no conflicts with the base branch. Only those with write access to this repository can merge pull requests." How do I get write access?
> How do I get write access?

Write access is restricted to maintainers.

In order for us to merge your PR, we do need all tests to pass first!
> In order for us to merge your PR, we do need all tests to pass first!

It’s true that two tests failed, but they had nothing to do with my edits!


> It’s true that two tests failed, but they had nothing to do with my edits!

That is true, but as a rule, we do want to merge with all tests passing.  In this case, to "fix" the issue, you should rebase or merge `master` to pull in the fixes.
Can you add a whatsnew? Does this have any performance impacts as questioned by @jbrockmendel ?
Added an entry to whatsnew. No obvious performance impact in my uses. What still needs doing?
lgtm.
No output:

(pandas_dev) Richards-Mac-Pro:benchmarks stanton$ python offset.py 
(pandas_dev) Richards-Mac-Pro:benchmarks stanton$ 

> No output:
> 
> (pandas_dev) Richards-Mac-Pro:benchmarks stanton$ python offset.py
> (pandas_dev) Richards-Mac-Pro:benchmarks stanton$

you need to actually run the asv benchmarks: https://dev.pandas.io/docs/development/contributing.html#running-the-performance-test-suite
Now I know... Not sure how much of this matters, so here's the entire output:

(pandas_dev) Richards-Mac-Pro:asv_bench stanton$ asv continuous -f 1.1 upstream/master holiday_update -b ^offset
· Creating environments
· Discovering benchmarks.
·· Uninstalling from conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt.
·· Installing d53eb285 <holiday_update> into conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt...
· Running 20 total benchmarks (2 commits * 1 environments * 10 benchmarks)
[  0.00%] · For pandas commit 709436d4 <holiday_update^2> (round 1/2):
[  0.00%] ·· Building for conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt...
[  0.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[  2.50%] ··· Running (offset.ApplyIndex.time_apply_index--)..
[  7.50%] ··· Running (offset.OffestDatetimeArithmetic.time_add_10--).
[ 10.00%] ··· Running (offset.OffestDatetimeArithmetic.time_apply--).
[ 12.50%] ··· Running (offset.OffestDatetimeArithmetic.time_apply_np_dt64--).
[ 15.00%] ··· Running (offset.OffestDatetimeArithmetic.time_subtract--).
[ 17.50%] ··· Running (offset.OffestDatetimeArithmetic.time_subtract_10--)..
[ 22.50%] ··· Running (offset.OffsetSeriesArithmetic.time_add_offset--).
[ 25.00%] ··· Running (offset.OnOffset.time_on_offset--).
[ 25.00%] · For pandas commit d53eb285 <holiday_update> (round 1/2):
[ 25.00%] ·· Building for conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt...
[ 25.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 27.50%] ··· Running (offset.ApplyIndex.time_apply_index--)..
[ 32.50%] ··· Running (offset.OffestDatetimeArithmetic.time_add_10--).
[ 35.00%] ··· Running (offset.OffestDatetimeArithmetic.time_apply--).
[ 37.50%] ··· Running (offset.OffestDatetimeArithmetic.time_apply_np_dt64--).
[ 40.00%] ··· Running (offset.OffestDatetimeArithmetic.time_subtract--).
[ 42.50%] ··· Running (offset.OffestDatetimeArithmetic.time_subtract_10--).
[ 45.00%] ··· Running (offset.OffsetDatetimeIndexArithmetic.time_add_offset--).
[ 47.50%] ··· Running (offset.OffsetSeriesArithmetic.time_add_offset--).
[ 50.00%] ··· Running (offset.OnOffset.time_on_offset--).
[ 50.00%] · For pandas commit d53eb285 <holiday_update> (round 2/2):
[ 50.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 52.50%] ··· offset.ApplyIndex.time_apply_index                                                                       ok
[ 52.50%] ··· =================================== =============
                             offset                            
              ----------------------------------- -------------
                      <YearEnd: month=12>            979±5μs   
                      <YearBegin: month=1>           741±6μs   
                 <QuarterEnd: startingMonth=3>       902±5μs   
                <QuarterBegin: startingMonth=3>      803±4μs   
                           <MonthEnd>                910±3μs   
                          <MonthBegin>               732±3μs   
                 <DateOffset: days=2, months=2>    1.85±0.02ms 
                         <BusinessDay>             7.41±0.05ms 
                <SemiMonthEnd: day_of_month=15>    9.21±0.07ms 
               <SemiMonthBegin: day_of_month=15>   8.30±0.02ms 
              =================================== =============

[ 55.00%] ··· offset.OffestDatetimeArithmetic.time_add                                                                 ok
[ 55.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                     72.6±0.8μs 
                     <BusinessYearEnd: month=12>          36.1±0.2μs 
                     <BusinessYearBegin: month=1>         36.3±0.3μs 
                <BusinessQuarterEnd: startingMonth=3>     36.6±0.3μs 
               <BusinessQuarterBegin: startingMonth=3>    36.4±0.2μs 
                          <BusinessMonthEnd>              36.0±0.3μs 
                         <BusinessMonthBegin>             35.2±0.2μs 
                       <CustomBusinessDay> (0)           62.3±0.07μs 
                       <CustomBusinessDay> (1)           62.1±0.09μs 
                      <CustomBusinessMonthBegin>           322±7μs   
                     <CustomBusinessMonthEnd> (0)         215±0.8μs  
                     <CustomBusinessMonthEnd> (1)          212±1μs   
                         <YearEnd: month=12>               36.1±1μs  
                         <YearBegin: month=1>             35.4±0.4μs 
                    <QuarterEnd: startingMonth=3>         36.8±0.5μs 
                   <QuarterBegin: startingMonth=3>        36.3±0.1μs 
                              <MonthEnd>                  35.6±0.3μs 
                             <MonthBegin>                 35.7±0.6μs 
                    <DateOffset: days=2, months=2>        37.1±0.4μs 
                            <BusinessDay>                 38.0±0.4μs 
                   <SemiMonthEnd: day_of_month=15>        38.2±0.8μs 
                  <SemiMonthBegin: day_of_month=15>       37.9±0.5μs 
              ========================================= =============

[ 57.50%] ··· offset.OffestDatetimeArithmetic.time_add_10                                                              ok
[ 57.50%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                     82.0±1μs  
                     <BusinessYearEnd: month=12>         45.2±0.3μs 
                     <BusinessYearBegin: month=1>        47.1±0.3μs 
                <BusinessQuarterEnd: startingMonth=3>    46.9±0.6μs 
               <BusinessQuarterBegin: startingMonth=3>   46.3±0.5μs 
                          <BusinessMonthEnd>             43.9±0.5μs 
                         <BusinessMonthBegin>            43.1±0.2μs 
                       <CustomBusinessDay> (0)           85.5±0.6μs 
                       <CustomBusinessDay> (1)           75.2±0.2μs 
                      <CustomBusinessMonthBegin>          355±2μs   
                     <CustomBusinessMonthEnd> (0)         251±2μs   
                     <CustomBusinessMonthEnd> (1)         245±2μs   
                         <YearEnd: month=12>             44.5±0.2μs 
                         <YearBegin: month=1>            45.3±0.3μs 
                    <QuarterEnd: startingMonth=3>        45.0±0.8μs 
                   <QuarterBegin: startingMonth=3>       45.4±0.1μs 
                              <MonthEnd>                 43.5±0.1μs 
                             <MonthBegin>                42.6±0.3μs 
                    <DateOffset: days=2, months=2>       154±0.3μs  
                            <BusinessDay>                47.0±0.2μs 
                   <SemiMonthEnd: day_of_month=15>       48.6±0.6μs 
                  <SemiMonthBegin: day_of_month=15>      48.8±0.2μs 
              ========================================= ============

[ 60.00%] ··· offset.OffestDatetimeArithmetic.time_apply                                                               ok
[ 60.00%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                     69.7±2μs  
                     <BusinessYearEnd: month=12>         32.9±0.2μs 
                     <BusinessYearBegin: month=1>        33.3±0.2μs 
                <BusinessQuarterEnd: startingMonth=3>    35.0±0.5μs 
               <BusinessQuarterBegin: startingMonth=3>   33.5±0.2μs 
                          <BusinessMonthEnd>             31.9±0.5μs 
                         <BusinessMonthBegin>            32.7±0.7μs 
                       <CustomBusinessDay> (0)            59.0±1μs  
                       <CustomBusinessDay> (1)           58.8±0.3μs 
                      <CustomBusinessMonthBegin>          322±2μs   
                     <CustomBusinessMonthEnd> (0)         215±3μs   
                     <CustomBusinessMonthEnd> (1)         213±2μs   
                         <YearEnd: month=12>             32.8±0.2μs 
                         <YearBegin: month=1>            33.4±0.4μs 
                    <QuarterEnd: startingMonth=3>        33.8±0.9μs 
                   <QuarterBegin: startingMonth=3>       34.2±0.5μs 
                              <MonthEnd>                 32.3±0.2μs 
                             <MonthBegin>                32.5±0.5μs 
                    <DateOffset: days=2, months=2>       34.8±0.4μs 
                            <BusinessDay>                35.2±0.3μs 
                   <SemiMonthEnd: day_of_month=15>        36.3±2μs  
                  <SemiMonthBegin: day_of_month=15>      36.8±0.1μs 
              ========================================= ============

[ 62.50%] ··· offset.OffestDatetimeArithmetic.time_apply_np_dt64                                                       ok
[ 62.50%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                      71.0±1μs  
                     <BusinessYearEnd: month=12>          33.1±0.5μs 
                     <BusinessYearBegin: month=1>         33.4±0.3μs 
                <BusinessQuarterEnd: startingMonth=3>     34.3±0.6μs 
               <BusinessQuarterBegin: startingMonth=3>    34.0±0.1μs 
                          <BusinessMonthEnd>              34.7±0.4μs 
                         <BusinessMonthBegin>             33.2±0.2μs 
                       <CustomBusinessDay> (0)            59.9±0.3μs 
                       <CustomBusinessDay> (1)            59.9±0.4μs 
                      <CustomBusinessMonthBegin>           324±3μs   
                     <CustomBusinessMonthEnd> (0)         215±0.3μs  
                     <CustomBusinessMonthEnd> (1)          213±5μs   
                         <YearEnd: month=12>              33.1±0.3μs 
                         <YearBegin: month=1>             33.5±0.6μs 
                    <QuarterEnd: startingMonth=3>          35.0±1μs  
                   <QuarterBegin: startingMonth=3>        34.3±0.1μs 
                              <MonthEnd>                  33.1±0.6μs 
                             <MonthBegin>                 33.4±0.3μs 
                    <DateOffset: days=2, months=2>        37.0±0.6μs 
                            <BusinessDay>                 36.1±0.3μs 
                   <SemiMonthEnd: day_of_month=15>        35.9±0.1μs 
                  <SemiMonthBegin: day_of_month=15>      36.7±0.04μs 
              ========================================= =============

[ 65.00%] ··· offset.OffestDatetimeArithmetic.time_subtract                                                            ok
[ 65.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                      83.7±1μs  
                     <BusinessYearEnd: month=12>          47.0±0.3μs 
                     <BusinessYearBegin: month=1>         45.8±0.5μs 
                <BusinessQuarterEnd: startingMonth=3>     47.9±0.4μs 
               <BusinessQuarterBegin: startingMonth=3>    47.4±0.4μs 
                          <BusinessMonthEnd>               45.5±1μs  
                         <BusinessMonthBegin>             44.6±0.2μs 
                       <CustomBusinessDay> (0)             88.1±1μs  
                       <CustomBusinessDay> (1)             77.2±1μs  
                      <CustomBusinessMonthBegin>           287±7μs   
                     <CustomBusinessMonthEnd> (0)          331±6μs   
                     <CustomBusinessMonthEnd> (1)          339±2μs   
                         <YearEnd: month=12>              47.5±0.5μs 
                         <YearBegin: month=1>             46.3±0.2μs 
                    <QuarterEnd: startingMonth=3>         47.7±0.2μs 
                   <QuarterBegin: startingMonth=3>        47.7±0.5μs 
                              <MonthEnd>                 43.9±0.07μs 
                             <MonthBegin>                 44.8±0.2μs 
                    <DateOffset: days=2, months=2>        82.4±0.4μs 
                            <BusinessDay>                 49.2±0.7μs 
                   <SemiMonthEnd: day_of_month=15>        49.5±0.4μs 
                  <SemiMonthBegin: day_of_month=15>       50.1±0.3μs 
              ========================================= =============

[ 67.50%] ··· offset.OffestDatetimeArithmetic.time_subtract_10                                                         ok
[ 67.50%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                    88.4±0.1μs 
                     <BusinessYearEnd: month=12>         51.9±0.7μs 
                     <BusinessYearBegin: month=1>         53.4±1μs  
                <BusinessQuarterEnd: startingMonth=3>    52.6±0.3μs 
               <BusinessQuarterBegin: startingMonth=3>   51.1±0.3μs 
                          <BusinessMonthEnd>             47.3±0.3μs 
                         <BusinessMonthBegin>            48.1±0.5μs 
                       <CustomBusinessDay> (0)            97.9±1μs  
                       <CustomBusinessDay> (1)           88.0±0.5μs 
                      <CustomBusinessMonthBegin>         289±0.2μs  
                     <CustomBusinessMonthEnd> (0)        258±0.4μs  
                     <CustomBusinessMonthEnd> (1)         259±2μs   
                         <YearEnd: month=12>             51.2±0.1μs 
                         <YearBegin: month=1>            50.8±0.5μs 
                    <QuarterEnd: startingMonth=3>        52.1±0.2μs 
                   <QuarterBegin: startingMonth=3>       53.0±0.7μs 
                              <MonthEnd>                 47.5±0.3μs 
                             <MonthBegin>                46.1±0.1μs 
                    <DateOffset: days=2, months=2>       296±0.6μs  
                            <BusinessDay>                54.6±0.3μs 
                   <SemiMonthEnd: day_of_month=15>       55.3±0.3μs 
                  <SemiMonthBegin: day_of_month=15>      54.9±0.2μs 
              ========================================= ============

[ 70.00%] ··· offset.OffsetDatetimeIndexArithmetic.time_add_offset                                                     ok
[ 70.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                      721±1μs   
                     <BusinessYearEnd: month=12>           403±4μs   
                     <BusinessYearBegin: month=1>          373±3μs   
                <BusinessQuarterEnd: startingMonth=3>      396±8μs   
               <BusinessQuarterBegin: startingMonth=3>     370±4μs   
                          <BusinessMonthEnd>               389±3μs   
                         <BusinessMonthBegin>              368±7μs   
                       <CustomBusinessDay> (0)            68.6±0.3ms 
                       <CustomBusinessDay> (1)            70.0±0.6ms 
                      <CustomBusinessMonthBegin>           333±3ms   
                     <CustomBusinessMonthEnd> (0)          221±2ms   
                     <CustomBusinessMonthEnd> (1)         220±0.3ms  
                         <YearEnd: month=12>               362±4μs   
                         <YearBegin: month=1>              339±2μs   
                    <QuarterEnd: startingMonth=3>          352±2μs   
                   <QuarterBegin: startingMonth=3>         350±8μs   
                              <MonthEnd>                   359±7μs   
                             <MonthBegin>                  346±3μs   
                    <DateOffset: days=2, months=2>         962±9μs   
                            <BusinessDay>                3.19±0.02ms 
                   <SemiMonthEnd: day_of_month=15>       4.10±0.06ms 
                  <SemiMonthBegin: day_of_month=15>      3.65±0.04ms 
              ========================================= =============

[ 72.50%] ··· offset.OffsetSeriesArithmetic.time_add_offset                                                            ok
[ 72.50%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                      686±3μs   
                     <BusinessYearEnd: month=12>           692±4μs   
                     <BusinessYearBegin: month=1>          658±5μs   
                <BusinessQuarterEnd: startingMonth=3>      702±4μs   
               <BusinessQuarterBegin: startingMonth=3>     652±20μs  
                          <BusinessMonthEnd>               675±7μs   
                         <BusinessMonthBegin>              648±4μs   
                       <CustomBusinessDay> (0)             66.2±2ms  
                       <CustomBusinessDay> (1)             67.8±1ms  
                      <CustomBusinessMonthBegin>           331±3ms   
                     <CustomBusinessMonthEnd> (0)          219±2ms   
                     <CustomBusinessMonthEnd> (1)          217±1ms   
                         <YearEnd: month=12>               647±5μs   
                         <YearBegin: month=1>              615±5μs   
                    <QuarterEnd: startingMonth=3>          651±5μs   
                   <QuarterBegin: startingMonth=3>         646±7μs   
                              <MonthEnd>                   634±4μs   
                             <MonthBegin>                  624±4μs   
                    <DateOffset: days=2, months=2>         917±7μs   
                            <BusinessDay>                3.14±0.02ms 
                   <SemiMonthEnd: day_of_month=15>       4.04±0.01ms 
                  <SemiMonthBegin: day_of_month=15>      3.61±0.01ms 
              ========================================= =============

[ 75.00%] ··· offset.OnOffset.time_on_offset                                                                           ok
[ 75.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                     9.90±0.4μs 
                     <BusinessYearEnd: month=12>          18.4±0.1μs 
                     <BusinessYearBegin: month=1>        6.26±0.05μs 
                <BusinessQuarterEnd: startingMonth=3>    9.93±0.08μs 
               <BusinessQuarterBegin: startingMonth=3>    10.1±0.4μs 
                          <BusinessMonthEnd>              12.6±0.3μs 
                         <BusinessMonthBegin>            12.9±0.07μs 
                       <CustomBusinessDay> (0)             599±9μs   
                       <CustomBusinessDay> (1)             615±5μs   
                      <CustomBusinessMonthBegin>          11.0±0.2ms 
                     <CustomBusinessMonthEnd> (0)         10.4±0.3ms 
                     <CustomBusinessMonthEnd> (1)         10.4±0.1ms 
                         <YearEnd: month=12>              17.9±0.2μs 
                         <YearBegin: month=1>             6.20±0.1μs 
                    <QuarterEnd: startingMonth=3>         10.2±0.2μs 
                   <QuarterBegin: startingMonth=3>       9.21±0.07μs 
                              <MonthEnd>                   12.9±2μs  
                             <MonthBegin>                 10.7±0.6μs 
                    <DateOffset: days=2, months=2>        6.48±0.1μs 
                            <BusinessDay>                6.26±0.05μs 
                   <SemiMonthEnd: day_of_month=15>        12.8±0.3μs 
                  <SemiMonthBegin: day_of_month=15>       7.68±0.1μs 
              ========================================= =============

[ 75.00%] · For pandas commit 709436d4 <holiday_update^2> (round 2/2):
[ 75.00%] ·· Building for conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt...
[ 75.00%] ·· Benchmarking conda-py3.6-Cython-matplotlib-numexpr-numpy-odfpy-openpyxl-pytables-pytest-scipy-sqlalchemy-xlrd-xlsxwriter-xlwt
[ 77.50%] ··· offset.ApplyIndex.time_apply_index                                                                       ok
[ 77.50%] ··· =================================== =============
                             offset                            
              ----------------------------------- -------------
                      <YearEnd: month=12>            960±10μs  
                      <YearBegin: month=1>           768±1μs   
                 <QuarterEnd: startingMonth=3>       902±8μs   
                <QuarterBegin: startingMonth=3>      815±5μs   
                           <MonthEnd>                911±3μs   
                          <MonthBegin>               739±9μs   
                 <DateOffset: days=2, months=2>    1.87±0.03ms 
                         <BusinessDay>              7.52±0.1ms 
                <SemiMonthEnd: day_of_month=15>     9.34±0.1ms 
               <SemiMonthBegin: day_of_month=15>    8.47±0.1ms 
              =================================== =============

[ 80.00%] ··· offset.OffestDatetimeArithmetic.time_add                                                                 ok
[ 80.00%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                     72.0±2μs  
                     <BusinessYearEnd: month=12>         35.9±0.2μs 
                     <BusinessYearBegin: month=1>        36.5±0.5μs 
                <BusinessQuarterEnd: startingMonth=3>     36.9±1μs  
               <BusinessQuarterBegin: startingMonth=3>   37.5±0.8μs 
                          <BusinessMonthEnd>             35.2±0.4μs 
                         <BusinessMonthBegin>            35.6±0.5μs 
                       <CustomBusinessDay> (0)           62.3±0.7μs 
                       <CustomBusinessDay> (1)            62.0±1μs  
                      <CustomBusinessMonthBegin>          322±7μs   
                     <CustomBusinessMonthEnd> (0)        212±0.9μs  
                     <CustomBusinessMonthEnd> (1)        215±0.6μs  
                         <YearEnd: month=12>             35.4±0.9μs 
                         <YearBegin: month=1>            34.9±0.3μs 
                    <QuarterEnd: startingMonth=3>        37.1±0.3μs 
                   <QuarterBegin: startingMonth=3>       36.9±0.4μs 
                              <MonthEnd>                 35.0±0.2μs 
                             <MonthBegin>                34.6±0.4μs 
                    <DateOffset: days=2, months=2>        38.1±1μs  
                            <BusinessDay>                38.4±0.3μs 
                   <SemiMonthEnd: day_of_month=15>       38.3±0.4μs 
                  <SemiMonthBegin: day_of_month=15>      38.7±0.1μs 
              ========================================= ============

[ 82.50%] ··· offset.OffestDatetimeArithmetic.time_add_10                                                              ok
[ 82.50%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                     81.5±1μs  
                     <BusinessYearEnd: month=12>         45.2±0.4μs 
                     <BusinessYearBegin: month=1>        46.2±0.1μs 
                <BusinessQuarterEnd: startingMonth=3>    46.2±0.5μs 
               <BusinessQuarterBegin: startingMonth=3>   45.8±0.5μs 
                          <BusinessMonthEnd>             42.8±0.2μs 
                         <BusinessMonthBegin>            45.0±0.6μs 
                       <CustomBusinessDay> (0)            86.1±1μs  
                       <CustomBusinessDay> (1)           77.6±0.2μs 
                      <CustomBusinessMonthBegin>          359±2μs   
                     <CustomBusinessMonthEnd> (0)         244±4μs   
                     <CustomBusinessMonthEnd> (1)         250±2μs   
                         <YearEnd: month=12>             46.5±0.5μs 
                         <YearBegin: month=1>            46.4±0.4μs 
                    <QuarterEnd: startingMonth=3>        47.4±0.7μs 
                   <QuarterBegin: startingMonth=3>       47.8±0.5μs 
                              <MonthEnd>                 44.1±0.8μs 
                             <MonthBegin>                 42.9±1μs  
                    <DateOffset: days=2, months=2>        156±2μs   
                            <BusinessDay>                 47.7±1μs  
                   <SemiMonthEnd: day_of_month=15>        51.2±2μs  
                  <SemiMonthBegin: day_of_month=15>      49.2±0.7μs 
              ========================================= ============

[ 85.00%] ··· offset.OffestDatetimeArithmetic.time_apply                                                               ok
[ 85.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                      70.7±2μs  
                     <BusinessYearEnd: month=12>          32.6±0.1μs 
                     <BusinessYearBegin: month=1>          33.0±1μs  
                <BusinessQuarterEnd: startingMonth=3>     34.0±0.5μs 
               <BusinessQuarterBegin: startingMonth=3>     33.3±1μs  
                          <BusinessMonthEnd>              32.7±0.6μs 
                         <BusinessMonthBegin>             33.5±0.9μs 
                       <CustomBusinessDay> (0)            60.4±0.8μs 
                       <CustomBusinessDay> (1)             59.2±2μs  
                      <CustomBusinessMonthBegin>           324±4μs   
                     <CustomBusinessMonthEnd> (0)          213±2μs   
                     <CustomBusinessMonthEnd> (1)          216±5μs   
                         <YearEnd: month=12>              31.9±0.2μs 
                         <YearBegin: month=1>            31.3±0.07μs 
                    <QuarterEnd: startingMonth=3>         33.0±0.4μs 
                   <QuarterBegin: startingMonth=3>        33.5±0.2μs 
                              <MonthEnd>                  32.7±0.5μs 
                             <MonthBegin>                 32.2±0.2μs 
                    <DateOffset: days=2, months=2>        35.0±0.4μs 
                            <BusinessDay>                 34.1±0.2μs 
                   <SemiMonthEnd: day_of_month=15>        34.7±0.1μs 
                  <SemiMonthBegin: day_of_month=15>       35.3±0.5μs 
              ========================================= =============

[ 87.50%] ··· offset.OffestDatetimeArithmetic.time_apply_np_dt64                                                       ok
[ 87.50%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                     70.9±0.5μs 
                     <BusinessYearEnd: month=12>          32.5±0.3μs 
                     <BusinessYearBegin: month=1>         33.5±0.5μs 
                <BusinessQuarterEnd: startingMonth=3>      34.4±1μs  
               <BusinessQuarterBegin: startingMonth=3>    34.0±0.6μs 
                          <BusinessMonthEnd>              33.9±0.5μs 
                         <BusinessMonthBegin>            32.8±0.09μs 
                       <CustomBusinessDay> (0)            58.7±0.1μs 
                       <CustomBusinessDay> (1)            59.6±0.7μs 
                      <CustomBusinessMonthBegin>           321±1μs   
                     <CustomBusinessMonthEnd> (0)          220±4μs   
                     <CustomBusinessMonthEnd> (1)          212±2μs   
                         <YearEnd: month=12>             33.1±0.05μs 
                         <YearBegin: month=1>             33.5±0.9μs 
                    <QuarterEnd: startingMonth=3>         34.8±0.4μs 
                   <QuarterBegin: startingMonth=3>        34.0±0.3μs 
                              <MonthEnd>                  33.0±0.6μs 
                             <MonthBegin>                 33.8±0.3μs 
                    <DateOffset: days=2, months=2>        35.3±0.2μs 
                            <BusinessDay>                 35.5±0.9μs 
                   <SemiMonthEnd: day_of_month=15>        35.2±0.4μs 
                  <SemiMonthBegin: day_of_month=15>       36.0±0.3μs 
              ========================================= =============

[ 90.00%] ··· offset.OffestDatetimeArithmetic.time_subtract                                                            ok
[ 90.00%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                    84.5±0.9μs 
                     <BusinessYearEnd: month=12>         46.4±0.7μs 
                     <BusinessYearBegin: month=1>        46.3±0.2μs 
                <BusinessQuarterEnd: startingMonth=3>    47.2±0.1μs 
               <BusinessQuarterBegin: startingMonth=3>   47.2±0.1μs 
                          <BusinessMonthEnd>             45.4±0.3μs 
                         <BusinessMonthBegin>            43.7±0.1μs 
                       <CustomBusinessDay> (0)            84.5±1μs  
                       <CustomBusinessDay> (1)            79.9±2μs  
                      <CustomBusinessMonthBegin>          285±2μs   
                     <CustomBusinessMonthEnd> (0)         333±10μs  
                     <CustomBusinessMonthEnd> (1)         339±6μs   
                         <YearEnd: month=12>             47.4±0.8μs 
                         <YearBegin: month=1>            46.8±0.3μs 
                    <QuarterEnd: startingMonth=3>        47.9±0.6μs 
                   <QuarterBegin: startingMonth=3>       47.2±0.3μs 
                              <MonthEnd>                 43.9±0.4μs 
                             <MonthBegin>                42.8±0.5μs 
                    <DateOffset: days=2, months=2>       83.4±0.7μs 
                            <BusinessDay>                48.6±0.4μs 
                   <SemiMonthEnd: day_of_month=15>       50.0±0.1μs 
                  <SemiMonthBegin: day_of_month=15>      48.9±0.3μs 
              ========================================= ============

[ 92.50%] ··· offset.OffestDatetimeArithmetic.time_subtract_10                                                         ok
[ 92.50%] ··· ========================================= ============
                                offset                              
              ----------------------------------------- ------------
                                <Day>                    83.9±0.8μs 
                     <BusinessYearEnd: month=12>          51.9±1μs  
                     <BusinessYearBegin: month=1>        52.4±0.2μs 
                <BusinessQuarterEnd: startingMonth=3>    50.9±0.4μs 
               <BusinessQuarterBegin: startingMonth=3>   51.6±0.4μs 
                          <BusinessMonthEnd>             48.8±0.5μs 
                         <BusinessMonthBegin>            47.6±0.1μs 
                       <CustomBusinessDay> (0)            101±2μs   
                       <CustomBusinessDay> (1)           86.1±0.9μs 
                      <CustomBusinessMonthBegin>          294±2μs   
                     <CustomBusinessMonthEnd> (0)         263±3μs   
                     <CustomBusinessMonthEnd> (1)         259±4μs   
                         <YearEnd: month=12>              51.4±1μs  
                         <YearBegin: month=1>            51.1±0.6μs 
                    <QuarterEnd: startingMonth=3>        51.1±0.6μs 
                   <QuarterBegin: startingMonth=3>       51.5±0.5μs 
                              <MonthEnd>                 46.7±0.4μs 
                             <MonthBegin>                 47.5±1μs  
                    <DateOffset: days=2, months=2>        296±5μs   
                            <BusinessDay>                54.3±0.3μs 
                   <SemiMonthEnd: day_of_month=15>       54.8±0.1μs 
                  <SemiMonthBegin: day_of_month=15>      56.8±0.2μs 
              ========================================= ============

[ 95.00%] ··· offset.OffsetDatetimeIndexArithmetic.time_add_offset                                                     ok
[ 95.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                     719±0.7μs  
                     <BusinessYearEnd: month=12>           405±1μs   
                     <BusinessYearBegin: month=1>          388±3μs   
                <BusinessQuarterEnd: startingMonth=3>      409±4μs   
               <BusinessQuarterBegin: startingMonth=3>     374±1μs   
                          <BusinessMonthEnd>               398±7μs   
                         <BusinessMonthBegin>              364±3μs   
                       <CustomBusinessDay> (0)            67.2±0.5ms 
                       <CustomBusinessDay> (1)            67.2±0.5ms 
                      <CustomBusinessMonthBegin>           326±4ms   
                     <CustomBusinessMonthEnd> (0)         221±0.9ms  
                     <CustomBusinessMonthEnd> (1)          222±2ms   
                         <YearEnd: month=12>               364±3μs   
                         <YearBegin: month=1>             341±0.3μs  
                    <QuarterEnd: startingMonth=3>          356±5μs   
                   <QuarterBegin: startingMonth=3>         343±4μs   
                              <MonthEnd>                   358±5μs   
                             <MonthBegin>                  339±1μs   
                    <DateOffset: days=2, months=2>         941±1μs   
                            <BusinessDay>                3.18±0.01ms 
                   <SemiMonthEnd: day_of_month=15>       4.02±0.02ms 
                  <SemiMonthBegin: day_of_month=15>      3.66±0.03ms 
              ========================================= =============

[ 97.50%] ··· offset.OffsetSeriesArithmetic.time_add_offset                                                            ok
[ 97.50%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                      674±3μs   
                     <BusinessYearEnd: month=12>           686±4μs   
                     <BusinessYearBegin: month=1>          659±3μs   
                <BusinessQuarterEnd: startingMonth=3>      686±10μs  
               <BusinessQuarterBegin: startingMonth=3>     646±2μs   
                          <BusinessMonthEnd>               672±1μs   
                         <BusinessMonthBegin>              633±2μs   
                       <CustomBusinessDay> (0)            66.4±0.4ms 
                       <CustomBusinessDay> (1)            65.8±0.8ms 
                      <CustomBusinessMonthBegin>          333±0.9ms  
                     <CustomBusinessMonthEnd> (0)          221±2ms   
                     <CustomBusinessMonthEnd> (1)         220±0.8ms  
                         <YearEnd: month=12>               632±4μs   
                         <YearBegin: month=1>              619±6μs   
                    <QuarterEnd: startingMonth=3>          631±2μs   
                   <QuarterBegin: startingMonth=3>         620±9μs   
                              <MonthEnd>                   630±6μs   
                             <MonthBegin>                  615±2μs   
                    <DateOffset: days=2, months=2>         910±3μs   
                            <BusinessDay>                3.13±0.06ms 
                   <SemiMonthEnd: day_of_month=15>       4.01±0.02ms 
                  <SemiMonthBegin: day_of_month=15>      3.61±0.01ms 
              ========================================= =============

[100.00%] ··· offset.OnOffset.time_on_offset                                                                           ok
[100.00%] ··· ========================================= =============
                                offset                               
              ----------------------------------------- -------------
                                <Day>                     9.82±0.3μs 
                     <BusinessYearEnd: month=12>          17.4±0.2μs 
                     <BusinessYearBegin: month=1>        6.18±0.07μs 
                <BusinessQuarterEnd: startingMonth=3>    9.89±0.01μs 
               <BusinessQuarterBegin: startingMonth=3>    9.98±0.4μs 
                          <BusinessMonthEnd>             12.2±0.08μs 
                         <BusinessMonthBegin>             12.4±0.6μs 
                       <CustomBusinessDay> (0)             600±10μs  
                       <CustomBusinessDay> (1)             591±10μs  
                      <CustomBusinessMonthBegin>          11.2±0.1ms 
                     <CustomBusinessMonthEnd> (0)         10.2±0.2ms 
                     <CustomBusinessMonthEnd> (1)        10.4±0.03ms 
                         <YearEnd: month=12>              17.4±0.4μs 
                         <YearBegin: month=1>            6.19±0.06μs 
                    <QuarterEnd: startingMonth=3>         10.3±0.4μs 
                   <QuarterBegin: startingMonth=3>       9.36±0.04μs 
                              <MonthEnd>                 11.9±0.09μs 
                             <MonthBegin>                 9.35±0.6μs 
                    <DateOffset: days=2, months=2>       6.48±0.03μs 
                            <BusinessDay>                6.19±0.03μs 
                   <SemiMonthEnd: day_of_month=15>       12.7±0.05μs 
                  <SemiMonthBegin: day_of_month=15>      7.64±0.09μs 
              ========================================= =============


BENCHMARKS NOT SIGNIFICANTLY CHANGED.
(pandas_dev) Richards-Mac-Pro:asv_bench stanton$ 



Thanks @rhstanton very nice PR