Looks like you have 11K customers and a budget of $2500. Suppose you knew the expected return r[i,j] if customer i is assigned to group j. Then your expected profit for that assignment would be r[i,j] - c, where c is the cost of assigning a customer to group j. In your case, c[1] = 0.40, c[2] = 0.30, c[3] = 0.20, and c[4] = 0.10. Now define a binary decision variable Assign[i,j] with the interpretation that Assign[i,j] = 1 if customer i is assigned to group j, and Assign[i,j] = 0 otherwise. Then you want to solve the following optimization problem (expressed using PROC OPTMODEL syntax):
var Assign {CUSTOMERS, GROUPS} binary;
max TotalExpectedProfit = sum {i in CUSTOMERS, j in GROUPS} (r[i,j] - c) * Assign[i,j];
con AssignOnce {i in CUSTOMERS}:
sum {j in GROUPS} Assign[i,j] = 1;
con Budget:
sum {i in CUSTOMERS, j in GROUPS} c * Assign[i,j] <= 2500;
If you are allowed not to assign a customer to any group, you can change the = 1 to <= 1 in the AssignOnce constraint. Alternatively, you can define a dummy group j = 5, with cost c[5] = 0, if there is some nonzero expected return r[i,5] for customer i not being assigned to a group.
It remains to use the results of your two pilot programs to estimate r[i,j] for each customer-group pair. I'll leave that for a statistician to discuss, but maybe you can do some kind of Bayesian update of your initial scoring model.