ERP for AMC and Maintenance Companies: PPM Schedules, Service Tickets and Invoicing
Short answer: AMC and maintenance contracting businesses lose money in three predictable places — planned visits that quietly never happen, chargeable work that never reaches an invoice, and contracts nobody notices have expired. All three are scheduling and paperwork problems, not technical ones. An ERP that holds the contract, generates the preventive maintenance calendar from it, captures service tickets against it and bills from what actually happened closes all three gaps at once.
Annual maintenance contracting looks like a simple business from the outside. You sign a contract, you visit the site on a schedule, you fix things when they break, you invoice quarterly. In practice it is one of the hardest service models to run profitably, because almost everything that determines the margin happens away from the office — in a van, on a roof, in a plant room, recorded on a paper job sheet that may or may not come back.
The symptoms are consistent across HVAC, lifts and elevators, fire and safety systems, generators, IT infrastructure, facilities management and medical equipment:
- Nobody can say with certainty how many preventive visits are due this month, or how many of last month's were completed.
- Technicians do chargeable work outside the contract scope and it never gets billed, because the job sheet said "attended."
- Spare parts leave the store without being attached to a job, so contract profitability is guesswork.
- Contracts lapse silently, and the renewal conversation starts after the customer has already taken quotes.
- When a customer disputes the SLA, the evidence is a WhatsApp thread.
This guide covers how to run the whole cycle — contract, planned preventive maintenance, service tickets, parts, invoicing and renewal — inside one system, and which parts genuinely benefit from automation.
Start with the contract, not the ticket
Most maintenance businesses that computerise start with the wrong object. They buy a helpdesk, start logging tickets, and discover a year later that tickets alone cannot tell them whether a contract is profitable, because the contract was never modelled.
The contract is the parent record. Everything else hangs off it. A properly structured AMC contract holds:
| Element | Why it matters |
|---|---|
| Covered assets | Specific units with serial numbers, not "the air conditioning" — disputes are always about a particular machine |
| Period and value | Drives both the billing schedule and the renewal alert |
| Visit frequency | Monthly, quarterly, half-yearly — the basis of the PPM calendar |
| Scope inclusions and exclusions | Decides what is billable; usually the single biggest margin lever |
| Response and resolution SLA | Measurable only if ticket timestamps are captured honestly |
| Parts treatment | Included, excluded, or capped — must be explicit or it becomes a monthly argument |
Get this structure right and the rest of the system has something to attach to. Get it wrong and you are running a ticket log, not a maintenance business.
Planned preventive maintenance that generates itself
PPM is where contracts are won and margins are lost. Customers buy the promise of planned visits; contractors lose money when those visits bunch up at the end of the period and get done badly, or get skipped and are later claimed as delivered.
The fix is to stop treating the schedule as a document and start treating it as generated data. When a contract is activated, the system creates the full calendar of planned visits for the period — every asset, every due date, for the whole term. From that point the questions the business actually needs answered become queries rather than investigations:
- What is due in the next 14 days, by site and by technician?
- What was due last month and not completed?
- Which assets have had no visit at all this contract period?
- Which sites consume far more unplanned attendance than planned?
That last question is the profitability signal. A site generating three breakdown calls for every planned visit is either under-maintained or under-priced, and both are fixable — but only once you can see it.
ERPNext provides a maintenance schedule and maintenance visit structure that covers this pattern, with asset-level maintenance tasks and logs for equipment you own or manage. For most contractors the useful customisation is a checklist per equipment type, so a chiller visit and a fire pump visit capture genuinely different readings rather than a shared free-text box.
A practical detail that matters more than it should: generate planned visits with a due window rather than a fixed date. A quarterly visit due "in the first half of March" gets scheduled around the route and completed. One due "on 14 March" gets missed, then rescheduled, then argued about.
Service tickets: reactive work, captured properly
Breakdown calls are where the SLA lives and where billing leaks. A ticket needs to carry, at minimum, the customer and the specific asset, the contract it falls under, timestamps for reported, assigned, attended and resolved, the technician, the work done, parts consumed, and — critically — a scope decision: was this covered, or is it chargeable?
That scope decision should be made by the technician at the point of work, on the device, while the customer is standing there. Made later in the office, from a job sheet, it is a guess; and guesses default to "covered," because nobody wants to invoice a customer for work they have already accepted.
A few rules that consistently improve capture:
- A ticket cannot be closed without a scope decision and a customer signature or acknowledgement.
- Parts must be issued against the ticket, not against the van in general — otherwise van stock becomes a black hole.
- Photographs before and after are worth more than a paragraph of description, particularly in disputes.
- Time on site should be recorded, even when not billed, because it is the only way to cost a contract honestly.
Spare parts and van stock
Every maintenance business has more inventory than it thinks, and most of it is in vehicles. Treating each van as a warehouse — with issues, returns and periodic counts — turns an invisible cost into a managed one.
The pattern that works: parts move from the main store to the van as a stock transfer, and from the van to the job as a consumption entry against the ticket. The van's balance is then always knowable, and a quarterly count reconciles it. Without the second step, parts vanish from the books the moment they leave the store and contract costing is fiction.
Invoicing: the part that pays for the system
AMC billing has two streams, and they behave differently.
The contract stream is predictable: a fixed value billed monthly, quarterly or annually in advance or arrears. This should be automatic. A recurring billing setup against the contract raises each invoice on schedule without anyone remembering to do it, and the revenue can be recognised across the period rather than landing in one month and distorting the accounts.
The chargeable stream is where the money is won or lost: out-of-scope repairs, parts outside the cap, work outside covered hours, additional equipment. This stream only exists if the scope decision was captured at the ticket. Where it is, the invoice can be raised from the ticket itself, with the parts and labour already on it, and the whole "what did we do for them last month" conversation disappears.
Two regional points worth building in from the start:
- UAE: maintenance services carry 5% VAT, and the phased e-invoicing programme means invoices will need to be produced as structured data, not just PDFs. A system that can emit that format matters more than one that prints a nicer invoice.
- India: AMC services fall under GST with the applicable service rate, and above the threshold require e-invoicing with IRN and QR code. Contract and breakdown billing both need to flow through the same compliant pipeline.
What to automate — and what to leave alone
Automation in maintenance businesses pays off fastest where the task is repetitive, date-driven and currently depends on somebody remembering. It pays off worst where it replaces judgement.
| Automate | Why it works |
|---|---|
| PPM visit generation from the contract | Removes the single most common cause of missed visits |
| Recurring contract invoices | Predictable, dated, and costly to forget |
| Renewal alerts at 90, 60 and 30 days | Renewal is cheaper than acquisition; silence loses contracts |
| SLA breach escalation | A breach the manager hears about today is recoverable |
| Overdue-visit digest to operations | Turns a monthly panic into a weekly correction |
| Customer notification on assignment and completion | Removes most "when are you coming" calls |
What not to automate: technician assignment in a business where skills, geography and customer relationships all matter. Auto-assignment by round robin looks efficient in a demo and produces the wrong engineer on the wrong site in practice. Propose, do not decide.
The reports that actually change decisions
Once contract, PPM, tickets, parts and invoices live in one system, four reports become available that most maintenance businesses have never had:
- Contract profitability. Contract value against labour hours, parts consumed and visits made. Some contracts will be losing money, and usually not the ones people assume.
- PPM completion rate. Planned versus completed, by month and by site. This is also the number customers ask for at renewal.
- SLA performance. Response and resolution against commitment, by customer. Worth having before the customer brings their own version.
- Revenue leakage. Chargeable work identified versus chargeable work invoiced. The gap is almost always larger than expected in year one.
Implementation order that works
Maintenance businesses cannot pause to implement software, so sequence matters more than usual:
- Customers, sites and assets first. Tedious, unavoidable, and the foundation for everything. An asset register with serial numbers and locations is most of the work.
- Contracts next, with real scope text, not a summary.
- Generate PPM for the current period and run it alongside the existing method for one cycle.
- Move tickets in once technicians trust the schedule.
- Switch billing last, when ticket data is reliable enough to invoice from.
Teams that start with billing because it is the visible pain almost always stall, because billing depends on data that only accumulates once the earlier steps run.
Frequently asked questions
Can technicians use this without a laptop?
Yes — the practical requirement is a mobile-friendly interface for viewing the day's visits, recording work done, consuming parts and capturing a signature. Offline capability matters if your sites include plant rooms and basements, so confirm it rather than assuming it.
We run both AMC contracts and one-off jobs. Does that work?
It is the normal case. One-off jobs simply have no parent contract, so every line is chargeable. The same ticket, parts and invoicing flow serves both.
How do we handle contracts where parts are capped rather than included?
Track parts consumption against the contract and compare it to the cap. Once the cap is reached, subsequent consumption is flagged chargeable. This needs the parts-to-ticket discipline described above; without it the cap cannot be measured.
Will this tell us which customers to drop?
It will tell you which contracts lose money. Whether to drop, reprice or re-scope them is a commercial decision — but it becomes an informed one, and repricing at renewal is usually the better answer.
How long before we see the benefit?
Missed-visit visibility appears in the first cycle. Revenue leakage typically shows up within a quarter, once enough tickets carry scope decisions. Contract profitability needs a full period of clean data to be trustworthy.
The bottom line
AMC is a business of small, repeated obligations. Any single missed visit or unbilled repair is minor; a year of them is the difference between a healthy contract book and a busy one that makes no money.
The system does not need to be clever. It needs to hold the contract, produce the schedule from it, capture what actually happened on site, and bill from that — reliably, every month, without depending on anyone's memory.