I have an issue where all monthly auto-renew members expire on the day that they will be charged. The payprocessor charges on the same day of the month that the membership was created. eg. 01/08/16, 02/08/16, 03/08/16 etc. but it may happen at 11pm....it's never the same time of day per customer. This leaves the members in an expired state since Civicrm api job process_membership expires the membership on that same day, the "end_date". I'd say that's clearly unwanted behavior for an auto-renew member! Civi calculates the end_date by incrementing the month by 1. But the end_date should be padded by a day if a member is to get a whole month of uninterrupted membership.

Is there a way to define a month, or otherwise work around this within the UI?

end_date seems like an unfortunate choice for field name, since it falls within the date range of membership but apparently is definitely not being treated like the other days in that range. IMHO, valid_through makes a lot more sense since it's more clear as to how it should be treated.

It seems like there are two options. 1) redefine the monthly membership period as month++ day++ or 2) reconceptualize end_date as valid_through and expire when that day is over. Even though I think #2 makes more sense, I think #1 may be easier. I've tested the daily member and it doesn't expire on the "end_date",...I'm thinking there's a check to see if the end_date is equal to the current date or start_date.

1 Answer 1


We set our memberships to and end date of 30th June then add a Grace period of 1 month to allow for collection of member fees. You can set grace periods and define the length of that period. Maybe this will assist you. Essentially for us our members are current as at 30th June then on 1 July they fall into a status of Grace, then if renewed they are current again or after 31 July they fall into expired member status.

  • Yes a custom status may be what would help here. Eg make a status called Plus One - and set it to work for 1 day from End Date.
    – petednz - fuzion
    Commented Jun 5, 2016 at 22:07
  • I think this will suffice as a workaround, thanks!
    – Peter_
    Commented Jun 7, 2016 at 17:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.