Carrier Connect Data Solutions is a data-centre (colocation) roll-up: it buys small, underutilised Tier II/III colocation facilities, fills their empty rack space and layers network connectivity on top, then consolidates them into a single public portfolio. Its core business is selling rack space and connectivity to roughly 80–85 customers (AI firms, service providers, enterprises) across five data centres — downtown Vancouver, Perth (Australia), two in Ottawa and Saint John — with a Rochester, New York site pending an August close. The explicit strategy is a multiple-arbitrage roll-up: buy private data centres cheaply (~2–3× revenue) and let a public portfolio re-rate to a higher multiple. What sets it apart, for better and worse, is that it rides genuine AI-driven data-centre demand, but it is an early, cash-burning, acquisition-funded micro-cap carrying a going-concern note and a promoter-operator CEO — so execution, financing and dilution, not the demand backdrop, are the swing factors.
What this is. A carrier-neutral data-centre roll-up, now at five sites under management[2] after completing the Rochester Colo acquisition[3]. Revenue is compounding hard from a tiny base: C$95,946 in the March-2025 quarter to C$910,136 in the March-2026 quarter[5], which the company reports as +849%.
What the growth costs. Operating losses widen in step with it — -C$279k, then -C$1.07M, then -C$1.14M across the last three reported quarters[5] — and gross margin is unstable, 32% in the latest quarter against 54% in the one before. That pattern is normal for a roll-up buying and integrating sites, and it is also what a roll-up looks like when the integration is not working. One quarter cannot tell you which.
The balance sheet is the improvement. Cash C$9,857,201 against total debt C$9,563,050 is roughly net-neutral[1], where a year ago the company had $967k and a working-capital position of $1.1M[4]. That is the single biggest change in this name and it is why the going-concern gate is no longer something I am willing to assert.
Who it is actually against. At the top of the market sit Equinix and Digital Realty, and CCDS does not compete with them — it is two orders of magnitude too small and sells into a different customer. Its real competitive set is the regional and roll-up tier: Cologix and eStruxture in Canada, DataBank, TierPoint and Flexential in the US Northeast. Those are the parties bidding for the same small Tier II/III facilities CCDS is buying, and every one of them is better capitalised.
Share trajectory: gaining, and bought rather than won. Five sites under management against three a year ago[2], with the fifth arriving by acquisition[3]. That is genuine share growth and it is the model working. It is not the same thing as winning customers from a rival, and the moat it builds is switching cost at the rack — real, but local and modest. The competitive risk that matters here is not losing customers; it is being outbid for the next facility by someone whose cost of capital is lower.
Quality 52 — up two. The acquisition it promised, it closed. The margins and the loss trajectory have not yet earned more than that.
The multiple, and the one you must not use. C$1.24 against 33,739,900 shares is a market capitalisation of C$41,837,476, or 24.84x trailing sales[1]. The same data feed reports a P/E of 9.5x and EPS of C$0.13. Both are artifacts — the company's net margin is -189% — and neither appears anywhere in this scorecard.
Forward is the honest lens, and it is softer. Annualising the March-2026 quarter and adding Rochester puts revenue nearer C$4-5M, which is roughly 9-10x sales. For a data-centre infrastructure business compounding at this rate that is not demanding. The catch is that the denominator is a forecast resting on one month of ownership.
The street is one person. A single analyst carries a C$3.00 target, 142% above the price[1]. I am recording it because it exists and because hiding a bullish datum is the failure this framework has been bitten by, but one target is not a consensus and it is not weighted here.
Valuation 50 — up 7. Trailing sales got dearer as the price rose 12.7% and revenue had not yet caught up; the forward multiple got cheaper because Rochester closed. Those two roughly offset, which is why this barely moves.
The demand backdrop is genuinely strong and it is not the whole story. Colocation and carrier-neutral capacity sit directly under the AI and cloud build-out, and that is the tailwind carrying this name's thesis. But CCDS is a C$42M company operating five regional sites; it is a price-taker buying assets in a market where the capital is flowing to operators two orders of magnitude larger.
Execution is now a driver in its own right. The Rochester close[3] converts the roll-up from a stated plan into a demonstrated one. The next test is the acquisition after this one, and whether it is funded with paper at a price the existing holders would choose.
Drivers 62 — up one, for the close.
The 9 September macro report has Technology (XLK) Underweight on all three horizons, with energy-shock stagflation the dominant regime at 48% probability[7]. A pre-profit technology micro-cap is close to the worst-positioned thing in that regime: it needs capital, and stagflation is where capital gets more expensive and less patient.
Pressure Headwind, conviction 38 — down twelve. That fall is the single largest score change in this update and it is entirely macro, not company-specific.
Source: sector map (GICS Information Technology → XLK) · Macro report 2026-09-09 · Macro report 2026-09-09
The tape has rolled over. C$1.24 sits below both the 20-day (C$1.2935) and the 50-day (C$1.2392) averages, the MACD line has just crossed negative with the histogram at -0.0070, and on-balance volume has fallen from 159,700 to 67,700 in three weeks[6]. RSI-14 at 47.7 is neutral, not oversold.
There is no long-horizon read available, and I am not going to invent one. Only 163 daily sessions of history exist, so there is no 200-day average. Any statement about this name's primary trend would be an opinion wearing a technical costume.
Timing 42 — down four. Price above a rising 50-DMA in August; below it now.
| Date | Event | Impact | Forecast | Previous | Relevant? | Why |
|---|---|---|---|---|---|---|
| ~15 Aug 2026 | Rochester Colo acquisition close | Med (company) | Close expected | LOI/definitive signed | Yes | Adds a US site + changes rollup scale & near-term cash needs |
| ~Sep-Oct 2026 | FY2026 Q4 / annual results (FY-end 30 Jun) | Med | — | — | Yes | First look at full-year burn + going-concern re-assessment |
| Date | Event | Actual | Forecast | Surprise | Impact |
|---|---|---|---|---|---|
| Q3-2026 (Apr qtr) | Record quarterly revenue | ~C$0.91M | ~C$0.79M | Beat | Positive on top-line; offset by persistent EBITDA loss + going-concern note |
CCDS is a low-macro-sensitivity micro-cap: recurring macro releases barely move it. The one dated, impactful event in the window is the Rochester acquisition close (~15 Aug) — it changes rollup scale and the near-term liquidity picture, so the next update is scheduled for the trading day after (17 Aug).
| Timeframe | Trend | Direction | RSI | MACD | Key S/R | Breakout | Vol |
|---|---|---|---|---|---|---|---|
| Daily | Rolling over | Bearish | 47.7 | neg | S: C$1.03 R: C$1.29 | none | — |
| vs 20-day | Below | Bearish | — | — | SMA20 C$1.29 | none | — |
| vs 50-day | Below | Bearish | — | — | SMA50 C$1.24 | none | — |
| 200-day | NOT AVAILABLE | — | — | — | only 163 sessions of history | — | — |
| Confluence: Bearish on what exists · MTF Score 35 | |||||||
This table is deliberately short. The listing has 163 daily sessions, so there is no 200-day average and no primary-trend read, and a multi-timeframe grid that filled those rows would be inventing them[6]. What the daily series does say: price is below both the 20- and 50-day averages, the MACD line has just crossed negative, and on-balance volume has fallen by well over half in three weeks.
CCDS.V daily closes, last 90 sessions to 11 Sep 2026, with the 50-day average. The range over the window is C$1.03 to C$1.47; the price has round-tripped from C$1.25 to C$1.24 and now sits below the 50-day. There is no 200-day line because the listing has only 163 sessions of history[6].
Rochester integrates cleanly, a further accretive acquisition lands on terms that do not punish existing holders, and the five-site portfolio demonstrably reaches operating cash flow. At that point the trailing sales multiple stops mattering and the forward one does. 69% from here.
Revenue keeps compounding and operating losses keep pace with it, so the equity drifts with the sector rather than re-rating. Technology is Underweight on all three horizons[7], which caps the drift. 5% from here.
Integration costs run ahead of acquired revenue, the operating burn forces a raise into a weak tape, and the going-concern question that the FY2025 annual raised[4] comes back with the FY2026 filing. -44% from here.
Forecast: Entry conviction: none of three groups met — no position. The fundamental group needs a cheaper price or a proven forward multiple; the technical group needs the 50-day reclaimed on volume; the catalyst group needs the FY2026 annual to get a date. Any one of those reopens this.
Forecast: Exit action: Hold. No exit trigger is live: the stop is 23% away, no thesis condition has fired, and the price is below the base target. The position this describes is no position, because no entry group is met either.
No entry group is met, so the framework's position size here is zero. If you already hold, the arithmetic that matters is the stop: C$0.95 is 23% below the C$1.24 price, and with an ATR of 0.0625 — 5.0% of price[6] — that is about three and a half average days' range. On a name averaging 71,361 shares a day, with sessions as thin as 5,200, the stop is a price level rather than a promise about the fill.
{
"ticker": "CCDS.V",
"date": "2026-09-12",
"version": "v6",
"brand": "",
"company": "Carrier Connect Data Solutions Inc.",
"currency": "CAD",
"exchange": "TSXV",
"exchange_ticker": "TSXV:CCDS",
"isin": "CA14446B1085",
"api_ticker": "CCDS.V",
"finder_ticker": "CCDS",
"finder_exchange": "TSXV",
"analysis_status": "stopped",
"lifecycle_stage": "high-growth-rollup",
"sector": "Information Technology",
"user_horizon": null,
"user_allocation_pct": null,
"portfolio_role": null,
"price_at_rating": 1.24,
"signal_short": "HOLD",
"signal_medium": "HOLD",
"signal_long": "HOLD",
"primary_signal": "HOLD",
"short_hold_reason": "full_hold",
"short_entry_confirmed": false,
"quality_score": 52,
"valuation_score": 50,
"timing_score": 42,
"driver_score": 62,
"economic_alignment_stance": "Neutral",
"economic_alignment_conviction": 38,
"economic_alignment_pressure": "Neutral",
"economic_alignment_source": "sector map (Technology XLK: short U / medium U / long U per the 9 Sep 2026 macro report) \u2014 Underweight on all three horizons in a 48%-probability energy-shock stagflation regime.",
"macro_report_date": "2026-09-09",
"overall_confidence": 48,
"val_band": "fair",
"warranted_multiple": 8.0,
"actual_multiple": 9.51,
"val_multiple_basis": "EV/Sales on FORWARD revenue, both sides forward. Actual 9.51x = market cap C$41.8M over C$4.4M of forward revenue (the March-2026 quarter annualised, plus Rochester). Warranted 8.0x. TRAILING P/S is 24.8x on ~C$1.68M and is shown for context only \u2014 it is not the anchor, because a roll-up that has just added a site is mid-step and trailing revenue understates the base. The vendor P/E of 9.5x and EPS of C$0.13 are ARTIFACTS against a -189% net margin and are used nowhere.",
"discount_rate_r": null,
"risk_free_10y": null,
"g_near": null,
"g_term": null,
"warranted_ratio": 1.19,
"fair_value_est": 1.2,
"stop_loss": 0.95,
"target_price": 1.2,
"scenario_base_target": 1.3,
"scenario_bull_target": 2.1,
"scenario_bear_target": 0.7,
"entry_groups_met": 0,
"entry_conviction": "Wait",
"exit_groups_live": 1,
"exit_action": "Reduce",
"hard_gate_state": "caution",
"gates_triggered": [],
"gates_caution": [
"Going concern - EVIDENCE IS STALE AND I AM NOT CARRYING IT AS TRIGGERED. The prior report fired this gate on material-uncertainty language from the FY2025 annual (year ended 30 JUNE 2025), when cash was $967k. That filing predates a $10.5M financing: cash at 31 March 2026 was $9.9M against an operating burn of about $1.1M a quarter, which is roughly two years of runway. I have NOT seen the interim financial statements to 31 March 2026, so I cannot confirm the language was removed either - the Q3 results release does not repeat it, but a results release is not the statements. Recorded as a caution with its basis dated, not asserted in either direction. The FY2026 annual settles it and is the next update's trigger.",
"Dilution - 800,000 consideration shares issued for Rochester (about 2.4% of the 33.7M shares outstanding), escrowed over 24 months, plus the earlier $10.5M raise. A sub-scale roll-up that buys with paper dilutes by design; the question is whether the assets bought outrun it.",
"Valuation ceiling - 24.8x trailing sales with operating losses widening from -$279k to -$1.14M a quarter.",
"Liquidity/governance - average volume about 71,000 shares, and recent sessions as thin as 5,200. ATR is 5.0% of price. A position of size cannot be built or exited quickly."
],
"do_not_buy_triggers": [],
"competitive_share_trajectory": "gaining \u2014 five data centres under management after the Rochester close, against three a year ago; share is being bought rather than won, which is the model",
"competitive_threat_level": "moderate",
"nonop_pct_of_net_income": null,
"clean_pe": null,
"clean_peg": null,
"analyst_consensus_target": 3.0,
"analyst_target_high": 3.0,
"analyst_target_low": 3.0,
"analyst_target_upside_pct": 172.7,
"analyst_coverage_count": 1,
"moat_score": 44,
"fcf_yield": null,
"implied_growth_rate": null,
"relative_strength_vs_spy": null,
"relative_strength_vs_sector": null,
"catalyst_clustering_score": 60,
"next_update_date": "2026-09-26",
"next_update_basis": "Standing 14-day ceiling. The dated catalyst is the FY2026 annual report (year ended 30 June 2026), which is the filing that will settle whether the going-concern material uncertainty carried from FY2025 survives the $10.5M raise \u2014 see gates_caution. Bring the update forward if it lands sooner.",
"prior_report": "calibration-CCDS.V-20260804-1308.json",
"prior_primary": "HOLD",
"changes_note": "HOLD/HOLD/HOLD held for a fourth report. Going-concern Financial-Distress gate re-VERIFIED live this run (Q3-2026 financials) — caps every horizon at HOLD; no BUY anywhere → status stays Stopped. Price −7.6% to C$1.10 (nearing the C$0.97 52-wk low). Record Q3 revenue (~C$0.91M, beat) offset by persistent EBITDA loss. Scores ~flat: Q50, V42→43, T47→46, D62→61, Econ Neutral/50. Rochester close ~15 Aug now inside the window → next update 17 Aug (was default +14d).",
"composite_short": 46,
"composite_medium": 48,
"composite_long": 50,
"mechanical_repair": "2026-09-10: fields the framework DETERMINES were repaired mechanically by scripts/repair_derived_fields.py \u2014 composite_short None -> 46; composite_medium None -> 46; composite_long None -> 47. No signal, gate, scenario, target or prose was touched, and any valuation_score clamp that would have crossed a Decision-Matrix band was refused rather than applied. Cause: the pillars and the banner score were authored in different places and nothing reconciled them; build_stock_report.py now derives these at render so it cannot recur. On a valuation_score clamp the WARRANTED RATIO is treated as the anchor and the score moves to the NEAREST edge of the band that ratio implies \u2014 the ratio is computed from actual/warranted and is the more mechanical of the two, and clamping to the nearest edge preserves as much of the original author's judgement as the constraint allows.",
"report_file": "CCDS.V_Signal_v6_20260912_1600.html",
"price_asof": "2026-09-11",
"market_cap_cad": 41837476,
"shares_outstanding": 33739900,
"shares_outstanding_m": 33.7399,
"nav_divisor_shares": 33739900,
"base_signal_short": "HOLD",
"base_signal_medium": "HOLD",
"base_signal_long": "HOLD",
"auto_stop_reason": "Donatien Pick with no BUY on any horizon: the Decision Matrix returns HOLD at Medium quality (52), Fair valuation (44) and Neutral timing (42) before any gate is applied. Stays visible on the watchlist and re-activates automatically if a later report produces a BUY anywhere.",
"usd_cad_rate": 1.38353,
"usd_cad_asof": "2026-09-11",
"data_as_of": {
"price": "2026-09-11",
"financials": "2026-03-31",
"macro": "2026-09-09",
"corporate_actions": "2026-09-12"
},
"scenario_probs": {
"bull": 25,
"base": 50,
"bear": 25
},
"corporate_action_check": "Sweep 4 Aug - 12 Sep 2026 against the company feed. ROCHESTER COLO ACQUISITION COMPLETED: USD$250,000 cash (US$25,000 paid as a deposit) plus 800,000 consideration shares, escrowed and released in four equal tranches at 6, 12, 18 and 24 months from 4 August 2026. This is the event the prior report was waiting on and it has happened. 24 Aug 2026: Aleem Nathwani appointed to lead Corporate Development. NO financing, placement or debt facility in the window. SEPARATELY, AND THE PRIOR REPORT SHOULD HAVE CARRIED IT: a $10.5M financing completed before 31 March 2026, which is what took cash from $967k at 30 June 2025 to $9.9M.",
"superseded_values": [],
"superseded_exempt": {},
"carried_verbatim": [],
"lint": {
"exit": 1,
"assertions": 59,
"errors": 4,
"warnings": 10,
"could_not_run": [
"CCY-PE-SKIPPED",
"CONF-SKIP",
"FW-GUARDRAIL-SKIP"
],
"at": "2026-09-12T12:17",
"report": "CCDS.V_Signal_v6_20260912_1600.html"
},
"valuation_lenses": {
"anchor_ev_sales_forward": {
"actual": 9.51,
"warranted": 8.0,
"weight": 0.55,
"note": "Warranted 8x forward sales for a sub-scale infrastructure roll-up compounding fast but loss-making: below the 10-15x the listed data-centre names carry, because those are profitable at scale and this is not."
},
"sector_median": {
"value": "6-8x forward EV/Sales for small-cap regional colocation",
"weight": 0.2,
"note": "Judgemental range, not a computed screen \u2014 there is no clean listed comp set at this size in Canada, and I am not going to manufacture a median from three loosely-similar names."
},
"peg": {
"value": null,
"weight": 0.1,
"note": "NOT APPLICABLE and recorded as such rather than skipped: there are no earnings to grow, so PEG has no denominator."
},
"decile": {
"value": null,
"weight": 0.15,
"note": "NOT AVAILABLE: the listing has 163 sessions of history, which is too short for a valuation-decile read against its own record."
}
},
"valuation_lens_note": "Two of the four framework lenses are genuinely unavailable on this name and are recorded as unavailable with the reason, not silently skipped. The score therefore leans on the anchor and the sector range, and the confidence of 40% says so.",
"valuation_confidence": 40
}
Third-plus consecutive HOLD/HOLD/HOLD. Nothing material improved: the record Q3 top-line is offset by a persistent going-concern note and continued EBITDA losses. Price −7.6% to C$1.10, nearing the C$0.97 low. Scores essentially flat (Q50, V43, T46, D61, Econ 50). No BUY on any horizon → analysis_status stays Stopped (Donatien-Pick auto-Stop on no-BUY; stays visible, auto-reactivates on any future BUY).