Materials arrive late on almost every job — usually because the order date was never written down, not because the supplier is bad. A team standing because steel or windows haven't landed costs you more than the material ever did, and the delay lands on your programme and your margin.
Almost never because the supplier is bad. Usually because the order went in late, or nobody tracked it, or the required-on-site date was never written down in the first place.
On most jobs, ordering happens when someone remembers — not when the programme needs it. The result is the same: the team finishes early, the material isn't there, and the delay lands on you.
Every material has a required-on-site date — the day the team actually needs it. From there you work backwards:
The order date is the number that matters. If you only track the required-on-site date, you find out about the delay the same day the team does.
Every item goes onto the YPA Procurement Schedule — one row per package, planned backwards from the required-on-site date. This is the actual sheet format YPA generates (filled with example rows):
| Item No | Package | Item | Qty | Unit | Supplier | Required On Site | Lead Time (weeks) | Latest Order Date | PO No | Order Date | Price | Fees | Status | Responsible | Verified By | Source Tag |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Aluminium | Windows - Block A | 12 | No. | ALU-SUP | 2026-08-22 | 6 | — | — | — | 184000 | 0 | To order | PM | — | Manual |
| 2 | Aluminium | Windows - Block B | 8 | No. | ALU-SUP | 2026-08-29 | 6 | — | — | — | 121000 | 0 | To order | PM | — | Manual |
| 3 | Electrical | Switchgear - main DB | 1 | No. | ELEC-PRO | 2026-09-15 | 10 | 2026-07-10 | PO-2026-071 | 2026-07-09 | 86000 | 0 | Ordered | PM | — | Manual |
| 4 | Steel | Steel fixings - Block B | 1 | Lot | STEEL-SA | 2026-08-12 | 3 | 2026-07-22 | PO-2026-064 | 2026-07-20 | 41500 | 0 | Received | Site Agent | — | Manual |
| 5 | Tiling | Porcelain tiles - communal | 180 | m2 | TILE-HOUSE | 2026-09-01 | 4 | — | — | — | 96000 | 0 | To order | PM | — | Manual |
| 6 | Concrete | Ready-mix - Block B slab | 240 | m3 | CON-SUP | 2026-08-05 | 2 | 2026-07-22 | PO-2026-063 | 2026-07-21 | 312000 | 0 | Received | Site Agent | — | Manual |
| 7 | Plumbing | Sanitary ware - Block A | 22 | No. | PLUM-SUP | 2026-09-20 | 5 | 2026-08-15 | PO-2026-078 | 2026-08-13 | 78000 | 0 | Ordered | PM | — | Manual |
| 8 | Joinery | Timber doors - Block A | 36 | No. | JOIN-WORKS | 2026-10-01 | 8 | 2026-08-06 | PO-2026-077 | 2026-08-05 | 142000 | 0 | Ordered | PM | — | Manual |
| 9 | Glazing | Shower screens - Block B | 18 | No. | GLASS-SUP | 2026-10-10 | 7 | — | — | — | 64000 | 0 | To order | PM | — | Manual |
| 10 | Paint | Internal paint - Block A | 320 | L | PAINT-CO | 2026-10-15 | 3 | — | — | — | 57000 | 0 | To order | PM | — | Manual |
| 11 | Roofing | IBR sheeting - Block B | 980 | m2 | ROOF-SUP | 2026-09-25 | 5 | 2026-08-20 | PO-2026-080 | 2026-08-19 | 168000 | 0 | Ordered | PM | — | Manual |
| 12 | Hardware | Ironmongery sets | 24 | No. | HARD-SUP | 2026-10-20 | 4 | — | — | — | 36000 | 0 | To order | PM | — | Manual |
Procurement has a second, quieter trap: the paperwork that decides whether you're even allowed to price the work. On public-sector projects your cidb status is checked before the tender is read:
The sting is finding out after you've spent the time and money pricing it. YPA keeps these dates — grade, expiry, tax status — on your file and tells you before one lapses, so you're never disqualified by paperwork you could have fixed.
We've built YPA for the way African construction projects actually work. YPA is the site file with a memory. YPA is onboarding its first live builds in small, limited cohorts. Pilot places are free for a defined period — and if we ever charge, the plan and its price will be shown to you before anything is billed.
This guide is general information, not legal advice. Required-on-site dates, lead times and cidb requirements come from your programme, your suppliers and the current cidb prescripts — always confirm before acting. YPA helps you track and draft; it doesn't issue or validate registrations.