} else {
boolean prorated = isProratedCost();
// if prorated, or if calculating a total, then treat as prorated
if (all || prorated) {
ContourBucketIntervalGenerator workContour = contourGeneratorInstance(WORK);
CollectionIntervalGenerator costRate = CollectionIntervalGenerator.getInstance(detail.getResource().getCostRateTable(detail.getCostRateIndex()).getList());
clause.from(costRate).from(workContour);
// Note that the getStart() parameter implies cost per use is applied at start
CostFunctor costF = CostFunctor.getInstance(this, getEffectiveWorkCalendar(), workContour, detail.calcOvertimeUnits(), costRate, getStart(),prorated);
clause.select(costF);
return costF;