It is better if you can charge on a 'per project basis' but only if you have spent time up front working on an accurate estimate and, more importantly, built in significant contingency into your price.
Often though this up front time working on an estimate can end up being for free, an opportunity cost really, if you don't win the project.
Often though this up front time working on an estimate can end up being for free, an opportunity cost really, if you don't win the project.