| | | | | | | | | | | | | | | | | | | | | |
<?xml version="1.0" encoding="windows-1252"?> |
<FilingSummary> |
| <Version> 3.22.1 </Version> |
| <ProcessingTime/> |
| <ReportFormat> html </ReportFormat> |
| <ContextCount> 169 </ContextCount> |
| <ElementCount> 315 </ElementCount> |
| <EntityCount> 1 </EntityCount> |
| <FootnotesReported> false </FootnotesReported> |
| <SegmentCount> 42 </SegmentCount> |
| <ScenarioCount> 0 </ScenarioCount> |
| <TuplesReported> false </TuplesReported> |
| <UnitCount> 8 </UnitCount> |
| <MyReports> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R1.htm </HtmlFileName> |
| | | <LongName> 0001001 - Document - Cover </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/Cover </Role> |
| | | <ShortName> Cover </ShortName> |
| | | <MenuCategory> Cover </MenuCategory> |
| | | <Position> 1 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R2.htm </HtmlFileName> |
| | | <LongName> 1001002 - Statement - CONSOLIDATED BALANCE SHEETS </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS </Role> |
| | | <ShortName> CONSOLIDATED BALANCE SHEETS </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 2 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R3.htm </HtmlFileName> |
| | | <LongName> 1002003 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals </Role> |
| | | <ShortName> CONSOLIDATED BALANCE SHEETS (Parentheticals) </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 3 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R4.htm </HtmlFileName> |
| | | <LongName> 1003004 - Statement - CONSOLIDATED STATEMENTS OF NET INCOME AND COMPREHENSIVE INCOME </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME </Role> |
| | | <ShortName> CONSOLIDATED STATEMENTS OF NET INCOME AND COMPREHENSIVE INCOME </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 4 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R5.htm </HtmlFileName> |
| | | <LongName> 1004005 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN STOCKHOLDERS??? EQUITY </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY </Role> |
| | | <ShortName> CONSOLIDATED STATEMENTS OF CHANGES IN STOCKHOLDERS??? EQUITY </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 5 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R6.htm </HtmlFileName> |
| | | <LongName> 1005006 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS </Role> |
| | | <ShortName> CONSOLIDATED STATEMENTS OF CASH FLOWS </ShortName> |
| | | <MenuCategory> Statements </MenuCategory> |
| | | <Position> 6 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R7.htm </HtmlFileName> |
| | | <LongName> 2101101 - Disclosure - Organization and Nature of Business Operations </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/OrganizationandNatureofBusinessOperations </Role> |
| | | <ShortName> Organization and Nature of Business Operations </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 7 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R8.htm </HtmlFileName> |
| | | <LongName> 2102102 - Disclosure - Summary of Significant Accounting Policies </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/SummaryofSignificantAccountingPolicies </Role> |
| | | <ShortName> Summary of Significant Accounting Policies </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 8 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R9.htm </HtmlFileName> |
| | | <LongName> 2106103 - Disclosure - Recent Accounting Pronouncements </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/RecentAccountingPronouncements </Role> |
| | | <ShortName> Recent Accounting Pronouncements </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 9 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R10.htm </HtmlFileName> |
| | | <LongName> 2107104 - Disclosure - Earnings per Share </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/EarningsperShare </Role> |
| | | <ShortName> Earnings per Share </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 10 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R11.htm </HtmlFileName> |
| | | <LongName> 2111105 - Disclosure - Business Acquisitions </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BusinessAcquisitions </Role> |
| | | <ShortName> Business Acquisitions </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 11 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R12.htm </HtmlFileName> |
| | | <LongName> 2117106 - Disclosure - Billed and Unbilled Receivables </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BilledandUnbilledReceivables </Role> |
| | | <ShortName> Billed and Unbilled Receivables </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 12 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R13.htm </HtmlFileName> |
| | | <LongName> 2120107 - Disclosure - Property and Equipment, net </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/PropertyandEquipmentnet </Role> |
| | | <ShortName> Property and Equipment, net </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 13 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R14.htm </HtmlFileName> |
| | | <LongName> 2124108 - Disclosure - Goodwill and Intangible Assets </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/GoodwillandIntangibleAssets </Role> |
| | | <ShortName> Goodwill and Intangible Assets </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 14 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R15.htm </HtmlFileName> |
| | | <LongName> 2129109 - Disclosure - Accrued Liabilities </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/AccruedLiabilities </Role> |
| | | <ShortName> Accrued Liabilities </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 15 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R16.htm </HtmlFileName> |
| | | <LongName> 2132110 - Disclosure - Notes Payable and Other Obligations </LongName> |
| | | <ReportType> Notes </ReportType> |
| | | <Role> http://www.nv5.com/role/NotesPayableandOtherObligations </Role> |
| | | <ShortName> Notes Payable and Other Obligations </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 16 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R17.htm </HtmlFileName> |
| | | <LongName> 2136111 - Disclosure - Contingent Consideration </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ContingentConsideration </Role> |
| | | <ShortName> Contingent Consideration </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 17 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R18.htm </HtmlFileName> |
| | | <LongName> 2139112 - Disclosure - Commitments and Contingencies </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/CommitmentsandContingencies </Role> |
| | | <ShortName> Commitments and Contingencies </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 18 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R19.htm </HtmlFileName> |
| | | <LongName> 2140113 - Disclosure - Stock-Based Compensation </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/StockBasedCompensation </Role> |
| | | <ShortName> Stock-Based Compensation </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 19 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R20.htm </HtmlFileName> |
| | | <LongName> 2144114 - Disclosure - Income Taxes </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/IncomeTaxes </Role> |
| | | <ShortName> Income Taxes </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 20 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R21.htm </HtmlFileName> |
| | | <LongName> 2146115 - Disclosure - Reportable Segments </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegments </Role> |
| | | <ShortName> Reportable Segments </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 21 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R22.htm </HtmlFileName> |
| | | <LongName> 2153116 - Disclosure - Leases </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/Leases </Role> |
| | | <ShortName> Leases </ShortName> |
| | | <MenuCategory> Notes </MenuCategory> |
| | | <Position> 22 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R23.htm </HtmlFileName> |
| | | <LongName> 2203201 - Disclosure - Summary of Significant Accounting Policies (Policies) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies </Role> |
| | | <ShortName> Summary of Significant Accounting Policies (Policies) </ShortName> |
| | | <MenuCategory> Policies </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/SummaryofSignificantAccountingPolicies </ParentRole> |
| | | <Position> 23 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R24.htm </HtmlFileName> |
| | | <LongName> 2308301 - Disclosure - Earnings per Share (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/EarningsperShareTables </Role> |
| | | <ShortName> Earnings per Share (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/EarningsperShare </ParentRole> |
| | | <Position> 24 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R25.htm </HtmlFileName> |
| | | <LongName> 2312302 - Disclosure - Business Acquisitions (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BusinessAcquisitionsTables </Role> |
| | | <ShortName> Business Acquisitions (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/BusinessAcquisitions </ParentRole> |
| | | <Position> 25 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R26.htm </HtmlFileName> |
| | | <LongName> 2318303 - Disclosure - Billed and Unbilled Receivables (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BilledandUnbilledReceivablesTables </Role> |
| | | <ShortName> Billed and Unbilled Receivables (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/BilledandUnbilledReceivables </ParentRole> |
| | | <Position> 26 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R27.htm </HtmlFileName> |
| | | <LongName> 2321304 - Disclosure - Property and Equipment, net (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/PropertyandEquipmentnetTables </Role> |
| | | <ShortName> Property and Equipment, net (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/PropertyandEquipmentnet </ParentRole> |
| | | <Position> 27 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R28.htm </HtmlFileName> |
| | | <LongName> 2325305 - Disclosure - Goodwill and Intangible Assets (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/GoodwillandIntangibleAssetsTables </Role> |
| | | <ShortName> Goodwill and Intangible Assets (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/GoodwillandIntangibleAssets </ParentRole> |
| | | <Position> 28 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R29.htm </HtmlFileName> |
| | | <LongName> 2330306 - Disclosure - Accrued Liabilities (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/AccruedLiabilitiesTables </Role> |
| | | <ShortName> Accrued Liabilities (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/AccruedLiabilities </ParentRole> |
| | | <Position> 29 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R30.htm </HtmlFileName> |
| | | <LongName> 2333307 - Disclosure - Notes Payable and Other Obligations (Tables) </LongName> |
| | | <ReportType> Notes </ReportType> |
| | | <Role> http://www.nv5.com/role/NotesPayableandOtherObligationsTables </Role> |
| | | <ShortName> Notes Payable and Other Obligations (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/NotesPayableandOtherObligations </ParentRole> |
| | | <Position> 30 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R31.htm </HtmlFileName> |
| | | <LongName> 2337308 - Disclosure - Contingent Consideration (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ContingentConsiderationTables </Role> |
| | | <ShortName> Contingent Consideration (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/ContingentConsideration </ParentRole> |
| | | <Position> 31 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R32.htm </HtmlFileName> |
| | | <LongName> 2341309 - Disclosure - Stock-Based Compensation (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/StockBasedCompensationTables </Role> |
| | | <ShortName> Stock-Based Compensation (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/StockBasedCompensation </ParentRole> |
| | | <Position> 32 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R33.htm </HtmlFileName> |
| | | <LongName> 2347310 - Disclosure - Reportable Segments (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegmentsTables </Role> |
| | | <ShortName> Reportable Segments (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/ReportableSegments </ParentRole> |
| | | <Position> 33 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R34.htm </HtmlFileName> |
| | | <LongName> 2354311 - Disclosure - Leases (Tables) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesTables </Role> |
| | | <ShortName> Leases (Tables) </ShortName> |
| | | <MenuCategory> Tables </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/Leases </ParentRole> |
| | | <Position> 34 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R35.htm </HtmlFileName> |
| | | <LongName> 2404401 - Disclosure - Summary of Significant Accounting Policies - Revenue Recognition (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails </Role> |
| | | <ShortName> Summary of Significant Accounting Policies - Revenue Recognition (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 35 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R36.htm </HtmlFileName> |
| | | <LongName> 2405402 - Disclosure - Summary of Significant Accounting Policies - Contract Balances (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesContractBalancesDetails </Role> |
| | | <ShortName> Summary of Significant Accounting Policies - Contract Balances (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 36 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R37.htm </HtmlFileName> |
| | | <LongName> 2409403 - Disclosure - Earnings per Share - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/EarningsperShareNarrativeDetails </Role> |
| | | <ShortName> Earnings per Share - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 37 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R38.htm </HtmlFileName> |
| | | <LongName> 2410404 - Disclosure - Earnings per Share - Schedule of Earnings Per Share, Basic and Diluted (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails </Role> |
| | | <ShortName> Earnings per Share - Schedule of Earnings Per Share, Basic and Diluted (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 38 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R39.htm </HtmlFileName> |
| | | <LongName> 2413405 - Disclosure - Business Acquisitions - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails </Role> |
| | | <ShortName> Business Acquisitions - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 39 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R40.htm </HtmlFileName> |
| | | <LongName> 2414406 - Disclosure - Business Acquisitions - Summary of the Fair Values of Assets Acquired and Liabilities Assumed (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails </Role> |
| | | <ShortName> Business Acquisitions - Summary of the Fair Values of Assets Acquired and Liabilities Assumed (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 40 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R41.htm </HtmlFileName> |
| | | <LongName> 2415407 - Disclosure - Business Acquisitions - Results of Operations From any Business Acquired (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BusinessAcquisitionsResultsofOperationsFromanyBusinessAcquiredDetails </Role> |
| | | <ShortName> Business Acquisitions - Results of Operations From any Business Acquired (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 41 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R42.htm </HtmlFileName> |
| | | <LongName> 2416408 - Disclosure - Business Acquisitions - Pro Forma Consolidated Results of Operations (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BusinessAcquisitionsProFormaConsolidatedResultsofOperationsDetails </Role> |
| | | <ShortName> Business Acquisitions - Pro Forma Consolidated Results of Operations (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 42 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R43.htm </HtmlFileName> |
| | | <LongName> 2419409 - Disclosure - Billed and Unbilled Receivables (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/BilledandUnbilledReceivablesDetails </Role> |
| | | <ShortName> Billed and Unbilled Receivables (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/BilledandUnbilledReceivablesTables </ParentRole> |
| | | <Position> 43 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R44.htm </HtmlFileName> |
| | | <LongName> 2422410 - Disclosure - Property and Equipment, net (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/PropertyandEquipmentnetDetails </Role> |
| | | <ShortName> Property and Equipment, net (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/PropertyandEquipmentnetTables </ParentRole> |
| | | <Position> 44 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R45.htm </HtmlFileName> |
| | | <LongName> 2423411 - Disclosure - Property and Equipment, net - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails </Role> |
| | | <ShortName> Property and Equipment, net - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 45 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R46.htm </HtmlFileName> |
| | | <LongName> 2426412 - Disclosure - Goodwill and Intangible Assets - Schedule of Goodwill (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails </Role> |
| | | <ShortName> Goodwill and Intangible Assets - Schedule of Goodwill (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 46 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R47.htm </HtmlFileName> |
| | | <LongName> 2427413 - Disclosure - Goodwill and Intangible Assets - Schedule of Finite-Lived Intangible Assets (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFiniteLivedIntangibleAssetsDetails </Role> |
| | | <ShortName> Goodwill and Intangible Assets - Schedule of Finite-Lived Intangible Assets (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 47 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R48.htm </HtmlFileName> |
| | | <LongName> 2428414 - Disclosure - Goodwill and Intangible Assets - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails </Role> |
| | | <ShortName> Goodwill and Intangible Assets - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 48 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R49.htm </HtmlFileName> |
| | | <LongName> 2431415 - Disclosure - Accrued Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/AccruedLiabilitiesDetails </Role> |
| | | <ShortName> Accrued Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/AccruedLiabilitiesTables </ParentRole> |
| | | <Position> 49 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R50.htm </HtmlFileName> |
| | | <LongName> 2434416 - Disclosure - Notes Payable and Other Obligations - Summary of Notes Payable and Other Obligations (Details) </LongName> |
| | | <ReportType> Notes </ReportType> |
| | | <Role> http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails </Role> |
| | | <ShortName> Notes Payable and Other Obligations - Summary of Notes Payable and Other Obligations (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 50 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R51.htm </HtmlFileName> |
| | | <LongName> 2435417 - Disclosure - Notes Payable and Other Obligations - Narrative (Details) </LongName> |
| | | <ReportType> Notes </ReportType> |
| | | <Role> http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails </Role> |
| | | <ShortName> Notes Payable and Other Obligations - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 51 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R52.htm </HtmlFileName> |
| | | <LongName> 2438418 - Disclosure - Contingent Consideration (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ContingentConsiderationDetails </Role> |
| | | <ShortName> Contingent Consideration (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/ContingentConsiderationTables </ParentRole> |
| | | <Position> 52 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R53.htm </HtmlFileName> |
| | | <LongName> 2442419 - Disclosure - Stock-Based Compensation - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/StockBasedCompensationNarrativeDetails </Role> |
| | | <ShortName> Stock-Based Compensation - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 53 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R54.htm </HtmlFileName> |
| | | <LongName> 2443420 - Disclosure - Stock-Based Compensation - Restricted Stock Awards (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails </Role> |
| | | <ShortName> Stock-Based Compensation - Restricted Stock Awards (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 54 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R55.htm </HtmlFileName> |
| | | <LongName> 2445421 - Disclosure - Income Taxes (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/IncomeTaxesDetails </Role> |
| | | <ShortName> Income Taxes (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <ParentRole> http://www.nv5.com/role/IncomeTaxes </ParentRole> |
| | | <Position> 55 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R56.htm </HtmlFileName> |
| | | <LongName> 2448422 - Disclosure - Reportable Segments - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegmentsNarrativeDetails </Role> |
| | | <ShortName> Reportable Segments - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 56 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R57.htm </HtmlFileName> |
| | | <LongName> 2449423 - Disclosure - Reportable Segments - Summarized Financial Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails </Role> |
| | | <ShortName> Reportable Segments - Summarized Financial Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 57 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R58.htm </HtmlFileName> |
| | | <LongName> 2450424 - Disclosure - Reportable Segments - Revenue From Contracts With Customers by Geographic Location (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegmentsRevenueFromContractsWithCustomersbyGeographicLocationDetails </Role> |
| | | <ShortName> Reportable Segments - Revenue From Contracts With Customers by Geographic Location (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 58 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R59.htm </HtmlFileName> |
| | | <LongName> 2451425 - Disclosure - Reportable Segments - Revenue by Customer Type (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails </Role> |
| | | <ShortName> Reportable Segments - Revenue by Customer Type (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 59 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R60.htm </HtmlFileName> |
| | | <LongName> 2452426 - Disclosure - Reportable Segments - Revenue by Contract Type (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails </Role> |
| | | <ShortName> Reportable Segments - Revenue by Contract Type (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 60 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R61.htm </HtmlFileName> |
| | | <LongName> 2455427 - Disclosure - Leases - Narrative (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesNarrativeDetails </Role> |
| | | <ShortName> Leases - Narrative (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 61 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R62.htm </HtmlFileName> |
| | | <LongName> 2456428 - Disclosure - Leases - Schedule of Supplemental Balance Sheet Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails </Role> |
| | | <ShortName> Leases - Schedule of Supplemental Balance Sheet Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 62 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R63.htm </HtmlFileName> |
| | | <LongName> 2457429 - Disclosure - Leases - Schedule of Lease Term and Discount Rate (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails </Role> |
| | | <ShortName> Leases - Schedule of Lease Term and Discount Rate (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 63 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R64.htm </HtmlFileName> |
| | | <LongName> 2458430 - Disclosure - Leases - Schedule of Supplemental Cash Flow Information (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails </Role> |
| | | <ShortName> Leases - Schedule of Supplemental Cash Flow Information (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 64 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R65.htm </HtmlFileName> |
| | | <LongName> 2459431 - Disclosure - Leases - Schedule of Lease Cost (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails </Role> |
| | | <ShortName> Leases - Schedule of Lease Cost (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 65 </Position> |
| | | </Report> |
| | <Report instance="nvee-20220402.htm"> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <HtmlFileName> R66.htm </HtmlFileName> |
| | | <LongName> 2460432 - Disclosure - Leases - Schedule of Maturities of Lease Liabilities (Details) </LongName> |
| | | <ReportType> Sheet </ReportType> |
| | | <Role> http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails </Role> |
| | | <ShortName> Leases - Schedule of Maturities of Lease Liabilities (Details) </ShortName> |
| | | <MenuCategory> Details </MenuCategory> |
| | | <Position> 66 </Position> |
| | | </Report> |
| | <Report> |
| | | <IsDefault> false </IsDefault> |
| | | <HasEmbeddedReports> false </HasEmbeddedReports> |
| | | <LongName> All Reports </LongName> |
| | | <ReportType> Book </ReportType> |
| | | <ShortName> All Reports </ShortName> |
| | | </Report> |
| | </MyReports> |
| <InputFiles> |
| | <File doctype="10-Q" original="nvee-20220402.htm"> nvee-20220402.htm </File> |
| | <File> nvee-20220402.xsd </File> |
| | <File> nvee-20220402_cal.xml </File> |
| | <File> nvee-20220402_def.xml </File> |
| | <File> nvee-20220402_lab.xml </File> |
| | <File> nvee-20220402_pre.xml </File> |
| | <File> nvee-2022x04x02xex311.htm </File> |
| | <File> nvee-2022x04x02xex312.htm </File> |
| | <File> nvee-2022x04x02xex321.htm </File> |
| | </InputFiles> |
| <SupplementalFiles/> |
| <BaseTaxonomies> |
| | <BaseTaxonomy items="636"> http://fasb.org/us-gaap/2021-01-31 </BaseTaxonomy> |
| | <BaseTaxonomy items="30"> http://xbrl.sec.gov/dei/2021q4 </BaseTaxonomy> |
| | </BaseTaxonomies> |
| <HasPresentationLinkbase> true </HasPresentationLinkbase> |
| <HasCalculationLinkbase> true </HasCalculationLinkbase> |
| </FilingSummary> |