Every figure this model derived for NTIC, 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 2026-05-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
1,089,177
PaymentsToAcquirePropertyPlantAndEquipment
2026-05-31
cash
7,275,981
CashAndCashEquivalentsAtCarryingValue
2026-05-31
current assets
47,774,418
AssetsCurrent
2026-05-31
current liabilities
27,782,828
LiabilitiesCurrent
2026-05-31
equity
72,824,860
StockholdersEquity
2026-05-31
interest expense
778,945
InterestExpenseNonoperating
2026-05-31
ocf
2,442,955
NetCashProvidedByUsedInOperatingActivities
2025-08-31
revenue
91,836,780
Revenues
2026-05-31
sbc
1,266,850
ShareBasedCompensation
2026-05-31
The ratios
The figures themselves rather than their scores — what somebody looking up
NTIC on one particular measure came for.
Ratio
Value
cash operating margin
5.49
current ratio
1.72
current ratio reported
1.72
deferred revenue growth
0.0
dilution pct
-1.97
ebit cagr
-15.31
ebit yoy
-37.29
fcf margin
1.47
growth cv
0.89
interest cover
3.54
operating margin
3.01
owner earnings margin
0.09
revenue growth
7.7
revenue growth per share
9.87
roic
3.33
rule of 40
10.71
sbc pct revenue
1.38
What to be careful about
What this model itself distrusts about NTIC's figures. Written by the
derivation as it ran, not added afterwards.
no market cap; set `market_cap` in overrides.yaml
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: contracted coverage