| {{ kpi.label }} ({{ kpi.unit }}) |
|---|
| {{ getKpiPeriodValue(kpi) != null ? (getKpiPeriodValue(kpi) | number:'1.0-1') : '—' }} |
| Metric | Today | Change vs Yesterday |
|---|---|---|
| {{ s.label }} | {{ s.value | number:'1.0-1' }} {{ s.unit }} | {{ s.change }} |
| Metric | Value |
|---|---|
| Travelled Distance | {{ printDistDisplay(printSnapshot.distanceTravelledKm) }} |
| Sprayed Distance | {{ printDistDisplay(printSnapshot.distanceSprayedKm) }} |
| Spray Efficiency | {{ ((printSnapshot.sprayEfficiencyPct != null ? printSnapshot.sprayEfficiencyPct : 0) | number:'1.0-1') + '%' }} |
| Ferry Time | {{ ((printSnapshot.ferryTimePct != null ? printSnapshot.ferryTimePct : 0) | number:'1.0-1') + '%' }} |
| Flow Accuracy | {{ ((printSnapshot.flowAccuracyPct != null ? printSnapshot.flowAccuracyPct : 0) | number:'1.0-1') + '%' }} |
| GPS Health | {{ (printSnapshot.avgHdop != null ? printSnapshot.avgHdop : 0) | number:'1.0-1' }} |
| Job | Client | Status | {{ printSnapshot.isUS ? 'Ac Total' : 'Ha Total' }} | {{ printSnapshot.isUS ? 'Ac Sprayed' : 'Ha Sprayed' }} | Progress | Volume Applied |
|---|---|---|---|---|---|---|
| {{ job.name }} | {{ job.clientName }} | {{ getBadgeLabel(job.status) }} | {{ printAreaDisplay(job.haTotal) }} | {{ printAreaDisplay(job.haSprayed) }} | {{ job.progressPct | number:'1.0-1' }}% | {{ printVolumeDisplay(job.volumeAppliedLiters) }} |
| No active jobs | ||||||
| Date | Hours Flown | {{ printSnapshot.isUS ? 'Acres Sprayed' : 'Hectares Sprayed' }} |
|---|---|---|
| {{ row.day }} | {{ row.value | number:'1.0-1' }} | {{ printAreaDisplay(printSnapshot.hectaresTrendData[i]?.value || 0) }} |
| Metric | Value | Thresholds | Status |
|---|---|---|---|
| Average XT Error | {{ printSnapshot.xtErrorValue != null ? printLengthDisplay(printSnapshot.xtErrorValue) : 'N/A' }} |
< {{ printLengthDisplay(printSnapshot.xtThreshold.good) }} |
{{ getXtStatus(printSnapshot.xtErrorValue, printSnapshot.xtThreshold) }} |
| Average Spray Altitude | {{ printSnapshot.altValue != null ? printLengthDisplay(printSnapshot.altValue) : 'N/A' }} |
|
{{ getAltStatus(printSnapshot.altValue, printSnapshot.altThreshold) }} |