# 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.