Alpaca Fill Slippage Readiness
Run alpaca_fill_slippage_features_20260718T220412Z | Generated 2026-07-18T22:04:12.662884+00:00
Readiness Summary
Source views: paper.alpaca_fill_slippage_training_sample_inventory_operator_view and paper.alpaca_fill_slippage_readiness_operator_view.
Overall average adverse slippage: 14.4226 bps; average fill spread: 28.8452 bps.
Feature Status Groups
| Feature Status | Training Sample Status | Rows | Symbols | First Fill | Latest Fill | Avg Adverse Slippage bps | Avg Spread bps |
|---|---|---|---|---|---|---|---|
| feature_ready | candidate_paper_slippage_training_sample | 2 | 2 | 2026-06-30T17:54:59.393349+00:00 | 2026-06-30T17:55:00.615623+00:00 | 8.7239 | 17.4478 |
| feature_ready_wide_spread_review | review_only_feature_ready_wide_spread_review | 1 | 1 | 2026-06-30T17:54:59.087465+00:00 | 2026-06-30T17:54:59.087465+00:00 | 25.8200 | 51.6400 |
Slippage Training Sample Segmentation
This report-only segmentation separates clean tight-spread samples from wide-spread stress-review and other review-only evidence. Clean samples still cannot be used for slippage-sensitive stop-loss training until sample-depth and guardrail gates clear.
| Segment | Status | Rows | Symbols | Required | Gap/Review | Avg Spread bps | Avg Adverse bps | Sample Symbols | Model Usage Policy | Operator Action |
|---|---|---|---|---|---|---|---|---|---|---|
| clean_tight_spread_candidate_samples | clean_sample_depth_blocked | 2 | 2 | 100 | 98 | 17.4478 | 8.7239 | STNG, TNK | clean_training_candidate_after_sample_depth_gate | Keep clean tight-spread fills separated and continue collecting until sample depth clears. |
| wide_spread_stress_review_samples | wide_spread_stress_review_required | 1 | 1 | 0 | 1 | 51.6400 | 25.8200 | ASA | stress_bucket_or_exclusion_review_only | Keep wide-spread fills out of the clean training sample; use only as stress/liquidity review evidence. |
| other_review_only_samples | no_other_review_only_samples | 0 | 0 | 0 | 0 | n/a | n/a | exclude_from_clean_training_until_reviewed | No non-wide review-only fill rows are visible in the latest slippage sample. | |
| aggregate_slippage_training_sample_policy | training_blocked_segmented_evidence_available | 3 | 3 | 100 | 99 | 28.8452 | 14.4226 | STNG, TNK, ASA | report_only_no_slippage_sensitive_training_until_segments_clear | Do not train slippage-sensitive stop-loss models until clean sample depth clears and review/stress segments are excluded or explicitly modeled. |
Readiness Gates
| Gate | Status | Observed | Required | Operator Action |
|---|---|---|---|---|
| paper_fill_sample_depth | blocked | 2.0000 | 100.0000 | Keep slippage evidence collection running after paper fills; do not train slippage-sensitive stop models yet. |
| fill_quote_match_coverage | passed | 3.0000 | 3.0000 | Use matched quote context as paper evidence only; validate latency before live use. |
| nearest_trade_match_coverage | passed | 3.0000 | 3.0000 | Use trade matches to audit fill realism against prints before modeling. |
| wide_spread_review | review | 1.0000 | 0.0000 | Segment slippage by spread and liquidity before any stop-loss model uses these rows. |
| slippage_training_guardrail | blocked | 2.0000 | 4.0000 | Accumulate more paper fills and quote/trade matches before using slippage features in training. |
Paper Execution Readiness
This is plan/readiness context only. It does not submit orders and does not authorize paper or live execution.
| Run | Status | Account | Plan Only | Eligible Intents | Blocked Intents | Orders Submitted | Submission Enabled | Operator Action |
|---|---|---|---|---|---|---|---|---|
| alpaca_paper_execution_manager_20260717T195216Z | paper_plan_ready | ACTIVE | true | 1 | 3 | 0 | false | Risk-capped paper order plan is ready. Submit only after operator approval and guard switches. |
Paper Fill Collection Control
This section separates collection readiness from order authorization. A clean candidate means a row is suitable for a future bounded paper-fill collection run after explicit approval; it does not authorize an order from this report.
Batch policy: At most 5 explicitly authorized paper fills per batch, then reconcile fills and refresh slippage features before any next batch.
Block Reasons
sample_depth_gap_98wide_spread_review_rows_1slippage_training_guardrail_blockedpaper_order_submission_switch_disabledno_clean_collection_candidateproxy_review_intents_1
Authorization Requirements
- Explicit operator approval in the current work session.
- Paper-order submission guard switch enabled only for a bounded collection run.
- Use only rows marked paper_fill_candidate_when_authorized with passed execution-proxy gates.
- Rerun paper fill reconciliation and slippage feature refresh immediately after collection.
- Keep live trading disabled.
Forbidden Actions
- Do not treat this report as paper-order authorization.
- Do not submit live orders.
- Do not submit paper orders from review or blocked queue rows.
- Do not train slippage-sensitive models on review-only or wide-spread samples.
Paper Fill Collection Diagnostics
This turns the queue into an operator checklist: why rows are not clean candidates, which rows need market-hours proxy refresh, and how large a future bounded paper-fill collection batch could be if explicitly authorized.
Diagnostic status: market_hours_proxy_refresh_required; batch action: No batch is clean now; refresh intraday monitor/proxy during market hours and recheck before any paper collection authorization..
| Diagnostic | Count | Severity | Operator Action |
|---|---|---|---|
| clean_collection_candidates | 0 | blocked | No candidate rows can be used for paper fill collection right now. |
| market_hours_proxy_refresh_targets | 1 | review | Refresh intraday monitor/proxy during market hours before collecting paper fills. |
| wide_spread_review_rows | 3 | review | Segment or exclude wide-spread symbols before slippage-sensitive training. |
| stale_after_hours_rows | 4 | review | Treat after-hours proxy evidence as review-only until a fresh market-hours snapshot exists. |
| blocked_order_intents | 1 | blocked | Resolve execution risk reasons before using these rows for collection planning. |
| hold_rows_no_fill_needed | 2 | info | Do not manufacture fill evidence from hold rows. |
| paper_order_submission_switch | 0 | ok | Submission switch is disabled, which is the expected safe state. |
Paper Fill Collection Manifest
This is the single report-only authorization packet for the next possible evidence-collection step. It never authorizes orders by itself; it records whether a future bounded paper-only batch could be requested after the listed preflight checks pass.
Manifest action: Run the market-hours proxy refresh wrapper for the listed symbols, then rebuild this manifest before asking for any paper-fill collection approval.
Preflight Checks
| Check | Status | Observed | Required | Operator Action |
|---|---|---|---|---|
| sample_depth_gap | open | 2 | 100 | Need 98 more clean linked fills before training depth clears. |
| market_hours_proxy_refresh | required | 1 | 0 | Refresh proxy context for: TNK |
| clean_candidate_batch | not_available | 0 | 1 | Rebuild after proxy refresh or risk review creates clean candidates. |
| execution_guardrail | safe_plan_only_state | 1 | 1 | Plan-only, submission disabled, zero submitted orders. |
| current_report_authorization | not_authorized | 0 | 1 | This report cannot authorize paper orders; approval must happen explicitly in the current session. |
Proposed Batch Rows
| Symbol | Intent | Side | Risk | Proxy Gate | Monitor | Quote Age min | Spread bps | Action |
|---|---|---|---|---|---|---|---|---|
| No proposed paper-fill batch rows | ||||||||
Required Operator Actions
- Keep live trading disabled.
- Keep paper order submission disabled while the manifest status is blocked or review-only.
- Run the market-hours proxy refresh wrapper first when proxy-refresh symbols are listed.
- Rebuild fill/slippage features and live readiness after any proxy refresh.
- Request explicit current-session approval before any bounded paper-fill collection batch.
- After any future approved paper-fill batch, immediately run broker fill reconciliation and refresh slippage features.
Market-Hours Proxy Refresh Plan
This is a report-only runbook for refreshing local Alpaca bars/trades/quotes and recomputing execution proxy evidence during regular US equity market hours. It does not submit paper orders, does not enable live trading, and should be skipped outside market hours.
Operator action: During regular US equity market hours, run the bounded proxy refresh sequence for the target symbols, then recheck the collection queue before any paper-fill authorization.
Preferred Wrapper Commands
.\scripts\run-alpaca-market-hours-proxy-refresh.ps1 -Symbols 'TNK'.\scripts\run-alpaca-market-hours-proxy-refresh.ps1 -Execute -Symbols 'TNK'
Command Sequence
.\scripts\run-alpaca-market-data-foundation.ps1 -Symbols 'TNK' -DataTypes 'bars,trades,quotes' -Feed 'sip' -Timeframe '1Min' -Limit 500 -MaxPages 1 -Sort desc -RunKind manual.\scripts\run-alpaca-intraday-market-monitor.ps1 -Symbols 'TNK' -Feed 'sip' -LookbackMinutes 1440 -MaxStaleMinutes 30 -WideSpreadBps 50 -MonitorMode paper -RunKind manual.\scripts\refresh-alpaca-intraday-execution-proxy-rollup.ps1.\scripts\run-alpaca-fill-slippage-features.ps1 -RunKind manual.\scripts\write-alpaca-live-trading-readiness.ps1.\scripts\write-high-value-data-progress-review.ps1
Forbidden Commands
.\scripts\run-alpaca-paper-execution-manager.ps1 -SubmitOrdersAny live-trading command or broker order submission switch.
Paper Fill Collection Policy
This derived policy keeps the next collection decision separate from order authorization. It tells us whether sample depth, clean candidates, proxy quality, execution guardrails, and training use are blocked, review-only, or ready for a future explicitly authorized paper-only collection run.
| Policy Area | Status | Observed | Required | Gap/Review | Ratio | Model Usage Policy | Operator Action |
|---|---|---|---|---|---|---|---|
| sample_depth_gate | sample_depth_blocked | 2 | 100 | 98 | 0.0200 | do_not_train_slippage_sensitive_models | Collect 98 more linked, fresh-quote, tight-spread paper fills before training review. |
| clean_collection_candidate_gate | proxy_review_required_before_collection | 0 | 1 | 1 | 0.0000 | no_order_submission_from_current_queue | Refresh/review collection queue until at least one clean candidate exists before asking for paper-fill collection approval. |
| execution_proxy_quality_gate | execution_proxy_review_required | 8 | 0 | 8 | n/a | proxy_context_only_not_fill_evidence | Refresh market-hours proxy rows and segment wide-spread/stale evidence before collection. |
| paper_execution_guardrail | safe_plan_only_state | 1 | 1 | 0 | 1.0000 | plan_only_no_orders_from_report | Expected safe state: plan-only, submission switch disabled, zero orders submitted. |
| paper_collection_authorization_gate | paper_collection_not_authorized | 0 | 1 | 1 | 0.0000 | no_paper_order_submission | Do not submit paper orders; this report is collection planning only. |
| slippage_training_use_gate | training_blocked | 0 | 1 | 1 | 0.0000 | do_not_use_for_slippage_sensitive_training | Keep slippage-sensitive training blocked while guardrail status is blocked. |
| blocked_intent_review_gate | blocked_intents_review_required | 1 | 0 | 1 | n/a | exclude_blocked_intents_from_collection | Do not use blocked intents for collection planning until risk reasons are resolved. |
| aggregate_paper_fill_collection_policy | paper_fill_collection_research_only_blocked | 1 | 7 | 6 | 0.1429 | paper_only_research_until_collection_and_training_gates_clear | Use this report to plan the next safe evidence step; it does not authorize orders or training. |
Paper Fill Collection Queue
Plan-only order intents joined to local intraday proxy evidence. Rows marked as candidates still require operator approval and guard switches before any paper order submission.
| Symbol | Intent | Side | Risk | Reason | Collection Status | Proxy Gate | Monitor | Quote Age min | Spread bps | Recent Quotes | Action |
|---|---|---|---|---|---|---|---|---|---|---|---|
| TNK | exit | sell | eligible | not_in_latest_target_list | review_proxy_before_paper_fill_collection | review | stale_after_hours | 1533.6339 | 97.4578 | 0 | Plan-only paper intent is eligible, but proxy evidence is not passed; refresh/review intraday context before paper fill collection. |
| PTC | entry | buy | blocked | max_positions_reached | blocked_paper_intent | review | stale_after_hours | 1498.8486 | 39.7899 | 0 | Intent is not eligible in the latest plan; resolve the risk reason before using it for fill collection. |
| ASA | hold | n/a | blocked | already_held_target | no_fill_collection_needed | review | stale_after_hours | 1559.4884 | 230.4527 | 0 | Latest plan says no order is required for this symbol; do not create fill evidence from a hold row. |
| STNG | hold | n/a | blocked | already_held_target | no_fill_collection_needed | review | stale_after_hours | 1546.8222 | 68.8312 | 0 | Latest plan says no order is required for this symbol; do not create fill evidence from a hold row. |
Stop-Loss Sample Design Targets
Use these case buckets to shape future paper-fill collection after operator approval. They are labels for balanced evidence collection, not trading instructions.
| Priority | Case Dimension | Case Value | Training Role | Gate | Current Symbols | Min Rank | Example Symbols | Recommended Stop | Operator Action |
|---|---|---|---|---|---|---|---|---|---|
| high | value_bucket | value_below_55 | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 1596 | 53 | TRMB #53, LSCC #104, AGX #111, KEYS #144, FIX #147, UI #157, CALX #158, ULTA #160 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| high | quality_bucket | quality_below_55 | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 1420 | 135 | UHS #135, ULTA #160, RMT #187, FDX #189, ELV #253, UNH #271, EXLS #273, CWEN #293 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| high | dominant_positive_signal_family | dominant_positive_family_return_prediction | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 1068 | 53 | TRMB #53, ULTA #160, BKE #267, LDOS #300, EME #312, DPZ #333, GNRC #339, EYE #390 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| medium | dominant_positive_signal_family | dominant_positive_family_quality | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 288 | 29 | SII #29, GOOGL #90, LRCX #92, GOOG #94, SCCO #100, LSCC #104, MNST #110, AGX #111 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| medium | dominant_negative_signal_family | dominant_negative_family_value | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 583 | 645 | TRP #645, CM #708, STN #723, TSLA #733, GLBE #802, ROL #818, CCJ #832, VIAV #880 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | confidence_bucket | confidence_70_plus | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 9 | 775 | EA #775, NXP #828, RZC #1066, SLAB #1287, NATH #1349, TALK #1917, AGNCP #2159, SOJE #2176 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | confidence_bucket | confidence_below_55 | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 19 | 282 | JHG #282, KALV #662, STEL #1251, BLD #1341, CWAN #1432, NREF #1530, LC #1556, MASI #1578 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | risk_bucket | risk_elevated_55_plus | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 71 | 292 | HLNE #292, PTGX #433, WVE #591, IBRX #612, VRDN #639, MDGL #781, TRIN #900, ONDS #994 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | dominant_positive_signal_family | dominant_positive_family_event | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 58 | 891 | WEC #891, BBY #988, NTRA #1000, CASS #1046, NET #1106, EPAM #1124, TD #1139, BLKB #1164 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | dominant_positive_signal_family | dominant_positive_family_no_positive_signal | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 31 | 1840 | BK #1840, CMSD #1906, SAFE #1934, PRA #1969, FFIC #1989, RZB #2017, YEXT #2065, FNKO #2088 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | dominant_negative_signal_family | dominant_negative_family_quality | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 17 | 597 | MGA #597, DB #855, GAM #1115, PVH #1297, GPI #1463, VET #1545, ALIT #1605, UNFI #1626 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
| low | market_cap_bucket | market_cap_unknown | stop_selector_coverage_gap_backfill | review_only_optimizer_date_gate | 15 | 282 | JHG #282, KALV #662, STEL #1251, BLD #1341, CWAN #1432, LC #1556, MASI #1578, TBRG #1604 | Collect optimizer evidence before selecting a stop for this case | Do not train or promote a stop selector from this row yet; collect more distinct point-in-time signal dates. |
Sample Feature Rows
| Symbol | Side | Filled At | Quantity | Avg Price | Fill Spread bps | Quote Age sec | Nearest Trade Age sec | Adverse Slippage bps | Feature Status | Training Status | Operator Action |
|---|---|---|---|---|---|---|---|---|---|---|---|
| STNG | buy | 2026-06-30T17:55:00.615623+00:00 | 14.4591 | 69.1600 | 8.6793 | 0.6084 | 2.0078 | 4.3396 | feature_ready | candidate_paper_slippage_training_sample | Candidate paper-only slippage training sample; keep live use disabled. |
| TNK | buy | 2026-06-30T17:54:59.393349+00:00 | 15.4010 | 64.9300 | 26.2164 | 0.6115 | 2.2720 | 13.1082 | feature_ready | candidate_paper_slippage_training_sample | Candidate paper-only slippage training sample; keep live use disabled. |
| ASA | buy | 2026-06-30T17:54:59.087465+00:00 | 19.0765 | 52.4200 | 51.6400 | 0.9196 | 1.6357 | 25.8200 | feature_ready_wide_spread_review | review_only_feature_ready_wide_spread_review | Wide-spread paper fill; segment by liquidity/spread before model training. |
Sample Quality Rules
- Use linked Alpaca paper order intents only.
- Require fresh fill-time quote context inside the configured max quote age.
- Require nearby trade-print context for realism checks.
- Keep wide-spread fills segmented or review-only until liquidity controls are validated.
- Balance future paper-fill collection across stop-loss case buckets and liquidity regimes.
- Use paper execution readiness as a preflight only; eligible intents are not order authorization.
- Keep all outputs paper-only; this plan does not authorize order submission.