Monthly performance
Revenue by month
S$ · FY to date vs budget and prior FY · faded bars = months not selected
GP margin by month
GP % by department, FY to date · dashed lines are the targets
Revenue by department
S$ · by PIC: Parts (Jane Teng Neng Li), Workshop (Workshop Team) · faded = not selected
Rolling 12-month trend
S$ · each point is the total of the 12 months ending that month
Monthly table
Department summary
Selected months vs budget, prior FY and GP% targetBest months
YTD achievement against budget
% of annual budget achieved (YTD)
YTD actual ÷ total annual budget · black tick = where you should be by now · red line = 100% of annual budget
Cumulative actual vs budget
S$ · running total from April · dashed = budget, ending at the annual total in March
Progress towards annual budget
Cumulative YTD actual as % of annual budget, month by month · dashed grey = expected (budget to date) · red line = 100%
By department (YTD)
Monthly progress
YTD runs from April to the last month selected in the filter (default: the latest month with invoices). % achieved = YTD actual ÷ total annual budget (all 12 months). "Expected by now" = budget from April to the same month ÷ annual budget. Status: ✓ On pace at or above expected · ▼ Slightly behind within 90% of expected · ✕ Behind below that. Margin achievement = YTD GP% ÷ annual budget GP%.
Customers
Selected monthsCustomers
S$ · revenue and GP for the selected months · Others = all customers not listed · tap a bar to filter the report
Revenue / GP change by customer
▲ Revenue increase by customer
▼ Revenue reduction by customer
Revenue vs GP margin
Each dot is a customer · the dashed line is the GP% target for the selection
Revenue concentration
Cumulative share of revenue by customer rank (Pareto)
Needs attention
Customers making a loss, or below the GP% target with at least 1% of revenue
All customers
Click a row to filter the whole report to that customer.
Components produced
Units by component
Tap a bar to see the components inside a group
Units by employee
Efficiency-weighted units (Exp Hrs ÷ Act Hrs, max 1 per component, split when a Seq is shared) · current vs previous period
Units by month
FY to date · faded bars = months not selected
Component table
Employee table
How it's counted: one unit = one service order (SO No) with that Job Desc in the Job Route Summary List, counted only when the SO Num also appears in Invoice Margin. The unit falls in the month of the SO's first invoice. The previous period is the same number of months immediately before your selection (with one month selected, it is the previous month). Employee units are based on efficiency (Exp Hrs ÷ Act Hrs), capped at 1 per component. An employee's own Seq lines on an SO are added up, e.g. 6.00 + 2.00 Exp ÷ 6.13 + 2.54 Act = 0.923. When 2 or more employees share the same Seq on an SO, they are pooled: the Seq's Exp Hrs is counted once, the pool's units = min(1, Exp ÷ total Act), and each person's share is their Act Hrs ÷ total Act, e.g. 20 ÷ 13.97 → 1 → 8.07 ÷ 13.97 = 0.578 and 5.90 ÷ 13.97 = 0.422. Lines with 0 Act Hrs are treated as 100% efficient. Transmission Actuator has a unit factor of 0.25, so 4 SOs at 100% efficiency = 1 unit. External 1 / External 2 are left out of the employee figures (their hours still count when they share a Seq, so staff aren't credited for their work). Revenue is the invoiced revenue of those SOs, shared equally when one SO covers several Job Descs.
Groups: Ecolife Angle Drive + Ecolife Co-Axial = Ecolife Transmission · ASTronic Mid + AS Lite + ASTronic / TC Tronic / HD = ASTronic Transmission · Schindler Lifts + Transmission Actuator = Others. All other Job Descs are shown on their own.
Utilization
Act Hrs ÷ (Normal Hours + OT 1.5 hrs + OT 2.0 hrs) · target 85% and above · Sng Beng Huat not includedUtilization by employee
Selected months · dashed line = 85% target
Utilization by month
All selected employees · FY to date · faded = months not selected
Utilization table
Efficiency
Total Exp Hrs ÷ Total Act Hrs · a Seq shared by several employees counts its Exp Hrs once · listed when below 95%Efficiency per SO below 95%
Invoiced SOs in the selected months (by first invoice month) · lowest first
Efficiency per Seq Desc below 95%
Each Seq Desc on each invoiced SO · Exp Hrs counted once when a Seq is shared, Act Hrs of everyone on it added · lowest first
Contribution by employee
Each SO's revenue and GP (excl GST) shared by Act Hrs: employee Act Hrs ÷ SO total Act HrsRevenue and GP contribution
S$ · invoiced SOs in the selected months · tap an employee to see their SOs
Contribution table
Utilization uses the month of each job route line's Start Date, and the month of Date Start (Available Hours) and Date (OvertimeTBL). OT hours are added as hours worked (not multiplied by 1.5 or 2.0). Efficiency and contribution use invoiced SOs only, dated by the SO's first invoice. External 1 / External 2 are not listed, but their Act Hrs stay in the SO totals, so staff are not credited for their share.
Data loaded
Security
The page's security rule (line 1 of the file) only lets the approved code run and blocks the page from sending anything to other addresses. If any unknown code is found, a red warning appears, the report is hidden and loading files is switched off.
Data quality checks
Department mapping (by PIC)
GP% targets
Used for the flags. Saved on this device.Definitions
- Revenue
- Invoice Amt + Charges from the Amount in SGD columns of Invoice Margin. GST is excluded. Credit notes (negative amounts) are netted off.
- Gross Profit (GP)
- The GP column of Invoice Margin.
- GP margin
- GP ÷ Revenue.
- Department
- From the PIC (Person In-Charge) on each invoice: Jane Teng Neng Li = Parts, Workshop Team = Workshop. Any other PIC is shown as Other until it's mapped under Department mapping.
- Fiscal year
- 1 April – 31 March, named by the starting year. FY26 = Apr 2026 – Mar 2027.
- Prior FY
- The same fiscal months one year earlier, with the same filters.
- Budget
- From the budget file, by month and department. Budget comparisons use only months that have a budget, and are hidden when a Customer or Employee filter is on (the budget isn't set per customer or employee) or when Department = Other.
- MoM
- Change against the previous calendar month.
- Rolling 12 months
- The total of the 12 months ending in each month. It starts once 12 months of history exist.
- Employee filter
- Keeps the invoices whose SO Num appears in the Job Route Summary against the chosen employees. An SO shared by several employees counts in full for each. Parts invoices have no job route, so they drop out when this filter is on.
- Target flag
- GP% below the department target is ▼ Below. Negative GP is ✕ Loss. For a mix of departments, the target is weighted by revenue.