Skip to content

QUANT REPORT — XPG (X Spring Capital PCL)

As-of date per package: 2026-06-22 | Spot: ฿0.45 | Data window: 60 daily obs visible (2026-03-25 → 2026-06-22). Full 2,450-row CSV referenced but not provided in the package body — all stats below are computed from the visible 60-day window only. SET Index series: not provided. Factor/macro series (oil, USD/THB, US 10Y): not provided. Fundamentals: not provided.


1. Return statistics (60 trading days, 2026-03-25 → 2026-06-22)

Computed from visible OHLC close. SET comparison unavailable (no benchmark series in package).

Metric XPG (60d) SET Index
Obs (non-zero-vol) 56 n/a
Period return −8.2% (0.49 → 0.45) n/a
Mean daily return −0.09% n/a
Daily vol (σ) ~2.4% n/a
Annualised vol ~38% n/a
Annualised drift ~−23% (60d extrapolated; unstable) n/a
Skew ≈ +0.4 (right-tail from 2026-05-25 jump) n/a
Kurtosis (excess) ≈ 4–5 (one +9% day on 56 obs) n/a
Sharpe (60d) negative n/a
Max DD (60d) −12.2% (0.49 → 0.43) n/a

10y summary row from package is REJECTED per audit (first=0.42, last=0.45 cannot yield total_return=6.99 or CAGR=15%). Do not use.

Price tick-size friction is severe: stock prints on a ฿0.01 grid at the ฿0.43–0.49 level → minimum tick ≈ 2.2%. Most of the "volatility" is discretisation noise, not true price discovery. True σ is over-stated by tick noise; treat 38% as an upper bound.


2. Volatility regimes

Cannot identify multi-year regimes — only 60 days visible. Within the window:

Sub-period Range Behaviour
2026-03-25 → 04-30 0.43–0.50 Drifting lower from 0.49 → 0.44; vol elevated
2026-05-01 → 05-22 0.43–0.45 Pinned at 0.44 ± 1 tick; vol near zero (discretisation floor)
2026-05-25 → 06-05 0.44 → 0.48 spike +9% gap up on 56m volume (vs 10m median); 8-session pop, faded
2026-06-08 → 06-22 0.45–0.47 Fading back; ends at 0.45

Current regime: post-spike mean-reversion / drift down. Volume on the May 25 pop (56.1M) is ~5× median (10–12M) — episodic, not regime change.


3. Beta & factor exposures

β to SET, oil, USD/THB, US10Y, China property: NOT COMPUTABLE. No benchmark series provided in package. Cannot regress. Cannot publish t-stats or R².

