2025
$13.56
▼
Source: FY2025 10-K (accession 0001048268-25-000174). CFO=$286,096K. WC items include -$62,099K for marketable trading securities purchases (captive insurance portfolio funding, treated as a working-capital item per the company's own cash-flow classification); together with AR -$79,948K, inventories $4,149K, costs in excess of billings -$8,674K, prepaid/other -$16,455K, other noncurrent assets -$1,557K, AP/accrued $86,460K, billings in excess $16,089K, other noncurrent liab -$1,796K, WC sums to -$63,831K. SBC=$12,931K. Reconciliation (311,842+3,445+475+46,941-155+12,931-3,305-7,485-14,762-63,831=286,096) matches CFO exactly ('Net income' here includes noncontrolling interests, ~1.9% of the total, immaterial for this purpose). Capex=$67,253K; revenue grew $487,110K; growth capex=$3,884K; maintenance capex=$63,369K. OE=286,096-(-63,831)-12,931-63,369=$273,627K. Diluted shares=20,182,797. OE/sh=$13.56.
2024
$11.05
▼
Source: FY2025 10-K (accession 0001048268-25-000174), FY2024 column. CFO=$234,404K. WC items include -$33,214K used to buy marketable trading securities (funding the company's captive insurance investment portfolio, classified by the company as an operating working-capital item); together with AR -$93,507K, inventories -$3,522K, costs in excess of billings -$3,979K, prepaid/other -$16,720K, other noncurrent assets $174K, AP/accrued $57,894K, billings in excess $54,550K, other noncurrent liab $423K, WC sums to -$37,901K. SBC=$5,532K. Reconciliation (232,501+1,481+287+37,103-1,684+5,532-1,126-1,789-37,901=234,404) matches CFO exactly. Capex=$45,159K (continued investment in owned manufacturing/warehouse capacity); revenue grew $507,131K; growth capex=$4,044K; maintenance capex=$41,115K. OE=234,404-(-37,901)-5,532-41,115=$225,658K. Diluted shares=20,414,932. OE/sh=$11.05.
2023
$6.09
▼
Source: FY2025 10-K (accession 0001048268-25-000174), FY2023 column. CFO=$153,902K. WC items (AR $2,917K, inventories -$1,142K, costs in excess of billings $3,456K, prepaid/other -$7,322K, other noncurrent assets $2,067K, AP/accrued -$10,047K, billings in excess $19,051K, other noncurrent liab $162K) sum to $9,142K. SBC=$4,372K. Reconciliation (119,787-120+268+29,407-14,139+4,372+5,185+9,142=153,902) matches CFO exactly. Capex=$17,667K; revenue grew $210,419K; growth capex (0.797% mean ratio)=$1,678K; maintenance capex=$15,989K. OE=153,902-9,142-4,372-15,989=$124,399K. Diluted shares=20,413,032. OE/sh=$6.09.
2022
$2.14
▼
Source: FY2022 10-K (accession 0001048268-22-000099). CFO=$16,262K - a low-conversion year: 41% revenue growth consumed heavy working capital (AR +$87,160K use of cash, inventories +$27,760K use of cash) as the Infrastructure Solutions/Communications segments scaled up. WC items (AR -$87,160K, inventories -$27,760K, costs in excess of billings -$8,688K, prepaid/other -$18,609K, other noncurrent assets -$3,006K, AP/accrued $67,128K, billings in excess $22,450K, other noncurrent liab -$762K) sum to -$56,407K. SBC=$3,775K. Reconciliation (40,186+3,141+199+25,468-69+3,775-31-56,407=16,262) matches CFO exactly. Capex=$29,255K (company began investing to expand manufacturing capacity); revenue grew $630,315K; growth capex=$5,026K; maintenance capex=$24,229K. OE=16,262-(-56,407)-3,775-24,229=$44,665K. Diluted shares=20,894,625. OE/sh=$2.14.
2021
$4.70
▼
Source: FY2022 10-K (accession 0001048268-22-000099), FY2021 column. CFO=$37,924K. WC items (AR -$55,371K, inventories -$30,517K, costs in excess of billings -$13,451K, prepaid/other -$9,226K, other noncurrent assets $703K, AP/accrued $30,623K, billings in excess $6,746K, other noncurrent liab $1,214K) sum to -$69,279K. SBC=$3,522K. Reconciliation (68,676+1,216+198+21,914-47+3,522+11,724-69,279=37,924) matches CFO exactly. Capex=$7,401K; revenue grew $345,637K; growth capex=$2,756K; maintenance capex=$4,645K. OE=37,924-(-69,279)-3,522-4,645=$99,036K. Diluted shares=21,086,432. OE/sh=$4.70.
2020
$3.00
▼
Source: FY2022 10-K (accession 0001048268-22-000099), FY2020 column. CFO=$76,741K, which includes a $6,976K non-cash goodwill impairment (add-back is automatic via the CFO-based approach). WC items (AR -$25,389K, inventories -$2,822K, costs in excess of billings $435K, prepaid/other -$9,355K, other noncurrent assets $510K, AP/accrued $20,122K, billings in excess $13,967K, other noncurrent liab $8,774K) sum to $6,242K. SBC=$3,323K. Reconciliation (40,554+1,864+152+12,508+3,323+6,976+5,122+6,242=76,741) matches CFO exactly. Capex=$4,745K; revenue grew $113,860K; growth capex=$908K; maintenance capex=$3,837K. OE=76,741-6,242-3,323-3,837=$63,339K. Diluted shares=21,092,410. OE/sh=$3.00.
2019
$2.11
▼
Source: FY2019 10-K (accession 0001048268-19-000007). CFO=$38,724K. WC items (AR -$35,254K, inventories -$684K, costs in excess of billings $1,586K, prepaid/other -$7,171K, other noncurrent assets -$444K, AP/accrued $22,472K, billings in excess $6,683K, other noncurrent liab -$459K) sum to -$13,271K. SBC=$2,357K. Reconciliation (33,478+552+318+9,557+52+2,357+5,681-13,271=38,724) matches CFO exactly. Capex=$6,300K; revenue grew $200,168K; growth capex=$1,596K; maintenance capex=$4,704K. OE=38,724-(-13,271)-2,357-4,704=$44,934K. Diluted shares=21,315,245. OE/sh=$2.11.
2018
$1.41
▼
Source: FY2019 10-K (accession 0001048268-19-000007), FY2018 column. CFO=$12,224K. Net loss of $13,803K driven mainly by a one-time non-cash $38,151K deferred tax charge from TCJA remeasurement of deferred tax assets - cash-based, so no OE adjustment needed. WC items (AR -$7,574K, inventories -$3,970K, costs in excess of billings -$17,840K, prepaid/other -$2,250K, other noncurrent assets $274K, AP/accrued $6,584K, billings in excess $3,570K, other noncurrent liab -$336K) sum to -$21,542K. SBC=-$136K (a small net credit/reversal that year). Reconciliation (-13,803+421+288+8,860-15-136+38,151-21,542=12,224) matches CFO exactly. Capex=$4,563K; revenue grew $66,084K; growth capex=$527K; maintenance capex=$4,036K. OE=12,224-(-21,542)-(-136)-4,036=$29,866K. Diluted shares=21,196,388. OE/sh=$1.41.
2017
$1.25
▼
Source: FY2019 10-K (accession 0001048268-19-000007), FY2017 column. CFO=$22,349K. WC items (AR -$7,621K, inventories -$1,856K, costs in excess of billings $2,571K, prepaid/other -$6,798K, other noncurrent assets -$510K, AP/accrued -$2,829K, billings in excess $5,898K, other noncurrent liab $1,139K) sum to -$10,006K. SBC=$1,707K. Reconciliation (13,594+296+294+9,634-69+1,707+6,899-10,006=22,349) matches CFO exactly. Capex=$4,589K; revenue grew $114,751K; growth capex=$915K; maintenance capex=$3,674K. OE=22,349-(-10,006)-1,707-3,674=$26,974K. Diluted shares=21,533,254. OE/sh=$1.25.
2016
$1.27
▼
Source: FY2016 10-K (accession 0001193125-16-789187). CFO=$24,968K. Net income of $120,878K included a one-time $98,402K non-cash deferred-tax benefit from releasing a valuation allowance on NOLs (disclosed in the filing) - this does not affect CFO or owner earnings, which are cash-based, so no adjustment was needed. WC items (AR -$22,439K, inventories $3,897K, costs in excess of billings -$3,236K, prepaid/other -$1,716K, other noncurrent assets -$1,500K, AP/accrued $19,676K, billings in excess -$936K, other noncurrent liab -$16K) sum to -$6,270K. SBC=$1,583K. Reconciliation (120,878+360+345+5,664+810+1,583-98,402-6,270=24,968) matches CFO exactly. Capex=$3,417K; revenue grew $122,136K; growth capex (0.797% ratio)=$974K; maintenance capex=$2,443K. OE=24,968-(-6,270)-1,583-2,443=$27,212K. Diluted shares=21,492,339. OE/sh=$1.27.
2015
$0.81
▼
Source: FY2016 10-K (accession 0001193125-16-789187), FY2015 column. CFO=$11,506K. WC items (AR -$15,115K, inventories $2,526K, costs in excess of billings -$3,727K, prepaid/other -$1,902K, other noncurrent assets $120K, AP/accrued $6,654K, billings in excess $3,313K, other noncurrent liab -$586K) sum to -$8,717K. SBC=$524K. Reconciliation (NI $16,538K + bad debt $269K + def financing amort $316K + D&A $2,509K + loss on sale $67K + SBC $524K + WC -$8,717K = $11,506K) matches CFO exactly. Capex=$2,779K; revenue grew $61,462K vs FY2014; using a 0.797% capex/revenue ratio (mean of FY2014-2025 capex/revenue), growth capex=$490K, maintenance capex=$2,289K. OE = 11,506 - (-8,717) - 524 - 2,289 = $17,410K. Diluted shares=21,526,188. OE/sh=$0.81.
Owner's earnings per share by fiscal year, most recent first. Tap a row to see how that figure was calculated, including the source filing.