VNEquity Research

UPCOM · Civil Construction & Building Materials

C21 Century 21 Joint Stock Company

CTCP The ki 21

Persisted research state: NONE. Research is shown only when it is backed by persisted evidence and calculations.

At a glance

Company at a glance

Persisted, canonical facts only. A value that is not recorded is shown as unavailable and is never estimated, substituted or shown as zero.

CompanyCentury 21 Joint Stock Company
TickerC21
ExchangeUPCOM
IndustryCivil Construction & Building Materials
Research stateNo research available NO_RESEARCH
Research certificationNo certified research
Matched opportunity conditions0 of 5
Latest screening snapshot2026-09-25T09:10:47.224149+00:00
Latest market price2026-09-21T00:00:00+00:00
Latest fundamental period2026-06-30
Latest research reportUnavailable
Evidence records324
Source documents24

Certification reflects the repository's internal approval record on the latest persisted report. It describes publication status and provenance; it is not a rating, a forecast or investment advice.

Deterministic discovery

Opportunity signals

Browse opportunity signals

0 of 5 versioned P7D V1 conditions matched at evaluation time. Every condition is either matched, unmatched, or refused when the required evidence is missing, stale or not applicable. These are deterministic screening conditions, not investment recommendations.

No deterministic condition currently matches this company. Missing evidence fails closed and never becomes a match.

Modeled history. Historical valuation availability is modeled from reporting-lag assumptions and is not point-in-time certified.

Full five-rule trace (P7D_RULES_V1)

Fundamental improvement FUNDAMENTAL_IMPROVEMENT

REFUSED

Market data is not current under the canonical 72-hour freshness policy.

Refused: STALE_MARKET_DATA

  • Growth compares the latest two compatible full years.
  • Growth is historical, not forecast growth.
  • Parent PAT growth uses the repository's existing denominator semantics: the latest full-year PARENT_PAT versus the prior full-year PARENT_PAT.
Observations (4)
InputValueStatusPeriod / freshness
market_price — REFUSED · STALE_MARKET_DATA — · AGING
revenue_growth 16.76% OK latest compatible full year
pat_growth 479.28% OK latest compatible full year
pe_ttm — REFUSED · STALE_MARKET_DATA — · AGING
Thresholds
growth min percent
0
pe positive
yes
market current max hours
72.0

Cash-flow strength CASH_FLOW_STRENGTH

REFUSED

Market data is not current under the canonical 72-hour freshness policy.

Refused: STALE_MARKET_DATA

  • FCF Proxy Yield is a screening proxy: trailing-twelve-month operating cash flow less reported cash capital expenditure over market capitalization.
Observations (3)
InputValueStatusPeriod / freshness
market_price — REFUSED · STALE_MARKET_DATA — · AGING
fcf_proxy_yield — REFUSED · MARKET_DATA_UNAVAILABLE — · AGING
pe_ttm — REFUSED · STALE_MARKET_DATA — · AGING
Thresholds
fcf proxy yield min percent
0
pe positive
yes
financial applicability
NON_FINANCIAL_ONLY
market current max hours
72.0

Quality at a reasonable valuation QUALITY_AT_REASONABLE_VALUATION

REFUSED

Market data is not current under the canonical 72-hour freshness policy.

Refused: STALE_MARKET_DATA

  • Operating and PAT margins are not cross-sector comparable in this screening phase.
Observations (4)
InputValueStatusPeriod / freshness
market_price — REFUSED · STALE_MARKET_DATA — · AGING
pat_margin 21.3248% OK QUARTER 2026-06-30 · CURRENT
operating_margin 35.0134% OK QUARTER 2026-06-30 · CURRENT
pe_ttm — REFUSED · STALE_MARKET_DATA — · AGING
Thresholds
pat margin min percent
0
operating margin min percent
5
pe min exclusive
0
pe max inclusive
40
market current max hours
72.0

Valuation dislocation VALUATION_DISLOCATION

REFUSED

Market data is not current under the canonical 72-hour freshness policy.

Refused: STALE_MARKET_DATA

