There are two questions you need to answer.
First, what is our financial objective for this program?
You have three, mutually exclusive, options:
Option 1: To reach a profit target. In this case, the program’s fee revenue should exceed its direct costs by at least $X.
Option 2: To breakeven. In this case, the program’s fee revenue should match its direct costs.
Option 3: To limit your loss to a particular amount. In this case, the program’s fee revenue should fall short of its directs costs by no more than $Y.
Second, which fee structure do we want to use?
You have two, mutually exclusive, choices:
Choice 1: Charge every user the same fee for the same service.
Choice 2: Charge different users different fees for the same service.
How you answer these two questions depends on the reasons you want to charge a fee for this particular service.
There are financial reasons, such as increasing and/or diversifying your organization’s funding.
There are also non-financial reasons, such as providing an incentive for your clients or users to act in a certain way.
These two categories of reasons are not mutually exclusive.
An animal shelter may charge an adoption fee both to help pay its expenses and to discourage people from making hasty adoption decisions.
The guiding question is this. How does charging a fee for this particular service advance our organization’s mission?
Answering that question will help you decide how much fee revenue you want to generate and which users it should come from.