Crexendo, Inc.

CXDO · Communications · $205M mkt cap · FY2025 filings · · not refreshed in 36 days · Shallow moat ·

Doesn't clear the bar

Shallow moat
Share / Embed this score
Embed this score

The five investor questions

80

2021–2025 (latest 5 aligned FYs; v3 window cap 5): revenue $28.1M to $68.2M, increasing; diluted EPS -0.12 to 0.16, increasing.

81

Median gross margin 69.8% over 4y, stable.

7

Median ROIC -3.8%, above the 12% hurdle in 20% of years.

100

Net cash position — no leverage risk.

24

Owner earnings changed trend unclear over up to the ten most recent annual observations.

Price vs. value if growth stopped today

A cautious baseline, not a price target: what the shares may support if normalized owner earnings simply hold steady.

Above value if growth stopped todayBelow value if growth stopped today
846% above value if growth stopped today
$2M
$0.70
$0.70
$6.62
846% above value if growth stopped today

What today’s price assumes: owner earnings growing ~57%/yr over 5 years. The zero-growth estimate assumes owner earnings stay flat (0% growth).

How to read this

We solve for the constant annual change in owner earnings that would make the five-year zero-growth estimate equal today’s price. This keeps the existing model inputs and calculation unchanged; it is an expectations lens, not a forecast.

This zero-growth estimate assumes trailing owner earnings persist — unreliable for declining businesses. The recent FY revenue series does not trigger the three-consecutive-declines flag.

Among the current top-score group, the median current price is 239% above the zero-growth estimate across 48 of the current top 50 companies by Moat Score with both values.

Score records captured Jul 26, 2026.

Exactly which 50 companies?

FTNT, META, MEDP, IBEX, MSFT, GOOGL, LULU, ANF, IDXX, TXRH, FHI, QLYS, FFIV, ADBE, LLY, MANH, VEEV, GRMN, SSD, MNST, DOCS, MCO, CPRT, NTAP, LRCX, NVDA, CORT, SFM, MPTI, ULTA, SN, RMD, ROL, PAYC, IRMD, INTU, DECK, MORN, LGCY, DAL, GWW, ISRG, MPWR, CTAS, LOPE, MRK, CMG, FAST, BKNG, ORLY

Missing a usable price or zero-growth estimate: ANF, BKNG.

Model details under moat-index@3.0.0: zero-growth multiple 11.1×, capped-growth comparison at no more than 18×; 9% discount rate; high-end growth 0% (capped at 4%) using min(5y revenue CAGR, 5y diluted-EPS CAGR), clamped to 0%–4%; maintenance capex uses min(capex, D&A); abstain when D&A is unavailable. This is a disclosed model range, not intrinsic value as fact.

17 years of fundamentals

The business, in plain English

Across the filed record, revenue grew from $65.8M (FY2010) to $68.2M (FY2025) — about 0.2% a year compounded over 15 years.

It earned 13.6% on invested capital in the latest filed year, FY2025. Across the full 16-year measurable filed record, median ROIC was −93.5%. Over the v3 recent window (10 measurable filed years), median ROIC was −3.8%. The Returns on Capital filter above scores it 7/100.

The balance sheet carried $114000 of total debt in FY2025 against $5.3M of owner earnings — roughly 0.0 years of owner earnings to retire it all. Balance-Sheet Safety scores it 100/100.

Put together: Balance-Sheet Safety is the strongest of the five filters (100/100) and Returns on Capital the weakest (7/100), which is how CXDO lands at 58/100 — a Shallow moat.

This breakdown is generated from the filed numbers and sub-scores above — no outside narrative, no estimates. Where a filing doesn’t disclose an input, the sentence that would need it is omitted instead of guessed.

FY2009–FY2025 · 17 fiscal years, normalized from CXDO’s SEC filings

Sales, as filed$68.2M FY2025
$0$25M$50M2009201520212025
Revenue kept after cost of goods69.8% FY2020
0%50%100%2009201520212025
Standard ROIC or separately labeled Operating ROICROIC 13.6% FY2025
0%500%2009201520212025
Cash an owner could take out$5.3M FY2025
$0$200M2009201520212025

Gaps in a line mean that item isn’t in CXDO’s filings for that year. The series is never interpolated or estimated. The Table view lists every filed value, including operating and net margins, total debt, and share count.

