Something like this might work. In your record selection, you would select the time period under consideration, and you might want to create a date parameter, e.g.,
{table.logindate} in {?date} to {?date}+30
Then group on {table.personID}, and insert a summary (count) on the {table.logindate}. You can use the datediff function to determine the total number of days during the time period you used in your selection formula, and incorporate it into a formula like the following to get the average number of logins during the time period {@avelogins}:
count({table.logindate},{table.personID})/datediff("d",{?date},{?date}+30) //place this formula in the group header or footer
-LB