diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js
index 32c584fa585cdd4d4cae7b311b8caeab844bc1e6..0fc228bcdbad68961bbb299593a7f5f40879a1cf 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Report/project.report.js
@@ -71,6 +71,10 @@ class ProjectReport extends Component {
             const projectLTAStorage = projectResources["LTA Storage"]?projectResources["LTA Storage"].value:0;
             const timeFactor = UnitConverter.resourceUnitMap["time"].conversionFactor;
             const dataSizeFactor = UnitConverter.resourceUnitMap["bytes"].conversionFactor;
+            const toDisplayedPercent = function(value, total) {return ((value || 0) / total * 100).toFixed(2);}
+            const toDisplayedValue = function (value, factor) {return ((value || 0) / factor).toFixed(2);}
+            const toDisplayedSize = function(value) {return toDisplayedValue(value, dataSizeFactor);}
+            const toDisplayedTime = function(value) {return toDisplayedValue(value, timeFactor);}
             let totalSUBObsTime = 0, totalProcessTime = 0, totalLTAStorage = 0;
             for (const subStatus of _.keys(projectReport["SUBs"])) {
                 let subs = projectReport["SUBs"][subStatus];
@@ -83,61 +87,61 @@ class ProjectReport extends Component {
             suStatsList = _.orderBy(suStatsList, ['stop']);
             for (const reportSub of suStatsList) {
                 if (reportSub.observed_duration) {
-                    reportSub.observingTime = (reportSub.observed_duration/timeFactor).toFixed(2);
+                    reportSub.observingTime = toDisplayedTime(reportSub.observed_duration);
                     if (reportSub.acceptance_status != 'failed'){
                         totalSUBObsTime += reportSub.observed_duration;
                     }
-                    reportSub.observingTimeInc = (totalSUBObsTime / timeFactor).toFixed(2);
-                    reportSub.observingTimeLeft = ((projectObservingTime - totalSUBObsTime)/timeFactor).toFixed(2);
-                    reportSub.observingTimeIncPercent = (totalSUBObsTime/projectObservingTime*100).toFixed(2);
+                    reportSub.observingTimeInc = toDisplayedTime(totalSUBObsTime);
+                    reportSub.observingTimeLeft = toDisplayedTime(projectObservingTime - totalSUBObsTime);
+                    reportSub.observingTimeIncPercent = toDisplayedPercent(totalSUBObsTime, projectObservingTime);
                 }
                 if (reportSub.CPU_time_used_duration) {
-                    reportSub.processTime = (reportSub.CPU_time_used_duration/timeFactor).toFixed(2);
+                    reportSub.processTime = toDisplayedTime(reportSub.CPU_time_used_duration);
                     if (reportSub.acceptance_status != 'failed'){
                         totalProcessTime += reportSub.CPU_time_used_duration;
                     }
-                    reportSub.processTimeInc = (totalProcessTime / timeFactor).toFixed(2);
-                    reportSub.processTimeLeft = ((projectProcessTime - totalProcessTime)/timeFactor).toFixed(2);
-                    reportSub.processTimeIncPercent = (totalProcessTime / projectProcessTime *100).toFixed(2);
+                    reportSub.processTimeInc = toDisplayedTime(totalProcessTime);
+                    reportSub.processTimeLeft = toDisplayedTime(projectProcessTime - totalProcessTime);
+                    reportSub.processTimeIncPercent = toDisplayedPercent(totalProcessTime, projectProcessTime);
                 }
-                reportSub.ingestDataSize = ((reportSub["ingested_data_size"] || 0)/dataSizeFactor).toFixed(2);
+                reportSub.ingestDataSize = toDisplayedSize(reportSub["ingested_data_size"]);
                 if (reportSub.acceptance_status != 'failed'){
                     totalLTAStorage += reportSub["ingested_data_size"];
                 }
-                reportSub.ingestDataIncPercent = (totalLTAStorage / projectLTAStorage * 100).toFixed(2);
+                reportSub.ingestDataIncPercent = toDisplayedPercent(totalLTAStorage, projectLTAStorage);
                 reportSub.ingestDate = reportSub.ingested_date?moment.utc(reportSub.ingested_date).format(UIConstants.CALENDAR_DEFAULTDATE_FORMAT):"";
                 reportSub.execDate = moment.utc(reportSub.start).format(UIConstants.CALENDAR_DEFAULTDATE_FORMAT);
                 reportSub.observationSASId = reportSub["SAS ID"]["observation control"].join();
                 reportSub.pipelinseSASId = (reportSub["SAS ID"]["preprocessing pipeline"].concat(reportSub["SAS ID"]["pulsar pipeline"])).join(", ");
             }
-            let observTimeUtilization = {type: 'Observing', value: (projectReport.durations.total_observed/timeFactor).toFixed(2),
-                                         percent: (totalSUBObsTime/projectObservingTime*100).toFixed(2),
-                                         succeeded: (projectReport.durations.total_observed_succeeded/projectObservingTime*100).toFixed(2),
-                                         succeededValue:((projectReport.durations.total_observed_succeeded || 0)/timeFactor).toFixed(2),
-                                         acceptancePending: (projectReport.durations.total_observed_acceptance_pending/projectObservingTime*100).toFixed(2),
-                                         acceptancePendingValue: ((projectReport.durations.total_observed_acceptance_pending || 0)/timeFactor).toFixed(2),
-                                         failed: (projectReport.durations.total_observed_failed/projectObservingTime*100).toFixed(2),
-                                         failedValue: ((projectReport.durations.total_observed_failed || 0)/timeFactor).toFixed(2),
+            let observTimeUtilization = {type: 'Observing', value: toDisplayedTime(projectReport.durations.total_observed),
+                                         percent: toDisplayedPercent(totalSUBObsTime, projectObservingTime),
+                                         succeeded: toDisplayedPercent(projectReport.durations.total_observed_succeeded, projectObservingTime),
+                                         succeededValue: toDisplayedTime(projectReport.durations.total_observed_succeeded),
+                                         acceptancePending: toDisplayedPercent(projectReport.durations.total_observed_acceptance_pending, projectObservingTime),
+                                         acceptancePendingValue: toDisplayedTime(projectReport.durations.total_observed_acceptance_pending),
+                                         failed: toDisplayedPercent(projectReport.durations.total_observed_failed, projectObservingTime),
+                                         failedValue: toDisplayedTime(projectReport.durations.total_observed_failed),
                                          unit: 'hrs'};
             resourceUtilization.push(observTimeUtilization);
-            let processTimeUtilization = {type: 'CEP Processing', value: ((projectReport.processing_resources.CPU_time_used||0)/timeFactor).toFixed(2),
-                                          percent: (totalProcessTime/projectProcessTime*100).toFixed(2),
-                                          succeeded: ((projectReport.processing_resources.CPU_time_used_succeeded||0)/projectProcessTime*100).toFixed(2),
-                                          succeededValue: ((projectReport.processing_resources.CPU_time_used_succeeded||0)/timeFactor).toFixed(2),
-                                          acceptancePending: ((projectReport.processing_resources.CPU_time_used_acceptance_pending||0)/projectProcessTime*100).toFixed(2),
-                                          acceptancePendingValue: ((projectReport.processing_resources.CPU_time_used_acceptance_pending||0)/timeFactor).toFixed(2),
-                                          failed: ((projectReport.processing_resources.CPU_time_used_failed||0)/projectProcessTime*100).toFixed(2),
-                                          failedValue: ((projectReport.processing_resources.CPU_time_used_failed||0)/timeFactor).toFixed(2),
+            let processTimeUtilization = {type: 'CEP Processing', value: toDisplayedTime(projectReport.processing_resources.CPU_time_used),
+                                          percent: toDisplayedPercent(totalProcessTime, projectProcessTime),
+                                          succeeded: toDisplayedPercent(projectReport.processing_resources.CPU_time_used_succeeded, projectProcessTime),
+                                          succeededValue: toDisplayedTime(projectReport.processing_resources.CPU_time_used_succeeded),
+                                          acceptancePending: toDisplayedPercent(projectReport.processing_resources.CPU_time_used_acceptance_pending, projectProcessTime),
+                                          acceptancePendingValue: toDisplayedTime(projectReport.processing_resources.CPU_time_used_acceptance_pending),
+                                          failed: toDisplayedPercent(projectReport.processing_resources.CPU_time_used_failed, projectProcessTime),
+                                          failedValue: toDisplayedTime(projectReport.processing_resources.CPU_time_used_failed),
                                           unit: 'hrs'};
             resourceUtilization.push(processTimeUtilization);
-            let ltaStorageUtilization = {type: 'LTA Storage', value: ((projectReport.LTA_dataproducts.size||0)/dataSizeFactor).toFixed(2),
-                                         percent: (totalLTAStorage/projectLTAStorage*100).toFixed(2),
-                                         succeeded: ((projectReport.LTA_dataproducts.size_succeeded||0)/projectLTAStorage*100).toFixed(2),
-                                         succeededValue: ((projectReport.LTA_dataproducts.size_succeeded||0)/dataSizeFactor).toFixed(2),
-                                         acceptancePending: ((projectReport.LTA_dataproducts.size_acceptance_pending||0)/projectLTAStorage*100).toFixed(2),
-                                         acceptancePendingValue: ((projectReport.LTA_dataproducts.size_acceptance_pending||0)/dataSizeFactor).toFixed(2),
-                                         failed: ((projectReport.LTA_dataproducts.size_failed||0)/projectLTAStorage*100).toFixed(2),
-                                         failedValue: ((projectReport.LTA_dataproducts.size_failed||0)/dataSizeFactor).toFixed(2),
+            let ltaStorageUtilization = {type: 'LTA Storage', value: toDisplayedSize(projectReport.LTA_dataproducts.size),
+                                         percent: toDisplayedPercent(totalLTAStorage, projectLTAStorage),
+                                         succeeded: toDisplayedPercent(projectReport.LTA_dataproducts.size_succeeded, projectLTAStorage),
+                                         succeededValue: toDisplayedSize(projectReport.LTA_dataproducts.size_succeeded),
+                                         acceptancePending: toDisplayedPercent(projectReport.LTA_dataproducts.size_acceptance_pending, projectLTAStorage),
+                                         acceptancePendingValue: toDisplayedSize(projectReport.LTA_dataproducts.size_acceptance_pending),
+                                         failed: toDisplayedPercent(projectReport.LTA_dataproducts.size_failed, projectLTAStorage),
+                                         failedValue: toDisplayedSize(projectReport.LTA_dataproducts.size_failed),
                                          unit: 'TB'};
             resourceUtilization.push (ltaStorageUtilization);
         }