End-to-end workflows

How work moves through Projects from start to finish, who does each step and what the system does in response.

On this page (8)

Win a project: create from template, team, plan, baseline

Who: PM-A (Project manager role), PM-B (a second Project manager), Member M (Project member role)

#What the person doesWhat the system does
1PM-A: Projects > All Projects > Create Project > template 'Construction Project'; start 2026-10-01, planned finish 2027-03-29, contract value 1,000,000, manager 'Test PM', customer a test customer; CreateProject 360 opens in Planning or Draft with 11 tasks, 5 milestones, 5 billing steps (10 / 10 / 30 / 20 / 10 %), a draft 'Original budget' of 850,000 and three documents; code uses the company prefix
2PM-A: Overview > Add Team Member: employee 'Test Engineer' (role Site engineer, allocation 100 %); add user M as a team memberBoth appear in the team with availability; M can now see the project under My Projects
3PM-A: Tasks: open task 'Excavation', assign to M, planned hours 80; add a dependency to the next task on the GanttTask shows M as assignee; Gantt draws the link and the critical path; a loop attempt is refused
4M: Projects > Execution > Tasks (mine): open the task, move it to In progress, set progress 25 %Task becomes In progress with actual start today; project overall progress rises by the planned-hours weight; M sees no budget, cost or margin anywhere
5PM-A: Actions > Save schedule baseline; PM-A tries to approve the baseline; PM-B approves it (Gantt > baselines)Baseline is Draft until approved; task baseline start / finish / cost are filled from the snapshot after approval; variance columns appear on the Gantt
6PM-A: Actions > In Progress (from Planning, via Approved if the template requires)Status follows the allowed moves only; each move is on the activity feed 'Status changed to In Progress'

Estimate, budget approval (maker-checker), freeze, budget change

Who: PM-A (project.budget.edit), PM-B (project.budget.approve), Member M (no budget rights)

#What the person doesWhat the system does
1PM-A: Planning > Estimation: new estimate, add 3 lines (Concrete 100 m3 x 20 with waste 5 % = 2,100 cost; Labour; Equipment), Save lines, SubmitEstimate state Submitted; Summary by category shows cost, price and margin %; PM-A cannot edit the lines any more ('Only a draft estimate can be edited; make a new revision.')
2PM-B: approve the estimate; PM-A: Budget > Budget versions > From estimateEstimate Approved (an older approved estimate becomes Superseded); a new draft budget version is made with one line per cost code, labelled 'From estimate <number>'
3PM-A: adjust lines so the total is 475,000 (Material 255,000, Labour 120,000, Subcontract 100,000); Save lines; Submit for approval; then press Approve as PM-AVersion Submitted; approvers get a notice; PM-A refused 'Somebody other than who submitted it must approve it.'
4PM-B: Reject once with the version open, then PM-A re-submits and PM-B ApprovesReject sends it back to Draft; after Approve the state is Approved, previous approved version (if any) is Revised, activity 'Budget approved - <name>'; Budget vs Actual grid shows Original = Current = 475,000
5PM-B: Freeze the approved version; PM-A tries Save lines on itState Frozen; PM-A refused 'Only a draft budget can be edited; revise the approved one instead.'
6PM-A: Budget change: Transfer 20,000 Material -> Subcontract, reason 'Subcontract the blockwork'; PM-A tries Approve; PM-B approvesChange BC-001 Submitted; PM-A refused 'Somebody other than who asked for it must decide it.'; after PM-B: Material current 235,000, Subcontract current 120,000, total still 475,000; Approved Changes column shows -20,000 / +20,000
7M opens the Budget tabRefused 'You do not have permission for this action.'; the Project 360 KPI Approved Budget shows a dash

Time and expenses: log, approve, post, see actual cost and P&L

Who: Member M (cost 75 / bill 150 per hour, linked to a user), PM-A (project.resource.assign), PM-B (project.budget.approve)

