If not, the user could dial up today, his account could expire in a week,
and if a payment hasn't been received by that date, his dialup session is
unaffected.  He may not be able to dial back up, but there's nothing
preventing him from staying online past the expiration date (other than
line noise or whatever).
Are there any solutions to this or am I going to have to just periodically
police the account, manually?
Here are a couple Ascend-Disconnect-Causes that might play a role in this:
150   requestByRadiusClient   disconnect requested by a RADIUS
                              client
151   localAdmin              disconnect requested by the local
                              administrator
The only time I've ever seen a disconnect cause of "1" is when I disconnect
the user from the Max console window--otherwise, it's 2, 11, 45, 100, or
185.
Using:
  Ascend Max 4004 5.0A
  Radius .60 (service) with Concurrency and Login Limit checked,
    running in ODBC mode
  SQL 6.5
  Emerald 2.1.11
Thanks,
Josh Hillman
hillman@talstar.com