The system preference BorrowerRenewalPeriodBase defines how Koha calculates a patron's expiration date when renewing their account (either by clicking Renew in the staff interface or via the membership_expiry cron). However, Koha will also calculate a new patron expiration date when saving a patron without an expiration date defined. That calculation does not follow the syspref at all. Instead, it calculates differently depending on whether or not the patron registration date is visible in the patron edit screen. To recreate: 1 - confirm patron registration date is *not* hidden with BorrowerUnwantedField 2 - edit a patron, clear their expiration date, and save 3 - confirm their new expiration date was calculated from their registration date 4 - set BorrowerUnwantedField to hide registration date 5 - edit a patron, clear their expiration date, and save 6 - confirm their new expiration date was calculated from the current date This variation of behavior is not particularly clear or expected. It would make more sense to follow BorrowerRenewalPeriodBase when saving a patron with a blank expiration date.