# AEG-V15-033 — Schedule anchor calculation

## Scope

- **WBS ID:** AEG-V15-033
- **Slice:** VS-18 BacktestingEvaluation / Scheduler
- **Requirement / API / DB / Job / UI / Test:** `REQ-V15-SCH-01` / `V15-SCH-API` / `MIG-0020` / `J31~J40` / `Cross` / `T-V15-SCH-01`
- **Gate / dependency:** `G3` / `AEG-X-001` (completed in the progress tracker)
- **Artifact:** `src/KArtSell.Modules.ModelOperations/Domain/ScheduleOccurrencePlanner.cs`
- **Acceptance evidence:** delayed dispatch must not cause cadence drift.

## Source / Assumption / Unknown / Decision Required

- **Source:** `docs/CURRENT/CATALOGS/WBS_MASTER.csv`; `docs/CURRENT/CATALOGS/JOB_CATALOGUE.csv`; `docs/CURRENT/CATALOGS/DECISION_LOG.csv` (`DEC-047`, `DEC-071`, `DEC-072`, `DEC-075`); `contracts/schedules/model-operations.v3.json`; the planner, dispatcher, and unit tests named above.
- **Assumption:** the existing planner is the intended implementation of `DEC-071`: it advances from `scheduledFor`, never from worker dispatch time. The scheduler stays disabled by default.
- **Unknown:** an approved production market-calendar/timezone source is still absent (`DEC-079`); this slice uses UTC instants only and does not resolve market sessions.
- **Decision Required:** `DEC-083` (whether scheduler enqueue/mark becomes a dispatch-outbox transaction) is outside this anchor-only slice. No activation or schedule policy change is authorized here.

## Execution plan

1. Run the targeted `T-V15-SCH-01` unit tests in Release configuration.
2. Preserve the command result under `evidence/AEG-V15-033/`.
3. Update the progress tracker only with the actual result. This does not assert database, calendar, lease, or enabled-schedule evidence owned by later WBS items.