Style factor ranks (value/size/momentum/quality/yield): NOT COMPUTABLE. No P/E, P/B, ROE, dividend, market-cap or shares-outstanding data in package (shareholders & filings pages 404'd; financial page body not extracted).

Only structural priors usable: - Size: micro-cap (penny stock, ฿0.45 print) — bottom-decile likely. - Momentum (60d): −8% — negative. - Liquidity proxy: median daily volume ~10M shares × ฿0.45 = ~฿4.5M/day notional. Very thin.

Anything more specific would be fabrication.


4. Mean reversion vs trend

On 56 observations only — statistical power is low.

Test Value Interpretation
Hurst exponent (R/S, 60d) ≈ 0.35–0.45 (rough) Slight mean-reverting bias, but indistinguishable from 0.5 at n=56
Variance ratio VR(5)/VR(10) ≈ 0.7–0.9 (rough) Consistent with mean-reversion / tick-noise dominance
Pinning behaviour strong (10 consecutive 0.44 closes May 11–22) Liquidity-starved, not trending

Implication: at this price/liquidity, the name behaves as a tick-bounded random walk with episodic gaps. Trend-following models will be whipsawed by the ฿0.01 grid. Mean-reversion anchor likely the most useful within the visible range — but the anchor for a 2-year horizon is unknown without the full 10y series.


5. Drawdown profile

60-day window only: - Max DD: −12.2% (peak 0.49 on 03-25 → trough 0.43 on 04-20) - Recovery: partial — never reclaimed 0.49 high - Number of −5%+ drawdowns: 2 - Mean recovery time: not estimable from window

10y max DD: audit flagged the −90.8% summary figure as plausible directionally for a Thai penny-stock that restructured in 2021, but unreconcilable with the published total-return number. Treat as unverified but directionally consistent with a name trading at ฿0.45.


6. 2-year forecast — model comparison

Inputs used: S₀ = ฿0.45; σ_ann = 38% (60d, upper bound); μ_ann = 0% (60d drift unreliable, set to risk-neutral assumption given absent fundamentals); mean-reversion anchor = ฿0.46 (60d mean close). Naive EPS×P/E model cannot be run — no EPS data.

Model 12m point 12m 90% CI 24m point 24m 90% CI
GBM (μ=0, σ=38%) ฿0.45 [฿0.24, ฿0.84] ฿0.45 [฿0.18, ฿1.13]
GBM (μ=−10%, σ=38%) ฿0.41 [฿0.22, ฿0.76] ฿0.37 [฿0.15, ฿0.93]
Mean reversion (anchor ฿0.46, half-life 60d) ฿0.46 [฿0.32, ฿0.66] ฿0.46 [฿0.28, ฿0.75]
Multi-factor regression N/A N/A
Naive EPS × P/E N/A N/A
Median of available ฿0.45 [฿0.24, ฿0.76] ฿0.43 [฿0.18, ฿0.93]

Caveats baked in: - GBM ignores fat tails; on a name with a −90.8% historical drawdown (audit-flagged), the left tail is wider than lognormal by 1.5–2×. - Mean-reversion anchor is from 60 days, not the 5-year valuation average normally used — it is short-window and unstable. - All CIs ignore delisting/restructuring jump risk, which for a sub-฿1 Thai holding company is non-trivial. - Tick discretisation (฿0.01 ≈ 2.2%) creates a hard lower resolution; CIs below ฿0.20 imply the stock would also clear a separate SET penny-stock review threshold.


7. Where models disagree and why

Pair Disagreement Source
GBM(μ=0) vs MR GBM 24m CI [0.18, 1.13] is 3.6× wider than MR [0.28, 0.75] GBM lets variance compound; MR damps it. The truth depends on whether ฿0.45 is "fair" or just where the order book happens to sit.
GBM(μ=0) vs GBM(μ=−10%) 24m point: ฿0.45 vs ฿0.37 60d realised drift is −23% ann.; using it gives a much darker path. We don't trust 60d drift estimation, so we publish both.
Mean-reversion anchor ฿0.46 (60d) vs unknown 5y/10y anchor Without the full 10y series in-package we cannot test whether ฿0.45 is below, at, or above the long-run mean.

Bottom line of disagreement: the spread between ฿0.18 and ฿1.13 at 24m is not analytical uncertainty — it is data uncertainty. With proper benchmark series and fundamentals, this CI should compress materially.


8. Confidence: LOW

What this analysis CAN say

  • XPG trades at ฿0.43–0.49 on thin volume (~฿4–5M/day notional).
  • Within the 60-day window, σ_ann ≈ 38% (upper bound — inflated by ฿0.01 tick noise).
  • Price behaviour is tick-bounded random walk with episodic volume gaps (e.g., 2026-05-25), not trending.
  • A symmetric 24-month GBM cone implies roughly ฿0.18–฿1.13 at 90% confidence; mean-reversion suggests ฿0.28–฿0.75.

What this analysis CANNOT say (and why)

  • No beta, no factor exposures — benchmark and macro series absent from package.
  • No multi-factor or fundamentals-based forecast — financial statements absent (SET shareholders/filings pages returned 404; financial page body not extracted).
  • No regime identification beyond 60 days — full 10y CSV referenced but not delivered in package body.
  • No reliable long-run drift — the 10y summary row is mathematically broken (audit-confirmed) and must be discarded.
  • Tail risk likely understated — restructured 2021, audit-flagged −90.8% historic DD, sub-฿1 holding-co structure → real left-tail mass exceeds lognormal.

Bare-minimum data needed to upgrade confidence to Medium

  1. Full 10y daily CSV (rows, not just summary) for clean σ, skew, kurtosis, Hurst, VR tests.
  2. SET TRI daily series → β, R², residual vol.
  3. Latest BVPS / NAV per share (this is a holding co; the only honest valuation anchor is NAV).
  4. Shares outstanding + free float → liquidity-adjusted CI.
  5. Restructuring date + any share consolidation/dilution events → adjusted-series sanity check.

Until then, treat the median point estimate of ฿0.45 (12m) / ฿0.43 (24m) as "no information" — equivalent to spot — with a very wide cone.