Service agreements with a maintenance program that generates a due-dated maintenance schedule and bills on its own cadence, so recurring roofing revenue runs itself instead of living in a spreadsheet.
Maintenance agreements are the steadiest revenue a commercial roofer has, and the easiest to let slip. A quarterly inspection that nobody schedules is a renewal you lose and a leak you hear about from the customer first. Most contractors track it in a spreadsheet that only works while one person keeps it current.
SitewideOps turns a signed service agreement into a running program. Define the maintenance cadence once and the system generates the occurrences, bills the agreement on its schedule, and keeps every one on a due-dated worklist that flags anything overdue, so recurring work happens on time without living in someone's head.
A service agreement carries the maintenance program, the billing, and the covered properties.
Set up an agreement with its covered properties, term, and a maintenance program: the contract that drives everything downstream.
Choose monthly, quarterly, semiannual, or annual and the system generates one maintenance occurrence per covered property per interval, across the agreement's term.
Regenerating never doubles up. An existing occurrence near a target date is treated as that one, so you can activate and re-run safely. Past-due targets simply arrive as overdue.
Recurring-billing agreements draft one invoice per billing period, in advance through today, on a flat annual-value-divided-by-periods basis, and it's idempotent too.
Generated occurrences land on a due-dated worklist under Operations, with anything past due flagged as overdue, so a scheduler sees what's coming due next and nothing slips.
When you send a crew out for service work, they log time, photos, findings, and a daily report from the same offline mobile app they use on projects.
Activating an agreement is where it comes alive. When you activate, SitewideOps generates the maintenance occurrences from the program settings (cadence, covered properties, and term) and, for recurring-billing agreements, drafts the invoices due through today. Miss a start date or a covered property and activation stops and tells you, rather than quietly producing an empty schedule.
From there the program is self-healing. There's a Generate button on the agreement whenever you want to extend the horizon, and because generation is idempotent, running it again fills in what's missing without ever creating a duplicate occurrence or a duplicate invoice.
Service and projects, one system. Your maintenance book and your project work share the same crews, the same job costing, and the same accounting. So service isn't a bolt-on, it's part of the same operation.
See how a signed service agreement turns into a scheduled maintenance worklist and billing without a spreadsheet to babysit.