Yes. You cannot just sum and the program level and then average it.
Sorry I cannot just give you the formula but it is really hard to understand your table and field names and then know how you have them grouped in the report...
Based on your last commment I think it will be:
if Sum({UpLoad_Report_EOM;1.PolicyCount},{UpLoad_Report_EOM;1.PolicyType}) =0 then 0 else
(Sum({UpLoad_Report_EOM;1.PolicyPremium}, {UpLoad_Report_EOM;1.PolicyType})
/ Sum({UpLoad_Report_EOM;1.PolicyCount},{UpLoad_Report_EOM;1.PolicyType}))
You can also tets each part for your amounts in seperately formulas as I suggested earlier...
Sum({UpLoad_Report_EOM;1.PolicyPremium}, {UpLoad_Report_EOM;1.PolicyType})
and
Sum({UpLoad_Report_EOM;1.PolicyCount},{UpLoad_Report_EOM;1.PolicyType})
to verify these give you the 11012 and 4212 sums you indicated above.