#What the person doesWhat the system does
1M: Project 360 > Costs > Timesheets > Log Time: today, 8 h, billable, task Excavation; Save; SubmitEntry Draft -> Submitted; approvers with project.resource.assign notified; M's own Approve is refused 'Somebody else approves your time.'
2M: Costs > Expenses > Add Expense: Permits, 1,250 AED, billable; SubmitExpense Submitted; approvers with project.budget.approve notified
3PM-A: Projects > Execution > Timesheets: filter Submitted, tick M's entry, Approve selectedEntry Approved; cost 600.00 (8 x 75) and value 1,200.00 (8 x 150) count in Actual cost (labour) at once
4PM-A tries to approve the expense (has resource.assign only); PM-B approves itPM-A refused 'You do not have permission for this action.'; PM-B: Approved; 1,250 counts in Actual cost
5PM-B (or PM-A with budget.edit): Costs > Cost summary > Post approved time & expensesTime becomes Posted with a journal Dr Labour cost 600 / Cr Project Cost Clearing 600; expense Posted with Dr Expense 1,250 / Cr Expense clearing; each journal carries the project dimension; pressing again posts nothing twice
6PM-B: Costs > Project P&L; Forecast > Revise ETC with a reasonP&L shows direct cost 1,850 by category (labour 600, expense 1,250); Forecast shows Budget, Actual, Committed, ETC, EAC, VAC and a history line with the reason
7PM-A: Billing > Invoice time & materialOne draft customer invoice with 8 h x 150 and 1,250 expense; both entries become Billed; pressing again -> 'There is no approved billable time or expense to bill.'

Procurement: purchase request to PO to bill to actual cost

Who: PM-A (project.edit), PM-B (project.budget.approve), Purchasing / Accounting users

#What the person doesWhat the system does
1PM-A: Procurement > Purchase request: 'Concrete C40', vendor a test vendor, 120 m3 x 310; Save; SubmitRequest PR-001 Submitted, estimated 37,200.00; approvers notified
2PM-A tries Approve; PM-B approvesPM-A refused 'Somebody other than who asked must decide it.'; PM-B: Approved; 37,200 shows as Committed (material) on the project
3PM-A: Create Purchase OrderA DRAFT purchase order is created in Purchasing carrying the project, branch, department and cost centre; request state Ordered; activity 'Purchase Order created - <number>'
4Purchasing: confirm the PO; Accounting: receive and post a vendor bill of 37,200Once confirmed the PO net counts as committed instead of the request (never both); after the bill posts Committed drops by 37,200 and Actual cost rises by 37,200
5PM-A: Costs > Cost summary and Budget > Budget vs ActualBy category: Material actual +37,200; Budget vs Actual: Material Committed 0, Actual +37,200, Forecast Final unchanged unless ETC revised
6PM-A: try to order a request that is still Submitted (API) or edit the ordered one'Only an approved request can be ordered.' / 'Only a draft request can be changed.'

Subcontract: claim, review, verify, certify net of retention, vendor bill, payment

Who: PM-A (project.edit), PM-B (project.budget.approve), Accounting

#What the person doesWhat the system does
1PM-A: Procurement > Subcontracts > New subcontract: vendor, value 200,000, retention 10 %, advance 10 %; Activate; record a vendor advance of 20,000Subcontract Active; 200,000 shows as Committed (subcontract)
2PM-A: New claim: period end today, progress 25 %, claimed 50,000; then Reviewed; then Verified (verified = 50,000)Claim states Claimed -> Reviewed -> Verified; verified amount stored
3PM-B: Certified (certified = 50,000)Retention 5,000, advance recovery min(5,000, 20,000) = 5,000, net 40,000; committed falls to 150,000 and 50,000 counts as subcontract actual cost
4PM-A: Raise vendor billDraft vendor bill of 45,000 (certified less recovery) with the project dimension, posted at once when possible; then Dr Accounts payable 5,000 / Cr Retention payable 5,000; if the bill stays draft 'Post retention' appears and is refused 'Post the claim's vendor bill first.' until Accounting posts it
5Accounting pays the bill; PM-A marks the claim PaidClaim state Paid; subcontract card shows Paid 45,000 and retention held 5,000; Payable to subcontractors report ties to the ledger
6PM-B: try to certify 60,000 on a claim verified at 50,000 (API or second claim)Refused 'Cannot certify more than was verified.'

Progress billing with retention and advance, then release retention

Who: PM-A (project.billing.create), PM-B (project.billing.create), Accounting. Contract 1,000,000; retention 10 %, cap 5 %; advance 10 %, recovery 20 %

