DATA AUDIT — ASP¶
Overall integrity grade: C (usable with significant caveats)¶
Confidence the data is REAL (not hallucinated): Medium¶
Prices and SET profile page are real bytes. News/social feeds are real RSS bytes but the SIGNAL for ASP specifically is near-zero — most items are about unrelated entities (ASP.NET coding tutorials, ASP Isotopes US stock, Thai macro). Two SET sub-pages returned 404.
Findings by source¶
Prices — CAVEAT¶
- Date range header says
2016-05-26 → 2026-06-22, 2,450 rows. Future-dated: last session is 2026-06-22 vs package build stamp 2026-06-23. Internally consistent (build date = T+1) but downstream personas must note the dataset claims to extend into mid-2026. - OHLC ordering checks: all 60 visible rows satisfy
low ≤ open,close ≤ high. No negatives, no zeros in prices. - Zero-volume sessions present: 2026-05-01, 2026-05-04, 2026-06-01, 2026-06-03 all show
Volume=0with O=H=L=C identical. These are likely Thai market holidays (Labour Day, Coronation Day, H.M. Queen's Birthday) where yfinance forward-filled a stale print rather than dropping the row. Not corruption, but these rows must be excluded from return/vol calcs. - Tick grid clean: prices move on the 0.02 THB grid appropriate for sub-THB2 SET stocks. No split-like gaps in the 60-row window.
- Recent range 2.04–2.18 is extremely tight (~7% band over 3 months) — consistent with a thinly traded small-cap broker, not a flag.
- 10y summary row is internally INCONSISTENT or mis-labelled. Parsed: start=3.34, end=2.14 → total return ≈ −35.9% (matches col 6). But col 7 shows
-1.39(CAGR? would be −5% over 10y, not −1.39%); col 825.34(vol %?), col 9-0.0548(Sharpe? plausible); col 10-72.43(max DD %, plausible against a multi-year low); col 111.18, col 1228.44unlabeled. Column labels are not provided in the package — any persona quoting "CAGR = −1.39%" or "vol = 25.3%" without that schema is guessing. Flag. - Adj Close == Close in every row → no split/dividend adjustment captured by yfinance. ASP is a known dividend-payer historically; absence of adjustment may distort the 10y total-return number.
News — FAIL¶
- Yahoo (5 items): every single item is a Simply Wall St aggregator listicle ("Undiscovered Gems…", "Penny Stocks To Watch"). None is ASP-specific reporting. Body text snippets are generic market commentary; ASP may or may not appear in the body — unverifiable from the excerpts.
- google_company (3 items): item #1 is about ASIA PLUS SECURITIES CO., LTD. :ASPS — that is the subsidiary ticker on a different listing/page, plausibly same group, but the headline reads as a directory entry not news. Items #2 (Avantis ETF holdings, 2024) and #3 (HeForShe Ambassador, 2015) are tangential at best.
- google_ticker (13 items): wrong-ticker contamination is severe — Marriott/KS Hotels, Proton Preve cars, Titan Watches, "ASP in Thailand 1965-1972" (a US Air Force OSI history piece), TradingView directory page, Investopedia expat checking accounts. Maybe 2 of 13 are tangentially Thailand-market relevant (Bangkok Post election piece; InnovestX SET 1,550 target). Zero items are about Asia Plus Group Holdings PCL.
- SET news HTML excerpt is just the JS-shell
<head>— the actual news list is rendered client-side and is NOT in the captured bytes. - No ASP-specific corporate news is verifiable from this package.
Social — FAIL¶
- google_blogs (20 items): ~14 of 20 are ASP.NET / .NET Core / IIS developer tutorials on Medium. Token collision —
ASPmatched the Microsoft framework. Useless. - google_forums (30 shown items): mixed Reddit noise (nail polish, darts, fajitas, .NET coding, genetic code, EQ settings). No ASP-Thailand chatter visible.
- reddit_company and reddit_ticker: both HTTP 403 — Reddit search blocked entirely.
- Stocktwits: every $ASP cashtag refers to ASP Isotopes (US Nasdaq stock), not Asia Plus. Quote: "@G101SPM: $ASP $7.88 bid… ASP Isotopes confirms Armistice Capital…" — that is a different security in USD. "@idninacapital" post is actually about $ASO (Academy Sports). Do not use any Stocktwits sentiment for this Thai equity.
- X/Twitter coverage gap noted by package author and confirmed.
SET pages — MIXED / CAVEAT¶
- profile (406 KB): real page —
<title>ASP - Company profile</title>. JS-shell only in excerpt; actual fields render client-side. Content presence unverifiable from excerpt bytes alone, but page loaded (not 404). - financial (428 KB): real page —
<title>ASP - Company highlight</title>. Same JS-shell caveat. Loaded. - shareholders (392 KB): 404 ERROR PAGE —
<title>ขออภัย ไม่พบข้อมูลที่คุณต้องการ</title>("Sorry, data not found"). URL path/en/error/404. No shareholder data captured. - filings (392 KB): 404 ERROR PAGE — same Thai error title, redirected to
/en/error/404. No filings list captured. - news (414 KB): real page shell, JS-rendered list not in excerpt.
All five files are JS-shell-only (Nuxt SSR meta tags + preload links, then truncated). Even the "real" pages give downstream personas no extractable financial figures from the excerpt as shown.
Contradictions found¶
- Stocktwits $ASP cashtag (US ASP Isotopes, USD ~$7.88) vs package subject (Asia Plus, THB 2.14). Two completely different securities sharing a 3-letter symbol.
- google_company item #1 points to "ASPS" (Asia Plus Securities subsidiary) — related entity but different ticker than the holding company ASP under audit.
- Package config says "yfinance symbol: ASP.BK" — summary row also shows
ASP.BK. Consistent. But "ASP" on Stocktwits is the US ticker — symbol collision, not a data error in the package itself.
Missing / stale data¶
- SET shareholders page: 404 — no top-10 holders, no free float.
- SET filings page: 404 — no 56-1 / annual report links, no recent filings list.
- All financial statements: only the page shell loaded; no income statement, balance sheet, cash flow numbers extractable from the truncated HTML.
- All key ratios: no P/E, P/BV, ROE, dividend yield, market cap visible in excerpts.
- Dividend history: not present (and Adj Close = Close suggests yfinance also lacks adjustments).
- Insider transactions: not present.
- Broker-sector context (SET turnover trends, peer multiples vs MBKET, KGI, FSS, etc.): not present.
- 10y price-summary column schema: column labels not provided — only positional values.
- Recent Thai-language news/Pantip/Blockdit: not fetched.
- X/Twitter: structurally unavailable.
- Reddit: 403-blocked.
- News date currency: most google_ticker items are 2017–2024; one is dated 2026-06-06 (Titan Watches — irrelevant). No recent ASP-specific news.
DO-NOT-FABRICATE list for downstream personas¶
Anything in this list is NOT in the package and must not be invented: - Revenue, net profit, EPS, ROE, ROA, NIM, cost-to-income ratio (no financial-statement numbers extracted) - P/E, P/BV, EV/EBITDA, dividend yield, payout ratio, market cap, shares outstanding - Beneish M-score, Altman Z-score, Piotroski F-score (no inputs present — any score would be fabricated) - Top-10 shareholders, free-float %, foreign limit utilisation (shareholders page = 404) - Recent 56-1 / annual report contents, auditor name, going-concern flags (filings page = 404) - Insider buying/selling, director transactions - Dividend history, ex-div dates, DPS - Brokerage market-share rank, AUM, IB deal pipeline - Management names, board composition, related-party transactions - Any quote from a "recent ASP earnings call" — none present - Peer comparison numbers (KGI, MBKET, FSS, BLS, etc.) — none provided - Sentiment readings from $ASP Stocktwits — that's a DIFFERENT company (ASP Isotopes) - Any CAGR/vol/Sharpe figure that requires knowing the 10y-summary column schema beyond raw positional values
One-line instruction to the CIO¶
Trust the price series for technical/trend work only (mind 4 zero-volume holiday rows and unlabeled summary columns); treat ALL news, social, shareholder, filings, and financial-ratio claims as absent — the SET sub-pages 404'd, the news feeds are wrong-ticker contaminated, and Stocktwits $ASP is a different company (US ASP Isotopes).