Historical certification: NON_CERTIFIED_MODELED_AVAILABILITY — modeled, not point-in-time certified

  • Historical valuation availability is modeled from reporting-lag assumptions and is not point-in-time certified.
Observations (6)
InputValueStatusPeriod / freshness
market_price — REFUSED · STALE_MARKET_DATA — · AGING
historical_pe_percentile 25.6% OK — · CURRENT
historical_premium_discount -6.7% OK — · CURRENT
historical_signal NEAR_HISTORY OK — · CURRENT
pe_ttm — REFUSED · STALE_MARKET_DATA — · AGING
historical_certification NON_CERTIFIED_MODELED_AVAILABILITY OK —
Thresholds
historical percentile max
25
historical signals
BELOW_HISTORY, DEEPLY_BELOW_HISTORY
historical premium discount max exclusive
0
pe positive
yes
market current max hours
72.0

Research gap RESEARCH_GAP

UNMATCHED

No quantitative signal matched, so the research gap is not actionable by this rule.

Observations (1)
InputValueStatusPeriod / freshness
research_state NONE OK — · MISSING
Thresholds
research gap states
NONE, INSUFFICIENT
requires quantitative signal
yes

Rules version P7D_RULES_V1 · snapshot built 2026-09-25 09:10:47.224149+00:00 · market freshness AGING · persisted research state NONE. These are deterministic screening conditions over persisted evidence, not investment recommendations, forecasts, ratings or advice.

Canonical snapshot

Screening metrics

Open screener

Values come from the persisted screening snapshot and are never recomputed in the browser. UNKNOWN or refused inputs show as “—” with their canonical reason and are never displayed as zero. OCF/PAT is expressed as a percentage of PAT (100 means 100% of PAT).

P/E (TTM, parent)— STALE_MARKET_DATA
P/B (parent equity)— STALE_MARKET_DATA
Revenue growth (latest compatible FY)16.76%
Parent PAT growth (latest compatible FY)479.28%
Operating margin (latest compatible period)35.0134%
PAT margin (latest compatible period)21.3248%
FCF Proxy Yield (TTM)— MARKET_DATA_UNAVAILABLE
OCF / PAT (latest compatible period)604.3842%
Market freshnessAGING price 2026-09-21T00:00:00+00:00
Fundamental periodthrough 2026-06-30 freshness CURRENT
Snapshot built at2026-09-25T09:10:47.224149+00:00 01a09a64-0384-7b75-8e53-78c087428f82
Persisted research stateNONE MISSING
Historical valuation signalNEAR_HISTORY available

Snapshot refusal reasons: HISTORICAL_VALUATION_NOT_REQUESTED; MARKET_DATA_UNAVAILABLE; STALE_MARKET_DATA; TTM_CAPEX_OR_REVENUE_UNAVAILABLE

Authenticated

Investor actions

Add this company to one of your existing portfolios. Actions are owner-scoped to your signed-in account. No portfolio, holding, alert or session data is rendered into this public page.

Sign in to add this company to a portfolio. Your portfolios and alerts remain private to your account.

Valuation snapshot

ssi-iboard · UPCOM · 2026-09-21T00:00:00+00:00 · STALE DATA · retrieved 2026-09-21T08:39:20.868047+00:00 · share basis: unavailable

Price19400.000000000000 VND
Shares outstanding—
Market cap375125597400.000000000000
Market capitalization— STALE_MARKET_DATA
Earnings yield— STALE_MARKET_DATA
P/E (TTM)— STALE_MARKET_DATA
P/B— STALE_MARKET_DATA
Dividend yield— STALE_MARKET_DATA
FCF yield— STALE_MARKET_DATA
Enterprise value— STALE_MARKET_DATA
EV/Sales— STALE_MARKET_DATA
EV/EBIT— STALE_MARKET_DATA
EV/EBITDA— STALE_MARKET_DATA
Net cash / (net debt)— STALE_MARKET_DATA

Historical valuation

Point-in-time P/E uses only periods available on each trade date (publication-dated or lag-modeled); no negative earnings produce an observation.