Flagship explainer

How Crexendo, Inc. makes its money

Crexendo, Inc.'s filing does not supply enough comparable lines for a truthful flow chart — here's what is filed:

Table alternative
Filed lineValue% of revenueSource
$68.2M100%
$4.7M7%
Income before tax$5.4M8%
Income tax$3000000%
$5.1M7%
Source: · event Dec 31, 2025 · retrieved Jul 26, 2026 · annual-row source set

Flagship explainer

What Crexendo, Inc. owns — and owes

Crexendo, Inc.'s filing tags don't support a full breakdown — here's what is filed:

Table alternative
Filed lineValue% of assetsSource
Total assets$77.7M100%
Cash and equivalents$31.4M40%
$1140000%
Stockholders’ equity$63.8M82%
Source: · event Dec 31, 2025 · retrieved Jul 26, 2026 · annual-row source set

Flagship explainer

What drives Crexendo, Inc.’s return on equity?

ROE is five filed business factors multiplied together.

DuPont return on equity factor treeReturn on equity branches into tax burden, interest burden, operating margin, asset turnover, and the equity multiplier.Return on equity9%Tax burden94%net income ÷ pretax incomeInterest burden115%pretax ÷ operating incomeOperating margin7%operating income ÷ revenueAsset turnover0.96×revenue ÷ average assetsEquity multiplier1.24×average assets ÷ average equityAs of 2025-12-31 · 2 SEC filing sourcesBuy Like Buffett · buylikebuffett.com
DuPont source inputs
InputValueFiscal yearSource
$5.1MFY2025
Income before tax$5.4MFY2025
Operating income$4.7MFY2025
$68.2MFY2025
Ending assets$77.7MFY2025
Beginning assets$64.9MFY2024
$63.8MFY2025
$51.4MFY2024
Source: · event Dec 31, 2025 · retrieved Jul 26, 2026 · annual-row source set
Embed this chart

Flagship explainer

Where Crexendo, Inc.'s cash went

Crexendo, Inc.’s filing does not supply enough provenance-matched cash-flow lines for a truthful flow chart — here’s what is filed:

Table alternative
Filed lineValue% of cash from operationsSource
Cash from operations$9.3M100%
Depreciation and amortization$2170002%
Source: · event Dec 31, 2025 · retrieved Jul 26, 2026 · annual-row source set

Curated 19-manager tier

Who reported holding Crexendo, Inc.

Delayed public 13F reports for 2026-Q2—not live positions, trades, or recommendations.

0 holding0 exited0 not holding0/19 resolved19 not retrieved

Named manager positions and quarter-over-quarter changes
ManagerReported positionQuarter-over-quarterFiling accession
Abrams CapitalNot retrievedComparison not retrievedFiling not retrieved
Akre CapitalNot retrievedComparison not retrievedFiling not retrieved
Baupost GroupNot retrievedComparison not retrievedFiling not retrieved
Berkshire HathawayNot retrievedComparison not retrievedFiling not retrieved
Brave Warrior AdvisorsNot retrievedComparison not retrievedFiling not retrieved
Dodge & CoxNot retrievedComparison not retrievedFiling not retrieved
First EagleNot retrievedComparison not retrievedFiling not retrieved
FundsmithNot retrievedComparison not retrievedFiling not retrieved
Gardner Russo & QuinnNot retrievedComparison not retrievedFiling not retrieved
Gates Foundation TrustNot retrievedComparison not retrievedFiling not retrieved
Mairs & PowerNot retrievedComparison not retrievedFiling not retrieved
Markel / Markel-GaynerNot retrievedComparison not retrievedFiling not retrieved
Oakmark / Harris AssociatesNot retrievedComparison not retrievedFiling not retrieved
Pershing SquareNot retrievedComparison not retrievedFiling not retrieved
Polen CapitalNot retrievedComparison not retrievedFiling not retrieved
Sequoia / Ruane CunniffNot retrievedComparison not retrievedFiling not retrieved
Southeastern Asset ManagementNot retrievedComparison not retrievedFiling not retrieved
Tweedy, BrowneNot retrievedComparison not retrievedFiling not retrieved
Yacktman Asset ManagementNot retrievedComparison not retrievedFiling not retrieved

