Forecast accuracy report displays incorrect units after custom key figure calculation in demand planning Fiori app

We’ve implemented a custom key figure in our demand planning Fiori app to calculate forecast accuracy percentages. The calculation works fine, but the report is displaying units incorrectly - showing ‘EA’ (each) instead of ‘%’ (percentage) for our accuracy metrics.

The custom key figure definition uses standard quantity fields from the forecast table, and we’re applying the accuracy formula in the CDS view. Here’s our current annotation:

@Semantics.quantity.unitOfMeasure: 'Unit'
ForecastAccuracy,
@Semantics.unitOfMeasure: true
Unit

The underlying data has mixed units (EA, KG, L) from different product lines, but our accuracy calculation should always result in a percentage. The CDS view joins forecast data with actuals, but the unit of measure seems to be inherited from the source quantity field rather than being overridden for the calculated metric.

Is there a specific annotation or CDS view technique to force percentage units for calculated key figures? The report consumers are confused seeing ‘EA’ next to accuracy values like 94.5.

The root cause is that your CDS view is treating the accuracy calculation as a quantity with the same unit semantics as the source fields. For percentage-based KPIs, you should not use @Semantics.quantity.unitOfMeasure at all. Instead, consider using @DefaultAggregation: #FORMULA or defining it as a simple decimal field without unit semantics. The percentage symbol can be handled in the UI layer through value formatting rather than as a true unit of measure in the data model.

Check your CDS view join conditions as well. If you’re joining forecast quantities with actuals and both tables have UoM fields, the join might be propagating the wrong unit reference to your calculated field. Make sure your accuracy calculation is in a separate field that doesn’t inherit unit semantics from the join. You might need to cast the result explicitly as a percentage type or use FLTP data type without unit linkage.

I’ve seen this before with calculated measures. The issue is that @Semantics.quantity.unitOfMeasure links your accuracy field to the Unit field, which contains the source material units. You need to decouple the calculated metric from the source unit field entirely and use a different annotation approach for percentage values.