2021 Form 10-K Financial Statement
#000165495422004286 Filed on March 31, 2022
Income Statement
Concept | 2021 | 2020 Q4 | 2020 |
---|---|---|---|
Revenue | $50.64M | $11.07M | $43.86M |
YoY Change | 15.46% | -11.01% | -6.06% |
Cost Of Revenue | $36.22M | $7.850M | $32.82M |
YoY Change | 10.37% | -16.84% | -10.62% |
Gross Profit | $14.42M | $3.220M | $11.04M |
YoY Change | 30.59% | 7.33% | 10.75% |
Gross Profit Margin | 28.47% | 29.09% | 25.17% |
Selling, General & Admin | $8.252M | $2.050M | $7.283M |
YoY Change | 13.3% | 0.99% | -1.85% |
% of Gross Profit | 57.23% | 63.66% | 65.96% |
Research & Development | |||
YoY Change | |||
% of Gross Profit | |||
Depreciation & Amortization | $2.671M | $620.0K | $2.412M |
YoY Change | 10.74% | 31.91% | 34.75% |
% of Gross Profit | 18.52% | 19.25% | 21.84% |
Operating Expenses | $8.252M | $2.050M | $7.283M |
YoY Change | 13.3% | 0.99% | -1.98% |
Operating Profit | $6.168M | $1.170M | $3.759M |
YoY Change | 64.09% | 20.62% | 47.99% |
Interest Expense | $190.0K | -$40.00K | $217.0K |
YoY Change | -12.44% | 0.0% | -255.0% |
% of Operating Profit | 3.08% | -3.42% | 5.77% |
Other Income/Expense, Net | $2.926M | $40.00K | $33.00K |
YoY Change | 8766.67% | -300.0% | -34.0% |
Pretax Income | $9.094M | $1.250M | $3.792M |
YoY Change | 139.82% | 34.41% | 51.68% |
Income Tax | $1.524M | $540.0K | $1.127M |
% Of Pretax Income | 16.76% | 43.2% | 29.72% |
Net Earnings | $7.570M | $710.0K | $2.665M |
YoY Change | 184.05% | -4.05% | 36.67% |
Net Earnings / Revenue | 14.95% | 6.41% | 6.08% |
Basic Earnings Per Share | $1.45 | $0.51 | |
Diluted Earnings Per Share | $1.45 | $136.5K | $0.51 |
COMMON SHARES | |||
Basic Shares Outstanding | 5.205M shares | 5.185M shares | |
Diluted Shares Outstanding | 5.210M shares | 5.187M shares |
Balance Sheet
Concept | 2021 | 2020 Q4 | 2020 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $13.49M | $9.990M | $9.990M |
YoY Change | 35.06% | 293.31% | 293.31% |
Cash & Equivalents | $13.49M | $8.764M | $8.760M |
Short-Term Investments | $0.00 | $1.230M | $1.230M |
Other Short-Term Assets | $551.0K | $620.0K | $620.0K |
YoY Change | -11.13% | -20.51% | -20.51% |
Inventory | $2.845M | $2.190M | $2.190M |
Prepaid Expenses | |||
Receivables | $10.45M | $9.798M | $10.54M |
Other Receivables | $411.0K | $0.00 | $0.00 |
Total Short-Term Assets | $27.75M | $23.34M | $23.34M |
YoY Change | 18.9% | 22.65% | 22.65% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $25.32M | $18.60M | $22.84M |
YoY Change | 10.84% | -18.34% | 0.26% |
Goodwill | |||
YoY Change | |||
Intangibles | |||
YoY Change | |||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $258.0K | $319.0K | $320.0K |
YoY Change | -19.38% | 2.9% | 3.23% |
Total Long-Term Assets | $25.57M | $23.16M | $23.16M |
YoY Change | 10.42% | 0.29% | 0.3% |
TOTAL ASSETS | |||
Total Short-Term Assets | $27.75M | $23.34M | $23.34M |
Total Long-Term Assets | $25.57M | $23.16M | $23.16M |
Total Assets | $53.33M | $46.50M | $46.50M |
YoY Change | 14.68% | 10.4% | 10.4% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $2.071M | $1.866M | $1.870M |
YoY Change | 10.75% | -41.32% | -41.19% |
Accrued Expenses | $1.782M | $875.0K | $2.280M |
YoY Change | -21.84% | -31.64% | 78.13% |
Deferred Revenue | |||
YoY Change | |||
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | $468.0K | $740.0K | $740.0K |
YoY Change | -36.76% | -20.43% | -20.43% |
Total Short-Term Liabilities | $13.91M | $8.900M | $8.900M |
YoY Change | 56.28% | -7.29% | -7.29% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $3.724M | $6.890M | $6.890M |
YoY Change | -45.95% | 68.46% | 68.46% |
Other Long-Term Liabilities | $1.987M | $4.600M | $4.600M |
YoY Change | -56.8% | -19.58% | -19.58% |
Total Long-Term Liabilities | $5.711M | $11.49M | $11.49M |
YoY Change | -50.3% | 17.13% | 17.13% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $13.91M | $8.900M | $8.900M |
Total Long-Term Liabilities | $5.711M | $11.49M | $11.49M |
Total Liabilities | $21.58M | $22.85M | $22.85M |
YoY Change | -5.58% | 7.33% | 7.33% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $17.29M | ||
YoY Change | |||
Common Stock | $52.00K | ||
YoY Change | |||
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $102.0K | ||
YoY Change | |||
Treasury Stock Shares | |||
Shareholders Equity | $31.75M | $23.65M | $23.65M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $53.33M | $46.50M | $46.50M |
YoY Change | 14.68% | 10.4% | 10.4% |
Cashflow Statement
Concept | 2021 | 2020 Q4 | 2020 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $7.570M | $710.0K | $2.665M |
YoY Change | 184.05% | -4.05% | 36.67% |
Depreciation, Depletion And Amortization | $2.671M | $620.0K | $2.412M |
YoY Change | 10.74% | 31.91% | 34.75% |
Cash From Operating Activities | $9.126M | $1.510M | $7.487M |
YoY Change | 21.89% | 60.64% | 90.51% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $5.367M | -$130.0K | $2.627M |
YoY Change | 104.3% | -88.39% | -158.25% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | $1.713M | $90.00K | $210.0K |
YoY Change | 715.71% | 800.0% | -191.3% |
Cash From Investing Activities | -$3.654M | -$40.00K | -$2.421M |
YoY Change | 50.93% | -96.4% | -48.92% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -$744.0K | -160.0K | $2.334M |
YoY Change | -131.88% | -130.77% | 914.78% |
NET CHANGE | |||
Cash From Operating Activities | $9.126M | 1.510M | $7.487M |
Cash From Investing Activities | -$3.654M | -40.00K | -$2.421M |
Cash From Financing Activities | -$744.0K | -160.0K | $2.334M |
Net Change In Cash | $4.728M | 1.310M | $7.400M |
YoY Change | -36.11% | 274.29% | -1375.86% |
FREE CASH FLOW | |||
Cash From Operating Activities | $9.126M | $1.510M | $7.487M |
Capital Expenditures | $5.367M | -$130.0K | $2.627M |
Free Cash Flow | $3.759M | $1.640M | $4.860M |
YoY Change | -22.65% | -20.39% | -42.42% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2021 | dei |
Auditor Location
AuditorLocation
|
Richmond, Virginia | |
CY2021Q4 | us-gaap |
Cash
Cash
|
13492000 | USD |
CY2020Q4 | us-gaap |
Cash
Cash
|
8764000 | USD |
CY2021Q4 | us-gaap |
Available For Sale Securities Current
AvailableForSaleSecuritiesCurrent
|
0 | USD |
CY2020Q4 | us-gaap |
Available For Sale Securities Current
AvailableForSaleSecuritiesCurrent
|
1228000 | USD |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
437000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
397000 | USD |
CY2021Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
10013000 | USD |
CY2020Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
9798000 | USD |
CY2021Q4 | smid |
Trade Unbilled
TradeUnbilled
|
439000 | USD |
CY2020Q4 | smid |
Trade Unbilled
TradeUnbilled
|
742000 | USD |
CY2021Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
1143000 | USD |
CY2020Q4 | us-gaap |
Inventory Raw Materials
InventoryRawMaterials
|
643000 | USD |
CY2021Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
1702000 | USD |
CY2020Q4 | us-gaap |
Inventory Finished Goods Net Of Reserves
InventoryFinishedGoodsNetOfReserves
|
1551000 | USD |
CY2021Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
551000 | USD |
CY2020Q4 | us-gaap |
Prepaid Expense And Other Assets Current
PrepaidExpenseAndOtherAssetsCurrent
|
615000 | USD |
CY2021Q4 | us-gaap |
Prepaid Taxes
PrepaidTaxes
|
411000 | USD |
CY2020Q4 | us-gaap |
Prepaid Taxes
PrepaidTaxes
|
0 | USD |
CY2021Q4 | us-gaap |
Assets Current
AssetsCurrent
|
27751000 | USD |
CY2020Q4 | us-gaap |
Assets Current
AssetsCurrent
|
23341000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
21926000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
18602000 | USD |
CY2021Q4 | us-gaap |
Deferred Costs
DeferredCosts
|
3390000 | USD |
CY2020Q4 | us-gaap |
Deferred Costs
DeferredCosts
|
4237000 | USD |
CY2021Q4 | us-gaap |
Other Assets
OtherAssets
|
258000 | USD |
CY2020Q4 | us-gaap |
Other Assets
OtherAssets
|
319000 | USD |
CY2021Q4 | us-gaap |
Assets
Assets
|
53325000 | USD |
CY2020Q4 | us-gaap |
Assets
Assets
|
46499000 | USD |
CY2021Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
2071000 | USD |
CY2020Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
1866000 | USD |
CY2021Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
657000 | USD |
CY2020Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
875000 | USD |
CY2021Q4 | us-gaap |
Deferred Revenue
DeferredRevenue
|
2454000 | USD |
CY2020Q4 | us-gaap |
Deferred Revenue
DeferredRevenue
|
1774000 | USD |
CY2021Q4 | smid |
Accrued Compensation Current
AccruedCompensationCurrent
|
1036000 | USD |
CY2020Q4 | smid |
Accrued Compensation Current
AccruedCompensationCurrent
|
1318000 | USD |
CY2021Q4 | us-gaap |
Accrued Income Taxes
AccruedIncomeTaxes
|
2033000 | USD |
CY2020Q4 | us-gaap |
Accrued Income Taxes
AccruedIncomeTaxes
|
470000 | USD |
CY2021Q4 | us-gaap |
Sale Leaseback Transaction Deferred Gain Net
SaleLeasebackTransactionDeferredGainNet
|
3776000 | USD |
CY2020Q4 | us-gaap |
Sale Leaseback Transaction Deferred Gain Net
SaleLeasebackTransactionDeferredGainNet
|
1203000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
89000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
85000 | USD |
CY2021Q4 | us-gaap |
Notes Payable Current
NotesPayableCurrent
|
468000 | USD |
CY2020Q4 | us-gaap |
Notes Payable Current
NotesPayableCurrent
|
740000 | USD |
CY2021Q4 | us-gaap |
Customer Advances And Deposits
CustomerAdvancesAndDeposits
|
1325000 | USD |
CY2020Q4 | us-gaap |
Customer Advances And Deposits
CustomerAdvancesAndDeposits
|
569000 | USD |
CY2021Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
13909000 | USD |
CY2020Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
8900000 | USD |
CY2021Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
1865000 | USD |
CY2020Q4 | us-gaap |
Deferred Revenue Current
DeferredRevenueCurrent
|
600000 | USD |
CY2021Q4 | smid |
Deferred Buy Bacl Lease Obligation
DeferredBuyBaclLeaseObligation
|
0 | USD |
CY2020Q4 | smid |
Deferred Buy Bacl Lease Obligation
DeferredBuyBaclLeaseObligation
|
3790000 | USD |
CY2021Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
122000 | USD |
CY2020Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
211000 | USD |
CY2021Q4 | us-gaap |
Long Term Notes Payable
LongTermNotesPayable
|
3724000 | USD |
CY2020Q4 | us-gaap |
Long Term Notes Payable
LongTermNotesPayable
|
4196000 | USD |
CY2021Q4 | us-gaap |
Long Term Loans Payable
LongTermLoansPayable
|
0 | USD |
CY2020Q4 | us-gaap |
Long Term Loans Payable
LongTermLoansPayable
|
2692000 | USD |
CY2021Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
1955000 | USD |
CY2020Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
2461000 | USD |
CY2021Q4 | us-gaap |
Liabilities
Liabilities
|
21575000 | USD |
CY2020Q4 | us-gaap |
Liabilities
Liabilities
|
22850000 | USD |
CY2021Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
0 | USD |
CY2020Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
0 | USD |
CY2021Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
1000000 | shares |
CY2021Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2020Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
0 | USD |
CY2021Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.01 | |
CY2021Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
8000000 | shares |
CY2021Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
5353095 | shares |
CY2020Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
5279411 | shares |
CY2021Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
5229658 | shares |
CY2020Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
5202158 | shares |
CY2021Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
53000 | USD |
CY2020Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
52000 | USD |
CY2021Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
6935000 | USD |
CY2020Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
6405000 | USD |
CY2021Q4 | us-gaap |
Treasury Stock Shares
TreasuryStockShares
|
40920 | shares |
CY2021Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
102000 | USD |
CY2020Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
102000 | USD |
CY2021Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
24864000 | USD |
CY2020Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
17294000 | USD |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
31750000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
23649000 | USD |
CY2021Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
53325000 | USD |
CY2020Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
46499000 | USD |
CY2021 | us-gaap |
Production Costs
ProductionCosts
|
28500000 | USD |
CY2020 | us-gaap |
Production Costs
ProductionCosts
|
26776000 | USD |
CY2021 | us-gaap |
Landing Fees And Other Rentals
LandingFeesAndOtherRentals
|
9925000 | USD |
CY2020 | us-gaap |
Landing Fees And Other Rentals
LandingFeesAndOtherRentals
|
6879000 | USD |
CY2021 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
2216000 | USD |
CY2020 | us-gaap |
Royalty Income Nonoperating
RoyaltyIncomeNonoperating
|
1688000 | USD |
CY2021 | smid |
Shipping And Installation Revenue
ShippingAndInstallationRevenue
|
10001000 | USD |
CY2020 | smid |
Shipping And Installation Revenue
ShippingAndInstallationRevenue
|
8519000 | USD |
CY2021 | us-gaap |
Revenues
Revenues
|
50642000 | USD |
CY2020 | us-gaap |
Revenues
Revenues
|
43862000 | USD |
CY2021 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
36222000 | USD |
CY2020 | us-gaap |
Cost Of Goods And Services Sold
CostOfGoodsAndServicesSold
|
32820000 | USD |
CY2021 | us-gaap |
Gross Profit
GrossProfit
|
14420000 | USD |
CY2020 | us-gaap |
Gross Profit
GrossProfit
|
11042000 | USD |
CY2021 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
5416000 | USD |
CY2020 | us-gaap |
General And Administrative Expense
GeneralAndAdministrativeExpense
|
4989000 | USD |
CY2021 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
2836000 | USD |
CY2020 | us-gaap |
Selling And Marketing Expense
SellingAndMarketingExpense
|
2294000 | USD |
CY2021 | us-gaap |
Operating Expenses
OperatingExpenses
|
8252000 | USD |
CY2020 | us-gaap |
Operating Expenses
OperatingExpenses
|
7283000 | USD |
CY2021 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
6168000 | USD |
CY2020 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
3759000 | USD |
CY2021 | us-gaap |
Interest Expense
InterestExpense
|
190000 | USD |
CY2020 | us-gaap |
Interest Expense
InterestExpense
|
217000 | USD |
CY2021 | us-gaap |
Interest Income Domestic Deposits
InterestIncomeDomesticDeposits
|
35000 | USD |
CY2020 | us-gaap |
Interest Income Domestic Deposits
InterestIncomeDomesticDeposits
|
35000 | USD |
CY2021 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
317000 | USD |
CY2020 | us-gaap |
Gain Loss On Sale Of Property Plant Equipment
GainLossOnSaleOfPropertyPlantEquipment
|
133000 | USD |
CY2021 | us-gaap |
Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
|
2692000 | USD |
CY2020 | us-gaap |
Gains Losses On Extinguishment Of Debt
GainsLossesOnExtinguishmentOfDebt
|
0 | USD |
CY2021 | us-gaap |
Other Income
OtherIncome
|
72000 | USD |
CY2020 | us-gaap |
Other Income
OtherIncome
|
82000 | USD |
CY2021 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
2926000 | USD |
CY2020 | us-gaap |
Other Nonoperating Income Expense
OtherNonoperatingIncomeExpense
|
33000 | USD |
CY2021 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
9094000 | USD |
CY2020 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Minority Interest And Income Loss From Equity Method Investments
IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments
|
3792000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1524000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1127000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7570000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2665000 | USD |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.51 | |
CY2019Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
20821000 | USD |
CY2020 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Gross
StockIssuedDuringPeriodValueRestrictedStockAwardGross
|
163000 | USD |
CY2020 | us-gaap |
Net Income Loss
NetIncomeLoss
|
2665000 | USD |
CY2020Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
23649000 | USD |
CY2021 | us-gaap |
Stock Issued During Period Value Restricted Stock Award Gross
StockIssuedDuringPeriodValueRestrictedStockAwardGross
|
531000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7570000 | USD |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
31750000 | USD |
CY2021 | us-gaap |
Net Income Loss
NetIncomeLoss
|
7570000 | USD |
CY2021 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
2671000 | USD |
CY2020 | us-gaap |
Depreciation Depletion And Amortization
DepreciationDepletionAndAmortization
|
2412000 | USD |
CY2021 | smid |
Gain Loss On Forgiveness Of Ppp Loan
GainLossOnForgivenessOfPppLoan
|
-2692000 | USD |
CY2020 | smid |
Gain Loss On Forgiveness Of Ppp Loan
GainLossOnForgivenessOfPppLoan
|
0 | USD |
CY2021 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-311000 | USD |
CY2020 | us-gaap |
Gain Loss On Disposition Of Assets
GainLossOnDispositionOfAssets
|
-133000 | USD |
CY2021 | smid |
Gain Loss On Sale Of Investment Securities
GainLossOnSaleOfInvestmentSecurities
|
-6000 | USD |
CY2020 | smid |
Gain Loss On Sale Of Investment Securities
GainLossOnSaleOfInvestmentSecurities
|
0 | USD |
CY2021 | us-gaap |
Unrealized Gain Loss On Investments
UnrealizedGainLossOnInvestments
|
0 | USD |
CY2020 | us-gaap |
Unrealized Gain Loss On Investments
UnrealizedGainLossOnInvestments
|
23000 | USD |
CY2021 | us-gaap |
Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
|
40000 | USD |
CY2020 | us-gaap |
Allowance For Doubtful Accounts Receivable Period Increase Decrease
AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease
|
-64000 | USD |
CY2021 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
531000 | USD |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
163000 | USD |
CY2021 | us-gaap |
Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
|
-506000 | USD |
CY2020 | us-gaap |
Increase Decrease In Deferred Income Taxes
IncreaseDecreaseInDeferredIncomeTaxes
|
575000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-255000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
2861000 | USD |
CY2021 | us-gaap |
Increase Decrease In Unbilled Receivables
IncreaseDecreaseInUnbilledReceivables
|
302000 | USD |
CY2020 | us-gaap |
Increase Decrease In Unbilled Receivables
IncreaseDecreaseInUnbilledReceivables
|
-432000 | USD |
CY2021 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-651000 | USD |
CY2020 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
48000 | USD |
CY2021 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
92000 | USD |
CY2020 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
128000 | USD |
CY2021 | us-gaap |
Increase Decrease In Prepaid Taxes
IncreaseDecreaseInPrepaidTaxes
|
-411000 | USD |
CY2020 | us-gaap |
Increase Decrease In Prepaid Taxes
IncreaseDecreaseInPrepaidTaxes
|
432000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accounts Payable Trade
IncreaseDecreaseInAccountsPayableTrade
|
205000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accounts Payable Trade
IncreaseDecreaseInAccountsPayableTrade
|
-1314000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
-219000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accrued Liabilities
IncreaseDecreaseInAccruedLiabilities
|
750000 | USD |
CY2021 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
1945000 | USD |
CY2020 | us-gaap |
Increase Decrease In Deferred Revenue
IncreaseDecreaseInDeferredRevenue
|
242000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accrued Salaries
IncreaseDecreaseInAccruedSalaries
|
-282000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accrued Salaries
IncreaseDecreaseInAccruedSalaries
|
243000 | USD |
CY2021 | us-gaap |
Increase Decrease In Accrued Income Taxes Payable
IncreaseDecreaseInAccruedIncomeTaxesPayable
|
1563000 | USD |
CY2020 | us-gaap |
Increase Decrease In Accrued Income Taxes Payable
IncreaseDecreaseInAccruedIncomeTaxesPayable
|
470000 | USD |
CY2021 | us-gaap |
Increase Decrease In Deferred Leasing Fees
IncreaseDecreaseInDeferredLeasingFees
|
-1216000 | USD |
CY2020 | us-gaap |
Increase Decrease In Deferred Leasing Fees
IncreaseDecreaseInDeferredLeasingFees
|
-1156000 | USD |
CY2021 | us-gaap |
Increase Decrease In Customer Advances And Deposits
IncreaseDecreaseInCustomerAdvancesAndDeposits
|
756000 | USD |
CY2020 | us-gaap |
Increase Decrease In Customer Advances And Deposits
IncreaseDecreaseInCustomerAdvancesAndDeposits
|
-508000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
9126000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
7487000 | USD |
CY2021 | us-gaap |
Payments To Acquire Available For Sale Securities
PaymentsToAcquireAvailableForSaleSecurities
|
23000 | USD |
CY2020 | us-gaap |
Payments To Acquire Available For Sale Securities
PaymentsToAcquireAvailableForSaleSecurities
|
29000 | USD |
CY2021 | smid |
Sale Of Investment Securities Available For Sale
SaleOfInvestmentSecuritiesAvailableForSale
|
1247 | USD |
CY2020 | smid |
Sale Of Investment Securities Available For Sale
SaleOfInvestmentSecuritiesAvailableForSale
|
0 | USD |
CY2021 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
5367000 | USD |
CY2020 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
2627000 | USD |
CY2021 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
489000 | USD |
CY2020 | us-gaap |
Proceeds From Sale Of Property Plant And Equipment
ProceedsFromSaleOfPropertyPlantAndEquipment
|
235000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-3654000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-2421000 | USD |
CY2021 | us-gaap |
Proceeds From Notes Payable
ProceedsFromNotesPayable
|
49000 | USD |
CY2020 | us-gaap |
Proceeds From Notes Payable
ProceedsFromNotesPayable
|
5485000 | USD |
CY2021 | us-gaap |
Repayments Of Debt And Capital Lease Obligations
RepaymentsOfDebtAndCapitalLeaseObligations
|
793000 | USD |
CY2020 | us-gaap |
Repayments Of Debt And Capital Lease Obligations
RepaymentsOfDebtAndCapitalLeaseObligations
|
2869000 | USD |
CY2021 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
0 | USD |
CY2020 | us-gaap |
Payments Of Dividends Common Stock
PaymentsOfDividendsCommonStock
|
282000 | USD |
CY2021 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-744000 | USD |
CY2020 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
2334000 | USD |
CY2021 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
4728000 | USD |
CY2020 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
7400000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
8764000 | USD |
CY2019Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
1364000 | USD |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
13492000 | USD |
CY2020Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
|
8764000 | USD |
CY2021 | us-gaap |
Interest Paid Net
InterestPaidNet
|
190000 | USD |
CY2020 | us-gaap |
Interest Paid Net
InterestPaidNet
|
217000 | USD |
CY2021 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
917000 | USD |
CY2020 | us-gaap |
Income Taxes Paid
IncomeTaxesPaid
|
22000 | USD |
CY2021 | smid |
Non Cash Transaction Ppp Loan Forgiveness
NonCashTransactionPppLoanForgiveness
|
2692000 | USD |
CY2020 | smid |
Non Cash Transaction Ppp Loan Forgiveness
NonCashTransactionPppLoanForgiveness
|
0 | USD |
CY2021 | us-gaap |
Nature Of Operations
NatureOfOperations
|
<p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Smith-Midland Corporation and its wholly-owned subsidiaries (the “Company”) develop, manufacture, license, sell and install precast concrete products and systems for the construction, transportation and utilities industries in the Mid-Atlantic, Northeastern, Midwestern and Southeastern regions of the United States.</p> | |
CY2021Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
74000 | USD |
CY2020Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
72000 | USD |
CY2021 | smid |
Revenuerecognitionpolicytextblock
Revenuerecognitionpolicytextblock
|
<p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px"><em>Product Sales - Over Time</em></p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Under Topic 606, the Company recognizes revenue to depict the transfer of goods or services to customers in an amount that reflects the consideration the Company expects to be entitled to in exchange for goods or services provided. Revenue associated with contracts with customers for customized product is recognized over time as the Company’s performance creates or enhances customer controlled assets or creates or enhances an asset with no alternative use, which the Company has an enforceable right to receive compensation as defined under the contract for performance completed. To determine the amount of revenue to recognize over time, the Company recognizes revenue over the contract terms based on the output method. The Company applied the “as invoiced” practical expedient as the amount of consideration the Company has the right to invoice corresponds directly with the value of the Company’s performance to date.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">As the output method is driven by units produced, the Company recognizes revenues based on the value transferred to the customer relative to the remaining value to be transferred. The Company also matches the costs associated with the units produced. If a contract is projected to result in a loss, the entire contract loss is recognized in the period when the loss was first determined and the amount of the loss updated in subsequent reporting periods. Revenue recognition also includes an amount related to a contract asset or contract liability. If the recognized revenue is greater than the amount billed to the customer, a contract asset is recorded in accounts receivable trade - unbilled. Conversely, if the amount billed to the customer is greater than the recognized revenue, a contract liability is recorded in customer deposits. Changes in the job performance, job conditions and final contract settlements are factors that influence management’s assessment of total contract value and therefore, profit and revenue recognition.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">A portion of the work the Company performs requires financial assurances in the form of performance and payment bonds or letters of credit at the time of execution of the contract. Some contracts include retention provisions of up to 10% which are generally withheld from each progress payment as retainage until the contract work has been completed and approved.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">For certain product sales that do not meet the over time criteria, under Topic 606 the Company recognizes revenue when the product has been shipped to the destination in accordance with the terms outlined in the contract where a present obligation to pay exists and the customers have gained control of the product.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The timing of when we bill our customers is generally dependent upon advance billing terms, milestone billings based on the completion of certain phases of the work, or when services are provided or products are shipped. Projects with performance obligations recognized over time that have costs and estimated earnings recognized to date in excess of cumulative billings, are reported on our Condensed Consolidated Balance Sheets as “Accounts receivable trade - unbilled” (contract assets). Projects with performance obligations recognized over time that have cumulative billings in excess of costs and estimate earnings recognized to date, are reported on our Condensed Consolidated Balance Sheets as “Customer deposits” (contract liabilities).</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Any uncollected billed amounts for our performance obligations recognized over time, including contract retentions, are recorded within accounts receivable trade - billed. At December 31, 2021 and December 31, 2020, accounts receivable included contract retentions (in thousands) of approximately $1,139 and $1,709, respectively, which are considered contract assets.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Our billed and unbilled revenue may be exposed to potential credit risk if our customers should encounter financial difficulties, and we maintain reserves for specifically-identified potential uncollectible receivables. At December 31, 2021 and December 31, 2020, our allowances for doubtful accounts (in thousands) were $437 and $397, respectively.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The Company entered into a buy-back agreement with one specific customer. Under this agreement, the Company guaranteed to buy-back product at a predetermined price at the end of the long-term project, subject to the condition of the product. Although the Company received payment in full when the product was produced, we are required to account for these transactions as operating leases. The amount of sale proceeds equal to the buy-back obligation, included in “Deferred buy-back lease obligation” in the liabilities section of the consolidated balance sheet, is deferred until the buy-back is exercised. The remaining sale proceeds are deferred in the same account and recognized on a straight-line basis over the usage period, such usage period commencing on delivery to the job-site and ending at the time the buy-back is exercised. The Company capitalizes the cost of the product on the consolidated balance sheet shown in “Deferred buy-back lease asset, net”, and depreciates the value, less residual value, to cost of leasing revenue in “Cost of goods sold” over the estimated useful life of the asset.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px">In the case the customer requests the Company to cancel the buy-back option and retains ownership of the product and the Company accepts, the guarantee buy-back liability and any deferred revenue balances related to the product will be settled to revenue, and the net book value of the asset will be expensed to cost of leasing revenue. Otherwise, the Company will purchase the product back in the amount equal to the buy-back guarantee, settle any remaining deferred balances, in excess of the buy-back payment, to leasing revenue, and reclassify the net book value of the purchased product to "Inventories" or "Property and equipment, net" depending on the intended use. The revenue is being recognized in accordance with Topic 842, <em>Leases</em>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Leasing fees are paid by customers at the beginning of the lease agreement and are recorded as deferred revenue. The deferred revenue is then recognized each month as lease income for the duration of the lease, in accordance with Topic 842, <em>Leases</em>.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The Company licenses certain products to other precast companies to produce the Company’s products to engineering specifications under the licensing agreements. The agreements are typically for five year terms and require royalty payments from 4% to 6% of total sales of licensed products, which are paid on a monthly basis. The revenues from licensing agreements are recognized in the month earned, in accordance with Topic 606-10-55-65.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Shipping and installation revenues are recognized as a distinct performance obligation in the period the shipping and installation services are provided to the customer, in accordance with Topic 606.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">In the following table, revenue is disaggregated by primary sources of revenue (in thousands):</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt"><strong>Revenue by Type (Disaggregated Revenue)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2020</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>% Change</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Product Sales:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Soundwall Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,025</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,499</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">526</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Architectural Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,932</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,668</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,264</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SlenderWall Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,795</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">948</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">847</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">89</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Miscellaneous Wall Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,352</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,371</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,019 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(30 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Barrier Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,686</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,507</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(821 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(15 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Easi-Set and Easi-Span Building Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,036</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,935</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">101</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Utility Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,468</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,310</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,158</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">88</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Miscellaneous Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,206</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(332 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(22 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total Product Sales</strong> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>28,500</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>26,776</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>1,724</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>6</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>%</strong></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Barrier Rentals </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,925</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,879</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,046</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">44</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Royalty Income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,216</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,688</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">528</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Shipping and Installation Revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">10,001</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">8,519</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total Service Revenue</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>22,142</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>17,086</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>5,056</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>30</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>%</strong></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total Revenue</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>$</strong></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>50,642</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>$</strong></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>43,862</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>$</strong></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>6,780</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>15</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>%</strong></td></tr></tbody></table><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Smith-Midland products are typically sold pursuant to an implicit warranty as to merchantability only. Warranty claims are reviewed and resolved on a case by case method. Although the Company does incur costs for warranty claims, historically such amounts are minimal.</p><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The revenue items: soundwall sales, architectural sales, SlenderWall sales, miscellaneous wall sales, miscellaneous sales, barrier rentals, and royalty income are recognized as revenue over time. The revenue items: barrier sales, Easi-Set and Easi-Span building sales, utility sales, and shipping and installation revenue are recognized as revenue at a point in time.</p> | |
CY2021Q4 | us-gaap |
Other Receivables
OtherReceivables
|
1139000 | USD |
CY2020Q4 | us-gaap |
Other Receivables
OtherReceivables
|
1709000 | USD |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
437000 | USD |
CY2020Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
397000 | USD |
CY2021 | smid |
Disaggregationofrevenuetabletextblock
Disaggregationofrevenuetabletextblock
|
<table cellpadding="0" style="border-spacing:0;text-align:left;font:10pt times new roman;width:100%"><tbody><tr style="height:15px"><td style="vertical-align:bottom;"><p style="font-size:10pt;font-family:times new roman;margin:0px 0px 0px 9pt"><strong>Revenue by Type (Disaggregated Revenue)</strong></p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2021</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>2020</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>Change</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="hdcell" colspan="2" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:center;"><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:center;"><strong>% Change</strong></p></td><td style="PADDING-BOTTOM: 1px;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td></tr><tr style="height:15px"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Product Sales:</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" colspan="2" style="width:9%;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Soundwall Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">8,025</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7,499</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">$</td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">526</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">7</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Architectural Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,932</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,668</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,264</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">34</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">SlenderWall Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,795</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">948</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">847</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">89</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Miscellaneous Wall Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,352</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,371</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(1,019 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(30 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Barrier Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">4,686</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">5,507</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(821 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">(15 </td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">)%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Easi-Set and Easi-Span Building Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,036</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,935</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">101</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Utility Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,468</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,310</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,158</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">88</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Miscellaneous Sales</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,206</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,538</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(332 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">(22 </td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">)%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total Product Sales</strong> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>28,500</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>26,776</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>1,724</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>6</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>%</strong></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Barrier Rentals </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">9,925</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">6,879</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">3,046</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">44</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Royalty Income</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">2,216</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">1,688</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">528</td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="width:9%;vertical-align:bottom;text-align:right;">31</td><td style="width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px">Shipping and Installation Revenue</p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">10,001</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">8,519</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">1,482</td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;">17</td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;">%</td></tr><tr style="height:15px;background-color:#cceeff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total Service Revenue</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>22,142</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>17,086</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>5,056</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 1px solid;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 1px solid;width:9%;vertical-align:bottom;text-align:right;"><strong>30</strong></td><td style="PADDING-BOTTOM: 1px;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>%</strong></td></tr><tr style="height:15px;background-color:#ffffff"><td style="vertical-align:top;"><p style="font-size:10pt;font-family:times new roman;margin:0px"><strong>Total Revenue</strong></p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>$</strong></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>50,642</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>$</strong></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>43,862</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>$</strong></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>6,780</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td style="BORDER-BOTTOM: 3px double;width:1%;white-space: nowrap;"><p style="font-size:10pt;font-family:times new roman;margin:0px"> </p></td><td class="ffcell" style="BORDER-BOTTOM: 3px double;width:9%;vertical-align:bottom;text-align:right;"><strong>15</strong></td><td style="PADDING-BOTTOM: 3px;width:1%;vertical-align:bottom;white-space: nowrap;"><strong>%</strong></td></tr></tbody></table> | |
CY2021 | us-gaap |
Revenues
Revenues
|
50642000 | USD |
CY2020 | us-gaap |
Revenues
Revenues
|
43862000 | USD |
CY2021 | smid |
Increase Decrease In Revenues
IncreaseDecreaseInRevenues
|
6780000 | USD |
CY2021 | smid |
Percent Of Change In Revenue
PercentOfChangeInRevenue
|
0.15 | pure |
CY2021 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Major Customers</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">Two customers accounted for 23% of revenues during fiscal year 2021, and one customer accounted for 25% of revenues during fiscal year 2020. One customer had balances that comprised 17% and 27% of trade accounts receivable at December 31, 2021 and 2020, respectively.</p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"> </p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;"><em>Major Suppliers</em></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: times new roman; MARGIN: 0px; text-align:justify;">No vendor accounted for more than 10% of purchases during fiscal year 2021 and 2020.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">On January 30, 2020, the World Health Organization (“WHO”) announced a global health emergency because of a new strain of coronavirus originating in Wuhan, China (the “COVID-19 outbreak”) and on March 11, 2020, the WHO classified the COVID-19 outbreak as a pandemic. Management is actively monitoring the global situation on its financial condition, liquidity, operations, suppliers, industry, and workforce. Given the daily evolution of the COVID-19 outbreak and the global responses to curb its spread, the Company is not able to estimate the effects of the COVID-19 outbreak on its results of operations, financial condition, or liquidity for fiscal year 2022.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The Company sells products to highway contractors operating under government funded highway programs and other customers and extends credit based on an evaluation of the customer’s financial condition, generally without requiring collateral. Exposure to losses on receivables is principally dependent on each customer’s financial condition. The Company monitors its exposure to credit losses and maintains allowances for anticipated losses. Management reviews accounts receivable on a regular basis to determine the probability of collection. In performing this evaluation, the Company analyzes the payment history and its significant past due accounts, subsequent cash collections on these accounts, comparative accounts receivable aging statistics, and other customer-specific considerations existing and known as of the time of the analysis. Based on this information, along with other related factors, the Company develops an estimate of the uncollectible amounts included in accounts receivable. Management believes the allowance for doubtful accounts at December 31, 2021, is adequate. However, actual write-offs may exceed the recorded allowance.</p><p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Due to inclement weather, the Company may experience reduced revenue from December through February and may realize a substantial part of its revenue during the other months of the year.</p> | |
CY2021 | us-gaap |
Property Management Fee Percent Fee
PropertyManagementFeePercentFee
|
0.10 | pure |
CY2021 | smid |
Salesandusetaxespolicytextblock
Salesandusetaxespolicytextblock
|
<p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The Company excludes sales taxes as part of revenue, and includes use taxes on construction materials reported in cost of goods sold.</p> | |
CY2021 | smid |
Segmentreportingpolicypolicytextblock
Segmentreportingpolicypolicytextblock
|
<p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">Operating segments are defined as components of an enterprise for which separate financial information is available and evaluated regularly by the chief operating decision maker, or decision making group, in deciding how to allocate resources and assess performance. The Company currently operates in one operating and reportable business segment for financial reporting purposes.</p> | |
CY2021 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-size:10pt;font-family:times new roman;margin:0px;text-indent:0px">The preparation of financial statements in conformity with U.S. generally accepted accounting (U.S. GAAP) principles requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities at the date of the consolidated financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ from those estimates.</p> | |
CY2021 | us-gaap |
Advertising Expense
AdvertisingExpense
|
459000 | USD |
CY2020 | us-gaap |
Advertising Expense
AdvertisingExpense
|
383000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
37156000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
32541000 | USD |
CY2021Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
15230000 | USD |
CY2020Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
13939000 | USD |
CY2021Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
21926000 | USD |
CY2020Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
18602000 | USD |
CY2021 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
2671000 | USD |
CY2020Q1 | us-gaap |
Debt Instrument Periodic Payment Principal
DebtInstrumentPeriodicPaymentPrincipal
|
27000 | USD |
CY2020Q1 | us-gaap |
Debt Instrument Interest Rate Stated Percentage
DebtInstrumentInterestRateStatedPercentage
|
0.0399 | pure |
CY2021Q4 | us-gaap |
Line Of Credit
LineOfCredit
|
4000000 | USD |
CY2021Q4 | us-gaap |
Debt Instrument Interest Rate Stated Percentage
DebtInstrumentInterestRateStatedPercentage
|
0.0350 | pure |
CY2021Q4 | us-gaap |
Notes Payable
NotesPayable
|
4192000 | USD |
CY2020Q4 | us-gaap |
Notes Payable
NotesPayable
|
4936000 | USD |
CY2021Q4 | us-gaap |
Notes Payable Current
NotesPayableCurrent
|
468000 | USD |
CY2020Q4 | us-gaap |
Notes Payable Current
NotesPayableCurrent
|
740000 | USD |
CY2021Q4 | us-gaap |
Long Term Notes Payable
LongTermNotesPayable
|
3724000 | USD |
CY2020Q4 | us-gaap |
Long Term Notes Payable
LongTermNotesPayable
|
4196000 | USD |
CY2020Q2 | smid |
Paycheck Protection Program Loan
PaycheckProtectionProgramLoan
|
2692000 | USD |
CY2020Q2 | us-gaap |
Debt Instrument Interest Rate Stated Percentage
DebtInstrumentInterestRateStatedPercentage
|
0.0100 | pure |
CY2021Q3 | smid |
Loan Forgiveness Amount
LoanForgivenessAmount
|
2692000 | USD |
CY2021 | us-gaap |
Debt Instrument Periodic Payment Principal
DebtInstrumentPeriodicPaymentPrincipal
|
21000 | USD |
CY2021 | us-gaap |
Debt Instrument Maturity Date
DebtInstrumentMaturityDate
|
2037-02-10 | |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Next Twelve Months
LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
|
468000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Two
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
|
483000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Three
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
|
496000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Four
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
|
511000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal In Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
|
518000 | USD |
CY2021Q4 | us-gaap |
Long Term Debt Maturities Repayments Of Principal After Year Five
LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive
|
1716000 | USD |
CY2021Q4 | us-gaap |
Notes Payable
NotesPayable
|
4192000 | USD |
CY2021 | us-gaap |
Related Party Transaction Amounts Of Transaction
RelatedPartyTransactionAmountsOfTransaction
|
2000 | USD |
CY2021 | us-gaap |
Payments For Rent
PaymentsForRent
|
22000 | USD |
CY2020 | us-gaap |
Payments For Rent
PaymentsForRent
|
24000 | USD |
CY2021Q4 | us-gaap |
Related Party Transaction Purchases From Related Party
RelatedPartyTransactionPurchasesFromRelatedParty
|
295000 | USD |
CY2021 | us-gaap |
Related Party Transaction Expenses From Transactions With Related Party
RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty
|
99000 | USD |
CY2021 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
1574000 | USD |
CY2020 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
212000 | USD |
CY2021 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-382000 | USD |
CY2020 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
416000 | USD |
CY2021 | us-gaap |
Federal Income Tax Expense Benefit Continuing Operations
FederalIncomeTaxExpenseBenefitContinuingOperations
|
1192000 | USD |
CY2020 | us-gaap |
Federal Income Tax Expense Benefit Continuing Operations
FederalIncomeTaxExpenseBenefitContinuingOperations
|
628000 | USD |
CY2021 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
456000 | USD |
CY2020 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
340000 | USD |
CY2021 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
-124000 | USD |
CY2020 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
159000 | USD |
CY2021 | us-gaap |
State And Local Income Tax Expense Benefit Continuing Operations
StateAndLocalIncomeTaxExpenseBenefitContinuingOperations
|
332000 | USD |
CY2020 | us-gaap |
State And Local Income Tax Expense Benefit Continuing Operations
StateAndLocalIncomeTaxExpenseBenefitContinuingOperations
|
499000 | USD |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1524000 | USD |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1127000 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
1910000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2020 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
796000 | USD |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2021 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
267000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.029 | pure |
CY2020 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
443000 | USD |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.117 | pure |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
|
63000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Prior Year Income Taxes
EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes
|
-0.007 | pure |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Share Based Compensation Excess Tax Benefit Amount
EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitAmount
|
0 | USD |
CY2021 | smid |
Deferred True Ups
DeferredTrueUps
|
17000 | USD |
CY2021 | smid |
Deferreds True Ups
DeferredsTrueUps
|
0.002 | pure |
CY2020 | smid |
Deferred True Ups
DeferredTrueUps
|
10000 | USD |
CY2020 | smid |
Deferreds True Ups
DeferredsTrueUps
|
0.003 | pure |
CY2021 | smid |
Income Tax Reconciliation Provision To Return
IncomeTaxReconciliationProvisionToReturn
|
5000 | USD |
CY2021 | smid |
Effective Income Tax Rate Reconciliation Provision To Return
EffectiveIncomeTaxRateReconciliationProvisionToReturn
|
0.001 | pure |
CY2020 | smid |
Income Tax Reconciliation Provision To Return
IncomeTaxReconciliationProvisionToReturn
|
-33000 | USD |
CY2020 | smid |
Effective Income Tax Rate Reconciliation Provision To Return
EffectiveIncomeTaxRateReconciliationProvisionToReturn
|
-0.009 | pure |
CY2021 | smid |
Income Tax Reconciliation Cares Act Benefit
IncomeTaxReconciliationCaresActBenefit
|
-4000 | USD |
CY2021 | smid |
Effective Income Tax Rate Reconciliation Cares Act Benefit
EffectiveIncomeTaxRateReconciliationCaresActBenefit
|
-0.001 | pure |
CY2020 | smid |
Income Tax Reconciliation Cares Act Benefit
IncomeTaxReconciliationCaresActBenefit
|
-79000 | USD |
CY2020 | smid |
Effective Income Tax Rate Reconciliation Cares Act Benefit
EffectiveIncomeTaxRateReconciliationCaresActBenefit
|
-0.021 | pure |
CY2021 | smid |
Ppp Loan Forgiveness
PppLoanForgiveness
|
-565000 | USD |
CY2021 | smid |
Ppp Loans Forgiveness
PppLoansForgiveness
|
-0.062 | pure |
CY2020 | smid |
Ppp Loan Forgiveness
PppLoanForgiveness
|
0 | USD |
CY2021 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-43000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
-0.004 | pure |
CY2020 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-10000 | USD |
CY2020 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
-0.003 | pure |
CY2021 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1524000 | USD |
CY2021 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.168 | pure |
CY2020 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
1127000 | USD |
CY2020 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.297 | pure |
CY2021Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
51000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards
DeferredTaxAssetsOperatingLossCarryforwards
|
26000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
109000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Allowance For Doubtful Accounts
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
|
100000 | USD |
CY2021Q4 | smid |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Vacation
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedVacation
|
61000 | USD |
CY2020Q4 | smid |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Vacation
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedVacation
|
60000 | USD |
CY2021Q4 | smid |
Deferred Tax Assets Deferred Buyback Asset
DeferredTaxAssetsDeferredBuybackAsset
|
942000 | USD |
CY2020Q4 | smid |
Deferred Tax Assets Deferred Buyback Asset
DeferredTaxAssetsDeferredBuybackAsset
|
1259000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
774000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
314000 | USD |
CY2021Q4 | smid |
Deferred Tax Assets Operating Lease Right Of Use Asset
DeferredTaxAssetsOperatingLeaseRightOfUseAsset
|
53000 | USD |
CY2020Q4 | smid |
Deferred Tax Assets Operating Lease Right Of Use Asset
DeferredTaxAssetsOperatingLeaseRightOfUseAsset
|
75000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
102000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
80000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
2092000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
1914000 | USD |
CY2021Q4 | smid |
Deferred Tax Liabilities Retainage
DeferredTaxLiabilitiesRetainage
|
284000 | USD |
CY2020Q4 | smid |
Deferred Tax Liabilities Retainage
DeferredTaxLiabilitiesRetainage
|
424000 | USD |
CY2021Q4 | smid |
Deferred Tax Liabilities Deferred Buyback Obligation
DeferredTaxLiabilitiesDeferredBuybackObligation
|
846000 | USD |
CY2020Q4 | smid |
Deferred Tax Liabilities Deferred Buyback Obligation
DeferredTaxLiabilitiesDeferredBuybackObligation
|
1069000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
2770000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Property Plant And Equipment
DeferredTaxLiabilitiesPropertyPlantAndEquipment
|
2685000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
72000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
114000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
16000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities Goodwill And Intangible Assets Intangible Assets
DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
|
8000 | USD |
CY2021Q4 | smid |
Deferred Tax Liabilities Unrealized Gain Loss
DeferredTaxLiabilitiesUnrealizedGainLoss
|
-6000 | USD |
CY2020Q4 | smid |
Deferred Tax Liabilities Unrealized Gain Loss
DeferredTaxLiabilitiesUnrealizedGainLoss
|
0 | USD |
CY2021Q4 | smid |
Deferred Tax Liabilities Lease L Iability
DeferredTaxLiabilitiesLeaseLIability
|
53000 | USD |
CY2020Q4 | smid |
Deferred Tax Liabilities Lease L Iability
DeferredTaxLiabilitiesLeaseLIability
|
75000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
4047000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
4375000 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
0 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
0 | USD |
CY2021Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
1955000 | USD |
CY2020Q4 | us-gaap |
Deferred Tax Assets Liabilities Net
DeferredTaxAssetsLiabilitiesNet
|
2461000 | USD |
CY2021Q4 | us-gaap |
Operating Loss Carryforwards
OperatingLossCarryforwards
|
2361000 | USD |
CY2020Q4 | us-gaap |
Operating Loss Carryforwards
OperatingLossCarryforwards
|
2611000 | USD |
CY2021 | us-gaap |
Defined Contribution Plan Employer Matching Contribution Percent Of Match
DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
|
0.50 | pure |
CY2021 | smid |
Defined Contribution Plan Employer Matching Contribution Percent Of Employees Gross Pay
DefinedContributionPlanEmployerMatchingContributionPercentOfEmployeesGrossPay
|
0.04 | pure |
CY2021 | us-gaap |
Defined Benefit Plan Contributions By Employer
DefinedBenefitPlanContributionsByEmployer
|
211000 | USD |
CY2020 | us-gaap |
Defined Benefit Plan Contributions By Employer
DefinedBenefitPlanContributionsByEmployer
|
183000 | USD |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
1027000 | USD |
CY2020Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
326000 | USD |
CY2021 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
531000 | USD |
CY2020 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
163000 | USD |
CY2021Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
|
822000 | USD |
CY2021 | us-gaap |
Net Income Loss Available To Common Stockholders Diluted
NetIncomeLossAvailableToCommonStockholdersDiluted
|
7570000 | USD |
CY2020 | us-gaap |
Net Income Loss Available To Common Stockholders Diluted
NetIncomeLossAvailableToCommonStockholdersDiluted
|
2665000 | USD |
CY2021 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
5205000 | shares |
CY2020 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
5185000 | shares |
CY2021 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
1.45 | |
CY2020 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.51 | |
CY2021 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
7570000 | USD |
CY2020 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
2665000 | USD |
CY2021 | smid |
Weighted Average Number Of Shares Outstanding
WeightedAverageNumberOfSharesOutstanding
|
5205000 | shares |
CY2020 | smid |
Weighted Average Number Of Shares Outstanding
WeightedAverageNumberOfSharesOutstanding
|
5185 | shares |
CY2021 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
27000 | shares |
CY2020 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
2000 | shares |
CY2021 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
5232000 | shares |
CY2020 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
5187000 | shares |
CY2021 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
1.45 | |
CY2020 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.51 |