Every figure this model derived for CTW, the value it took, and
the element in the company's own XBRL it was read from — so any of it can be checked
against the filing rather than taken on trust.
As at 2025-07-31.
The figures, and where each came from
This is the part no other screener shows. Each figure below names the XBRL element it
was read from, so it can be checked against the filing itself.
Figure
Value
XBRL tag
As at
capex
584,668
PaymentsToAcquirePropertyPlantAndEquipment
2025-07-31
cash
12,208,630
CashAndCashEquivalentsAtCarryingValue
2025-07-31
current assets
18,075,099
AssetsCurrent
2025-07-31
current liabilities
8,423,949
LiabilitiesCurrent
2025-07-31
equity
27,648,057
StockholdersEquity
2025-07-31
ocf
111,375
NetCashProvidedByUsedInOperatingActivities
2025-07-31
revenue
90,370,793
Revenues
2025-07-31
The ratios
The figures themselves rather than their scores — what somebody looking up
CTW on one particular measure came for.
Ratio
Value
cash operating margin
1.78
current ratio
2.18
current ratio reported
2.15
dilution pct
0.0
fcf margin
-0.52
operating margin
-1.18
owner earnings margin
-0.52
revenue growth
32.07
revenue growth per share
32.07
roic
-5.45
rule of 40
30.89
sbc pct revenue
0.0
What to be careful about
What this model itself distrusts about CTW's figures. Written by the
derivation as it ran, not added afterwards.
revenue is annual, not TTM
operating income is annual, not TTM
no current stock compensation tagged; treated as zero, so owner earnings are overstated
no market cap; set `market_cap` in overrides.yaml
share count is from 2025-07-31 (395 days old, weighted average diluted); a stock split since then would make the market cap wrong. Set `market_cap` in overrides.yaml to be sure.
gross profit not tagged; rebuilt from Revenues - CostOfRevenue
no debt and no profit, so interest cover cannot be measured; scored on cash runway instead: 12M of net cash against a 0M annual burn is 25.8 years
no forward EPS estimate; growth rests on filings only. Analyst consensus is not published in XBRL, so it has to be fetched from a data provider or set by hand in overrides.yaml as `eps_growth_2y`
valuation DROPPED from the total: only 0 of 2 inputs could be computed (ev sales, ev owner earnings not tagged), so the score is not meaningful. Its weight is spread over the other dimensions
durability rests on 3 of 4 inputs; not tagged: worst year
growth rests on 3 of 4 inputs; not tagged: sustained growth