Current P/E— CURRENT_PE_UNAVAILABLE
1Y median P/E— INSUFFICIENT_OBSERVATIONS (19 < 120)
3Y median P/E28.72x
5Y median P/E28.72x
25th / 75th percentile P/E26.68 / 29.65
Min / max P/E22.77 / 33.96 (raw 19.25 / 37.55)
Percentile rank— UNAVAILABLE
Premium / discount to median— UNAVAILABLE
SignalUNAVAILABLE PERCENTILE_UNAVAILABLE
CertificationNON_CERTIFIED_MODELED_AVAILABILITY 9 observations use REPORT_LAG_MODEL; 155 observations use ANNUAL_PAT_FALLBACK
P/B history— PARENT_EQUITY_HISTORY_UNAVAILABLE
Dividend-yield history— DIVIDEND_PER_SHARE_HISTORY_UNAVAILABLE

P/E range 19.25x – 37.55x over stored observations.

Historical availability may be modeled from reporting-lag assumptions (NON_CERTIFIED_MODELED_AVAILABILITY). Modeled availability is labelled and is never point-in-time certified.

Notes: PROVIDER_SELECTED: dnse-chart ({'dnse-chart': 808} bars); MISSING_PERIODS: start=2023-02-20, end=2023-03-03, calendar_days=11; MISSING_PERIODS: start=2023-03-03, end=2023-03-16, calendar_days=13; MISSING_PERIODS: start=2023-03-16, end=2023-03-27, calendar_days=11; MISSING_PERIODS: start=2023-04-13, end=2023-04-26, calendar_days=13; MISSING_PERIODS: start=2023-06-13, end=2023-06-28, calendar_days=15; MISSING_PERIODS: start=2024-01-31, end=2024-02-19, calendar_days=19; MISSING_PERIODS: start=2024-07-24, end=2024-08-06, calendar_days=13; MISSING_PERIODS: start=2024-12-05, end=2024-12-19, calendar_days=14; MISSING_PERIODS: start=2024-12-19, end=2024-12-30, calendar_days=11; MISSING_PERIODS: start=2025-01-21, end=2025-02-03, calendar_days=13; MISSING_PERIODS: start=2025-05-19, end=2025-05-30, calendar_days=11; MISSING_PERIODS: start=2025-06-13, end=2025-07-04, calendar_days=21; MISSING_PERIODS: start=2025-08-22, end=2025-09-05, calendar_days=14; MISSING_PERIODS: start=2025-09-12, end=2025-09-26, calendar_days=14; MISSING_PERIODS: start=2025-09-26, end=2025-10-17, calendar_days=21; MISSING_PERIODS: start=2025-10-17, end=2025-10-31, calendar_days=14; MISSING_PERIODS: start=2025-11-07, end=2025-11-21, calendar_days=14; MISSING_PERIODS: start=2025-12-05, end=2025-12-26, calendar_days=21; MISSING_PERIODS: start=2025-12-26, end=2026-01-09, calendar_days=14; MISSING_PERIODS: start=2026-01-16, end=2026-03-13, calendar_days=56; MISSING_PERIODS: start=2026-03-13, end=2026-03-27, calendar_days=14; MISSING_PERIODS: start=2026-04-24, end=2026-05-15, calendar_days=21; MISSING_PERIODS: start=2026-05-22, end=2026-06-05, calendar_days=14; SUSPICIOUS_DISCONTINUITY: trade_date=2020-11-26, previous_close=13.180000000000, close=15.920000000000, absolute_return=0.2078907435508345978755690440; SUSPICIOUS_DISCONTINUITY: trade_date=2022-11-16, previous_close=12.730000000000, close=9.810000000000, absolute_return=0.2293794186959937156323644933; SUSPICIOUS_DISCONTINUITY: trade_date=2024-05-20, previous_close=13.210000000000, close=15.930000000000, absolute_return=0.2059046177138531415594246783; SUSPICIOUS_DISCONTINUITY: trade_date=2025-05-16, previous_close=14.100000000000, close=18.000000000000, absolute_return=0.2765957446808510638297872340; STALE_SERIES: last_trade_date=2026-06-05, calendar_days=112; ADJUSTMENT_UNKNOWN: adjusted=False, adjustment_basis=UNKNOWN