#What the person doesWhat the system does
1PM-A: Billing > Record advance received: 100,000, reference 'ADV-TEST-1'Advance posted Dr Bank / Cr Customer advances 100,000; advance balance 100,000
2PM-A: Progress claim > Create application: cumulative 30 %, period end todayClaim PC-001 Application: value completed 300,000, this claim 300,000, retention min(10 % x 300,000, cap 50,000) = 30,000, advance recovery min(20 % x 300,000 = 60,000, balance 100,000) = 60,000, net due 210,000
3PM-A: Submit, then Reviewed (a notice goes to approvers); PM-B: Certify with 'Certified by' = the customer's representativeClaim Submitted -> Reviewed -> Certified; certifier name recorded; a second application cannot start while this one is open ('Finish the open application first.') until it is invoiced
4PM-B: Create Invoice on the certified claimDraft customer invoice for the GROSS 300,000 carrying the project dimension, posted at once when possible; then journals move 30,000 to retention receivable and 60,000 off the advance; customer owes net 210,000; claim state Invoiced
5PM-A: second application cumulative 50 % (then certify and invoice as above)Current claim 200,000; retention min(20,000, cap 50,000 - held 30,000 = 20,000) = 20,000; recovery min(40,000, balance 40,000) = 40,000; net due 140,000; a cumulative below 30 % is refused 'Progress cannot go back from the last certified claim.'
6PM-A: when the defects period ends, Release retention on claim PC-001Dr Receivable 30,000 / Cr Retention receivable 30,000; retention state Released; pressing again -> 'This retention is already released.'

Change order: raise, price, customer review, approve, move budget and contract, bill

Who: PM-A (project.edit), PM-B (project.change.approve, a different person), PM-A or Billing (project.billing.create)

#What the person doesWhat the system does
1PM-A: Changes > Create Change Order: title 'Extra basement waterproofing', kind customer_variation, one line qty 1 cost rate 35,000 price rate 50,000, schedule impact 10 days; SaveCO-001 in Potential Change; revenue 50,000, cost 35,000, margin 15,000; contract value on Project 360 still 1,000,000
2PM-A: move Estimate -> Proposal -> Customer ReviewEach step allowed one at a time; at Customer Review approvers with project.change.approve get a notice; the change can no longer be edited ('A change under customer review or approved is not edited; raise another change.')
3PM-A tries Approved; PM-B moves to ApprovedPM-A refused 'Somebody other than who raised the change must decide it.'; PM-B: Approved with approver and time recorded; contract value now 1,050,000, Approved revenue 50,000
4Move to Budget UpdatedAn approved budget change of kind variation for 35,000 is created and the project budget rises by 35,000
5Move to Contract UpdatedExpected finish moves 10 days later
6Move to Billed; open BillingA billing step 'Variation CO-001 - Extra basement waterproofing' for 50,000, method manual, state Ready; Create Invoice makes the draft invoice; try to skip a step (Approved straight to Billed) -> 'A change in Approved cannot move to Billed.'

Close the project: checklist, close, read-only, reopen

Who: PM-A (Project manager with project.close), Member M

#What the person doesWhat the system does
1PM-A: Project 360 > Overview and Billing: finish open tasks, complete milestones, invoice every billing step, order / close requests, complete subcontracts, release or note retentionClose checklist facts show 0 open tasks, 0 open milestones, 0 billing steps not invoiced, 0 requests open, 0 subcontracts open
2PM-A: Actions > CompletedStatus Completed; actual finish = today
3PM-A: Actions > Closed before ticking anythingRefused 'Finish the close checklist first: Tasks complete, Milestones complete, ...' listing all 11 items
4PM-A: Actions > Close checklist: tick all 11; Save checklist; Actions > ClosedStatus Closed; M (no project.close) cannot save the checklist or close ('You do not have permission for this action.')
5PM-A and M: try to log time, add an expense, create a task, raise a change order, save the budgetEach refused 'A closed or cancelled project is read-only. Reopen it through an authorised correction first.'
6PM-A: Actions > Completed (reopen); then edit the project nameStatus Completed and edits work; audit shows the status moves in order