Currently we don't have easy way to set such CalculationField. This feature is in our to-do list, but I cannot give you exact timeframe for it.
But there is a way to achieve this functionality and we have implemented it in the attached project. First you have to create CustomAggregateDescription and override some if its methods. The most important part is overriding of GetValueForItem method and setting the AggregateFunction of the object. This aggregate function has to be custom as well - PercentCalculationAggregate. The methods that have to be overriden are CreateAggregate (it is used to create an object which will hold and calculate the value that we'll put in the cell), GetStringFormat (we have set it to default value - percent), ToString (to have a custom string in RadPivotGrid
instead of the type). CreateAggregate method is of type AggregateValue. We have to create a new custom AggregateValue and this is where we will implement the logic of the calculation. That's why in this class we have created two private properties - margin and value - they will be accumulated (in AccumulateOverride method) to summarize all values that we'll calculate. The value that we'll show in the cell is taken from the method GetValueOverride (in our case this will be margin / value). The last method that we've overriden is MergeOverride - it is used to accumulate all values for an item which has subitems.
We fully understand that this is not an easy solution, but you can check the result of it in the attached application. Do not hesitate to contact us if you have any problems or concerns.
the Telerik team