purchase-order-management
SKILL.md
Purchase Order Management — Full PO Lifecycle
You run the complete purchase order process: from requisition and creation to vendor dispatch, receipt confirmation, invoice matching, and closure. Every company purchase flows through a PO — no PO, no payment.
Mission: Control every dollar of spend before it happens. No surprises in AP.
Phase 1 — Purchase Requisition
1.1 Requisition Form
purchase_requisition:
req_id: "" # format: REQ-[YYYY]-[NNNN]
requested_by: ""
department: ""
cost_center: ""
request_date: ""
required_by_date: ""
budget_code: "" # GL account code
vendor_name: "" # preferred vendor; or "open sourcing" if not specified
description_of_need: "" # what problem does this purchase solve?
items:
- description: ""
quantity: 0
estimated_unit_price: "$0"
estimated_total: "$0"
total_estimated_value: "$0"
budget_available: "$0" # remaining budget in cost center
justification: "" # business case — mandatory for all items > $500
alternatives_considered: "" # for purchases > $5,000
urgency: routine | expedited | emergency
recurring: false # is this a recurring subscription/service?
contract_required: false # does this need a new MSA/agreement?
1.2 Approval Routing by Amount
| Amount | Approver Chain |
|---|---|
| < $500 | Direct manager |
| $500–$2,500 | Direct manager → Department head |
| $2,500–$10,000 | Department head → VP Finance |
| $10,000–$50,000 | VP Finance → CFO |
| $50,000–$250,000 | CFO → CEO |
| > $250,000 | CFO → CEO → Board approval |
| Any new vendor | Above + VP Finance vendor verification |
| Any software/tool | Above + IT security review |
1.3 Requisition SLAs
- < $500: Approved or rejected within 1 business day
- $500–$10,000: Approved or rejected within 3 business days
-
$10,000: Approved or rejected within 5 business days
- Emergency (documented): 4-hour approval path with VP Finance + CFO
Phase 2 — PO Creation
2.1 PO Document Standard
purchase_order:
po_number: "" # format: PO-[YYYY]-[NNNN] (e.g. PO-2025-0073)
po_date: ""
req_reference: "" # links back to REQ-YYYY-NNNN
status: draft | approved | sent_to_vendor | partially_received | fully_received | closed | cancelled
buyer:
company_name: ""
billing_address: ""
delivery_address: "" # where to deliver goods or where services are rendered
billing_contact: ""
billing_email: ""
po_issuer_name: ""
po_issuer_title: ""
vendor:
vendor_id: "" # from vendor master
legal_entity_name: ""
vendor_address: ""
vendor_contact_name: ""
vendor_contact_email: ""
vendor_invoice_email: ""
terms:
payment_terms: net_15 | net_30 | net_45 | net_60
delivery_date: ""
delivery_terms: "" # FOB, ex-works, delivered, etc. (for goods)
currency: ""
line_items:
- po_line_id: 1
description: "" # must match what vendor will invoice — avoids disputes
quantity: 0
unit: hours | days | units | months | fixed
unit_price: "$0"
line_total: "$0"
cost_center: ""
gl_account: "" # accounting code
project_code: "" # if applicable
subtotal: "$0"
estimated_tax: "$0"
total_authorized: "$0" # maximum the company is authorized to pay on this PO
terms_and_conditions: |
1. Vendor must reference PO number on all invoices.
2. Invoices without PO reference will be returned unpaid.
3. No charges beyond PO total without written amendment.
4. All deliverables subject to acceptance per agreed criteria.
5. Payment terms run from receipt of a valid invoice, not invoice date.
approvers:
- name: ""
title: ""
approved_date: ""
signature: ""
2.2 PO Numbering System
PO-[YEAR]-[SEQUENCE]
Example: PO-2025-0001 through PO-2025-9999
For specific categories:
SW-[YEAR]-[NNNN] — Software subscriptions
HW-[YEAR]-[NNNN] — Hardware/equipment
SV-[YEAR]-[NNNN] — Professional services
MK-[YEAR]-[NNNN] — Marketing spend
Phase 3 — Vendor Dispatch & Acceptance
3.1 PO Dispatch
- Send PO to vendor's billing/account contact via email (PDF + any required portal upload)
- Request vendor acknowledgment of PO within 2 business days
- Confirm: vendor accepts price, delivery date, and all terms
- If vendor proposes different terms: route back through approval chain before proceeding
3.2 PO Dispatch Email
Subject: Purchase Order [PO-XXXX-XXXX] from [Your Company]
Dear [Vendor Contact Name],
Please find attached Purchase Order [PO-XXXX-XXXX] from [Your Company] for:
[Brief description of goods/services]
Total authorized value: [Currency] [Amount]
Delivery / completion by: [Date]
Important reminders:
• Reference PO number [PO-XXXX-XXXX] on ALL invoices — invoices without this
reference cannot be processed.
• Do not exceed the authorized PO value without a written amendment.
• For invoice submission: [email address or portal instructions]
Please confirm receipt and acceptance of this PO within 2 business days.
[Buyer Name]
[Title] | [Company]
Phase 4 — Receipt & Three-Way Match
4.1 Goods / Services Receipt
For every PO line item, record receipt:
receipt_record:
receipt_id: "" # format: REC-[YYYY]-[NNNN]
po_number: ""
vendor: ""
received_by: ""
receipt_date: ""
items_received:
- po_line_id: 1
description: ""
quantity_ordered: 0
quantity_received: 0
quantity_accepted: 0 # may differ if quality reject
quantity_rejected: 0
rejection_reason: ""
delivery_note_number: "" # vendor's delivery/dispatch reference
accepted_by: "" # department head or project owner
acceptance_date: ""
notes: ""
4.2 Three-Way Match Logic
For each vendor invoice received:
1. PO Match:
Does invoice vendor = PO vendor? ✓ / ✗
Does invoice PO number reference correct PO? ✓ / ✗
Is invoice amount ≤ remaining PO balance? ✓ / ✗ (if ✗ → hold)
Is invoice within PO line item quantities? ✓ / ✗
2. Receipt Match:
Is there a confirmed receipt for goods/services invoiced? ✓ / ✗
Quantity on invoice ≤ quantity received and accepted? ✓ / ✗
3. Price Match:
Unit price on invoice = unit price on PO?
Exact match: Auto-approve
< 2% variance: Auto-approve with notation
2–5% variance: Route to buyer for approval
> 5% variance: Hard hold; buyer must resolve with vendor
Result:
All ✓ + no price variance → route to payment queue
Any ✗ or variance → hold with specific reason code → notify AP team
Phase 5 — PO Tracking & Management
5.1 Open PO Report
OPEN PO REPORT — As of [Date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PO # | Vendor | Dept | Total PO | Received | Remaining | Due Date | Status
─────────────|──────────────────|────── |──────────|──────────|───────────|──────────|────────
PO-2025-0042 | [Vendor Name] | Eng | $[X] | $[X] | $[X] | [Date] | Open
PO-2025-0051 | [Vendor Name] | Mktg | $[X] | $0 | $[X] | [Date] | Sent
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TOTAL OPEN PO COMMITMENTS: $[X]
Overdue (past delivery date, not closed): [N] POs — $[X] at risk
5.2 PO Amendment Process
When a PO needs to change (scope increase, price change, delivery extension):
- Buyer submits a PO change order request with reason
- Re-approval required if: total increases by > 10% OR > $5,000 (whichever is lower)
- Issue amended PO with revision number (PO-2025-0042 Rev 1)
- Get vendor acknowledgment of amended PO
- Update all systems — original PO replaced by amendment
Prohibited: Splitting one large purchase into multiple smaller POs to avoid approval thresholds.
5.3 PO Closure
Close a PO when:
- All goods/services fully received and accepted
- All invoices matched, approved, and paid
- Any retention/holdback released
- OR: cancelled without delivery (document reason)
POs older than 12 months with no activity → auto-flag for review and potential cancellation.
Phase 6 — Spend Analytics
6.1 Spend by Category (Monthly)
SPEND REPORT — [Period]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Category | Budget | Actual | Variance | Top Vendor
──────────────────────|────────|────────|──────────|────────────
Software & SaaS | $[X] | $[X] | [+/-]% | [Vendor]
Cloud Infrastructure | $[X] | $[X] | [+/-]% | [Vendor]
Professional Services | $[X] | $[X] | [+/-]% | [Vendor]
Marketing | $[X] | $[X] | [+/-]% | [Vendor]
Travel & T&E | $[X] | $[X] | [+/-]% | —
Office & Facilities | $[X] | $[X] | [+/-]% | [Vendor]
Other | $[X] | $[X] | [+/-]% | [Vendor]
──────────────────────|────────|────────|──────────|────────────
TOTAL | $[X] | $[X] | [+/-]% |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Quality Rules
- Every spend > $500 requires a PO before the vendor starts work or ships goods.
- No retroactive POs without written explanation and VP Finance approval.
- PO splitting to avoid approval thresholds is grounds for disciplinary action.
- Vendor cannot start work until PO is acknowledged and accepted.
- Three-way match is non-negotiable for all PO-backed invoices > $500.
- POs must be closed within 30 days of final delivery — no perpetually open POs.
- Spend reports must be shared with department heads monthly to track budget consumption.
See assets/po-template.md for the ready-to-use PO document.