Hey,
Pricing based on number of contacts is a very good way to charge your customers, as number of known contacts has a direct relation with the resources you need to assign to the instance your customer runs on.
If you want to limit based on emails, you need different mechanism based on your limiting method:
Would you set daily limits, monthly limits or 30 day rolling limit?
There is a good post about collecting data from the DB:
You will also have to watch your client’s email bounce and complaint stats as well to ensure they are not ruining your overall IP reputation.
Thx,
Joey