We use a "View" under Tasks. In that view we show Baseline Hours, Planned Hours, Actual Hours, and Hours remaining (along with other hour calculations, like BL - Actual, Pct. of Plan, and BL - Plan).
For Hours remaining, we use this text:
displayname=Hrs Remain textmode=true valueexpression=({workRequired}-{actualWorkRequired})/60 valueformat=
And for actual hours, we use this text:
aggregator.displayformat=minutesAsHoursString aggregator.function=SUM aggregator.valuefield=actualWorkRequired aggregator.valueformat=intAsInt descriptionkey=actualwork listsort=intAsInt(actualWorkRequired) namekey=actualwork.abbr querysort=actualWorkRequired styledef.comparison.leftmethod=intAsInt(actualWorkRequired) styledef.comparison.operator=gt styledef.comparison.operatortype=int styledef.comparison.rightmethod=intAsInt(workRequired) styledef.comparison.truetext=font-weight:900;color:#990000; valuefield=actualWorkRequired valueformat=compound width=80