2024 Q1 Form 10-K Financial Statement
#000149315224004039 Filed on January 29, 2024
Income Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
Revenue | $4.461M | $3.564M | $19.35M |
YoY Change | -20.28% | -30.6% | -12.93% |
Cost Of Revenue | $1.374M | $1.274M | $6.321M |
YoY Change | -25.43% | -25.0% | -10.15% |
Gross Profit | $3.087M | $2.290M | $13.03M |
YoY Change | -17.75% | -33.37% | -14.22% |
Gross Profit Margin | 69.19% | 64.25% | 67.34% |
Selling, General & Admin | $2.045M | $2.056M | $8.195M |
YoY Change | 4.23% | 12.19% | 3.1% |
% of Gross Profit | 66.26% | 89.8% | 62.89% |
Research & Development | $486.0K | $557.8K | $2.096M |
YoY Change | 9.34% | 18.75% | -6.32% |
% of Gross Profit | 15.74% | 24.36% | 16.09% |
Depreciation & Amortization | $190.5K | $147.5K | $603.5K |
YoY Change | 16.18% | 71.61% | -11.08% |
% of Gross Profit | 6.17% | 6.44% | 4.63% |
Operating Expenses | $2.531M | $2.614M | $10.29M |
YoY Change | 5.17% | 13.53% | 1.03% |
Operating Profit | $555.4K | -$324.3K | $2.740M |
YoY Change | -58.74% | -128.59% | -45.25% |
Interest Expense | $192.5K | $642.5K | |
YoY Change | -9548.97% | ||
% of Operating Profit | 34.67% | ||
Other Income/Expense, Net | $35.02K | -$364.6K | $681.7K |
YoY Change | 122.14% | -1635.59% | 431.43% |
Pretax Income | $782.9K | -$46.28K | $3.421M |
YoY Change | -42.51% | -104.02% | -33.34% |
Income Tax | $153.1K | $274.7K | $297.1K |
% Of Pretax Income | 19.55% | 8.68% | |
Net Earnings | $629.9K | -$321.0K | $3.124M |
YoY Change | -54.94% | -145.59% | -27.37% |
Net Earnings / Revenue | 14.12% | -9.01% | 16.14% |
Basic Earnings Per Share | $0.06 | $0.28 | |
Diluted Earnings Per Share | $0.06 | -$0.03 | $0.28 |
COMMON SHARES | |||
Basic Shares Outstanding | 11.16M shares | 11.13M shares | |
Diluted Shares Outstanding | 11.26M shares | 11.32M shares |
Balance Sheet
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
SHORT-TERM ASSETS | |||
Cash & Short-Term Investments | $25.00M | $24.45M | $24.45M |
YoY Change | 1.96% | 6.64% | 6.64% |
Cash & Equivalents | $25.00M | $24.45M | |
Short-Term Investments | $0.00 | ||
Other Short-Term Assets | $405.7K | $1.035M | $204.5K |
YoY Change | -6.06% | 201.59% | -21.09% |
Inventory | $12.77M | $11.69M | $11.69M |
Prepaid Expenses | $392.6K | $181.4K | |
Receivables | $3.794M | $2.643M | $3.538M |
Other Receivables | $800.5K | $450.6K | $1.012M |
Total Short-Term Assets | $42.77M | $40.89M | $40.89M |
YoY Change | 6.12% | 10.48% | 10.48% |
LONG-TERM ASSETS | |||
Property, Plant & Equipment | $6.340M | $6.873M | $6.873M |
YoY Change | 4.42% | 17.84% | 17.84% |
Goodwill | $3.382M | $3.382M | |
YoY Change | 0.0% | ||
Intangibles | $496.2K | $486.6K | |
YoY Change | 10.02% | ||
Long-Term Investments | |||
YoY Change | |||
Other Assets | $21.58K | $211.4K | $211.4K |
YoY Change | -92.71% | -18.64% | -18.64% |
Total Long-Term Assets | $10.24M | $10.95M | $10.95M |
YoY Change | 0.41% | 10.45% | 10.45% |
TOTAL ASSETS | |||
Total Short-Term Assets | $42.77M | $40.89M | $40.89M |
Total Long-Term Assets | $10.24M | $10.95M | $10.95M |
Total Assets | $53.01M | $51.84M | $51.84M |
YoY Change | 4.97% | 10.47% | 10.47% |
SHORT-TERM LIABILITIES | |||
YoY Change | |||
Accounts Payable | $1.110M | $1.308M | $1.308M |
YoY Change | -21.51% | 64.92% | 64.92% |
Accrued Expenses | $856.0K | $384.9K | $995.6K |
YoY Change | -46.91% | -77.77% | -42.51% |
Deferred Revenue | $786.5K | $975.5K | |
YoY Change | -2.31% | 3.39% | |
Short-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Long-Term Debt Due | |||
YoY Change | |||
Total Short-Term Liabilities | $2.753M | $3.279M | $3.279M |
YoY Change | -28.16% | -5.45% | -5.45% |
LONG-TERM LIABILITIES | |||
Long-Term Debt | $0.00 | $0.00 | $0.00 |
YoY Change | |||
Other Long-Term Liabilities | $110.5K | $133.4K | $133.4K |
YoY Change | 8.57% | 75.2% | 75.2% |
Total Long-Term Liabilities | $110.5K | $133.4K | $133.4K |
YoY Change | 8.57% | 75.21% | 75.2% |
TOTAL LIABILITIES | |||
Total Short-Term Liabilities | $2.753M | $3.279M | $3.279M |
Total Long-Term Liabilities | $110.5K | $133.4K | $133.4K |
Total Liabilities | $2.863M | $3.413M | $3.413M |
YoY Change | -27.21% | -3.72% | -3.72% |
SHAREHOLDERS EQUITY | |||
Retained Earnings | -$10.42M | -$11.05M | |
YoY Change | -18.44% | -22.04% | |
Common Stock | $11.17K | $11.12K | |
YoY Change | 2.03% | -99.98% | |
Preferred Stock | |||
YoY Change | |||
Treasury Stock (at cost) | $61.93K | $46.30K | |
YoY Change | 118.56% | 63.39% | |
Treasury Stock Shares | |||
Shareholders Equity | $50.15M | $48.43M | $48.43M |
YoY Change | |||
Total Liabilities & Shareholders Equity | $53.01M | $51.84M | $51.84M |
YoY Change | 4.97% | 10.47% | 10.47% |
Cashflow Statement
Concept | 2024 Q1 | 2023 Q4 | 2023 |
---|---|---|---|
OPERATING ACTIVITIES | |||
Net Income | $629.9K | -$321.0K | $3.124M |
YoY Change | -54.94% | -145.59% | -27.37% |
Depreciation, Depletion And Amortization | $190.5K | $147.5K | $603.5K |
YoY Change | 16.18% | 71.61% | -11.08% |
Cash From Operating Activities | -$298.0K | $1.010M | $2.390M |
YoY Change | -130.25% | 127.22% | -64.47% |
INVESTING ACTIVITIES | |||
Capital Expenditures | $162.5K | $1.620M | $2.022M |
YoY Change | 92.46% | 153.44% | 333.46% |
Acquisitions | |||
YoY Change | |||
Other Investing Activities | $771.8K | $609.6K | $609.6K |
YoY Change | |||
Cash From Investing Activities | $609.3K | -$1.011M | -$1.521M |
YoY Change | -675.34% | -258.1% | 173.25% |
FINANCING ACTIVITIES | |||
Cash Dividend Paid | |||
YoY Change | |||
Common Stock Issuance & Retirement, Net | |||
YoY Change | |||
Debt Paid & Issued, Net | |||
YoY Change | |||
Cash From Financing Activities | -15.63K | 2.040K | -$17.96K |
YoY Change | -107.2% | -80.45% | |
NET CHANGE | |||
Cash From Operating Activities | -298.0K | 1.010M | $2.390M |
Cash From Investing Activities | 609.3K | -1.011M | -$1.521M |
Cash From Financing Activities | -15.63K | 2.040K | -$17.96K |
Net Change In Cash | 295.7K | 1.140K | $1.521M |
YoY Change | -81.46% | -99.89% | -70.63% |
FREE CASH FLOW | |||
Cash From Operating Activities | -$298.0K | $1.010M | $2.390M |
Capital Expenditures | $162.5K | $1.620M | $2.022M |
Free Cash Flow | -$460.4K | -$610.5K | $367.9K |
YoY Change | -151.13% | 213.25% | -94.12% |
Facts In Submission
Frame | Concept Type | Concept / XBRL Key | Value | Unit |
---|---|---|---|---|
CY2023 | dei |
Amendment Flag
AmendmentFlag
|
false | |
CY2023 | dei |
Document Fiscal Period Focus
DocumentFiscalPeriodFocus
|
FY | |
CY2023 | dei |
Entity Central Index Key
EntityCentralIndexKey
|
0001334325 | |
CY2023Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
usd | |
CY2022Q4 | us-gaap |
Commitments And Contingencies
CommitmentsAndContingencies
|
usd | |
CY2023Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
usd | |
CY2022Q4 | us-gaap |
Preferred Stock Value
PreferredStockValue
|
usd | |
CY2023Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | shares |
CY2023Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | shares |
CY2022Q4 | us-gaap |
Preferred Stock Shares Issued
PreferredStockSharesIssued
|
0 | shares |
CY2022Q4 | us-gaap |
Preferred Stock Shares Outstanding
PreferredStockSharesOutstanding
|
0 | shares |
CY2022 | us-gaap |
Investment Income Nonoperating
InvestmentIncomeNonoperating
|
usd | |
CY2023 | us-gaap |
Interest Expense
InterestExpense
|
usd | |
CY2022 | us-gaap |
Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
|
usd | |
CY2023 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
usd | |
CY2023 | us-gaap |
Interest Paid Net
InterestPaidNet
|
usd | |
CY2023 | CODA |
Purchase Of Property And Equipment Previously Held In Escrow Included In Prepaid Expenses
PurchaseOfPropertyAndEquipmentPreviouslyHeldInEscrowIncludedInPrepaidExpenses
|
usd | |
CY2022Q4 | us-gaap |
Other Receivables
OtherReceivables
|
usd | |
CY2023 | CODA |
Erc Payroll Tax Credits
ERCPayrollTaxCredits
|
usd | |
CY2022 | us-gaap |
Investment Income Nonoperating
InvestmentIncomeNonoperating
|
usd | |
CY2023 | us-gaap |
Interest Expense
InterestExpense
|
usd | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
shares | |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
||
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedInPeriodGross
|
shares | |
CY2022 | CODA |
Share Based Compensation Arrangements By Share Based Payment Award Options Vested In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsVestedInPeriodWeightedAverageExercisePrice
|
||
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
||
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Grants In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
|
shares | |
CY2023 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Grants In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
|
||
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested In Period Gross
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedInPeriodGross
|
shares | |
CY2023 | CODA |
Share Based Compensation Arrangements By Share Based Payment Award Options Vested In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsVestedInPeriodWeightedAverageExercisePrice
|
||
CY2022 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
usd | |
CY2022 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
usd | |
CY2023Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards Domestic
DeferredTaxAssetsOperatingLossCarryforwardsDomestic
|
usd | |
CY2022Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards Domestic
DeferredTaxAssetsOperatingLossCarryforwardsDomestic
|
usd | |
CY2023Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
usd | |
CY2022Q4 | CODA |
Deferred Tax Assets Foreign Capital Loss Carryforwards
DeferredTaxAssetsForeignCapitalLossCarryforwards
|
usd | |
CY2023Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
usd | |
CY2023Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
usd | |
CY2023 | dei |
Document Type
DocumentType
|
10-K | |
CY2023 | dei |
Document Annual Report
DocumentAnnualReport
|
true | |
CY2023 | dei |
Document Period End Date
DocumentPeriodEndDate
|
2023-10-31 | |
CY2023 | dei |
Current Fiscal Year End Date
CurrentFiscalYearEndDate
|
--10-31 | |
CY2023 | dei |
Document Fiscal Year Focus
DocumentFiscalYearFocus
|
2023 | |
CY2023 | dei |
Document Transition Report
DocumentTransitionReport
|
false | |
CY2023 | dei |
Entity File Number
EntityFileNumber
|
001-38154 | |
CY2023 | dei |
Entity Registrant Name
EntityRegistrantName
|
CODA OCTOPUS GROUP, INC. | |
CY2023 | dei |
Entity Incorporation State Country Code
EntityIncorporationStateCountryCode
|
DE | |
CY2023 | dei |
Entity Tax Identification Number
EntityTaxIdentificationNumber
|
34-2008348 | |
CY2023 | dei |
Entity Address Address Line1
EntityAddressAddressLine1
|
3300 S Hiawassee Rd | |
CY2023 | dei |
Entity Address Address Line2
EntityAddressAddressLine2
|
Suite 104-105 | |
CY2023 | dei |
Entity Address City Or Town
EntityAddressCityOrTown
|
Orlando | |
CY2023 | dei |
Entity Address State Or Province
EntityAddressStateOrProvince
|
FL | |
CY2023 | dei |
Entity Address Postal Zip Code
EntityAddressPostalZipCode
|
32835 | |
CY2023 | dei |
City Area Code
CityAreaCode
|
407 | |
CY2023 | dei |
Local Phone Number
LocalPhoneNumber
|
735 2406 | |
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
|
37700000 | usd |
CY2024Q1 | dei |
Entity Common Stock Shares Outstanding
EntityCommonStockSharesOutstanding
|
11164483 | shares |
CY2023 | dei |
Auditor Firm
AuditorFirmId
|
215 | |
CY2023 | dei |
Auditor Name
AuditorName
|
Frazier & Deeter | |
CY2023 | dei |
Auditor Location
AuditorLocation
|
Atlanta, Georgia | |
CY2023Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
24448841 | usd |
CY2022Q4 | us-gaap |
Cash And Cash Equivalents At Carrying Value
CashAndCashEquivalentsAtCarryingValue
|
22927371 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
2643461 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
2870600 | usd |
CY2023Q4 | us-gaap |
Inventory Net
InventoryNet
|
11685525 | usd |
CY2022Q4 | us-gaap |
Inventory Net
InventoryNet
|
10027111 | usd |
CY2023Q4 | us-gaap |
Unbilled Receivables Current
UnbilledReceivablesCurrent
|
894251 | usd |
CY2022Q4 | us-gaap |
Unbilled Receivables Current
UnbilledReceivablesCurrent
|
602115 | usd |
CY2023Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
181383 | usd |
CY2022Q4 | us-gaap |
Prepaid Expense Current
PrepaidExpenseCurrent
|
240464 | usd |
CY2023Q4 | us-gaap |
Other Assets Current
OtherAssetsCurrent
|
1034626 | usd |
CY2022Q4 | us-gaap |
Other Assets Current
OtherAssetsCurrent
|
343061 | usd |
CY2023Q4 | us-gaap |
Assets Current
AssetsCurrent
|
40888087 | usd |
CY2022Q4 | us-gaap |
Assets Current
AssetsCurrent
|
37010722 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
6873320 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
5832532 | usd |
CY2023Q4 | us-gaap |
Goodwill
Goodwill
|
3382108 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
3382108 | usd |
CY2023Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
486615 | usd |
CY2022Q4 | us-gaap |
Intangible Assets Net Excluding Goodwill
IntangibleAssetsNetExcludingGoodwill
|
442286 | usd |
CY2023Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
211386 | usd |
CY2022Q4 | us-gaap |
Deferred Income Tax Assets Net
DeferredIncomeTaxAssetsNet
|
259810 | usd |
CY2023Q4 | us-gaap |
Other Assets
OtherAssets
|
4080109 | usd |
CY2022Q4 | us-gaap |
Other Assets
OtherAssets
|
4084204 | usd |
CY2023Q4 | us-gaap |
Assets
Assets
|
51841516 | usd |
CY2022Q4 | us-gaap |
Assets
Assets
|
46927458 | usd |
CY2023Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
1308201 | usd |
CY2022Q4 | us-gaap |
Accounts Payable Current
AccountsPayableCurrent
|
793247 | usd |
CY2023Q4 | us-gaap |
Accounts Payable And Other Accrued Liabilities Current
AccountsPayableAndOtherAccruedLiabilitiesCurrent
|
995630 | usd |
CY2022Q4 | us-gaap |
Accounts Payable And Other Accrued Liabilities Current
AccountsPayableAndOtherAccruedLiabilitiesCurrent
|
1731706 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
975537 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
943569 | usd |
CY2023Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
3279368 | usd |
CY2022Q4 | us-gaap |
Liabilities Current
LiabilitiesCurrent
|
3468522 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
133382 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
76127 | usd |
CY2023Q4 | us-gaap |
Liabilities
Liabilities
|
3412750 | usd |
CY2022Q4 | us-gaap |
Liabilities
Liabilities
|
3544649 | usd |
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
|
150000000 | shares |
CY2022Q4 | us-gaap |
Common Stock Shares Authorized
CommonStockSharesAuthorized
|
150000000 | shares |
CY2023Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
11117695 | shares |
CY2023Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
11117695 | shares |
CY2022Q4 | us-gaap |
Common Stock Shares Issued
CommonStockSharesIssued
|
10916853 | shares |
CY2022Q4 | us-gaap |
Common Stock Shares Outstanding
CommonStockSharesOutstanding
|
10916853 | shares |
CY2023Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
11118 | usd |
CY2022Q4 | us-gaap |
Common Stock Value
CommonStockValue
|
10918 | usd |
CY2023Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.001 | |
CY2022Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.001 | |
CY2023Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
5000000 | shares |
CY2022Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
5000000 | shares |
CY2023Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
46300 | usd |
CY2022Q4 | us-gaap |
Treasury Stock Value
TreasuryStockValue
|
28337 | usd |
CY2023Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
62958984 | usd |
CY2022Q4 | us-gaap |
Additional Paid In Capital
AdditionalPaidInCapital
|
62313988 | usd |
CY2023Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-3442549 | usd |
CY2022Q4 | us-gaap |
Accumulated Other Comprehensive Income Loss Net Of Tax
AccumulatedOtherComprehensiveIncomeLossNetOfTax
|
-4737124 | usd |
CY2023Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
-11052487 | usd |
CY2022Q4 | us-gaap |
Retained Earnings Accumulated Deficit
RetainedEarningsAccumulatedDeficit
|
-14176636 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
48428766 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
43382809 | usd |
CY2023Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
51841516 | usd |
CY2022Q4 | us-gaap |
Liabilities And Stockholders Equity
LiabilitiesAndStockholdersEquity
|
46927458 | usd |
CY2023 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
19352088 | usd |
CY2022 | us-gaap |
Revenue From Contract With Customer Excluding Assessed Tax
RevenueFromContractWithCustomerExcludingAssessedTax
|
22225803 | usd |
CY2023 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
6321033 | usd |
CY2022 | us-gaap |
Cost Of Revenue
CostOfRevenue
|
7035115 | usd |
CY2023 | us-gaap |
Gross Profit
GrossProfit
|
13031055 | usd |
CY2022 | us-gaap |
Gross Profit
GrossProfit
|
15190688 | usd |
CY2023 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
2096467 | usd |
CY2022 | us-gaap |
Research And Development Expense
ResearchAndDevelopmentExpense
|
2237920 | usd |
CY2023 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
8195036 | usd |
CY2022 | us-gaap |
Selling General And Administrative Expense
SellingGeneralAndAdministrativeExpense
|
7948704 | usd |
CY2023 | us-gaap |
Operating Expenses
OperatingExpenses
|
10291503 | usd |
CY2022 | us-gaap |
Operating Expenses
OperatingExpenses
|
10186624 | usd |
CY2023 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
2739552 | usd |
CY2022 | us-gaap |
Operating Income Loss
OperatingIncomeLoss
|
5004064 | usd |
CY2023 | us-gaap |
Other Income
OtherIncome
|
39146 | usd |
CY2022 | us-gaap |
Other Income
OtherIncome
|
137975 | usd |
CY2023 | us-gaap |
Investment Income Nonoperating
InvestmentIncomeNonoperating
|
642530 | usd |
CY2022 | us-gaap |
Interest Expense
InterestExpense
|
9704 | usd |
CY2023 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
681676 | usd |
CY2022 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
128271 | usd |
CY2023 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
3421228 | usd |
CY2022 | us-gaap |
Income Loss From Continuing Operations Before Income Taxes Extraordinary Items Noncontrolling Interest
IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
|
5132335 | usd |
CY2023 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
248655 | usd |
CY2022 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
1005140 | usd |
CY2023 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
48424 | usd |
CY2022 | us-gaap |
Deferred Income Tax Expense Benefit
DeferredIncomeTaxExpenseBenefit
|
-174026 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
297079 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
831114 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3124149 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4301221 | usd |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.28 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.40 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.28 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.38 | |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11131469 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10863674 | shares |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11323568 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11281347 | shares |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3124149 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4301221 | usd |
CY2023 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
1294575 | usd |
CY2022 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-3070065 | usd |
CY2023 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
1294575 | usd |
CY2022 | us-gaap |
Other Comprehensive Income Loss Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
|
-3070065 | usd |
CY2023 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
4418724 | usd |
CY2022 | us-gaap |
Comprehensive Income Net Of Tax
ComprehensiveIncomeNetOfTax
|
1231156 | usd |
CY2021Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
41049073 | usd |
CY2022 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
1130917 | usd |
CY2022 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
-28337 | usd |
CY2022 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
-3070065 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4301221 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
43382809 | usd |
CY2022Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
43382809 | usd |
CY2023 | us-gaap |
Adjustments To Additional Paid In Capital Sharebased Compensation Requisite Service Period Recognition Value
AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
|
645196 | usd |
CY2023 | us-gaap |
Stock Issued During Period Value Stock Options Exercised
StockIssuedDuringPeriodValueStockOptionsExercised
|
-17963 | usd |
CY2023 | us-gaap |
Other Comprehensive Income Foreign Currency Transaction And Translation Adjustment Net Of Tax Portion Attributable To Parent
OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
|
1294575 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3124149 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
48428766 | usd |
CY2023Q4 | us-gaap |
Stockholders Equity
StockholdersEquity
|
48428766 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3124149 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4301221 | usd |
CY2023 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
603467 | usd |
CY2022 | us-gaap |
Depreciation And Amortization
DepreciationAndAmortization
|
678652 | usd |
CY2023 | us-gaap |
Adjustment For Amortization
AdjustmentForAmortization
|
64063 | usd |
CY2022 | us-gaap |
Adjustment For Amortization
AdjustmentForAmortization
|
60077 | usd |
CY2023 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
645196 | usd |
CY2022 | us-gaap |
Share Based Compensation
ShareBasedCompensation
|
1130917 | usd |
CY2023 | us-gaap |
Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
|
48726 | usd |
CY2022 | us-gaap |
Deferred Income Taxes And Tax Credits
DeferredIncomeTaxesAndTaxCredits
|
-193083 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-291873 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Receivable
IncreaseDecreaseInAccountsReceivable
|
-992948 | usd |
CY2023 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
1287108 | usd |
CY2022 | us-gaap |
Increase Decrease In Inventories
IncreaseDecreaseInInventories
|
675878 | usd |
CY2023 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
281981 | usd |
CY2022 | us-gaap |
Increase Decrease In Contract With Customer Asset
IncreaseDecreaseInContractWithCustomerAsset
|
-447927 | usd |
CY2023 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
-68836 | usd |
CY2022 | us-gaap |
Increase Decrease In Prepaid Expense
IncreaseDecreaseInPrepaidExpense
|
-165010 | usd |
CY2023 | us-gaap |
Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
|
330516 | usd |
CY2022 | us-gaap |
Increase Decrease In Other Current Assets
IncreaseDecreaseInOtherCurrentAssets
|
-275909 | usd |
CY2023 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
-613239 | usd |
CY2022 | us-gaap |
Increase Decrease In Accounts Payable And Other Operating Liabilities
IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities
|
533996 | usd |
CY2023 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
56410 | usd |
CY2022 | us-gaap |
Increase Decrease In Contract With Customer Liability
IncreaseDecreaseInContractWithCustomerLiability
|
-990729 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
2389876 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Operating Activities
NetCashProvidedByUsedInOperatingActivities
|
6726967 | usd |
CY2023 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
2021948 | usd |
CY2022 | us-gaap |
Payments To Acquire Property Plant And Equipment
PaymentsToAcquirePropertyPlantAndEquipment
|
466471 | usd |
CY2023 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
108392 | usd |
CY2022 | us-gaap |
Payments To Acquire Intangible Assets
PaymentsToAcquireIntangibleAssets
|
90089 | usd |
CY2023 | us-gaap |
Proceeds From Sale Of Productive Assets
ProceedsFromSaleOfProductiveAssets
|
609565 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-1520775 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Investing Activities
NetCashProvidedByUsedInInvestingActivities
|
-556560 | usd |
CY2022 | us-gaap |
Repayments Of Long Term Debt
RepaymentsOfLongTermDebt
|
63559 | usd |
CY2023 | us-gaap |
Payments Of Stock Issuance Costs
PaymentsOfStockIssuanceCosts
|
17963 | usd |
CY2022 | us-gaap |
Payments Of Stock Issuance Costs
PaymentsOfStockIssuanceCosts
|
28337 | usd |
CY2023 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-17963 | usd |
CY2022 | us-gaap |
Net Cash Provided By Used In Financing Activities
NetCashProvidedByUsedInFinancingActivities
|
-91896 | usd |
CY2023 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
670332 | usd |
CY2022 | us-gaap |
Effect Of Exchange Rate On Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
-898796 | usd |
CY2023 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
1521470 | usd |
CY2022 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Period Increase Decrease Including Exchange Rate Effect
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
|
5179715 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
22927371 | usd |
CY2021Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
17747656 | usd |
CY2023Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
24448841 | usd |
CY2022Q4 | us-gaap |
Cash Cash Equivalents Restricted Cash And Restricted Cash Equivalents Including Disposal Group And Discontinued Operations
CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations
|
22927371 | usd |
CY2022 | us-gaap |
Interest Paid Net
InterestPaidNet
|
9704 | usd |
CY2023 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
1406562 | usd |
CY2022 | us-gaap |
Income Taxes Paid Net
IncomeTaxesPaidNet
|
74432 | usd |
CY2022 | CODA |
Purchase Of Property And Equipment Previously Held In Escrow Included In Prepaid Expenses
PurchaseOfPropertyAndEquipmentPreviouslyHeldInEscrowIncludedInPrepaidExpenses
|
694664 | usd |
CY2023 | us-gaap |
Use Of Estimates
UseOfEstimates
|
<p id="xdx_84D_eus-gaap--UseOfEstimates_z1gGS6l13Eal" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"><span id="xdx_86A_zcqK3N3wt5Yk">Estimates</span></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt">The preparation of consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts reported in the consolidated financial statements and accompanying notes. The accounting estimates and assumptions that require management’s most significant, challenging, and subjective judgment include estimates related to the percentage of completion method used to account for contracts including costs and earnings in excess of billings, billings in excess of costs and estimated earnings, the valuation of the deferred tax asset, and the valuation of goodwill. Actual results realized by the Company may differ from management’s estimates.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-family: Times New Roman, Times, Serif; font-size: 10pt"> </span></p> | |
CY2023 | CODA |
Cost Of Revenue Commissions
CostOfRevenueCommissions
|
826719 | usd |
CY2022 | CODA |
Cost Of Revenue Commissions
CostOfRevenueCommissions
|
631471 | usd |
CY2023 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
-190073 | usd |
CY2022 | us-gaap |
Foreign Currency Transaction Gain Loss Before Tax
ForeignCurrencyTransactionGainLossBeforeTax
|
431314 | usd |
CY2023Q4 | us-gaap |
Deposits Assets Current
DepositsAssetsCurrent
|
23081 | usd |
CY2022Q4 | us-gaap |
Deposits Assets Current
DepositsAssetsCurrent
|
18631 | usd |
CY2023Q4 | us-gaap |
Other Receivables Net Current
OtherReceivablesNetCurrent
|
450625 | usd |
CY2022Q4 | us-gaap |
Other Receivables Net Current
OtherReceivablesNetCurrent
|
151217 | usd |
CY2023Q4 | us-gaap |
Cash Fdic Insured Amount
CashFDICInsuredAmount
|
23300000 | usd |
CY2023Q4 | CODA |
Employee Retention Credit Receivables
EmployeeRetentionCreditReceivables
|
212300 | usd |
CY2022Q4 | CODA |
Employee Retention Credit Receivables
EmployeeRetentionCreditReceivables
|
173213 | usd |
CY2023Q4 | us-gaap |
Other Receivables
OtherReceivables
|
348620 | usd |
CY2023Q4 | us-gaap |
Other Assets Current
OtherAssetsCurrent
|
1034626 | usd |
CY2022Q4 | us-gaap |
Other Assets Current
OtherAssetsCurrent
|
343061 | usd |
CY2023Q4 | us-gaap |
Employee Service Share Based Compensation Nonvested Awards Total Compensation Cost Not Yet Recognized
EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
|
0 | usd |
CY2023Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
2643461 | usd |
CY2022Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
2870600 | usd |
CY2021Q4 | us-gaap |
Accounts Receivable Net Current
AccountsReceivableNetCurrent
|
4207996 | usd |
CY2023Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
0 | usd |
CY2022Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
0 | usd |
CY2021Q4 | us-gaap |
Allowance For Doubtful Accounts Receivable
AllowanceForDoubtfulAccountsReceivable
|
0 | usd |
CY2023 | us-gaap |
Finite Lived Intangible Assets Amortization Method
FiniteLivedIntangibleAssetsAmortizationMethod
|
The Company’s intangible assets are amortized on a straight-line basis over their estimated useful lives, ranging from 2 to 15 years. | |
CY2023Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
975537 | usd |
CY2023Q4 | CODA |
Depreciation Cost Of Goods Sold Allocation Percentage
DepreciationCostOfGoodsSoldAllocationPercentage
|
0.70 | pure |
CY2023Q4 | CODA |
Depreciation Of General And Administration Expense Percentage
DepreciationOfGeneralAndAdministrationExpensePercentage
|
0.30 | pure |
CY2023 | us-gaap |
Advertising Expense
AdvertisingExpense
|
0 | usd |
CY2022 | us-gaap |
Advertising Expense
AdvertisingExpense
|
0 | usd |
CY2023Q4 | us-gaap |
Unbilled Receivables Current
UnbilledReceivablesCurrent
|
894251 | usd |
CY2022Q4 | us-gaap |
Unbilled Receivables Current
UnbilledReceivablesCurrent
|
602115 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
975537 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
943569 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
943569 | usd |
CY2021Q4 | us-gaap |
Contract With Customer Liability Current
ContractWithCustomerLiabilityCurrent
|
1999841 | usd |
CY2023Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
133382 | usd |
CY2022Q4 | us-gaap |
Contract With Customer Liability Noncurrent
ContractWithCustomerLiabilityNoncurrent
|
76127 | usd |
CY2022Q4 | us-gaap |
Goodwill
Goodwill
|
3382108 | usd |
CY2023Q4 | us-gaap |
Marketable Securities
MarketableSecurities
|
0 | usd |
CY2022Q4 | us-gaap |
Marketable Securities
MarketableSecurities
|
0 | usd |
CY2023 | CODA |
Interest Bearing Deposits Current Rate
InterestBearingDepositsCurrentRate
|
0.050 | pure |
CY2023Q4 | us-gaap |
Inventory Raw Materials And Supplies
InventoryRawMaterialsAndSupplies
|
8994482 | usd |
CY2022Q4 | us-gaap |
Inventory Raw Materials And Supplies
InventoryRawMaterialsAndSupplies
|
7219344 | usd |
CY2023Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
483227 | usd |
CY2022Q4 | us-gaap |
Inventory Work In Process
InventoryWorkInProcess
|
383427 | usd |
CY2023Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
2207816 | usd |
CY2022Q4 | us-gaap |
Inventory Finished Goods
InventoryFinishedGoods
|
2424340 | usd |
CY2023Q4 | us-gaap |
Inventory Net
InventoryNet
|
11685525 | usd |
CY2022Q4 | us-gaap |
Inventory Net
InventoryNet
|
10027111 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
11678346 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Gross
PropertyPlantAndEquipmentGross
|
10537055 | usd |
CY2023Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
4805026 | usd |
CY2022Q4 | us-gaap |
Accumulated Depreciation Depletion And Amortization Property Plant And Equipment
AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
|
4704523 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
6873320 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
5832532 | usd |
CY2023 | us-gaap |
Depreciation
Depreciation
|
603467 | usd |
CY2022 | us-gaap |
Depreciation
Depreciation
|
678652 | usd |
CY2023Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
6873320 | usd |
CY2022Q4 | us-gaap |
Property Plant And Equipment Net
PropertyPlantAndEquipmentNet
|
5832532 | usd |
CY2023Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
384880 | usd |
CY2022Q4 | us-gaap |
Accrued Liabilities Current
AccruedLiabilitiesCurrent
|
1474744 | usd |
CY2023Q4 | CODA |
Other Tax Payables Receivables
OtherTaxPayablesReceivables
|
525565 | usd |
CY2022Q4 | CODA |
Other Tax Payables Receivables
OtherTaxPayablesReceivables
|
144158 | usd |
CY2023Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
85185 | usd |
CY2022Q4 | us-gaap |
Employee Related Liabilities Current
EmployeeRelatedLiabilitiesCurrent
|
112804 | usd |
CY2023Q4 | us-gaap |
Accounts Payable And Other Accrued Liabilities Current
AccountsPayableAndOtherAccruedLiabilitiesCurrent
|
995630 | usd |
CY2022Q4 | us-gaap |
Accounts Payable And Other Accrued Liabilities Current
AccountsPayableAndOtherAccruedLiabilitiesCurrent
|
1731706 | usd |
CY2021Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingNonvestedNumber
|
122000 | shares |
CY2021Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedOutstandingWeightedAverageGrantDateFairValue
|
8.80 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
|
122000 | shares |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
|
8.80 | |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingGrantsInPeriod
|
64687 | shares |
CY2022 | CODA |
Erc Payroll Tax Credits
ERCPayrollTaxCredits
|
88917 | usd |
CY2023 | us-gaap |
Other Nonoperating Income
OtherNonoperatingIncome
|
39146 | usd |
CY2022 | us-gaap |
Other Nonoperating Income
OtherNonoperatingIncome
|
49058 | usd |
CY2023 | us-gaap |
Other Income
OtherIncome
|
39146 | usd |
CY2022 | us-gaap |
Other Income
OtherIncome
|
137975 | usd |
CY2023 | us-gaap |
Investment Income Nonoperating
InvestmentIncomeNonoperating
|
642530 | usd |
CY2022 | us-gaap |
Interest Expense
InterestExpense
|
9704 | usd |
CY2023 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
681676 | usd |
CY2022 | us-gaap |
Nonoperating Income Expense
NonoperatingIncomeExpense
|
128271 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
1700153 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
-1213538 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
486615 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Gross
FiniteLivedIntangibleAssetsGross
|
1589254 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Accumulated Amortization
FiniteLivedIntangibleAssetsAccumulatedAmortization
|
-1146968 | usd |
CY2022Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
442286 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Next Twelve Months
FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
|
56104 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Two
FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
|
42514 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Three
FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
|
39434 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Four
FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
|
36657 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Amortization Expense Year Five
FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
|
311906 | usd |
CY2023Q4 | us-gaap |
Finite Lived Intangible Assets Net
FiniteLivedIntangibleAssetsNet
|
486615 | usd |
CY2023 | us-gaap |
Adjustment For Amortization
AdjustmentForAmortization
|
64063 | usd |
CY2022 | us-gaap |
Adjustment For Amortization
AdjustmentForAmortization
|
60077 | usd |
CY2023Q4 | us-gaap |
Goodwill
Goodwill
|
3382108 | usd |
CY2023 | us-gaap |
Net Income Loss
NetIncomeLoss
|
3124149 | usd |
CY2022 | us-gaap |
Net Income Loss
NetIncomeLoss
|
4301221 | usd |
CY2023 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
11131469 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Shares Outstanding Basic
WeightedAverageNumberOfSharesOutstandingBasic
|
10863674 | shares |
CY2023 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
192099 | shares |
CY2022 | us-gaap |
Incremental Common Shares Attributable To Share Based Payment Arrangements
IncrementalCommonSharesAttributableToShareBasedPaymentArrangements
|
417673 | shares |
CY2023 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11323568 | shares |
CY2022 | us-gaap |
Weighted Average Number Of Diluted Shares Outstanding
WeightedAverageNumberOfDilutedSharesOutstanding
|
11281347 | shares |
CY2023 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.28 | |
CY2022 | us-gaap |
Earnings Per Share Basic
EarningsPerShareBasic
|
0.40 | |
CY2023 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.28 | |
CY2022 | us-gaap |
Earnings Per Share Diluted
EarningsPerShareDiluted
|
0.38 | |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
383668 | shares |
CY2021Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
4.65 | |
CY2022 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
36667 | shares |
CY2022 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
4.65 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
39834 | shares |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
4.65 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
307167 | shares |
CY2023 | us-gaap |
Stock Issued During Period Shares Stock Options Exercised
StockIssuedDuringPeriodSharesStockOptionsExercised
|
199496 | shares |
CY2023 | us-gaap |
Share Based Compensation Arrangements By Share Based Payment Award Options Exercises In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
|
4.62 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod
|
3000 | shares |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Forfeitures And Expirations In Period Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
|
6.23 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
104671 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
4.67 | |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Outstanding Weighted Average Remaining Contractual Term2
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
|
P1Y4M28D | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
|
202419 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
|
104671 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
4.67 | |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
|
P1Y4M28D | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Aggregate Intrinsic Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
|
202419 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
104671 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
|
4.67 | |
CY2023 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Weighted Average Remaining Contractual Term1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
|
P1Y4M28D | |
CY2023Q4 | us-gaap |
Sharebased Compensation Arrangement By Sharebased Payment Award Options Exercisable Intrinsic Value1
SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
|
202419 | usd |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
|
104671 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
|
4.67 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
|
104671 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Options Vested And Expected To Vest Outstanding Weighted Average Exercise Price
ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
|
4.67 | |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodOutstandingWeightedAverageGrantDateFairValue
|
7.15 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
|
64687 | shares |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
7.15 | |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingVestedInPeriod
|
-53733 | shares |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodOutstandingWeightedAverageGrantDateFairValue
|
5.05 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
|
53733 | shares |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
|
5.05 | |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Treasury Stockin Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingTreasuryStockinPeriod
|
5467 | shares |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Treasury Stock Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsTreasuryStockOutstandingWeightedAverageGrantDateFairValue
|
5.18 | |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Treasury Stock In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsTreasuryStockInPeriod
|
5467 | shares |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Treasury Stock Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsTreasuryStockWeightedAverageGrantDateFairValue
|
5.18 | |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingForfeitedInPeriod
|
16981 | shares |
CY2022 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresOutstandingWeightedAverageGrantDateFairValue
|
8.43 | |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
|
16981 | shares |
CY2022 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
|
8.43 | |
CY2022Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingNonvestedNumber
|
110506 | shares |
CY2022Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedOutstandingWeightedAverageGrantDateFairValue
|
8.10 | |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
|
110506 | shares |
CY2022Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
|
8.10 | |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingGrantsInPeriod
|
100428 | shares |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodOutstandingWeightedAverageGrantDateFairValue
|
7.10 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
|
98546 | shares |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Grants In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
|
6.96 | |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingVestedInPeriod
|
-108568 | shares |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodOutstandingWeightedAverageGrantDateFairValue
|
7.91 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
|
108568 | shares |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Vested In Period Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
|
7.91 | |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Treasury Stockin Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingTreasuryStockinPeriod
|
1932 | shares |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Treasury Stock Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsTreasuryStockOutstandingWeightedAverageGrantDateFairValue
|
9.30 | |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Treasury Stock In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsTreasuryStockInPeriod
|
1932 | shares |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Treasury Stock Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsTreasuryStockWeightedAverageGrantDateFairValue
|
9.30 | |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingForfeitedInPeriod
|
13006 | shares |
CY2023 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresOutstandingWeightedAverageGrantDateFairValue
|
5.77 | |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeited In Period
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
|
13006 | shares |
CY2023 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Forfeitures Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
|
5.77 | |
CY2023Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingNonvestedNumber
|
87428 | shares |
CY2023Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Outstanding Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedOutstandingWeightedAverageGrantDateFairValue
|
7.04 | |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
|
85546 | shares |
CY2023Q4 | us-gaap |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Nonvested Weighted Average Grant Date Fair Value
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
|
7.04 | |
CY2023Q4 | us-gaap |
Deferred Compensation Liability Current
DeferredCompensationLiabilityCurrent
|
154539 | usd |
CY2023Q4 | CODA |
Share Based Compensation Arrangement By Share Based Payment Award Equity Instruments Other Than Options Outstanding Nonvested Number
ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsOutstandingNonvestedNumber
|
87428 | shares |
CY2023Q4 | us-gaap |
Preferred Stock Shares Authorized
PreferredStockSharesAuthorized
|
5000000 | shares |
CY2023Q4 | us-gaap |
Preferred Stock Par Or Stated Value Per Share
PreferredStockParOrStatedValuePerShare
|
0.001 | |
CY2022Q4 | CODA |
Deferred Tax Asset Restricted Stock Awards
DeferredTaxAssetRestrictedStockAwards
|
272841 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
-21554 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Other
DeferredTaxAssetsOther
|
-17861 | usd |
CY2023Q4 | CODA |
Deferred Tax Assets Foreign Research And Development Refunds
DeferredTaxAssetsForeignResearchAndDevelopmentRefunds
|
-218045 | usd |
CY2022Q4 | CODA |
Deferred Tax Assets Foreign Research And Development Refunds
DeferredTaxAssetsForeignResearchAndDevelopmentRefunds
|
-84381 | usd |
CY2023Q4 | CODA |
Deferred Tax Assets Foreign Capital Loss Carryforwards
DeferredTaxAssetsForeignCapitalLossCarryforwards
|
11182 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards Foreign
DeferredTaxAssetsOperatingLossCarryforwardsForeign
|
176585 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Operating Loss Carryforwards Foreign
DeferredTaxAssetsOperatingLossCarryforwardsForeign
|
409100 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
211386 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Gross
DeferredTaxAssetsGross
|
584529 | usd |
CY2023 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
264955 | usd |
CY2022 | us-gaap |
Current Federal Tax Expense Benefit
CurrentFederalTaxExpenseBenefit
|
849580 | usd |
CY2023 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
5789 | usd |
CY2022 | us-gaap |
Current State And Local Tax Expense Benefit
CurrentStateAndLocalTaxExpenseBenefit
|
159900 | usd |
CY2023 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
-22089 | usd |
CY2022 | us-gaap |
Current Foreign Tax Expense Benefit
CurrentForeignTaxExpenseBenefit
|
-4340 | usd |
CY2023 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
248655 | usd |
CY2022 | us-gaap |
Current Income Tax Expense Benefit
CurrentIncomeTaxExpenseBenefit
|
1005140 | usd |
CY2023 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
14941 | usd |
CY2022 | us-gaap |
Deferred Federal Income Tax Expense Benefit
DeferredFederalIncomeTaxExpenseBenefit
|
-174026 | usd |
CY2023 | us-gaap |
Deferred State And Local Income Tax Expense Benefit
DeferredStateAndLocalIncomeTaxExpenseBenefit
|
3913 | usd |
CY2023 | us-gaap |
Deferred Foreign Income Tax Expense Benefit
DeferredForeignIncomeTaxExpenseBenefit
|
29570 | usd |
CY2023 | us-gaap |
Deferred Other Tax Expense Benefit
DeferredOtherTaxExpenseBenefit
|
48424 | usd |
CY2022 | us-gaap |
Deferred Other Tax Expense Benefit
DeferredOtherTaxExpenseBenefit
|
-174026 | usd |
CY2023 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
297079 | usd |
CY2022 | us-gaap |
Income Tax Expense Benefit
IncomeTaxExpenseBenefit
|
831114 | usd |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation At Federal Statutory Income Tax Rate
EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
|
0.210 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Research And Development
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment
|
0.097 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Nondeductible Expense Research And Development
EffectiveIncomeTaxRateReconciliationNondeductibleExpenseResearchAndDevelopment
|
0.106 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
0.034 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation Change In Deferred Tax Assets Valuation Allowance
EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
|
-0.037 | pure |
CY2023 | CODA |
Effective Income Tax Rate Reconciliation Foreign Tax Benefit Including Gilti Net
EffectiveIncomeTaxRateReconciliationForeignTaxBenefitIncludingGiltiNet
|
0.021 | pure |
CY2022 | CODA |
Effective Income Tax Rate Reconciliation Foreign Tax Benefit Including Gilti Net
EffectiveIncomeTaxRateReconciliationForeignTaxBenefitIncludingGiltiNet
|
-0.009 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
0.013 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Reconciliation State And Local Income Taxes
EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
|
-0.030 | pure |
CY2023 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.087 | pure |
CY2022 | us-gaap |
Effective Income Tax Rate Continuing Operations
EffectiveIncomeTaxRateContinuingOperations
|
0.162 | pure |
CY2022Q4 | us-gaap |
Deferred Tax Assets Deferred Income
DeferredTaxAssetsDeferredIncome
|
4830 | usd |
CY2023Q4 | CODA |
Deferred Tax Asset Restricted Stock Awards
DeferredTaxAssetRestrictedStockAwards
|
263218 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
324719 | usd |
CY2023Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
211386 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Net
DeferredTaxAssetsNet
|
259810 | usd |
CY2023 | CODA |
Research And Development Tax Expenses
ResearchAndDevelopmentTaxExpenses
|
174771 | gbp |
CY2023 | CODA |
Research And Development Tax Expenses
ResearchAndDevelopmentTaxExpenses
|
158883 | usd |
CY2022Q4 | us-gaap |
Deferred Tax Assets Valuation Allowance
DeferredTaxAssetsValuationAllowance
|
324719 | usd |
CY2019Q4 | us-gaap |
Line Of Credit Facility Maximum Borrowing Capacity
LineOfCreditFacilityMaximumBorrowingCapacity
|
4000000 | usd |
CY2023 | us-gaap |
Line Of Credit Facility Maximum Amount Outstanding During Period
LineOfCreditFacilityMaximumAmountOutstandingDuringPeriod
|
0 | usd |
CY2022 | us-gaap |
Line Of Credit Facility Maximum Amount Outstanding During Period
LineOfCreditFacilityMaximumAmountOutstandingDuringPeriod
|
0 | usd |
CY2023 | CODA |
Employee Compensation Percentage
EmployeeCompensationPercentage
|
0.04 | pure |
CY2023 | us-gaap |
Defined Benefit Plan Service Cost
DefinedBenefitPlanServiceCost
|
128988 | usd |
CY2022 | us-gaap |
Defined Benefit Plan Service Cost
DefinedBenefitPlanServiceCost
|
138260 | usd |
CY2023 | us-gaap |
Revenues
Revenues
|
19352088 | usd |
CY2023 | us-gaap |
Revenues
Revenues
|
19352088 | usd |
CY2023 | us-gaap |
Revenues
Revenues
|
19352088 | usd |
CY2022 | us-gaap |
Revenues
Revenues
|
22225803 | usd |
CY2022 | us-gaap |
Revenues
Revenues
|
22225803 | usd |
CY2022 | us-gaap |
Revenues
Revenues
|
22225803 | usd |