## TL;DR
Contractor offboarding needs its own trigger because there is no HR termination event. Drive deprovisioning from the contract end date: schedule the job on that date, deprovision the account, and alert on failures.

```text
contractor account deprovisioning failed after end date
```

## Use this when
- Contractor accounts stay active past their contract end date.
- There is no HR termination event for vendors.
- The failure is a missing trigger, not a broken step.

## Not for this skill when
- The deprovision step itself fails. Fix the step.
- The contractor is an employee now. Then HR offboarding applies.
- The end date is wrong in the system. Fix the data first.

## Steps
1. Confirm the contract end date in the vendor or procurement system. Verify: the date is authoritative.
2. Manually deprovision the overdue account now. Verify: access is removed.
3. Add a scheduled job keyed on contract end dates that deprovisions automatically. Verify: the job covers all active contractors.
4. Add failure alerting on the job. Verify: failures notify someone.
5. Watch the next contract end date pass. Verify: the account offboards on time.

## Variant phrasings
### contractor offboarding
The short phrasing.
### vendor account not disabled
The state-first search.
### contract end deprovision
The trigger-first phrasing.

Compatibility: Any IdP with scheduled jobs or lifecycle workflows; contract dates from procurement or vendor management.

## Why it happens
Employee offboarding keys on HR status changes. Contractors have no such event, so nothing fires at end of contract unless someone builds the date-driven trigger.

## Edge cases / pitfalls
- Contract extensions not updating the end date, causing premature deprovisioning; sync the date.
- Contractors converted to employees mid-contract; hand off to HR offboarding.
- Multiple concurrent contracts for one person; deprovision only when the last ends.
- The vendor system and the IdP using different identifiers; normalize.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst__h6Kan1KNM16yi-3_Io5yw
