Home · Solutions · HR & people
Solution · HR & peopleNobody pays for an hour that was not submitted, approved and priced from the contract
Contractor hours from timesheet to agency invoice
Contractor hours are submitted once, approved in Teams against the contract rate and the purchase order, and every agency invoice line is matched to approved hours before payment.
Executive summary
You approve the hours in one place and pay the agency invoice in another, and nothing checks that the two agree.
We build one record for one hour of external work, and everything else hangs off it.
Hours are submitted once, in one layout, whatever each supplier produces, and nobody retypes a spreadsheet into a workbook.
SAP (purchase orders, service entries, project account assignment); the approved-hours ledger on SharePoint; the Power BI semantic model
Business problem
External workforce
External capacity is bought the way it is needed: a developer for six months, a test team for one release, an integration specialist for as long as the migration lasts. What arrives with it is an administrative process nobody designed. Hours come out of an agency portal, a spreadsheet the contractor fills in himself, a PDF signed at a client site, and the project office turns all of it into one workbook because the ERP accepts nothing else.
Approval is where the money is committed and where the least information is available. The delivery manager knows whether the work was done, but has neither the contract rate nor the purchase-order balance in front of them, and answers "ok, approved" in a chat. The decision is genuine; the record it leaves is not something finance can use two weeks later.
Finance meets the same work again as an invoice, usually summarised to a total with the detail in an attachment. Checking it means going back to a workbook updated after the approvals and before the last corrections, so the check becomes a sample. A rate that changed on extension, hours billed for someone who left mid-month and a day billed twice all survive that. None of this is hard at ten contractors; at several hundred it is a permanent part-time job for people hired to run delivery.
How it works today
What follows is the pattern we find in companies that buy a lot of external capacity, whatever the ERP.
- PersonContractors and coordinators send hours at period end as spreadsheets, portal exports, scans or a few lines in an email, and someone in the project office copies each into a consolidation workbook on SharePoint
- WaitingTimesheets sit there until the delivery manager has time, usually the last two days before the invoicing deadline
- PersonApproval is a reply in email or Teams, with neither the contract rate nor the purchase-order balance in front of the approver
- SystemApproved hours are booked to the project and the purchase order in SAP, or not, if the period is already closed
- Risk of errorThe agency invoice is sampled against the workbook, so rate differences and unapproved hours pass through
- WaitingDisputed lines go back by email and are settled on a later invoice, sometimes two months on
Why the current process costs more than it appears
The bill that never reaches the budget.
- Rate drift is the quietest of the losses. An assignment signed at one rate is invoiced at another after an extension or a new price list, and only someone comparing the line with the contract would see it.
- Approvals given without commercial context are approvals in name only. A manager confirming that work happened is not confirming the price or the budget behind it, yet the invoice is paid as if both had been checked.
- Purchase-order balances are discovered rather than managed. The overrun surfaces when a booking is blocked, by which point the work is done and the top-up is an emergency.
- Disputes cost twice: in the correspondence, and in the working capital tied up while a supplier holds a credit note. Raised three weeks late, a dispute is also far harder to win.
- Evidence exists, but in four places. Reconstructing who worked, on what, approved by whom and at which rate takes days when an auditor asks for it.
Cost of inaction
Two people in the project office absorb every increment of this, and nothing about that changes on its own. Every new supplier adds a file format, every extension adds a rate that may or may not have reached the workbook, and every quarter closes with an accrual that is an educated guess. The coordination effort grows in step with the bench, which is the opposite of why the bench exists.
What accumulates quietly is exposure. A few euros an hour on one assignment is invisible; across a year and several hundred assignments it is a number the CFO would want to know. And when the record is asked for, it is assembled from mailboxes by the two people who understand them.
A plausible organisation with realistic proportions. The figures are there to be recalculated on your data; they are not a client result.
A European software and IT services group: roughly 1,400 permanent employees and 420 external contractors from eleven staffing agencies and several independent suppliers, across four countries. SAP, Microsoft 365 E3, project accounting per delivery unit.
420 contractor timesheets a month and 60 agency invoices, arriving as portal exports, spreadsheets and signed PDFs; around 15 rate cards and 90 open purchase orders in play.
A consolidation workbook on SharePoint with one tab per supplier, kept by two people in the project office. Approvals come by email and chat, hours are booked to SAP by hand, and agency invoices are sampled before payment.
About 25 minutes per timesheet across collection, chasing, consolidation, approval follow-up, invoice checking and disputes, compressed into the days between period end and the invoicing deadline.
Every route ends in the same hour record: contractors submit in a form that knows their assignment, agency files are normalised by a robot, validation runs before anyone sees a record, the delivery manager approves in Microsoft Teams with rate, value and budget on the card, and invoices are matched line by line.
In the modelled case, coordination effort falls to the exception share, approvals move from the last two days of the period to a rolling cycle, and no invoice line reaches payment without an approved hour and a contracted rate behind it. Illustrative, not a client result.
Proposed solution
We build one record for one hour of external work, and everything else hangs off it. Contractors submit through a Microsoft Forms timesheet pre-filled from the assignment register, so nobody picks their own project, period or rate. Agencies keep their own systems: exports land in a SharePoint library or a mailbox, and a robot normalises each layout into the same record.
Validation runs before a person is involved. A robot checks every record against assignment dates, rate card, contractual limits and the remaining purchase-order balance in SAP, and catches duplicates. What survives reaches the delivery manager as an approval in Microsoft Teams carrying the commercial facts: hours, rate, value, month-to-date total and what is left on the purchase order.
Approved hours are posted to SAP against the purchase order and the project, and written to a ledger that becomes the counterparty for every agency invoice. Each invoice line is matched to approved hours, contracted rate and purchase order; matched lines join your payables route, the rest become a dispute item with the evidence attached. A dashboard shows approved hours, purchase-order consumption, rate variance and open disputes. Mientha supplies IT experts and teams, so we know this process from the supplier side too; what is designed here is the client side, deterministic on purpose.
Microsoft Forms responses as a Power Automate trigger; the Microsoft Teams Approvals app with attachments, reminders and Microsoft Purview audit; Office Scripts on Excel Online (Business); UiPath Orchestrator queues, triggers and audit; UiPath SAP automation activities and the SAP connectors in UiPath Integration Service; Power BI in a Teams tab
The assignment and rate-card register, the normalisation of every supplier file format, the validation rules, the approval card and its thresholds, SAP posting, the invoice match and the dispute pack
Purchase-order, service-entry and project lookups in SAP through UiPath SAP activities; agency portal downloads where a supplier offers no export or API
How the automated process works
- AutomationAt period end each contractor gets a Teams message with their pre-filled timesheet link and reminders until it arrives, while supplier files landing in the SharePoint library or the timesheet mailbox are normalised into the same hour record
- SystemA robot validates every record against assignment dates, rate card, contractual limits, duplicates and the remaining purchase-order balance in SAP
- PersonThe delivery manager approves in Microsoft Teams: hours, rate, value, month-to-date total and remaining budget on one card, with the source attached
- AutomationApproved hours are posted to SAP against the purchase order and the project, and written to the ledger with the approval record
- AutomationEach agency invoice line is matched to approved hours, rate and purchase order; matched lines are released to accounts payable
- PersonUnmatched lines become a dispute item with the evidence attached, sent from one template and tracked to settlement
- AutomationThe dashboard refreshes: approved hours, purchase-order consumption, rate variance and open disputes by supplier and project
Human-in-the-loop model
Automation handles
- Collection, normalisation and deduplication of hours from every route, including chasing what has not arrived
- Validation against assignment dates, rate cards, contractual limits and the purchase-order balance
- Posting of approved hours to SAP, the ledger entry, and the reminder and escalation cycle
- Matching every agency invoice line and assembling the evidence pack behind a disputed one
People decide
- Whether the work was delivered: the delivery manager approves the hours within their delegated limit
- Rate exceptions, overtime beyond the agreed pattern, and any hour outside the assignment dates
- Purchase-order top-ups and new assignments, which stay a procurement decision
- Whether a disputed line is credited, re-billed or taken into the next supplier review
Before and after
Systems and integrations
We do not add technology to make an architecture look serious. Every element below has a specific job in this process.
Inputs
- Microsoft Forms timesheets
- supplier files in a SharePoint library
- a timesheet mailbox
- agency portal exports
- the assignment and rate-card register
Automation layer
- UiPath Orchestrator
- UiPath Robots
- UiPath Integration Service
- Power Automate cloud flows
- Office Scripts on Excel Online (Business)
Target systems
- SAP (purchase orders, service entries, project account assignment)
- the approved-hours ledger on SharePoint
- the Power BI semantic model
Human touchpoints: Microsoft Teams Approvals for delivery managers; a Teams channel for reminders and dispute status; the Power BI dashboard in a Teams tab
Technologies used
timesheet submission pre-filled from the assignment register; the response starts the flow
Asubmission, approvals, reminders and the Office Scripts that normalise supplier spreadsheets
Adelivery managers approve with rate, value and purchase-order balance on the card
Anormalise supplier files, read rate cards and purchase orders, post approved hours, queue and log
Apurchase-order balances, service entries, project account assignment
Asupplier file drop, rate-card register, approved-hours ledger and evidence pack
Aexternal workforce dashboard: approved hours, purchase-order consumption, rate variance, open disputes
AIllustrative economic model
What it is worth, with the arithmetic shown.
Change the volume, the minutes or the rate below and the arithmetic follows; the starting values are ranges we see in companies with a large external bench, not a measurement at a client. The 25 minutes is the whole coordination cost per timesheet: collecting, chasing, consolidating, following up an approval, checking invoice lines and handling disputes. The €33 is a fully loaded internal hourly cost for project-office and finance roles in Central Europe, not the contractor's billing rate. We model capacity released, not headcount.
Run the numbers on your data
An illustrative estimate from your own inputs. It models released capacity; it is not a promise of savings.
Business benefits
- Hours are submitted once, in one layout, whatever each supplier produces, and nobody retypes a spreadsheet into a workbook
- Approval carries the rate, the value and the remaining purchase-order balance, so the manager decides with the commercial facts rather than around them
- Agency invoices are matched line by line before payment instead of sampled after it, the point where a rate difference is still cheap to fix
- Purchase-order consumption is visible while there is still time to act, and the month-end accrual is built from approved hours instead of an estimate
- Disputes leave within days of the invoice, with the timesheet and the approval attached, which is when suppliers still accept them
The management view
- Spend on the external workforce is readable by supplier, project and delivery unit while the month is running, not four weeks after it closes
- Rate discipline stops depending on who remembers the contract: every hour is priced from the register, and an exception is a decision with a name on it
- Growth in the contractor base no longer converts into coordination effort, so a bigger bench costs no more to administer
- Every hour has an audit line: who submitted it, who approved it, against which assignment, rate card and purchase order
Board-level KPIs
Security and governance
Security is designed with the process, not after it.
- The robot works under its own SAP account, limited to reading purchase orders and posting service entries on the project objects in scope. It is never a person's account, and every step is logged in Orchestrator.
- Approving hours and changing a rate are separated: an approver sees the rate for their own assignment but cannot alter the rate card, because a rate change is a procurement decision with its own record. Account secrets live in the credential store, not in a flow.
- Contractor names, day-level hours and rates are personal and commercial data at once. Both stay put: the ledger in your Microsoft 365 tenant with retention set in Microsoft Purview, the automation in UiPath Automation Cloud, EU region.
- Every released invoice line keeps its evidence: timesheet, validation result, approver, timestamp, rate card and purchase-order position, exportable as one pack.
Why now
External work is bought in hours and paid in invoices, and the two are reconciled by hand. In the modelled case that reconciliation costs €5,775 a month and buys no control, because the rate differences it exists to catch are found by sampling.
Directive 2008/104/EC requires temporary agency workers to receive at least the basic working and employment conditions, pay included, that would apply had they been recruited directly for the same job. Whatever the national implementation, an hours-and-rates record should come from one register, not from mailboxes.
The pieces are ordinary now. Forms, Power Automate approvals and Teams sit in a standard Microsoft 365 estate, Power BI needs licensing but no new platform, and the SAP side is routine robot work.
Relevant executive roles
External spend becomes a committed and consumed number during the month, and no invoice is paid for hours nobody approved at a rate nobody contracted
Managers approve with the rate and the budget in front of them, and the project office stops ending every period chasing spreadsheets
The external workforce is documented as carefully as the internal one: who works where, on what terms, with a record behind every hour
Rate cards and purchase orders are enforced by the flow rather than by memory, and supplier reviews open with data
Common questions and objections
They keep their portals. Where a supplier can export hours we take the export and normalise it; the form is for contractors with no portal. What matters is that every route ends in the same record.
The card is what changes that. It shows hours, rate, value, month-to-date total and the remaining purchase-order balance, so approving is a commercial decision. Anything outside the assignment or rate card cannot be approved there.
Start with the spend that does, and validate the rest against the assignment register and rate card, which still catches rate differences and unapproved hours. Extending coverage is the second phase.
When this is not the right solution
- A handful of contractors on a single rate, where a shared workbook and a monthly review cost less than the flow
- Fixed-price and deliverable-based contracts with no hourly billing, where the control is milestone acceptance rather than timesheets
- No reliable record of who is assigned to what and at which rate; that register has to exist first, because everything downstream is validated against it
A question for the next management meeting
For last month's external workforce invoices, how many lines could we prove were approved, at the contracted rate, against a purchase order that still had budget?
Implementation approach
What we deliver, and what we need from you to start.
We deliver
- The assignment register, the rate cards and three months of agency invoices, read side by side
- The submission layer: forms for contractors, normalisation for agency files
- The validation rules: assignment dates, rate cards, limits, duplicates, purchase-order balance
- The Teams approval design: card content, delegation limits, reminders, escalation
- SAP posting of approved hours, the invoice match and the dispute pack
- The Power BI dashboard and a runbook for the project office and payables
We need from you
- The assignment and rate-card data as it is kept today, in any shape
- Three months of agency invoices with the timesheets behind them
- A process owner in the project office and a counterpart in accounts payable
- Technical accounts for SAP and for the timesheet mailbox and library
Stages
Discovery
Assignment register, rate cards, supplier formats, exceptions, volumes
Design
Submission routes, validation rules, approval thresholds, match logic, security
Build
Forms and flows, normalisation and SAP robots, the Teams approval, the dashboard
Validation
Replay of three closed periods against what was invoiced and paid
Go-live
One delivery unit and its suppliers first, then rollout with hypercare
Optimisation
Rule tuning, new supplier formats, dispute analytics, supplier scorecards
Departmental. Effort is driven by the number of staffing suppliers and their file formats, the state of rate-card data, and how purchase orders and service entries are structured.
Eleven agencies, one consolidation workbook, and two people who understand it.
Send us three months of agency invoices with whatever you hold as timesheets and rate cards. We come back with the share of lines that would have matched first time, and an error taxonomy for the rest.
Test a month of agency invoicesThe neighbouring process usually has the same problem
Payroll errors are found by the employee on payday, not by the team that built the file.
View solution Finance & accountingInvoice processing without manual data entryStop paying your finance team to move numbers from PDFs into the ERP.
View solution Management & planningFrom project hours to the invoiceConsultants log hours late, finance rebuilds the billing in Excel, and invoices leave three weeks after the work.
View solution HR & peopleEvery application answered, every interview bookedApplications wait days for an answer while recruiters match a panel's calendars by email.
View solution Case studyDriver settlementNo more manual document collection and spreadsheets.
View case study Case studyServicesWe specialise in process automation (RPA), agentic solutions and high-quality outsourcing.
View case studyIndustries we deliver this in most oftenManufacturing & industryTransport & logisticsServices & ITShared services