Peer comparison

EXACT_INDUSTRY · Exact primary-industry and exchange match. · 10 compatible peer(s)

TickerPriceMarket capP/EP/BRevenue growthPAT growthMarginsFCF proxy yieldPremium / discount to peer median
BMK 9100.000000000000 VND 73017781200.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 0.88x — PRIOR_PERIOD_UNAVAILABLE — PRIOR_PERIOD_UNAVAILABLE 1.01% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
CGV 3000.000000000000 VND 28499868000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 0.32x 407.85% 211.04% 8.12% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
CK8 ECONOMIC_SIZE_MISMATCH 5600.000000000000 VND 16800000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE — PARENT_EQUITY_UNAVAILABLE 6.98% -12.10% 12.64% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
DAG 1400.000000000000 VND 84439756800.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE — PARENT_EQUITY_UNAVAILABLE -45.81% -8311.21% -49.92% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
DPC 8900.000000000000 VND 19911792000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 0.69x -33.23% 339.10% 20.09% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
DSG 6900.000000000000 VND 207000000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE — PARENT_EQUITY_UNAVAILABLE -6.32% 79.76% -8.74% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
HD8 7000.000000000000 VND 70000000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 0.63x -6.07% 28.52% 243.34% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
LQN ECONOMIC_SIZE_MISMATCH 3000.000000000000 VND 5680620000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE — PARENT_EQUITY_UNAVAILABLE -32.75% 15.87% -6.38% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
PCM 12500.000000000000 VND 50000000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 1.19x 25.90% 117.50% 1.58% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
TDF 7400.000000000000 VND 259000000000.000000000000 VND 9.14x 0.34x -2.98% -63.49% 1.07% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
TRT 7400.000000000000 VND 81400000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 0.54x 4.94% 352.57% 3.17% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
TVA 13000.000000000000 VND 81900000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE 0.81x 24.38% 762.43% 5.00% — TTM_OCF_OR_CAPEX_UNAVAILABLE —
VTA ECONOMIC_SIZE_MISMATCH 1800.000000000000 VND 14400000000.000000000000 VND — PARENT_PAT_TTM_UNAVAILABLE_OR_NON_POSITIVE — PARENT_EQUITY_UNAVAILABLE -47.19% 50.27% -35.19% — TTM_OCF_OR_CAPEX_UNAVAILABLE —

Peer median P/E: — INSUFFICIENT_COMPATIBLE_PEERS (1 compatible observations, 12 excluded)

Excluded: BMP (NO_COMPATIBLE_CLASSIFICATION); CVT (NO_COMPATIBLE_CLASSIFICATION); DNP (NO_COMPATIBLE_CLASSIFICATION); HID (NO_COMPATIBLE_CLASSIFICATION); NAV (NO_COMPATIBLE_CLASSIFICATION); RYG (NO_COMPATIBLE_CLASSIFICATION); ASM (NO_COMPATIBLE_CLASSIFICATION); TCR (NO_COMPATIBLE_CLASSIFICATION); TTC (NO_COMPATIBLE_CLASSIFICATION); NTP (NO_COMPATIBLE_CLASSIFICATION); VCS (NO_COMPATIBLE_CLASSIFICATION); VGC (NO_COMPATIBLE_CLASSIFICATION); VIT (NO_COMPATIBLE_CLASSIFICATION)

comparison inputs, not causal conclusions: revenue_growth_percent, pat_growth_percent, net_margin_percent, price_to_book

NO RESEARCH YET

Start with the evidence.

This company is searchable, but no persisted report exists. Start a run to build one from the available source documents.

Operator tooling

Internal research operations, separate from investor actions. The operator watchlist is not a customer watchlist, and PDF export generation requires the internal operator key. Permissions are unchanged.

Research run

Operator watchlist