Pfsense Ip address lease

I have realised that my Pfsense does not release iP adresses when a host goes offline, but keeps it. This is having an adverse effect on users as some are able to access, some are not, others get kicked off. I have ensured the time zone is correct and played around with the lease times, but issue still persists. Is there a way to set this so that the ip is released once the device is no longer connected.
My environment is ISP → Pfsense–>TPlink managed switch( vlans set)—> 3 Ubiquiti Ac Ap Pro.

I have less than 100 users, who may have two devices at times.

A few options:

  • set a lower lease time for DHCP
  • use static leases
  • expand the pool range so more addresses can be cycled through

A few options:

set a lower lease time for DHCP - the default is set to 7200 
use static leases - this is within a school environment not sure if this will work
expand the pool range so more addresses can be cycled through - there are 199 ip  addresses available