SG Mid/Small Cap — End-of-Day Verdict
NO ACTION (both sides) - 28th written EOD verdict since 07-03; AWX made a new 52-week high at 11.54 then reversed to close 10.46 (-4.74%, 9.36% off its high), vindicating last night's refusal within one session while the 08-12 refusal still costs +4.60% - both legs recorded; buy pool empty at source with rows NO TRADE, and the only non-bearish carrier (5DD WATCH cv55) fuses to 48 against a 65 floor
Recommendations
0 to acquire · 0 to dispose
| Ticker | Name | Close | Action | Action Price Where to act — a buy-limit on a pullback or a buy-stop above resistance, not the current price. Sanity-check vs Close: on a held name, an action price stranded above the close means the queued level was set when the stock was higher — stale, awaiting reprice. | Stop The risk-defined exit, set below the entry for a long (~1.2–1.8×ATR). A held long whose Stop sits at/above the Close is already below its stop — a stale box awaiting reprice. | 1wk Model estimate of the likely price at this horizon — a forward projection, not a guarantee, and separate from the trade's Action Price or Stop. Where the ML estimator is enabled these are per-ticker calibrated forecasts (~80% coverage band) that are refreshed periodically and can drift between refreshes; otherwise they're interpolated from the signal's swing target. Confirm against the settled close. | 4wk Model estimate of the likely price at this horizon — a forward projection, not a guarantee, and separate from the trade's Action Price or Stop. Where the ML estimator is enabled these are per-ticker calibrated forecasts (~80% coverage band) that are refreshed periodically and can drift between refreshes; otherwise they're interpolated from the signal's swing target. Confirm against the settled close. | 12wk Model estimate of the likely price at this horizon — a forward projection, not a guarantee, and separate from the trade's Action Price or Stop. Where the ML estimator is enabled these are per-ticker calibrated forecasts (~80% coverage band) that are refreshed periodically and can drift between refreshes; otherwise they're interpolated from the signal's swing target. Confirm against the settled close. | Rationale |
|---|---|---|---|---|---|---|---|---|---|
| AWX | AEM Holdings | 10.46 | WATCH | — | — | n/a | n/a | 12.67 | AEM hit a new 52-week high at 11.54 this morning and then gave the entire day back, closing 10.46 - down 4.74% and 9.36% below its own high. That is exactly the round-trip our no-chase rule exists to avoid, and it vindicates last night's decision not to buy at 10.98 within a single session: an execution at today's 11.00 open would already be down 4.9%. The fundamental case is genuinely strong (1Q2026 revenue +35.8%, net profit more than quadrupled, dividend reinstated), but a great business bought 15% above its volume-weighted average price is still a bad trade. We stay out and wait for the pullback. OPERATIONAL: row prints NO TRADE cv0 'Liquidity gate failed' on an 11.66% range, so there is no live Entry_Price - any card would be a hand-invented level (provenance rule violation). L6 bars the post-gap chase at +15.43% above VWAP, RSI 61.90. Honest both-legs accounting: the 08-12 refusal at 9.63 (L8 exec 10.00) still costs +4.60%; the 08-13 refusal pays -4.91%. Turnover SGD 87.17m (down from 188.79m), Trend pillar, ATR 0.654->0.767. Ex-dividend SGD 0.024 on 2026-08-19 = 0.23% of close, immaterial, recorded for completeness. Search-index price snippets (8.91/8.00/6.86) are unreliable artifacts - L4, the scan CSV is authoritative. RE-ARM (all three): Quality_Pass repair on the next fundamentals roll + a settled favoured-cell BUY (PullbackBuy_VWAP/MomentumContinuation, NOT FailedBreakdown) >= 65 + a stop wider than ~1 ATR. · news |
| PCT | PC Partner Group | 3.23 | WATCH | — | — | n/a | n/a | 4.60 | PC Partner made a new 52-week high today, closed up 2.2% at 3.23, carries the best 12-week outlook in the book at +42%, passes our quality screen and is priced at fair value - and our own liquidity filter blocked it for the sixth time in seven sessions. This is the most frustrating name we own no shares in: nothing about the business or the chart argues against it, only a filter we believe is mis-specified. We will not override the filter by hand, so it stays on watch. OPERATIONAL: 'Liquidity gate failed' on a 4.33% range - the narrowest clean gate failure tonight, i.e. the marginal case defining the threshold. Trend pillar 94, RSI 67.58, val_adj 0, Quality_Pass True. Now +17.9% above the 2.74 limit printed 08-06 - but that was a FLOOR refusal (cv62), not a gate refusal; keep the two controls distinct. MSCAP-2 is worst-in-book here: EPV 2.868/sh vs DCF 38.872/sh = 13.6x. News confirms but is undated/preliminary. RE-ARM (two-legged AND): a settled PullbackBuy_VWAP/MomentumContinuation BUY that clears the gate AND prints raw cv >= 65. DO NOT hand-tune the gate to bridge this (forward-test rule). · news |
| 5DD | Micro-Mechanics (Holdings) | 2.80 | WATCH | 2.80 | 2.78 | n/a | 2.96 (+5.7%) | 2.54 (-9.3%) | Micro-Mechanics is the only name in the book still showing anything other than a bearish or blocked signal, and it is not close to good enough to cash on. Its conviction fell from in a single session, the 12-week outlook is negative at -9.3%, and the suggested stop sits just 0.7% below the entry - a level ordinary daily noise would take out. We are not buying a weak setup simply because it is the only setup available. OPERATIONAL: WATCH is not an actionable Action and never enters the buy pool. Six independent disqualifications: (a) not actionable; (b) adj 48 vs a 65 floor, seventeen short; (c) weak L1/MSCAP-1 FailedBreakdown cell (~0.25 hit, ~60% stop-first); (d) conviction decayed; (e) T12 2.54 = -9.31%; (f) stop 2.78 vs entry 2.80 = 0.25 ATR. Turnover SGD 389k - and it is one of only two names that CLEARED the liquidity gate tonight, at 1/224th of AWX's blocked turnover, which is systemic finding 1 in a single line. |
| E28 | Frencken Group | 2.63 | WATCH | — | — | n/a | n/a | 2.22 | Frencken gave back more than it gained: after running 4.1% on Wednesday it fell 5.7% today to 2.63, with its momentum reading collapsing by half and the 12-week outlook at -15.6%. There is no case to buy a name whose internals are deteriorating this fast, and staying out cost us nothing. OPERATIONAL: NoTrade on 'Consensus conflict + low conviction'; Momentum pillar, consensus back to Indeterminate. This row is the direct cause of tonight's NoTrade_Reason masking correction (systemic finding 2): its 4.18% range would also fail the liquidity gate, but the conflict reason prints first, which is how last night's incorrect 'threshold is not 3%' claim arose. val_adj -6 on FAIR_VALUE MoS -1.159 - MSCAP-2 says lean on the sign, not the x5 magnitude. |
| 558 | UMS Integration | 2.72 | WATCH | — | — | n/a | n/a | 2.93 | UMS traded up to 2.92 and closed at 2.72 - a 6.9% fade off its own high, the same reversal shape AEM printed, on heavy SGD 67m turnover. Even setting the chart aside, this name cannot clear our bar: it fails the quality screen and prices in more growth than we would pay for, so a signal alone would not be enough. OPERATIONAL: double-blocked (SGM-4a) - GROWTH_PRICED_IN MoS -4.016 gives val_adj -10 AND Quality_Pass is False, so it cannot reach the 65 floor even with a clean signal. Tonight it is also gate-suppressed on a 9.19% range. Trend pillar 94, RSI 62.74, T12 +7.7%. Search-index quoted 2.26 against our settled 2.72 - unreliable snippet, disregarded per L4. |
| M14 | InnoTek | 0.47 | WATCH | — | — | n/a | n/a | 0.27 | InnoTek fell 10.5% today, the worst print in the book, which means the WATCH signal we declined at 0.51 on Tuesday would now be down 7.8%. This is the counter-example to the AEM miss and it deserves equal weight: the same discipline that kept us out of a name that ran also kept us out of one that broke. The 12-week outlook is -42.6% and the quality screen fails. OPERATIONAL: gate-blocked on a 9.57% range; 12th instance of SGM-4b. The declined 08-12 card is already held by the counterfactual grader and now carries a clearly favourable mark - the first two-sided datapoint in that channel. Search-index snippets quoting 'SGD 0.3950 as of August 29, 2026' postdate today and are index noise - disregarded. |
| 8AZ | Aztech Global | 0.61 | WATCH | 0.61 | 0.61 | n/a | n/a | 0.34 (-44.3%) | Aztech screens as the cheapest quality-adjusted name we track and has now sat completely unchanged at 0.605 for four straight sessions while everything around it moved - a stock nobody wants at any price. Its own signal is bearish and its 12-week outlook is -43.8%, so cheapness is not a reason to buy it. We declined this at 0.62 on 06-08 and it is still 2.4% lower. OPERATIONAL: AVOID is bearish and we are long-only with, so no action either way (SGM-4). Conviction is now decaying too: cv68 -> cv62. Consolidation_Bearish, RSI 19.68 (pinned), Trend 49. Quality_Pass False. This is the quality-gate leg of the shadow test in systemic finding 1 - quality refused the name that went nowhere, liquidity refused the ones that moved. RE-ARM: FY2026 revenue stabilisation repairing Quality_Pass FIRST, then a settled favoured-cell BUY >= 65. |
| S71 | Sunright | 0.49 | WATCH | — | — | n/a | n/a | 0.28 | Sunright remains the deepest discount on our valuation screen and remains impossible to actually buy: the entire day's trading was under Sroughly 72% below the minimum liquidity we require, so a meaningful position simply cannot be built. A discount you cannot transact in is not an opportunity. OPERATIONAL: turnover SGD 27,742 (recovered from SGD 18,864 but still far below the SGD 100k floor); closed +1.04% at 0.485. Its +9 val_adj is the largest in the book and would lower the required raw conviction to 56 - still far above anything the chart prints (Trend 51, T12 -42.3%, NO TRADE cv0). SGM-5: turnover repair first, then trend. |
Outcome & track record