idx-cli/ROADMAP.md
0xrsydn 1cd8a4b191 fix(ownership): accept the register's new CONTROLLER_OR_AFFILIATE column
IDX's above-1% register as of 30 Oct 2026 (peng-2026-10-00029) inserts a
CONTROLLER_OR_AFFILIATE column after INVESTOR_CLASSIFICATION. The header
check rejected any column it did not know, so `ownership import` failed
with PARSEERROR and `releases`/`ticker` had nothing to show.

Accept that one column by name and skip it; any other unknown column is
still rejected, so the above-5% and investor-type workbooks stay out.
Storing the flag is a follow-up (ROADMAP).

The fixture is an 11-row excerpt of the real October workbook (disclaimer
rows, header, BBCA and ZYRX). The full file imports 7,149 rows across 961
tickers; live ownership smoke: 4 passed, 0 failed, no 403.

Claude-Session: https://claude.ai/code/session_01RqPPVeVDrnLoP7NUZmLRxY
2026-11-03 15:44:50 +07:00

55 lines
2.6 KiB
Markdown

# Roadmap
Open work only. Shipped behavior is described in `README.md` and `docs/`;
history lives in git.
## Stocks
- `market summary`: IHSG index and market breadth
- `market movers`: top gainers, losers, and volume
- `market sectors`: sector performance overview
- `screen query "<EXPR>"`: filter stocks by expression
- `screen presets` / `screen run <PRESET>`: built-in screener presets
(graduate `screen` out of `stocks` only if these grow into a richer workflow)
- Multi-period financial statements (today `financials` is single-period)
- Order book (bid/offer depth): no free, login-free source exists. IDX sells
delayed depth to vendors and Stockbit's needs a user login. Revisit if a
permitted source appears; do not ship the closing best bid/offer as one.
- Bandarmology follow-ups: a daily series (per-session readings and the
cumulative top-N net) and a price-move phase (quiet accumulation, markup),
calibration of the `top_concentration_v1` thresholds across more sessions,
and a market-wide foreign flow screen from one IDX trading summary
- News beyond MSN in `news` / `get_company` (`docs/IDX_NEWS.md`): Google News
RSS per ticker, and IDX disclosures and exchange news through a
maintainer-published feed
## Ownership
- Store the register's `CONTROLLER_OR_AFFILIATE` flag (from the 30 Oct 2026
report; about 1,200 controller and 950 affiliate rows) and show it in
`ticker`, `entity` and `changes`, so a controller's moves stand apart.
Needs a DB column, the snapshot format, and blank for older reports.
## Workflow
- `watchlist`: named symbol sets usable by other commands
- `alerts`: price alerts with a daemon
- CSV/TSV output
- Additional providers (Alpha Vantage, Twelve Data, IDX official)
## Agent integration
- JSON Schema export for command output
- Composite `analyze` command (quote, fundamentals, ownership, sentiment)
## Known limits
- `stocks broker` and `stocks bandar` show only IPOT's top 10 buyers and
sellers, ranked by gross lots, with figures of a million and more rounded
to one decimal.
- `stocks flow --source idx` depends on IDX's Cloudflare passing a
curl-impersonate profile (only `curl_safari184` in October 2026) and on the
network; the default IPOT source rounds to one decimal.
- Yahoo can return `429` from datacenter IPs; requests retry with backoff but
can still fail.
- `stocks technical` reports the SMA200 trend as unavailable when fewer than
200 daily candles are returned.
- MSN's `low-pe` screen returned no priced stocks on 2026-10-14 (upstream;
other filters work).
- MSN history for IDX is price-only (`1mo`, `3mo`, `1y`); Yahoo stays the
default OHLCV source.