Over the last two articles I built the asset management picture from the ground up: first the foundation of functional locations, assets, and asset types, then the preventive side, where maintenance plans, rounds, and triggers project a forecast of work. I kept making the same promise at the end of each one, that the work order is the thing that finally posts cost when it is ended, and I kept deferring the detail. Today I pay that debt. I want to follow a maintenance work order all the way through execution and into money: where it comes from, how it schedules against the people and the equipment, how it picks up labour hours and spare parts from the same inventory the shop floor draws on, and the exact moment the cost becomes a financial fact that finance can see.
WHERE THE WORK ORDER COMES FROM
A maintenance work order in Dynamics 365 has two parents. The first is preventive: the forecast I described last time generates work orders from due plan lines, so a calendar trigger or a counter reading quietly turns into a scheduled job without anyone typing it in. The second is corrective: something breaks or someone notices a problem, a maintenance request is raised, and that request is converted into a work order. Either way you land on the same object, and that is the design intent. Whether the work was planned a year out or reported five minutes ago, it flows through one consistent lifecycle so the maintenance team has a single backlog to schedule and a single place where cost accumulates. A work order carries one or more work order jobs, and each job names a job type and a trade, exactly the controlled vocabulary the plan lines use, which is why the taxonomy decisions from the foundation article keep paying off here.
THE WORK ORDER LIFECYCLE
The work order moves through a sequence of lifecycle states, and the states are not cosmetic. They gate what you are allowed to do and, crucially, when cost is recognised. A new order is created, then scheduled, then it goes in progress while the work is actually done, then it is completed when the technician is finished on the floor, and finally it is ended. That last transition is the one that matters financially. Until the order is ended, the hours and parts on it are estimates and commitments; they show you what the job is expected to consume and they let you plan, but they have not yet hit the ledger. Ending the order is the act that posts the real cost. I labour this point because it is the single most common source of confusion I see: people look at an in-progress order, see numbers, and assume finance has them, when in fact nothing has posted until the order reaches the ended state.
Each lifecycle state is configurable, so an implementation can add intermediate states or control which user groups may move an order forward. That is useful for governance, for example requiring a supervisor to push an order from completed to ended so there is a review step before cost is committed. The principle to hold onto is that the state machine is the backbone of the whole module: scheduling, execution, and costing all hang off where the order sits in its lifecycle.
SCHEDULING AGAINST WORKER AND ASSET
A work order is not just a task list; it is a demand for two scarce resources at once, a competent person and an available machine. Scheduling in the module respects both. On the worker side, jobs are scheduled to maintenance workers whose trade matches the job and whose calendar has capacity, so you are not booking a calibration to someone who is already committed elsewhere or who lacks the qualification. On the asset side, the schedule has to respect the equipment's own availability, because you cannot service a press that production needs running, and you cannot do certain jobs while the line is live. The art of maintenance scheduling is finding the window where the worker is free and the asset can be released at the same time, which is why preventive forecasting earns its keep: a job you can see coming three months out can be slotted into a planned downtime, while a breakdown forces you to take the window you can get.
This is also where leveling matters. If your preventive forecast has bunched three large jobs into the same week, the scheduling view is where you discover it and spread the load before it collides with production. A forecast you never level just moves the firefighting from breakdowns to overbooked technicians.
LABOUR HOURS AND SPARE PARTS
Now to consumption, which is where a maintenance work order touches the rest of Dynamics 365. Three kinds of cost land on the order. The first is labour: the hours a worker spends, valued at a cost rate, posted as the time is registered against the job. The second is materials, and this is the important integration point: the spare parts a maintenance job consumes are ordinary inventory items, drawn from the same item master and the same on-hand stock the shop floor uses. When a technician issues a bearing or a filter to a work order, that is an inventory transaction; on-hand quantity drops, the item's costing rules decide the value, and the cost flows onto the order. The third category is expenses and external services, for subcontracted work, fees, and sundries that are not stock items. The work order gathers all three into one place so you can see the true cost of a repair rather than just the labour.
The integration with inventory deserves emphasis because it is easy to underestimate the consequences. If maintenance draws a critical spare and nobody planned for it, you have just created an unexpected shortage for production or for another repair. This is why spare parts belong in the same planning conversation as everything else: stocked at sensible min and max levels, visible to master planning, and replenished like any other item. A maintenance module that pretends spares live in a separate world is a module that will surprise you at the worst moment.
ESTIMATE VERSUS ACTUAL
A work order job can carry an estimate, the hours and parts you expect it to need, set from the job type defaults or from experience. As the work is done, actuals accumulate against that estimate. The gap between the two is one of the most useful pieces of management information the module produces, because a job that consistently runs over its estimate is telling you something: the interval is wrong, the task is harder than assumed, or the asset is degrading. Reviewing estimate against actual is how a maintenance practice gets better over time rather than just busier. It also feeds back into the preventive design from the last article, because a forecast built on stale estimates will mislead you about future load.
WHEN COST ACTUALLY POSTS
To say it plainly one more time, because it is the heart of this article: the financial impact of a maintenance work order is realised when the order is ended. At that point the labour, the consumed items, and the expenses are posted, the inventory issues are finalised, and if the work is being tracked against a maintenance project or cost object the entries land there too. Before ending, you have visibility and accruals; after ending, you have actual cost that finance can report on. The discipline this demands is simple but easy to neglect: orders must actually be ended, promptly, once the work is done. A pile of completed-but-not-ended work orders is a pile of cost that has happened in the real world but not yet in the system, and that gap quietly understates your maintenance spend until someone catches up.
WHAT GOES WRONG
• Treating in-progress numbers as posted cost. Nothing hits the ledger until the order is ended; until then you are looking at estimates and commitments, not actuals.
• Completed orders that are never ended. The work happened, the cost did not post, and maintenance spend looks artificially low until the backlog is cleared. Build a routine, or a lifecycle gate, that forces timely ending.
• Scheduling the worker but ignoring the asset. A job booked when the equipment cannot be released does not get done; respect both calendars or the schedule is fiction.
• Spare parts kept outside planning. Maintenance items are real inventory; if they are not stocked and replenished like everything else, a repair will create a shortage somewhere you did not expect.
• Never reviewing estimate against actual. Jobs that always overrun are free diagnostic data; ignoring them keeps your preventive intervals and your forecasts wrong.
TAKEAWAYS
A maintenance work order is the place where everything in the module becomes concrete. It arrives from the preventive forecast or from a corrective request, it carries jobs typed by the same trade and job-type vocabulary the plans use, and it moves through a lifecycle whose final state, ending, is the moment cost stops being an estimate and becomes a posted financial fact. Along the way it schedules against both the worker and the asset, and it consumes labour, spare parts drawn from ordinary shop-floor inventory, and outside expenses, gathering all three into one true cost of the repair. Run it well, which mostly means ending orders promptly, keeping spares inside normal planning, and watching estimate against actual, and asset management stops being a black box and becomes a clear, costed view of what it takes to keep your equipment running.
Next time I will look at the reporting and analytics side of asset management: how the cost that posts when orders end rolls up into asset cost over a lifetime, what mean-time-between-failure and downtime tracking tell you, and how to use that history to decide when an asset is no longer worth maintaining and should be replaced.
In this series: previous article Preventive Maintenance in D365 Asset Management: Maintenance Plans, Rounds, and Triggers
Over the last two articles I built the asset management picture from the ground up: first the foundation of functional locations, assets, and asset types, then the preventive side, where maintenance plans, rounds, and triggers project a forecast of work. I kept making the same promise at the end of each one, that the work order is the thing that finally posts cost when it is ended, and I kept deferring the detail. Today I pay that debt. I want to follow a maintenance work order all the way through execution and into money: where it comes from, how it schedules against the people and the equipment, how it picks up labour hours and spare parts from the same inventory the shop floor draws on, and the exact moment the cost becomes a financial fact that finance can see.
WHERE THE WORK ORDER COMES FROM
A maintenance work order in Dynamics 365 has two parents. The first is preventive: the forecast I described last time generates work orders from due plan lines, so a calendar trigger or a counter reading quietly turns into a scheduled job without anyone typing it in. The second is corrective: something breaks or someone notices a problem, a maintenance request is raised, and that request is converted into a work order. Either way you land on the same object, and that is the design intent. Whether the work was planned a year out or reported five minutes ago, it flows through one consistent lifecycle so the maintenance team has a single backlog to schedule and a single place where cost accumulates. A work order carries one or more work order jobs, and each job names a job type and a trade, exactly the controlled vocabulary the plan lines use, which is why the taxonomy decisions from the foundation article keep paying off here.
THE WORK ORDER LIFECYCLE
The work order moves through a sequence of lifecycle states, and the states are not cosmetic. They gate what you are allowed to do and, crucially, when cost is recognised. A new order is created, then scheduled, then it goes in progress while the work is actually done, then it is completed when the technician is finished on the floor, and finally it is ended. That last transition is the one that matters financially. Until the order is ended, the hours and parts on it are estimates and commitments; they show you what the job is expected to consume and they let you plan, but they have not yet hit the ledger. Ending the order is the act that posts the real cost. I labour this point because it is the single most common source of confusion I see: people look at an in-progress order, see numbers, and assume finance has them, when in fact nothing has posted until the order reaches the ended state.
Each lifecycle state is configurable, so an implementation can add intermediate states or control which user groups may move an order forward. That is useful for governance, for example requiring a supervisor to push an order from completed to ended so there is a review step before cost is committed. The principle to hold onto is that the state machine is the backbone of the whole module: scheduling, execution, and costing all hang off where the order sits in its lifecycle.
SCHEDULING AGAINST WORKER AND ASSET
A work order is not just a task list; it is a demand for two scarce resources at once, a competent person and an available machine. Scheduling in the module respects both. On the worker side, jobs are scheduled to maintenance workers whose trade matches the job and whose calendar has capacity, so you are not booking a calibration to someone who is already committed elsewhere or who lacks the qualification. On the asset side, the schedule has to respect the equipment's own availability, because you cannot service a press that production needs running, and you cannot do certain jobs while the line is live. The art of maintenance scheduling is finding the window where the worker is free and the asset can be released at the same time, which is why preventive forecasting earns its keep: a job you can see coming three months out can be slotted into a planned downtime, while a breakdown forces you to take the window you can get.
This is also where leveling matters. If your preventive forecast has bunched three large jobs into the same week, the scheduling view is where you discover it and spread the load before it collides with production. A forecast you never level just moves the firefighting from breakdowns to overbooked technicians.
LABOUR HOURS AND SPARE PARTS
Now to consumption, which is where a maintenance work order touches the rest of Dynamics 365. Three kinds of cost land on the order. The first is labour: the hours a worker spends, valued at a cost rate, posted as the time is registered against the job. The second is materials, and this is the important integration point: the spare parts a maintenance job consumes are ordinary inventory items, drawn from the same item master and the same on-hand stock the shop floor uses. When a technician issues a bearing or a filter to a work order, that is an inventory transaction; on-hand quantity drops, the item's costing rules decide the value, and the cost flows onto the order. The third category is expenses and external services, for subcontracted work, fees, and sundries that are not stock items. The work order gathers all three into one place so you can see the true cost of a repair rather than just the labour.
The integration with inventory deserves emphasis because it is easy to underestimate the consequences. If maintenance draws a critical spare and nobody planned for it, you have just created an unexpected shortage for production or for another repair. This is why spare parts belong in the same planning conversation as everything else: stocked at sensible min and max levels, visible to master planning, and replenished like any other item. A maintenance module that pretends spares live in a separate world is a module that will surprise you at the worst moment.
ESTIMATE VERSUS ACTUAL
A work order job can carry an estimate, the hours and parts you expect it to need, set from the job type defaults or from experience. As the work is done, actuals accumulate against that estimate. The gap between the two is one of the most useful pieces of management information the module produces, because a job that consistently runs over its estimate is telling you something: the interval is wrong, the task is harder than assumed, or the asset is degrading. Reviewing estimate against actual is how a maintenance practice gets better over time rather than just busier. It also feeds back into the preventive design from the last article, because a forecast built on stale estimates will mislead you about future load.
WHEN COST ACTUALLY POSTS
To say it plainly one more time, because it is the heart of this article: the financial impact of a maintenance work order is realised when the order is ended. At that point the labour, the consumed items, and the expenses are posted, the inventory issues are finalised, and if the work is being tracked against a maintenance project or cost object the entries land there too. Before ending, you have visibility and accruals; after ending, you have actual cost that finance can report on. The discipline this demands is simple but easy to neglect: orders must actually be ended, promptly, once the work is done. A pile of completed-but-not-ended work orders is a pile of cost that has happened in the real world but not yet in the system, and that gap quietly understates your maintenance spend until someone catches up.
WHAT GOES WRONG
• Treating in-progress numbers as posted cost. Nothing hits the ledger until the order is ended; until then you are looking at estimates and commitments, not actuals.
• Completed orders that are never ended. The work happened, the cost did not post, and maintenance spend looks artificially low until the backlog is cleared. Build a routine, or a lifecycle gate, that forces timely ending.
• Scheduling the worker but ignoring the asset. A job booked when the equipment cannot be released does not get done; respect both calendars or the schedule is fiction.
• Spare parts kept outside planning. Maintenance items are real inventory; if they are not stocked and replenished like everything else, a repair will create a shortage somewhere you did not expect.
• Never reviewing estimate against actual. Jobs that always overrun are free diagnostic data; ignoring them keeps your preventive intervals and your forecasts wrong.
TAKEAWAYS
A maintenance work order is the place where everything in the module becomes concrete. It arrives from the preventive forecast or from a corrective request, it carries jobs typed by the same trade and job-type vocabulary the plans use, and it moves through a lifecycle whose final state, ending, is the moment cost stops being an estimate and becomes a posted financial fact. Along the way it schedules against both the worker and the asset, and it consumes labour, spare parts drawn from ordinary shop-floor inventory, and outside expenses, gathering all three into one true cost of the repair. Run it well, which mostly means ending orders promptly, keeping spares inside normal planning, and watching estimate against actual, and asset management stops being a black box and becomes a clear, costed view of what it takes to keep your equipment running.
Next time I will look at the reporting and analytics side of asset management: how the cost that posts when orders end rolls up into asset cost over a lifetime, what mean-time-between-failure and downtime tracking tell you, and how to use that history to decide when an asset is no longer worth maintaining and should be replaced.
In this series: previous article Preventive Maintenance in D365 Asset Management: Maintenance Plans, Rounds, and Triggers
No replies yet. Be the first to respond!