Skip to content

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=0 with 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 8 25.34 (vol %?), col 9 -0.0548 (Sharpe? plausible); col 10 -72.43 (max DD %, plausible against a multi-year low); col 11 1.18, col 12 28.44 unlabeled. 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 — ASP matched 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).