2024 Q1 Form 10-K Financial Statement
#000143774924010085 Filed on March 29, 2024
Income Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
Revenue | $2.021M | $2.912M | $9.487M |
YoY Change | -12.23% | -1.11% | -14.2% |
Cost Of Revenue | $544.2K | $1.019M | $2.436M |
YoY Change | 29.01% | 4.32% | -40.67% |
Gross Profit | $1.477M | $1.892M | $7.050M |
YoY Change | -21.48% | -3.81% | 1.44% |
Gross Profit Margin | 73.07% | 64.99% | 74.32% |
Selling, General & Admin | $1.489M | $1.167M | $5.166M |
YoY Change | -3.55% | -18.15% | 4.79% |
% of Gross Profit | 100.84% | 61.69% | 73.28% |
Research & Development | $17.43K | $169.8K | $208.3K |
YoY Change | 7.1% | -10.99% | 9.23% |
% of Gross Profit | 1.18% | 8.97% | 2.95% |
Depreciation & Amortization | $3.110K | $1.070K | $1.070K |
YoY Change | -86.42% | ||
% of Gross Profit | 0.21% | 0.06% | 0.02% |
Operating Expenses | $1.506M | $1.337M | $5.375M |
YoY Change | -3.44% | -17.31% | 4.95% |
Operating Profit | -$12.43K | $555.2K | $1.676M |
YoY Change | -103.69% | 58.5% | -17.04% |
Interest Expense | $86.08K | $78.53K | $330.0K |
YoY Change | -2.71% | 24.67% | 126.2% |
% of Operating Profit | 14.14% | 19.69% | |
Other Income/Expense, Net | $1.010K | $0.00 | $4.280K |
YoY Change | -59.66% | ||
Pretax Income | $74.66K | $633.8K | $2.010M |
YoY Change | -82.44% | 53.34% | -7.65% |
Income Tax | $63.00K | $100.0K | $397.0K |
% Of Pretax Income | 84.38% | 15.78% | 19.75% |
Net Earnings | $11.66K | $533.8K | $1.613M |
YoY Change | -96.53% | 69.55% | -0.7% |
Net Earnings / Revenue | 0.58% | 18.33% | 17.0% |
Basic Earnings Per Share | $0.00 | $0.35 | |
Diluted Earnings Per Share | $0.00 | $0.11 | $0.35 |
COMMON SHARES | |||
Basic Shares Outstanding | 4.635M | 4.635M | 4.553M |
Diluted Shares Outstanding | 4.601M | 4.619M |
Balance Sheet
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $6.085M | $5.057M | $5.057M |
YoY Change | 15.19% | 4.35% | 4.35% |
Cash & Equivalents | $4.497M | $3.490M | |
Short-Term Investments | $1.588M | $1.567M | $1.567M |
Other Short-Term Assets | $547.5K | $364.9K | $364.9K |
YoY Change | 20.61% | -12.55% | -12.55% |
Inventory | $2.837M | $2.904M | $2.904M |
Prepaid Expenses | $547.5K | $364.9K | |
Receivables | $1.350M | $2.109M | $2.109M |
Other Receivables | $0.00 | $0.00 | $0.00 |
Total Short-Term Assets | $10.82M | $10.44M | $10.44M |
YoY Change | 17.23% | 18.36% | 18.36% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $54.65K | $281.5K | $281.5K |
YoY Change | -61.86% | 78.41% | |
Goodwill | |||
YoY Change | |||
Intangibles | |||
YoY Change | |||
Long-Term Investments | $97.32K | $113.6K | $113.6K |
YoY Change | -39.59% | -35.6% | -35.6% |
Other Assets | |||
YoY Change | |||
Total Long-Term Assets | $1.065M | $1.303M | $1.303M |
YoY Change | -23.91% | -29.86% | -29.86% |
TOTAL ASSETS | |||
Total Short-Term Assets | $10.82M | $10.44M | $10.44M |
Total Long-Term Assets | $1.065M | $1.303M | $1.303M |
Total Assets | $11.88M | $11.74M | $11.74M |
YoY Change | 11.81% | 9.97% | 9.97% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $361.7K | $305.7K | $305.7K |
YoY Change | -15.79% | -26.85% | -26.85% |
Accrued Expenses | $116.8K | $114.3K | $114.3K |
YoY Change | 8.94% | 71.58% | 71.58% |
Deferred Revenue | $849.6K | $785.8K | |
YoY Change | -21.16% | -47.11% | |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $1.728M | $1.371M | $1.371M |
YoY Change | 6.52% | -30.41% | -30.41% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $96.67K | $126.8K | $126.8K |
YoY Change | 19.08% | 30.04% | 30.04% |
Total Long-Term Liabilities | $96.67K | $126.8K | $126.8K |
YoY Change | 19.08% | 30.04% | 30.04% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $1.728M | $1.371M | $1.371M |
Total Long-Term Liabilities | $96.67K | $126.8K | $126.8K |
Total Liabilities | $1.994M | $1.839M | $1.839M |
YoY Change | 0.11% | -23.34% | -23.34% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | $7.737M | $7.772M | |
YoY Change | 16.63% | 23.41% | |
Common Stock | $2.376M | $2.351M | |
YoY Change | 6.59% | 6.31% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $223.2K | ||
YoY Change | -4.45% | ||
Treasury Stock Shares | |||
Shareholders Equity | $9.890M | $9.900M | $9.900M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $11.88M | $11.74M | $11.74M |
YoY Change | 11.81% | 9.97% | 9.97% |
Cashflow Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $11.66K | $533.8K | $1.613M |
YoY Change | -96.53% | 69.55% | -0.7% |
Depreciation, Depletion And Amortization | $3.110K | $1.070K | $1.070K |
YoY Change | -86.42% | ||
Cash From Operating Activities | $1.026M | $654.9K | $394.9K |
YoY Change | 137.41% | 214.75% | -718.27% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $18.57K | $26.11K | $56.11K |
YoY Change | |||
Acquisitions | |||
YoY Change | |||
Other Investing Activities | -$1.500M | -$1.500M | |
YoY Change | |||
Cash From Investing Activities | -$18.57K | -$1.526M | -$1.556M |
YoY Change | |||
FINANCING ACTIVITIES | |||
Cash Dividend Paid | $139.0K | ||
YoY Change | 46.13% | ||
Common Stock Issuance & Retirement, Net | $3.010K | ||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -45.98K | -136.0K | |
YoY Change | -51.66% | 42.97% | |
NET CHANGE | |||
Cash From Operating Activities | $1.026M | 654.9K | 394.9K |
Cash From Investing Activities | -$18.57K | -1.526M | -1.556M |
Cash From Financing Activities | -45.98K | -136.0K | |
Net Change In Cash | $1.007M | -917.1K | -1.297M |
YoY Change | 133.11% | -911.85% | 715.87% |
FREE CASH FLOW | |||
Cash From Operating Activities | $1.026M | $654.9K | $394.9K |
Capital Expenditures | $18.57K | $26.11K | $56.11K |
Free Cash Flow | $1.007M | $628.8K | $338.8K |
YoY Change | 133.11% | -630.43% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2023 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2023 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--12-31 | |
CY2023 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2023 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2023 | |
CY2023Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2022Q4 | us-gaap |
Common Stock Par Or Stated Value Per Share
CommonStockParOrStatedValuePerShare
|
0.001 | |
CY2023Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
25000000 | |
CY2022Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
25000000 | |
CY2023Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
4756734 | |
CY2022Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
4756734 | |
CY2023Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
4634865 | |
CY2022Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
4621988 | |
CY2023Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
121869 | |
CY2022Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
134746 | |
CY2023 | tbtc |
Number Of Certificates Of Deposit
NumberOfCertificatesOfDeposit
|
1 | pure |
CY2023 | tbtc |
Certificates Of Deposit Term
CertificatesOfDepositTerm
|
P7M | |
CY2023Q4 | us-gaap |
Capitalized Contract Cost Amortization Period
CapitalizedContractCostAmortizationPeriod
|
P5Y | |
CY2023Q4 | us-gaap |
Capitalized Contract Cost Amortization Period
CapitalizedContractCostAmortizationPeriod
|
P5Y | |
CY2022Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.05 | pure |
CY2023 | ecd |
Rule10b51 Arr Adopted Flag
Rule10b51ArrAdoptedFlag
|
false | |
CY2023 | ecd |
Rule10b51 Arr Trmntd Flag
Rule10b51ArrTrmntdFlag
|
false | |
CY2023 | ecd |
Non Rule10b51 Arr Adopted Flag
NonRule10b51ArrAdoptedFlag
|
false | |
CY2023 | ecd |
Non Rule10b51 Arr Trmntd Flag
NonRule10b51ArrTrmntdFlag
|
false | |
CY2023 | dei |
Document Type
DocumentType
|
10-K | |
CY2023 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2023 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2023-12-31 | |
CY2023 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2023 | dei |
Entity File Number
EntityFileNumber
|
001-32987 | |
CY2023 | dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
NV | |
CY2023 | dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
88-0336568 | |
CY2023 | dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
6101 Baker Road, Suite 206 | |
CY2023 | dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Minnetonka | |
CY2023 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
MN | |
CY2023 | dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
55345 | |
CY2023 | dei |
City Area Code
CityAreaCode
|
952 | |
CY2023 | dei |
Local Phone Number
LocalPhoneNumber
|
548-8877 | |
CY2023 | dei |
Security12g Title
Security12gTitle
|
Common Stock, par value $0.001 | |
CY2023 | dei |
Entity Well Known Seasoned Issuer
EntityWellKnownSeasonedIssuer
|
No | |
CY2023 | dei |
Entity Voluntary Filers
EntityVoluntaryFilers
|
No | |
CY2023 | dei |
Entity Current Reporting Status
EntityCurrentReportingStatus
|
Yes | |
CY2023 | dei |
Entity Interactive Data Current
EntityInteractiveDataCurrent
|
Yes | |
CY2023 | dei |
Entity Filer Category
EntityFilerCategory
|
Non-accelerated Filer | |
CY2023 | dei |
Entity Small Business
EntitySmallBusiness
|
true | |
CY2023 | dei |
Entity Emerging Growth Company
EntityEmergingGrowthCompany
|
false | |
CY2023 | dei |
Icfr Auditor Attestation Flag
IcfrAuditorAttestationFlag
|
false | |
CY2023 | dei |
Document Fin Stmt Error Correction Flag
DocumentFinStmtErrorCorrectionFlag
|
false | |
CY2023 | dei |
Entity Shell Company
EntityShellCompany
|
false | |
CY2023Q2 | dei |
Entity Public Float
EntityPublicFloat
|
14700000 | usd |
CY2024Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
4634865 | |
CY2023 | dei |
Auditor Name
AuditorName
|
Boulay PLLP | |
CY2023 | dei |
Auditor Location
AuditorLocation
|
Minneapolis, Minnesota | |
CY2023 | dei |
Auditor Firm
AuditorFirmId
|
542 | |
CY2023Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
3489771 | usd |
CY2022Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
4786923 | usd |
CY2023Q4 | us-gaap |
Short Term Investments
ShortTermInvestments
|
1502805 | usd |
CY2022Q4 | us-gaap |
Short Term Investments
ShortTermInvestments
|
0 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
2109193 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
1868488 | usd |
CY2023Q4 | us-gaap |
Inventory Net
InventoryNet
|
2904158 | usd |
CY2022Q4 | us-gaap |
Inventory Net
InventoryNet
|
1560175 | usd |
CY2023Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
364886 | usd |
CY2022Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
417254 | usd |
CY2023Q4 | tbtc |
Salestype Lease Net Investment In Lease After Allowance For Credit Loss Current
SalestypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossCurrent
|
64310 | usd |
CY2022Q4 | tbtc |
Salestype Lease Net Investment In Lease After Allowance For Credit Loss Current
SalestypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossCurrent
|
59173 | usd |
CY2023Q4 | us-gaap |
Income Taxes Receivable
IncomeTaxesReceivable
|
0 | usd |
CY2022Q4 | us-gaap |
Income Taxes Receivable
IncomeTaxesReceivable
|
124198 | usd |
CY2023Q4 | us-gaap |
Assets Current
AssetsCurrent
|
10435123 | usd |
CY2022Q4 | us-gaap |
Assets Current
AssetsCurrent
|
8816211 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Noncurrent
AccountsReceivableNetNoncurrent
|
891351 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Noncurrent
AccountsReceivableNetNoncurrent
|
1523793 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
38357 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
0 | usd |
CY2023Q4 | tbtc |
Salestype Lease Net Investment In Lease After Allowance For Credit Loss Noncurrent
SalestypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossNoncurrent
|
113621 | usd |
CY2022Q4 | tbtc |
Salestype Lease Net Investment In Lease After Allowance For Credit Loss Noncurrent
SalestypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossNoncurrent
|
176444 | usd |
CY2023Q4 | us-gaap |
Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
|
16691 | usd |
CY2022Q4 | us-gaap |
Capitalized Computer Software Net
CapitalizedComputerSoftwareNet
|
0 | usd |
CY2023Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
243171 | usd |
CY2022Q4 | us-gaap |
Operating Lease Right Of Use Asset
OperatingLeaseRightOfUseAsset
|
157802 | usd |
CY2023Q4 | us-gaap |
Assets Noncurrent
AssetsNoncurrent
|
1303191 | usd |
CY2022Q4 | us-gaap |
Assets Noncurrent
AssetsNoncurrent
|
1858039 | usd |
CY2023Q4 | us-gaap |
Assets
Assets
|
11738314 | usd |
CY2022Q4 | us-gaap |
Assets
Assets
|
10674250 | usd |
CY2023Q4 | us-gaap |
Accounts Payable And Accrued Liabilities Current
AccountsPayableAndAccruedLiabilitiesCurrent
|
305664 | usd |
CY2022Q4 | us-gaap |
Accounts Payable And Accrued Liabilities Current
AccountsPayableAndAccruedLiabilitiesCurrent
|
417853 | usd |
CY2023Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
0 | usd |
CY2022Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
10665 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
785805 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
1485622 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
114294 | usd |
CY2022Q4 | us-gaap |
Operating Lease Liability Current
OperatingLeaseLiabilityCurrent
|
55942 | usd |
CY2023Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
165226 | usd |
CY2022Q4 | us-gaap |
Accrued Income Taxes Current
AccruedIncomeTaxesCurrent
|
0 | usd |
CY2023Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
1370989 | usd |
CY2022Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
1970082 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
126760 | usd |
CY2022Q4 | us-gaap |
Operating Lease Liability Noncurrent
OperatingLeaseLiabilityNoncurrent
|
97476 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
341000 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Liabilities Net
DeferredIncomeTaxLiabilitiesNet
|
331000 | usd |
CY2023Q4 | us-gaap |
Liabilities
Liabilities
|
1838749 | usd |
CY2022Q4 | us-gaap |
Liabilities
Liabilities
|
2398558 | usd |
CY2023Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
4635 | usd |
CY2022Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
4622 | usd |
CY2023Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
2346483 | usd |
CY2022Q4 | us-gaap |
Additional Paid In Capital Common Stock
AdditionalPaidInCapitalCommonStock
|
2207030 | usd |
CY2023Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
7771655 | usd |
CY2022Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
6297639 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity Before Treasury Stock
StockholdersEquityBeforeTreasuryStock
|
10122773 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity Before Treasury Stock
StockholdersEquityBeforeTreasuryStock
|
8509291 | usd |
CY2023Q4 | us-gaap |
Treasury Stock Common Value
TreasuryStockCommonValue
|
223208 | usd |
CY2022Q4 | us-gaap |
Treasury Stock Common Value
TreasuryStockCommonValue
|
233599 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
9899565 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
8275692 | usd |
CY2023Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
11738314 | usd |
CY2022Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
10674250 | usd |
CY2023 | us-gaap |
Revenues
Revenues
|
9486853 | usd |
CY2022 | us-gaap |
Revenues
Revenues
|
11056587 | usd |
CY2023 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
2436449 | usd |
CY2022 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
4106303 | usd |
CY2023 | us-gaap |
Gross Profit
GrossProfit
|
7050404 | usd |
CY2022 | us-gaap |
Gross Profit
GrossProfit
|
6950284 | usd |
CY2023 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
5374687 | usd |
CY2022 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
4930333 | usd |
CY2023 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
1675717 | usd |
CY2022 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
2019951 | usd |
CY2023 | us-gaap |
Other Nonoperating Income
OtherNonoperatingIncome
|
4283 | usd |
CY2022 | us-gaap |
Other Nonoperating Income
OtherNonoperatingIncome
|
10611 | usd |
CY2023 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
330005 | usd |
CY2022 | us-gaap |
Investment Income Interest
InvestmentIncomeInterest
|
145891 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
2010005 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
2176453 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
397000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
552000 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1613005 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1624453 | usd |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.35 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.36 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.35 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.35 | |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
4553080 | |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
4522536 | |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
4619046 | |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
4583115 | |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
6527358 | usd |
CY2022 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
218993 | usd |
CY2022 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
95112 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1624453 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
8275692 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Share Based Compensation
StockIssuedDuringPeriodValueShareBasedCompensation
|
139226 | usd |
CY2023 | us-gaap |
Dividends Common Stock Cash
DividendsCommonStockCash
|
138989 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
3010 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Treasury Stock Reissued
StockIssuedDuringPeriodValueTreasuryStockReissued
|
0 | usd |
CY2023 | tbtc |
Stock Issued During Period From Treasury Value
StockIssuedDuringPeriodFromTreasuryValue
|
7621 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1613005 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
9899565 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1613005 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
1624453 | usd |
CY2023 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
1065 | usd |
CY2022 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
7879 | usd |
CY2023 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
10000 | usd |
CY2022 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
340000 | usd |
CY2023 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
46934 | usd |
CY2022 | us-gaap |
Provision For Doubtful Accounts
ProvisionForDoubtfulAccounts
|
87627 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
0 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Asset Net Current
ContractWithCustomerAssetNetCurrent
|
34800 | usd |
CY2022Q1 | us-gaap |
Accounts Receivable Net
AccountsReceivableNet
|
1306198 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Asset Accumulated Allowance For Credit Loss
ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
|
2392560 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Asset Accumulated Allowance For Credit Loss
ContractWithCustomerAssetAccumulatedAllowanceForCreditLoss
|
2781800 | usd |
CY2023 | us-gaap |
Issuance Of Stock And Warrants For Services Or Claims
IssuanceOfStockAndWarrantsForServicesOrClaims
|
7621 | usd |
CY2022 | us-gaap |
Issuance Of Stock And Warrants For Services Or Claims
IssuanceOfStockAndWarrantsForServicesOrClaims
|
0 | usd |
CY2023 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
139226 | usd |
CY2022 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
218993 | usd |
CY2023 | us-gaap |
Unrealized Gain Loss On Investments
UnrealizedGainLossOnInvestments
|
2805 | usd |
CY2022 | us-gaap |
Unrealized Gain Loss On Investments
UnrealizedGainLossOnInvestments
|
usd | |
CY2023 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-344803 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
2173710 | usd |
CY2023 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
1343983 | usd |
CY2022 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
-22183 | usd |
CY2023 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-52368 | usd |
CY2022 | us-gaap |
Increase Decrease In Prepaid Deferred Expense And Other Assets
IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
|
-382270 | usd |
CY2023 | us-gaap |
Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
|
-57686 | usd |
CY2022 | us-gaap |
Gain Loss On Disposition Of Assets1
GainLossOnDispositionOfAssets1
|
58911 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
-109922 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Payable And Accrued Liabilities
IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
|
153641 | usd |
CY2023 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-10665 | usd |
CY2022 | us-gaap |
Increase Decrease In Employee Related Liabilities
IncreaseDecreaseInEmployeeRelatedLiabilities
|
-15705 | usd |
CY2023 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-699817 | usd |
CY2022 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-90378 | usd |
CY2023 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
-289424 | usd |
CY2022 | us-gaap |
Increase Decrease In Income Taxes Receivable
IncreaseDecreaseInIncomeTaxesReceivable
|
562220 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
394940 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
-63878 | usd |
CY2023 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
39422 | usd |
CY2022 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
-0 | usd |
CY2023 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
1500000 | usd |
CY2022 | us-gaap |
Payments To Acquire Short Term Investments
PaymentsToAcquireShortTermInvestments
|
usd | |
CY2023 | us-gaap |
Payments For Software
PaymentsForSoftware
|
16691 | usd |
CY2022 | us-gaap |
Payments For Software
PaymentsForSoftware
|
-0 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-1556113 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
0 | usd |
CY2023 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
3010 | usd |
CY2022 | us-gaap |
Proceeds From Stock Options Exercised
ProceedsFromStockOptionsExercised
|
0 | usd |
CY2023 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
138989 | usd |
CY2022 | us-gaap |
Payments Of Dividends
PaymentsOfDividends
|
95112 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-135979 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-95112 | usd |
CY2023 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-1297152 | usd |
CY2022 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
-158990 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
4786923 | usd |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
4945913 | usd |
CY2023Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
3489771 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
4786923 | usd |
CY2023 | us-gaap |
Stock Issued1
StockIssued1
|
10391 | usd |
CY2022 | us-gaap |
Stock Issued1
StockIssued1
|
0 | usd |
CY2023 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"><span style="text-decoration: underline; ">Use of Estimates</span></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"> </p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The preparation of financial statements in conformity with U.S. generally accepted accounting principles (GAAP) requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported amounts of revenues and expenses during the reporting period. The Company’s use of estimates and assumptions include: for revenue recognition, determining collectability, the nature and timing of satisfaction of performance obligations, and determining the standalone selling price (SSP) of performance obligations, realizability of accounts receivable, and the valuation of allowance for credit losses, the valuation of deferred tax assets and liabilities and inventory valuation. Actual results could differ from those estimates and the difference could be significant.</p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"> </p> | |
CY2023 | us-gaap |
Concentration Risk Credit Risk
ConcentrationRiskCreditRisk
|
<p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><span style="text-decoration: underline; ">Concentrations of Risk</span></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"> </p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><i>Cash Deposits in Excess of Federally Insured Limits</i></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"> </p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The Company maintains its cash balances at <em style="font: inherit;">two</em> financial institutions. Accounts are insured by the Federal Deposit Insurance Corporation (FDIC) up to <em style="font: inherit;">$250,000.</em> At times throughout the year, the Company’s cash balances exceeded amounts insured by the FDIC. The Company doesn’t believe it is exposed to any significant credit risk on its cash balance<span style="background-color:#ffffff;">s. Cash equivalents represent money market funds or short-term investments with maturities of <em style="font: inherit;">three</em> months or less from the date of purchase.</span></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"> </p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"><i><span style="background-color:#ffffff;">Major Customers</span></i></p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:left;"> </p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">The following table summarizes major customers' information for the years ended <em style="font: inherit;"> December 31, 2023 </em>and <em style="font: inherit;">2022</em>:</p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"> </p> <table border="0" cellpadding="0" cellspacing="0" class="finTable" style="width: 100%; font-size: 10pt; font-family: "Times New Roman", Times, serif; text-indent: 0px;"><tbody><tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="14" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;"><em style="font: inherit;">For the Years ended December 31,</em></em></em></em></b></p> </td><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;"><em style="font: inherit;">2023</em></em></b></p> </td><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="6" style="text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;"><em style="font: inherit;">2022</em></em></b></p> </td><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; padding-bottom: 1px;"> </td></tr> <tr class="finHeading" style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="2" style="border-bottom: 1px solid rgb(0, 0, 0); text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;">% Revenues</em></b></p> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="2" style="border-bottom: 1px solid rgb(0, 0, 0); text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;">% AR</em></b></p> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="2" style="border-bottom: 1px solid rgb(0, 0, 0); text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;">% Revenues</em></b></p> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td colspan="2" style="border-bottom: 1px solid rgb(0, 0, 0); text-align: center; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;"> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"><b><em style="font: inherit;">% AR</em></b></p> </td><td style="border-bottom: 1px solid rgb(0, 0, 0); font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt; width: 52%;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt;">Major</p> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">19.2</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">0.0</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">31.7</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">33.7</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt;">%</td></tr> <tr style="background-color: rgb(255, 255, 255); vertical-align: bottom"><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt;">All Others</p> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">80.8</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">68.3</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 1px solid rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 1px solid rgb(0, 0, 0);">66.3</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 1px;">%</td></tr> <tr style="background-color: rgb(204, 238, 255); vertical-align: bottom"><td style="font-family: "Times New Roman", Times, serif; font-size: 10pt;"> <p style="font-family: "Times New Roman", Times, serif; font-size: 10pt; margin: 0pt;">Total</p> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">%</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt;"> </td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; border-bottom: 3px double rgb(0, 0, 0);"> </td><td style="width: 9%; text-align: right; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; border-bottom: 3px double rgb(0, 0, 0);">100.0</td><td style="width: 1%; font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-left: 0pt; padding-bottom: 3px;">%</td></tr> </tbody></table> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:center;"> </p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;">A major customer is defined as any customer that represents at least <em style="font: inherit;">10%</em> of revenue or outstanding account receivable for a given period.</p> <p style="font-family:'Times New Roman', Times, serif;font-size:10pt;margin:0pt;text-align:justify;"> </p> | |
CY2023 | us-gaap |
Revenues
Revenues
|
9486853 | usd |
CY2022 | us-gaap |
Revenues
Revenues
|
11056587 | usd |
CY2023 | tbtc |
Percent Of Revenues
PercentOfRevenues
|
1 | pure |
CY2022 | tbtc |
Percent Of Revenues
PercentOfRevenues
|
1 | pure |
CY2023 | tbtc |
Certificates Of Deposit Interest Rate
CertificatesOfDepositInterestRate
|
0.0525 | pure |
CY2023Q4 | us-gaap |
Short Term Investments
ShortTermInvestments
|
1502805 | usd |
CY2022Q4 | us-gaap |
Short Term Investments
ShortTermInvestments
|
0 | usd |
CY2023Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
8768 | usd |
CY2022Q4 | us-gaap |
Inventory Valuation Reserves
InventoryValuationReserves
|
2273 | usd |
CY2023Q4 | us-gaap |
Inventory Net
InventoryNet
|
2904158 | usd |
CY2022Q4 | us-gaap |
Inventory Net
InventoryNet
|
1560175 | usd |
CY2023Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
117218 | usd |
CY2022Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
396880 | usd |
CY2023 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
208313 | usd |
CY2022 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
190713 | usd |
CY2023Q4 | us-gaap |
Capitalized Contract Cost Gross
CapitalizedContractCostGross
|
17000 | usd |
CY2022Q4 | us-gaap |
Capitalized Contract Cost Gross
CapitalizedContractCostGross
|
0 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
2177813 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Gross Current
AccountsReceivableGrossCurrent
|
1930488 | usd |
CY2023Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
68620 | usd |
CY2022Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable Current
AllowanceForDoubtfulAccountsReceivableCurrent
|
62000 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
2109193 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
1868488 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Noncurrent
AccountsReceivableNetNoncurrent
|
891351 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Noncurrent
AccountsReceivableNetNoncurrent
|
1523793 | usd |
CY2022Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
62000 | usd |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
61376 | usd |
CY2023 | tbtc |
Accounts Receivable Allowance For Credit Loss Additions
AccountsReceivableAllowanceForCreditLossAdditions
|
46934 | usd |
CY2022 | tbtc |
Accounts Receivable Allowance For Credit Loss Additions
AccountsReceivableAllowanceForCreditLossAdditions
|
87627 | usd |
CY2023 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
40314 | usd |
CY2022 | us-gaap |
Allowance For Doubtful Accounts Receivable Write Offs
AllowanceForDoubtfulAccountsReceivableWriteOffs
|
87003 | usd |
CY2023Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
68620 | usd |
CY2022Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
62000 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable Payments To Be Received Next Twelve Months
SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedNextTwelveMonths
|
71700 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable Payments To Be Received Two Years
SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedTwoYears
|
71700 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable Payments To Be Received Three Years
SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedThreeYears
|
26875 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable Payments To Be Received Four Years
SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceivedFourYears
|
22800 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable Payments To Be Received
SalesTypeAndDirectFinancingLeasesLeaseReceivablePaymentsToBeReceived
|
193075 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable Undiscounted Excess Amount
SalesTypeAndDirectFinancingLeasesLeaseReceivableUndiscountedExcessAmount
|
15144 | usd |
CY2023Q4 | us-gaap |
Sales Type And Direct Financing Leases Lease Receivable
SalesTypeAndDirectFinancingLeasesLeaseReceivable
|
177931 | usd |
CY2023Q4 | tbtc |
Salestype Lease Net Investment In Lease After Allowance For Credit Loss Current
SalestypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossCurrent
|
64310 | usd |
CY2023Q4 | tbtc |
Salestype Lease Net Investment In Lease After Allowance For Credit Loss Noncurrent
SalestypeLeaseNetInvestmentInLeaseAfterAllowanceForCreditLossNoncurrent
|
113621 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
332731 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
350803 | usd |
CY2023Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
294374 | usd |
CY2022Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
350803 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
38357 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
0 | usd |
CY2023 | us-gaap |
Depreciation
Depreciation
|
1065 | usd |
CY2022 | us-gaap |
Depreciation
Depreciation
|
7879 | usd |
CY2023Q4 | us-gaap |
Capitalized Contract Cost Gross
CapitalizedContractCostGross
|
17000 | usd |
CY2023Q4 | tbtc |
Capitalized Contract Cost Expected Quarterly Amortization
CapitalizedContractCostExpectedQuarterlyAmortization
|
850 | usd |
CY2022Q4 | us-gaap |
Capitalized Contract Cost Gross
CapitalizedContractCostGross
|
0 | usd |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Discount Rate Percent
OperatingLeaseWeightedAverageDiscountRatePercent
|
0.05 | pure |
CY2023 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
160915 | usd |
CY2022 | us-gaap |
Right Of Use Asset Obtained In Exchange For Operating Lease Liability
RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
|
39648 | usd |
CY2023 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
85228 | usd |
CY2022 | us-gaap |
Operating Lease Cost
OperatingLeaseCost
|
63100 | usd |
CY2023 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
33555 | usd |
CY2022 | us-gaap |
Variable Lease Cost
VariableLeaseCost
|
30972 | usd |
CY2023 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
87000 | usd |
CY2022 | us-gaap |
Operating Lease Payments
OperatingLeasePayments
|
64000 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Next Twelve Months
LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
|
121351 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Two
LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
|
95030 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due Year Three
LesseeOperatingLeaseLiabilityPaymentsDueYearThree
|
40496 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Payments Due
LesseeOperatingLeaseLiabilityPaymentsDue
|
256877 | usd |
CY2023Q4 | us-gaap |
Lessee Operating Lease Liability Undiscounted Excess Amount
LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
|
15823 | usd |
CY2023Q4 | us-gaap |
Operating Lease Liability
OperatingLeaseLiability
|
241054 | usd |
CY2023Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P2Y1M28D | |
CY2022Q4 | us-gaap |
Operating Lease Weighted Average Remaining Lease Term1
OperatingLeaseWeightedAverageRemainingLeaseTerm1
|
P2Y7M13D | |
CY2023Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
121869 | |
CY2022Q4 | us-gaap |
Treasury Stock Common Shares
TreasuryStockCommonShares
|
134746 | |
CY2023Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
223208 | usd |
CY2022Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
233599 | usd |
CY2021Q2 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
70000 | |
CY2021Q2 | tbtc |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGrantDateFairValue
|
128726 | usd |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
16500 | |
CY2022Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
37969 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
19500 | |
CY2023Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested In Period Fair Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1
|
38331 | usd |
CY2023 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
1000 | |
CY2022 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
0 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
119750 | |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P4Y9M21D | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
3.11 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
109340 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
107250 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
3.2 | |
CY2023Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
91840 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
119750 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
101500 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
101500 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
2.97 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
85000 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
2.52 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
19750 | |
CY2023 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
3.85 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
16500 | |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
5.29 | |
CY2023 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
1000 | |
CY2023 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
3.01 | |
CY2022 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
-0 | |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
0 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
500 | |
CY2023 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
5.29 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
|
-0 | |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Forfeitures In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
|
0 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
119750 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
3.11 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
101500 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
2.97 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
107250 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
3.2 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
76500 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
3.15 | |
CY2023Q2 | us-gaap |
Dividends Payable Amount Per Share
DividendsPayableAmountPerShare
|
0.01 | |
CY2023Q2 | us-gaap |
Dividends Cash
DividendsCash
|
46325 | usd |
CY2023Q3 | us-gaap |
Dividends Payable Amount Per Share
DividendsPayableAmountPerShare
|
0.01 | |
CY2023Q3 | us-gaap |
Dividends Cash
DividendsCash
|
46330 | usd |
CY2023Q4 | us-gaap |
Dividends Payable Amount Per Share
DividendsPayableAmountPerShare
|
0.01 | |
CY2023Q4 | us-gaap |
Dividends Cash
DividendsCash
|
46334 | usd |
CY2022Q4 | us-gaap |
Dividends Payable Amount Per Share
DividendsPayableAmountPerShare
|
0.02 | |
CY2022Q4 | us-gaap |
Dividends Cash
DividendsCash
|
95112 | usd |
CY2023 | us-gaap |
Dividends
Dividends
|
138989 | usd |
CY2022 | us-gaap |
Dividends
Dividends
|
95112 | usd |
CY2023 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
387000 | usd |
CY2022 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
212000 | usd |
CY2023 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
10000 | usd |
CY2022 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
340000 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
397000 | usd |
CY2023Q4 | tbtc |
Deferred Tax Liabilities Accounts Receivable
DeferredTaxLiabilitiesAccountsReceivable
|
727000 | usd |
CY2022Q4 | tbtc |
Deferred Tax Liabilities Accounts Receivable
DeferredTaxLiabilitiesAccountsReceivable
|
851000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
2000 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
552000 | usd |
CY2023 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
421000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2022 | us-gaap |
Income Tax Reconciliation Income Tax Expense Benefit At Federal Statutory Income Tax Rate
IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate
|
457000 | usd |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.21 | pure |
CY2023 | us-gaap |
Income Tax Reconciliation Prior Year Income Taxes
IncomeTaxReconciliationPriorYearIncomeTaxes
|
2000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Prior Year Income Taxes
EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes
|
0.001 | pure |
CY2022 | us-gaap |
Income Tax Reconciliation Prior Year Income Taxes
IncomeTaxReconciliationPriorYearIncomeTaxes
|
2000 | usd |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Prior Year Income Taxes
EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes
|
0.001 | pure |
CY2023 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
37000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.019 | pure |
CY2022 | us-gaap |
Income Tax Reconciliation State And Local Income Taxes
IncomeTaxReconciliationStateAndLocalIncomeTaxes
|
54000 | usd |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.025 | pure |
CY2023 | tbtc |
Effective Income Tax Rate Reconciliation Tax Credit Foreign Amount
EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmount
|
-4000 | usd |
CY2023 | tbtc |
Effective Income Tax Rate Reconciliation Tax Credit Foreign Percent
EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercent
|
-0.002 | pure |
CY2022 | tbtc |
Effective Income Tax Rate Reconciliation Tax Credit Foreign Amount
EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmount
|
8000 | usd |
CY2022 | tbtc |
Effective Income Tax Rate Reconciliation Tax Credit Foreign Percent
EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercent
|
0.004 | pure |
CY2023 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
52000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
0.026 | pure |
CY2022 | us-gaap |
Income Tax Reconciliation Tax Credits Research
IncomeTaxReconciliationTaxCreditsResearch
|
1000 | usd |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Tax Credits Research
EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
|
-0 | pure |
CY2023 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
-7000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
-0.001 | pure |
CY2022 | us-gaap |
Income Tax Reconciliation Other Adjustments
IncomeTaxReconciliationOtherAdjustments
|
32000 | usd |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Other Adjustments
EffectiveIncomeTaxRateReconciliationOtherAdjustments
|
0.014 | pure |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
397000 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.201 | pure |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
552000 | usd |
CY2022 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.254 | pure |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
57000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Accrued Liabilities
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities
|
83000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Inventory
DeferredTaxAssetsInventory
|
1000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
83000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities Prepaid Expenses
DeferredTaxLiabilitiesPrepaidExpenses
|
85000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
180000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
348000 | usd |
CY2023Q4 | tbtc |
Deferred Income Tax Liabilities Net Current
DeferredIncomeTaxLiabilitiesNetCurrent
|
571000 | usd |
CY2022Q4 | tbtc |
Deferred Income Tax Liabilities Net Current
DeferredIncomeTaxLiabilitiesNetCurrent
|
504000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards State And Local
DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
|
4000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards State And Local
DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
|
4000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards Foreign
DeferredTaxAssetsTaxCreditCarryforwardsForeign
|
14000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards Foreign
DeferredTaxAssetsTaxCreditCarryforwardsForeign
|
21000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards Research
DeferredTaxAssetsTaxCreditCarryforwardsResearch
|
75000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Credit Carryforwards Research
DeferredTaxAssetsTaxCreditCarryforwardsResearch
|
30000 | usd |
CY2023Q4 | tbtc |
Deferred Tax Liabilities Book Tax Depreciation
DeferredTaxLiabilitiesBookTaxDepreciation
|
9000 | usd |
CY2022Q4 | tbtc |
Deferred Tax Liabilities Book Tax Depreciation
DeferredTaxLiabilitiesBookTaxDepreciation
|
-0 | usd |
CY2023Q4 | tbtc |
Deferred Tax Assets Capitalized Research And Development
DeferredTaxAssetsCapitalizedResearchAndDevelopment
|
-73000 | usd |
CY2022Q4 | tbtc |
Deferred Tax Assets Capitalized Research And Development
DeferredTaxAssetsCapitalizedResearchAndDevelopment
|
-36000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
60000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Compensation And Benefits Share Based Compensation Cost
DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
|
69000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Impairment Losses
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsImpairmentLosses
|
13000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Tax Deferred Expense Reserves And Accruals Impairment Losses
DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsImpairmentLosses
|
13000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
230000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
173000 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
341000 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Liabilities
DeferredTaxLiabilities
|
331000 | usd |
CY2023Q4 | us-gaap |
Operating Loss Carryforwards
OperatingLossCarryforwards
|
52600 | usd |
CY2023 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
1613005 | usd |
CY2022 | us-gaap |
Net Income Loss Available To Common Stockholders Basic
NetIncomeLossAvailableToCommonStockholdersBasic
|
1624453 | usd |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
4553080 | |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
4522536 | |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.35 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.36 | |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
4619046 | |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
4583115 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.35 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.35 | |
CY2023 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
65966 | |
CY2022 | us-gaap |
Weighted Average Number Diluted Shares Outstanding Adjustment
WeightedAverageNumberDilutedSharesOutstandingAdjustment
|
60579 |