Position size uses shares and filed value from each manager’s 13F. Portfolio weight uses the eligible long-share filing denominator. Changes compare only with the immediately preceding calendar quarter.

Source: Filing source not retrieved · event Jun 30, 2026 · retrieved Jul 26, 2026

Flagship explainer

What Crexendo, Inc. insiders reported

Records still being gathered — partial as of retrieval Aug 31, 2026.

Partial coverage: the incomplete Form 4 walk cannot establish no activity, an activity date, or zero counts.

Moat Score history

15 logged readings since Jul 17, 2026 · append-only, never rewritten

Moat Score over timeLast scored reading of each day, on the 0–100 scale58.4 / 100
0406080100WideNarrowShallowNo moatJul 17, 2026Jul 26, 2026

Breaks in the line mark methodology or normalizer upgrades — readings across versions aren’t compared, so a level shift there isn’t a change in the business.

Tier changesSame-methodology and same-normalizer crossings of the Wide / Narrow / Shallow bars

  1. Normalizer upgraded unstamped (version unknown)tomoat-xbrl-normalizer@1.1.0 — readings across versions aren’t comparedJul 26, 2026
  2. Methodology upgraded moat-index@2.0.0tomoat-index@3.0.0 — readings across versions aren’t comparedJul 23, 2026
  3. Methodology upgraded moat-index@1.2.0tomoat-index@2.0.0 — readings across versions aren’t comparedJul 20, 2026

Scores are logged append-only and never overwritten — this record cannot be reconstructed retroactively, which is exactly why it’s worth keeping.

Insider activity

Form 4 reports mix P/S market or private transactions with compensation-plan mechanics. Activity casually described as “insider selling” can include compensation mechanics; awards, tax withholding, and option exercises are shown by their exact filed class here, never collapsed into “Bought” or “Sold.”

These are disclosed filing facts and arithmetic aggregates, not a signal or verdict.

This machine-readable surface covers SEC ownership filings from 2003; it does not represent earlier paper-era records.

Records still being gathered — partial as of retrieval Aug 31, 2026.

42 filings were skipped because the SEC primary document returned 404; the omission is disclosed and aggregates are withheld.

Among the rows shown, A/F/M acquisition, payment or withholding, and exercise or conversion rows outnumber S sale rows (39 versus 0). The filing codes alone do not establish that every such row arose from a compensation plan.

Trailing-12-month totals and the 90-day cluster result are withheld because this issuer walk is incomplete.

InsiderShares owned afterDateFiling detail
Vincent RonRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 1 paired event1,111Exercise or conversion of derivative security (M)132,256Aug 27, 2026
1 filed lot
  • Table I · Common Stock: 1,111 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 132,256 · Paired event: 1,111 Restricted Stock Units → 1,111 Common Stock ·
Vincent RonRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock471$6.42$3,024131,785Aug 27, 2026
1 filed lot
  • Table I · Common Stock: 471 shares at $6.42 · code F · owned after 131,785 ·
Vincent RonRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 1 paired event1,111Exercise or conversion of derivative security (M)36,668Aug 27, 2026
1 filed lot
  • Table II · Restricted Stock Units: 1,111 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 36,668 · Paired event: 1,111 Restricted Stock Units → 1,111 Common Stock ·
KORN JEFFREY GRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 1 paired event1,111Exercise or conversion of derivative security (M)225,680Aug 27, 2026
1 filed lot
  • Table I · Common Stock: 1,111 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 225,680 · Paired event: 1,111 Restricted Stock Units → 1,111 Common Stock ·
KORN JEFFREY GRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock271$6.42$1,740225,409Aug 27, 2026
1 filed lot
  • Table I · Common Stock: 271 shares at $6.42 · code F · owned after 225,409 ·
KORN JEFFREY GRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 1 paired event1,111Exercise or conversion of derivative security (M)36,668Aug 27, 2026
1 filed lot
  • Table II · Restricted Stock Units: 1,111 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 36,668 · Paired event: 1,111 Restricted Stock Units → 1,111 Common Stock ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 1 paired event1,111Exercise or conversion of derivative security (M)238,249Aug 27, 2026
1 filed lot
  • Table I · Common Stock: 1,111 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 238,249 · Paired event: 1,111 Restricted Stock Units → 1,111 Common Stock ·
