Add IPO analysis model baseline

Request:
- Use the analyst skill to digest downloaded IPO archive data and start building an analysis model.

Changes:
- Add ipo_score_v0 as the first transparent stage-safe scoring rule set.
- Add build_analysis_dataset.py to derive model features, scores, decision bands, and empirical D1 calibration from SQLite.
- Generate analysis_model_v0_dataset.csv with 293 scored IPO rows and archived source paths.
- Add a model calibration report documenting coverage, T0/T1 bucket performance, usage, and known gaps.
- Record the initial model entry in the rule change log and document the command in README.

Verification:
- Ran py_compile for scripts/build_analysis_dataset.py.
- Regenerated the analysis dataset and report with as-of 2026-06-15T13:00:00Z.
- Checked CSV row count, source path coverage, and repo-relative path hygiene.
- Ran git diff --cached --check.

Next useful context:
- v0 should be treated as a transparent baseline, with T1 high-score calibration strongest and middle buckets still non-monotonic.
- T2 is excluded until a reliable grey-market source is approved.
This commit is contained in:
2026-06-15 12:49:48 +00:00
parent 5f9546b16c
commit 48b89552fe
6 changed files with 1233 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
# Rule Change Log
## 2026-06-15 - Introduce `ipo_score_v0`
Request:
- Start digesting the downloaded IPO archive and build the first analyst model.
Change:
- Added `rules/ipo_score_v0.yaml` as the initial transparent scoring baseline.
- Added `scripts/build_analysis_dataset.py` to generate a feature dataset and calibration report from `data/hk_ipo.sqlite`.
- Added `data/snapshots/analysis_model_v0_dataset.csv` as the first model-ready snapshot.
- Added `reports/2026-06-15_analysis_model_v0.md` to document coverage, calibration, and known gaps.
Rationale:
- The archive now has enough T0 facts and D1/D5/D20/D60 labels to support a repeatable baseline.
- T1 demand data is partially structured and highly informative where available.
- T2 grey-market data remains blocked until a reliable source exists, so it is excluded from v0.
Verification:
- Generated the dataset from the current SQLite archive.
- Confirmed the model keeps post-listing returns as labels only.
- Recorded non-monotonic middle buckets as a limitation rather than overfitting them away.