Pay vs Performance Disclosure - USD ($) | 12 Months Ended |
Dec. 31, 2022 | Dec. 31, 2021 |
Pay vs Performance Disclosure [Table] | | |
Pay vs Performance [Table Text Block] | Year (1) Summary compensation table total for PEO Ryan Oviatt (2) Compensation actually paid to PEO Ryan Oviatt (3) Summary compensation table total for PEO Cameron Tidball (2) Compensation actually paid to PEO Cameron Tidball (3) Average summary compensation total for non-PEO named executive officers (2) Average compensation actually paid to non-PEO named executive officers (3) Value of initial fixed $100 investment based on: Total shareholder return (4) Net income 2021 $571,252 $495,811 $571,171 $498,364 $314,783 $364,496 $118.40 $(1,051,543) 2022 $889,212 $732,823 $889,212 $733,703 $274,682 $243,120 $114.60 $3,947,760 Supplemental Information Year Value of initial fixed $100 investment based on: Peer group total shareholder return (5) Total revenue 2021 $98.90 $26,356,176 2022 $95.70 $45,936,643 | |
Named Executive Officers, Footnote [Text Block] | Messrs. Oviatt and Tidball served as the Company’s Co-Chief Executive Officers for the entirety of 2021 and 2022. Our non-PEO NEOs included (a) for 2021, Messrs, Fisher, Hatch and Jay Fugal and (b) for 2022, Mr. Fisher.Amounts reported in this column represent the total compensation reported in the Summary Compensation Table for the applicable year. | |
Peer Group Issuers, Footnote [Text Block] | Pursuant to rules of the SEC, the comparison assumes $100 was invested on December 31, 2020. Historic stock price performance is not necessarily indicative of future stock price performance. a.TOMI Environmental Solutions, Inc. (TOMZ), MIND Technology, Inc. (MIND), ENGlobal Corporation (ENG), Fuel Tech, Inc.(FTEK), Questor Technology, Inc. (QST), Advanced Emissions Solutions, Inc. (ADES), Geospace Technologies Corporation (GEOS), Enservco Corp (ENSV), Dawson Geophysical Company (DWSN), Natural Gas Services Group, Inc. (NGS), Northern Technologies International Corp. (NTIC), Taylor Devices, Inc. (TAYD), Superior Drilling Products, Inc. (SDPI), and Air Industries Group (AIRI). | |
Adjustment To PEO Compensation, Footnote [Text Block] | To calculate “Compensation Actually Paid” under SEC disclosure rules, adjustments were made to the amounts reported in the Summary Compensation Table for the applicable year. Reconciliations of the adjustments for Messrs. Oviatt, Tidball, Fisher, Hatch and Fugal are set forth in the tables below. Based on the required methodology for calculating “Compensation Actually Paid” under SEC disclosure rules, “Compensation Actually Paid” fluctuates most significantly based on changes in the Company’s stock price during the vesting period of the award. Accordingly, the values shown as “Compensation Actually Paid” reflect the increase or decrease in the value of such equity awards based on our stock price performance and, for the years prior to vesting, do not reflect compensation realized or earned by the NEO. Accordingly, the “Compensation Actually Paid” reflected below includes values for equity awards that may not be earned due to failure to satisfy the vesting conditions or may be earned at levels that differ from the amounts reported below based on varying degrees of performance level achievements and based on the stock price as of the vesting date. The assumptions used to calculate the fair value for purposes of determining the “Compensation Actually Paid” are consistent with the methodology used for calculating the grant date fair value for financial reporting purposes. PEO - Ryan Oviatt PEO - Cameron Tidball NEOs Average 2022 2021 2022 2021 2022 2021 Summary Compensation Table - Total Compensation $889,212 $571,252 $889,212 $571,171 $274,682 $314,783 - Grant Date Fair Value of Stock Awards Granted in Fiscal Year $(372,933) $(234,500) $(372,933) $(234,500) $(79,536) $46,366 + Fair Value at Fiscal Year-End of Outstanding and Unvested Stock Awards Granted in Fiscal Year $135,581 $120,453 $135,581 $120,453 $25,336 $9,417 +/- Change in Fair Value of Outstanding and Unvested Stock Awards Granted in Prior Fiscal Years $(3,821) $(6,536) $(3,821) $(4,876) $(2,374) $(695) + Fair Value at Vesting of Stock Awards Granted in Fiscal Year That Vested During Fiscal Year $88,765 $47,090 $88,765 $47,090 $26,027 $1,883 +/- Change in Fair Value as of Vesting Date of Stock Awards Granted in Prior Fiscal Years For Which Applicable Vesting Conditions Were Satisfied During Fiscal Year $(3,981) $(1,948) $(3,101) $(974) $(1,015) $(157) - Fair Value as of Prior Fiscal Year-End of Stock Awards Granted in Prior Fiscal Years That Failed to Meet Applicable Vesting Conditions During Fiscal Year $— $— $— $— $— $(7,102) =Compensation Actually Paid $732,823 $495,811 $733,703 $498,364 $243,120 $364,496 | |
Non-PEO NEO Average Total Compensation Amount | $ 274,682 | $ 314,783 |
Non-PEO NEO Average Compensation Actually Paid Amount | $ 243,120 | 364,496 |
Compensation Actually Paid vs. Total Shareholder Return [Text Block] | | |
Compensation Actually Paid vs. Net Income [Text Block] | | |
Compensation Actually Paid vs. Company Selected Measure [Text Block] | | |
Total Shareholder Return Vs Peer Group [Text Block] | | |
Total Shareholder Return Amount | $ 114.60 | 118.40 |
Peer Group Total Shareholder Return Amount | 95.7 | 98.9 |
Net Income (Loss) | $ 3,947,760 | $ (1,051,543) |
Company Selected Measure Amount | 45,936,643 | 26,356,176 |
Additional 402(v) Disclosure [Text Block] | We believe the “Compensation Actually Paid” in each of the years reported above and over the multi-year cumulative period are reflective of the Compensation Committee’s emphasis on “pay-for-performance” as the “Compensation Actually Paid” fluctuated year-over-year, primarily due to the result of our stock performance and our varying levels of achievement against pre-established performance goals under our annual incentive program including TSR, relative TSR, Net Income, Total Revenue and EBITDA. | |
Measure [Axis]: 1 | | |
Pay vs Performance Disclosure [Table] | | |
Measure Name | TSR | |
Measure [Axis]: 3 | | |
Pay vs Performance Disclosure [Table] | | |
Measure Name | Net Income | |
Measure [Axis]: 4 | | |
Pay vs Performance Disclosure [Table] | | |
Measure Name | Total Revenue and EBITDA | |
Oviatt [Member] | | |
Pay vs Performance Disclosure [Table] | | |
PEO Total Compensation Amount | $ 889,212 | $ 571,252 |
PEO Actually Paid Compensation Amount | $ 732,823 | 495,811 |
PEO Name | Oviatt | |
Tidball [Member] | | |
Pay vs Performance Disclosure [Table] | | |
PEO Total Compensation Amount | $ 889,212 | 571,171 |
PEO Actually Paid Compensation Amount | $ 733,703 | 498,364 |
PEO Name | Tidball | |
PEO [Member] | Oviatt [Member] | Equity Awards Granted During the Year, Grant Date Fair Value [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | $ (372,933) | (234,500) |
PEO [Member] | Oviatt [Member] | Equity Awards Granted During the Year, Unvested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 135,581 | 120,453 |
PEO [Member] | Oviatt [Member] | Equity Awards Granted in Prior Years, Unvested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (3,821) | (6,536) |
PEO [Member] | Oviatt [Member] | Equity Awards Granted During the Year, Vested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 88,765 | 47,090 |
PEO [Member] | Oviatt [Member] | Equity Awards Granted During The Year, Vested, Fair Value [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (3,981) | (1,948) |
PEO [Member] | Oviatt [Member] | Equity Awards that Failed to Meet Vesting Conditions [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 0 | 0 |
PEO [Member] | Tidball [Member] | Equity Awards Granted During the Year, Grant Date Fair Value [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (372,933) | (234,500) |
PEO [Member] | Tidball [Member] | Equity Awards Granted During the Year, Unvested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 135,581 | 120,453 |
PEO [Member] | Tidball [Member] | Equity Awards Granted in Prior Years, Unvested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (3,821) | (4,876) |
PEO [Member] | Tidball [Member] | Equity Awards Granted During the Year, Vested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 88,765 | 47,090 |
PEO [Member] | Tidball [Member] | Equity Awards Granted During The Year, Vested, Fair Value [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (3,101) | (974) |
PEO [Member] | Tidball [Member] | Equity Awards that Failed to Meet Vesting Conditions [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 0 | 0 |
Non-PEO NEO [Member] | Equity Awards Granted During the Year, Grant Date Fair Value [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (79,536) | 46,366 |
Non-PEO NEO [Member] | Equity Awards Granted During the Year, Unvested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 25,336 | 9,417 |
Non-PEO NEO [Member] | Equity Awards Granted in Prior Years, Unvested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (2,374) | (695) |
Non-PEO NEO [Member] | Equity Awards Granted During the Year, Vested [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | 26,027 | 1,883 |
Non-PEO NEO [Member] | Equity Awards Granted During The Year, Vested, Fair Value [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | (1,015) | (157) |
Non-PEO NEO [Member] | Equity Awards that Failed to Meet Vesting Conditions [Member] | | |
Pay vs Performance Disclosure [Table] | | |
Adjustment to Compensation Amount | $ 0 | $ (7,102) |