Gaylor Douglas WalterRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock304$6.42$1,952237,945Aug 27, 2026
1 filed lot
  • Table I · Common Stock: 304 shares at $6.42 · code F · owned after 237,945 ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 1 paired event1,111Exercise or conversion of derivative security (M)36,668Aug 27, 2026
1 filed lot
  • Table II · Restricted Stock Units: 1,111 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 36,668 · Paired event: 1,111 Restricted Stock Units → 1,111 Common Stock ·
Vincent RonRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 2 paired events555Exercise or conversion of derivative security (M)See lot detailAug 25, 2026
2 filed lots
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 131,104 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
  • Table I · Common Stock: 277 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 131,263 · Paired event: 277 Restricted Stock Units → 277 Common Stock ·
Vincent RonRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock236$6.31$1,489See lot detailAug 25, 2026
2 filed lots
  • Table I · Common Stock: 118 shares at $6.31 · code F · owned after 130,986 ·
  • Table I · Common Stock: 118 shares at $6.31 · code F · owned after 131,145 ·
Vincent RonRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 2 paired events555Exercise or conversion of derivative security (M)See lot detailAug 25, 2026
2 filed lots
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 5,002 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
  • Table II · Restricted Stock Units: 277 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 6,946 · Paired event: 277 Restricted Stock Units → 277 Common Stock ·
KORN JEFFREY GRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 2 paired events555Exercise or conversion of derivative security (M)See lot detailAug 25, 2026
2 filed lots
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 224,428 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
  • Table I · Common Stock: 277 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 224,637 · Paired event: 277 Restricted Stock Units → 277 Common Stock ·
KORN JEFFREY GRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock136$6.31$858See lot detailAug 25, 2026
2 filed lots
  • Table I · Common Stock: 68 shares at $6.31 · code F · owned after 224,360 ·
  • Table I · Common Stock: 68 shares at $6.31 · code F · owned after 224,569 ·
KORN JEFFREY GRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 2 paired events555Exercise or conversion of derivative security (M)See lot detailAug 25, 2026
2 filed lots
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 5,002 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
  • Table II · Restricted Stock Units: 277 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 6,946 · Paired event: 277 Restricted Stock Units → 277 Common Stock ·
Gaylor Douglas WalterRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock152$6.31$959See lot detailAug 25, 2026
2 filed lots
  • Table I · Common Stock: 76 shares at $6.31 · code F · owned after 236,937 ·
  • Table I · Common Stock: 76 shares at $6.31 · code F · owned after 237,138 ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 1 paired event277Exercise or conversion of derivative security (M)237,214Aug 25, 2026
1 filed lot
  • Table I · Common Stock: 277 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 237,214 · Paired event: 277 Restricted Stock Units → 277 Common Stock ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 1 paired event555Exercise or conversion of derivative security (M)See lot detailAug 25, 2026
2 filed lots
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 5,002 ·
  • Table II · Restricted Stock Units: 277 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 6,946 · Paired event: 277 Restricted Stock Units → 277 Common Stock ·
Vincent RonRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 2 paired events556Exercise or conversion of derivative security (M)See lot detailAug 4, 2026
2 filed lots
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 130,944 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 130,944 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
Vincent RonRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock236$7.47$1,763See lot detailAug 4, 2026
2 filed lots
  • Table I · Common Stock: 118 shares at $7.47 · code F · owned after 130,826 ·
  • Table I · Common Stock: 118 shares at $7.47 · code F · owned after 130,826 ·
Vincent RonRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 2 paired events556Exercise or conversion of derivative security (M)See lot detailAug 4, 2026
2 filed lots
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 8,334 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 8,334 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
KORN JEFFREY GRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 1 paired event278Exercise or conversion of derivative security (M)224,218Aug 4, 2026
1 filed lot
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 224,218 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
KORN JEFFREY GRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock68$7.47$508224,150Aug 4, 2026
1 filed lot
  • Table I · Common Stock: 68 shares at $7.47 · code F · owned after 224,150 ·
