Add T0.95 late-order heat stage

Request:
- Reflect that near-final market heat can be used when the user can still place an IPO order at T0.95.

Changes:
- Added T0_95_final_heat as a separate analyst decision stage with executability and no-leakage rules.
- Added an experimental T0.95 rule overlay for late-order heat scoring and calibration discipline.
- Updated archivist guidance and the market-heat archiver so snapshots can be explicitly stored as T0_95_final_heat.
- Added market_heat_stage to the analysis dataset and refreshed the model report to show T0.95 coverage separately.

Verification:
- Ran py_compile for the modified scripts.
- Checked archive_t0_5_market_heat.py --help for the new --stage option.
- Rebuilt data/snapshots/analysis_model_v0_dataset.csv and reports/2026-06-15_analysis_model_v0.md.
- Ran git diff --check.

Next useful context:
- Current archived heat rows remain T0_5_market_heat only; there are no true T0.95 rows yet.
- external_ipo_history.public_oversubscription_times is still calibration-only unless a comparable value is archived before the executable order cutoff.
This commit is contained in:
2026-06-15 16:28:26 +00:00
parent 5e35242a76
commit 19832ac5af
8 changed files with 479 additions and 312 deletions
@@ -0,0 +1,73 @@
version: ipo_score_v0_95_final_heat_trial
effective_date: 2026-06-15
status: experimental_overlay
owner_skill: analyst
base_model: ipo_score_v0
purpose: >
Add a stage-safe T0.95 late-order overlay for Hong Kong IPO subscription
decisions. T0.95 is used only when the user can still place, amend, or
cancel an IPO order near the subscription cutoff and a reproducible
near-deadline market-heat snapshot has been archived.
data_policy:
stage: T0_95_final_heat
required_condition: >
observed_at must be earlier than the user's actual executable order,
amend, or cancel cutoff. If this cannot be established, treat the data as
post-hoc research rather than as a live T0.95 input.
allowed_inputs:
- archived_near_deadline_margin_subscription_multiple
- provider
- observed_at
- subscription_deadline
- user_order_cutoff_if_known
- T0_prospectus_score
calibration_only_inputs:
- external_ipo_history.public_oversubscription_times
- external_ipo_history.one_hand_win_rate_pct
- external_ipo_history.grey_market_return_pct
- external_ipo_history.first_day_return_pct
forbidden_live_inputs:
- official_allotment_results_released_after_order_cutoff
- public_oversubscription_times_from_T1
- international_oversubscription_times_from_T1
- grey_market_result
- post_listing_price_performance
caveat: >
Historical final public oversubscription is close to what T0.95 tries to
approximate, so it may be used for post-hoc bucket calibration. It must not
be represented as data that was visible before the original order cutoff.
score_components:
T0_95_final_heat:
margin_subscription_multiple:
source: archived_near_deadline_market_data_snapshot
points:
missing: 0
lt_10x: -4
gte_10_lt_100x: -2
gte_100_lt_1000x: 2
gte_1000_lt_5000x: 6
gte_5000x: 8
timing_quality:
source: observed_at_vs_order_cutoff
points:
observed_after_order_cutoff: disallowed
older_than_24h_before_cutoff: -2
same_day_before_cutoff: 0
within_3h_before_cutoff: 1
decision_bands:
T0_plus_T0_95:
score_lt_5: no_late_order
score_5_to_8: optional_small_order
score_9_to_13: selective_late_order
score_gte_14: priority_late_order
comparison_policy:
- Compare T0.95 snapshots only when each snapshot is still actionable for the user's order workflow.
- Prefer the latest archived snapshot before the executable order cutoff.
- If two IPOs have different close times, normalize by time remaining before cutoff rather than by calendar date alone.
- Always discuss allocation probability; very high heat may raise D1 payoff odds while lowering one-lot win rate.
- T0.95 can upgrade a T0 watchlist item into a late order candidate, but should not rescue a structurally weak T0 case without explicit PM judgment.
+23
View File
@@ -1,5 +1,28 @@
# Rule Change Log
## 2026-06-15 - Add T0.95 late-order heat stage
Request:
- Treat near-deadline heat as usable when the user can still place an IPO order at T0.95.
Change:
- Added `T0_95_final_heat` to the analyst skill as a separate actionable late-order stage.
- Added `rules/ipo_score_v0_95_final_heat_trial.yaml` for stage-safe T0.95 heat scoring and timing discipline.
- Updated the archivist skill and `scripts/archive_t0_5_market_heat.py` so market-heat snapshots can be explicitly archived as `T0_95_final_heat`.
Rationale:
- If the user can still place, amend, or cancel an order near the subscription cutoff, near-final heat is a legitimate live decision input.
- Historical final public oversubscription can help calibrate near-final heat buckets, but it remains post-hoc calibration unless the value was visible before the user's executable order cutoff.
Verification:
- Kept the script default stage as `T0_5_market_heat` for backward compatibility.
- Added explicit `--stage T0_95_final_heat` support for late-order snapshots.
- Verified with py_compile, script help output, dataset rebuild, and `git diff --check`.
## 2026-06-15 - Use Chinese for analyst reports
Request: