Hi,
My guess is that your calculation is being done at the detail level then aggregated by the report where there are multiple rows with the same descriptive information.
I'd also guess that the expression for the calculation uses items from the package rather than from the query (ie the expression looks like [namespace].[query subject].[YTD] / [namespace],[query subject].[Budget]). If this is the case, make sure YTD and Budget are items in te query, and change the expression to [YTD] /[Budget] and this should alter the timing of the calculation to be after aggregation.
I've made a couple of big assumptions there - apologies if I'm barking up the wrong tree!
MF.