KORN JEFFREY GRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 1 paired event278Exercise or conversion of derivative security (M)8,334Aug 4, 2026
1 filed lot
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 8,334 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock · 1 paired event278Exercise or conversion of derivative security (M)236,812Aug 4, 2026
1 filed lot
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 236,812 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
Gaylor Douglas WalterRole not disclosedPayment of exercise price or tax liability (F)Table I · Disposed · Common Stock77$7.47$575236,735Aug 4, 2026
1 filed lot
  • Table I · Common Stock: 77 shares at $7.47 · code F · owned after 236,735 ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table II · Disposed · Restricted Stock Units · 1 paired event278Exercise or conversion of derivative security (M)8,334Aug 4, 2026
1 filed lot
  • Table II · Restricted Stock Units: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 8,334 · Paired event: 278 Restricted Stock Units → 278 Common Stock ·
Gaylor Douglas WalterRole not disclosedExercise or conversion of derivative security (M)Table I · Acquired · Common Stock278Exercise or conversion of derivative security (M)237,013Jul 25, 2026
1 filed lot
  • Table I · Common Stock: 278 shares at — (Exercise or conversion of derivative security (M)) · code M · owned after 237,013 ·

Source-event as of . Retrieved .

Track record

How Crexendo, Inc.’s moat rated in each of the years we can reconstruct from its filings — scored only on what was knowable at the time — and what its price and returns did afterward. The score never saw a price; the two are joined only in hindsight, for education, not as a signal.

Point-in-time scores 20112025, one methodology version · reconstructed from filings on file each Dec 31 — never with hindsight

Point-in-time Moat Score (dot colored by tier)Indexed price (total-return (dividends reinvested))Rated Wide-moat that year

How to read this: each dot is what the engine would have scored CXDO on that December 31; the line below is its total-return price path (dividends reinvested) in the years since.

0406080100WideNarrowShallowNo moatPoint-in-time Moat Score50100200Indexed price · log scale (2015 = 100)201120142017202020232026

Two tracks, one timeline: the score has its own 0–100 scale (top), the price its own 100-based scale (bottom) — never a shared axis. The price path is a total-return (dividends reinvested) index built from the same data the forward returns use; gaps in the score line are years with no reconstructed rating (see the table for why). The Table view carries every value.

What followed, in the years it rated Wide

In the reconstructed history shown, CXDO did not rate Wide-moat in any year, so there is no wide-moat track record to report. That absence is itself the honest answer — we don’t manufacture a comparison where the rating never earned one.

Communications context

#18 of 134 scored Communications companies, ranked by Moat Score.

Nearest peers by Moat Score

  1. #16GSAT GLOBALSTAR, INC.59.7 out of 100, Shallow moatShallow moat
  2. #17IDT IDT CORP59.2 out of 100, Shallow moatShallow moat
  3. #19DIS WALT DISNEY CO/58.1 out of 100, Shallow moatShallow moat
  4. #20CTGG QWEST CORP56.5 out of 100, Shallow moatShallow moat

Compare CXDO with its nearest peersAll Communications companies on the Index →

Common questions about CXDO

Does Crexendo, Inc. have an economic moat?
Based on its FY2025 SEC filings, the Moat Index scores Crexendo, Inc. (CXDO) 58.4 out of 100 — a Shallow moat. The five questions behind that score begin at 20% each; if exactly one genuinely lacks data, the other four weights are renormalized and disclosed. revenue and EPS trend 80, pricing power 81, returns on capital 7, balance-sheet safety 100, capital allocation 24.
Is CXDO trading below the conservative owner-earnings estimate?
The value if growth stopped today — a zero-growth baseline — is $0.70 per share. It capitalizes normalized owner earnings at a 9% rate and assumes 0% growth. Versus a recent price of $6.62, that is 846% above value if growth stopped today. The model also publishes a capped-growth comparison, but the zero-growth estimate is the cautious baseline. It assumes trailing owner earnings persist and is unreliable for declining businesses. This is an educational estimate from primary SEC filings, not intrinsic value as a fact or investment advice.
How has CXDO's Moat Score changed over time?
The record logs 15 readings since Jul 17, 2026; the latest reads 58.4 out of 100 (shallow moat). No tier changes on record yet. (Methodology or normalizer upgrades on Jul 20, 2026, Jul 23, 2026, Jul 26, 2026 re-based the score; readings across versions aren't compared.) The history is append-only — readings are only ever added, never rewritten.